(Fx_popup_dialog) [MAC_OSX]: Use standard alert if called from
Fmessage_box, Fyes_or_no_p, or Fy_or_n_p.
[MAC_OS_X_VERSION_MAX_ALLOWED >= 1030] (menu_quit_handler): Use
mac_quit_char_key_p.
(restore_show_help_function, menu_target_item_handler)
[TARGET_API_MAC_CARBON]: New functions.
(install_menu_target_item_handler): New function.
(add_menu_item) [TARGET_API_MAC_CARBON]: Set help string as menu
item property.
menu ID for Apple menu.
(menubar_selection_callback): Remove function.
(find_and_call_menu_selection): New function from xmenu.c.
(x_activate_menubar): Use it.
(set_frame_menubar): Don't use f->output_data.mac->menubar_active.
(min_menu_id): New variable.
(POPUP_SUBMENU_ID, MIN_POPUP_SUBMENU_ID, MIN_MENU_ID)
(MIN_SUBMENU_ID): Remove defines. All uses are replaced with
min_menu_id and enumerators in enum mac_menu_kind.
(fill_menu, dispose_menus, install_menu_quit_handler): New arg KIND.
All uses changed. Add range check for menu ID.
(fill_menubar): Add range check for menu ID.
[HAVE_CANCELMENUTRACKING] (menu_quit_handler): Check error code of
GetEventParameter.
(set_frame_menubar, mac_menu_show): Call install_menu_quit_handler
for each menu kind.
(next_menubar_widget_id): Remove variables.
(initialize_frame_menubar): Remove function.
(pop_down_menu, mac_menu_show): Simplify save value.
(dispose_menus): New function.
(pop_down_menu, fill_menubar): Use it.
(fill_submenu): Remove function. All uses changed to fill_menu.
(add_menu_item): Remove args SUBMENU and FORCE_DISABLE. New arg
POS. Don't call SetMenuItemHierarchicalID here.
(fill_menu): Add arg SUBMENU_ID. Return submenu_id that is to be
used next. Call SetMenuItemHierarchicalID here.
(fill_menubar): Add arg DEEP_P. All uses changed. Clean up menu
objects if needed. Reuse existing menu bar titles if possible.
(set_frame_menubar): Don't clean up menu objects here.
(set_frame_menubar, mac_menu_show keymp_panes)
(single_keymap_panes, list_of_panes, list_of_item)
(single_menu_item): Add argument types to prototypes.
(mac_dialog_show) [HAVE_DIALOGS]: Likewise.
(struct skp): New struct (from xmenu.c).
(single_keymap_panes, single_menu_item, list_of_panes)
(list_of_item): Sync with xmenu.c.
(Fx_popup_menu, Fx_popup_dialog): Likewise. Don't get window from
POSITION if it is mac-apple-event event.
(menubar_selection_callback): Don't use menu_command_in_progress.
(set_frame_menubar): First parse all submenus, then make
widget_value trees from them. Don't allocate any widget_value
objects until we are done with the parsing.
(parse_single_submenu, digest_single_submenu): New functions.
(single_submenu): Function deleted, replaced by those two.
(install_menu_quit_handler) [HAVE_CANCELMENUTRACKING]: Don't
create or dispose of EventHandlerUPP. Install hander to all submenus.
(mac_menu_show) [!HAVE_MULTILINGUAL_MENU]: Use ENCODE_MENU_STRING
instead of ENCODE_SYSTEM.
(free_frame_menubar, fill_submenu, fill_menu): Don't use NULL for
integer values.
[HAVE_DIALOGS] (mac_dialog_show): Sync with xdialog_show (in xmenu.c).
(add_menu_item) [TARGET_API_MAC_CARBON]: Use CFString functions to
format menu item string. Don't use NULL for integer value.
(Fx_popup_menu): unwind protect cleanup_popup_menu in case
mac_menu_show Quit:s.
(mac_menu_show): Quit on cancel if not popped up on click (i.e.
a dialog).
* image.c (image_load_quartz2d): Use
cfstring_create_with_utf8_cstring
* macmenu.c (add_menu_item): Use
cfstring_create_with_utf8_cstring
* macfns.c (x_set_name, x_set_title): Use
cfstring_create_with_utf8_cstring
(Fx_file_dialog): Use cfstring_create_with_utf8_cstring and use
constant CFRefs instead of creating them each time for labels.
* mac.c (cfstring_create_with_utf8_cstring): Added to prevent
crashes with invalid characters.
(x_real_positions): Use mac_get_window_bounds.
macmenu.c (update_submenu_strings): Apply 2004-09-07 change for
xmenu.c (YAILOM).
macterm.c [!MAC_OSX]: Include Windows.h.
(front_emacs_window): Rename from mac_front_window. All uses
changed. Return the frontmost non-tooltip emacs window.
(mac_get_window_bounds): New function.
(x_calc_absolute_position): Use the difference of width and height
between the inner and outer window.
(x_set_offset): Specify window position by the coordinae of the
outer window. Adjust the position if the title bar is completely
outside the screen.
(app_is_suspended, app_sleep_time): Remove unused variables.
(do_app_resume, do_app_suspend): Remove their contents because
window-activate/deactivate events will do the job.
(do_zoom_window): Remove unused variables. Make compliant to the
standard way of zooming. Set f->left_pos and f->top_pos.
(XTread_socket): Don't use argument `expected'. Don't use
FrontWindow to determine the clicked window. Exclude unprocessed
mouseUp cases in the early stage. Add parentheses to fix operator
precedence.
(XTread_socket) [TARGET_API_MAC_CARBON]: Don't specify drag area.
(single_submenu): Set lname and lkey in widget_value
instead of name and key.
(update_submenu_strings): New function.
(set_frame_menubar): Remove call to inhibit_garbage_collection,
call update_submenu_strings.
strings in menu items.
(single_submenu): Use ENCODE_MENU_STRING
(mac_menu_show): Use ENCODE_MENU_STRING. Reset grabbed because
button release isn't passed to event loop
(add_menu_item): Use SetMenuItemWithCFString
(mac_menu_show): Added support for hierarchical popup menus
(add_menu_item): Removed indentation support
(fill_submenu, fill_menu): Now creates hierarchical menus
instead of using indentation
* macmenu.c (add_menu_item, fill_menubar): Truncate menu item
names to 255 characters.
* macterm.c (XTread_socket): If all frames have been collapsed,
expand the first one before handling drag-and-drop events.
* s/darwin.h (GETPGRP_NO_ARG): Delete. Replaced by GETPGRP_VOID,
which is detected by autoconf.