aboutsummaryrefslogtreecommitdiffstats
path: root/src/macmenu.c
diff options
context:
space:
mode:
authorKaroly Lorentey2006-12-03 15:03:30 +0000
committerKaroly Lorentey2006-12-03 15:03:30 +0000
commit974b73e83842d63b14512aa225cc53983a9b5d14 (patch)
tree462170d38cbb7057e98f08e8c612a9d30eeea0fd /src/macmenu.c
parentd0104e754a241cf83811fef30195d41201de533c (diff)
parentf5be22a273892218aad1db32c43ba562a08f3925 (diff)
downloademacs-974b73e83842d63b14512aa225cc53983a9b5d14.tar.gz
emacs-974b73e83842d63b14512aa225cc53983a9b5d14.zip
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-490 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-491 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-492 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-493 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-494 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-495 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-496 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-497 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-498 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-499 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-500 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-501 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-502 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-503 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-504 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-505 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-506 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-507 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-508 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-509 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-510 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-511 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-512 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-513 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-514 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-515 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-516 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-517 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-518 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-519 Update from CVS: etc/TUTORIAL.cn: Updated. * emacs@sv.gnu.org/emacs--devo--0--patch-520 Merge from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-521 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-522 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-523 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-524 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-525 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-526 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-527 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-528 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-529 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-530 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-531 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-532 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-533 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-534 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-535 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-161 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-162 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-163 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-164 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-165 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-166 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-167 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-168 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-169 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-170 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-588
Diffstat (limited to 'src/macmenu.c')
-rw-r--r--src/macmenu.c35
1 files changed, 26 insertions, 9 deletions
diff --git a/src/macmenu.c b/src/macmenu.c
index 1a1525eafb7..14bfe92cb25 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -319,7 +319,7 @@ restore_menu_items (saved)
319 menu_items_used = XINT (XCAR (saved)); 319 menu_items_used = XINT (XCAR (saved));
320 saved = XCDR (saved); 320 saved = XCDR (saved);
321 menu_items_n_panes = XINT (XCAR (saved)); 321 menu_items_n_panes = XINT (XCAR (saved));
322 saved = XCDR (saved); 322 saved = XCDR (saved);
323 menu_items_submenu_depth = XINT (XCAR (saved)); 323 menu_items_submenu_depth = XINT (XCAR (saved));
324 return Qnil; 324 return Qnil;
325} 325}
@@ -1453,7 +1453,7 @@ update_submenu_strings (first_wv)
1453/* Event handler function that pops down a menu on C-g. We can only pop 1453/* Event handler function that pops down a menu on C-g. We can only pop
1454 down menus if CancelMenuTracking is present (OSX 10.3 or later). */ 1454 down menus if CancelMenuTracking is present (OSX 10.3 or later). */
1455 1455
1456#ifdef HAVE_CANCELMENUTRACKING 1456#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
1457static pascal OSStatus 1457static pascal OSStatus
1458menu_quit_handler (nextHandler, theEvent, userData) 1458menu_quit_handler (nextHandler, theEvent, userData)
1459 EventHandlerCallRef nextHandler; 1459 EventHandlerCallRef nextHandler;
@@ -1487,7 +1487,7 @@ menu_quit_handler (nextHandler, theEvent, userData)
1487 1487
1488 return CallNextEventHandler (nextHandler, theEvent); 1488 return CallNextEventHandler (nextHandler, theEvent);
1489} 1489}
1490#endif /* HAVE_CANCELMENUTRACKING */ 1490#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
1491 1491
1492/* Add event handler to all menus that belong to KIND so we can detect C-g. 1492/* Add event handler to all menus that belong to KIND so we can detect C-g.
1493 MENU_HANDLE is the root menu of the tracking session to dismiss 1493 MENU_HANDLE is the root menu of the tracking session to dismiss
@@ -1499,10 +1499,15 @@ install_menu_quit_handler (kind, menu_handle)
1499 enum mac_menu_kind kind; 1499 enum mac_menu_kind kind;
1500 MenuHandle menu_handle; 1500 MenuHandle menu_handle;
1501{ 1501{
1502#ifdef HAVE_CANCELMENUTRACKING 1502#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
1503 EventTypeSpec typesList[] = { { kEventClassKeyboard, kEventRawKeyDown } }; 1503 static const EventTypeSpec typesList[] =
1504 {{kEventClassKeyboard, kEventRawKeyDown}};
1504 int id; 1505 int id;
1505 1506
1507#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
1508 if (CancelMenuTracking == NULL)
1509 return;
1510#endif
1506 for (id = min_menu_id[kind]; id < min_menu_id[kind + 1]; id++) 1511 for (id = min_menu_id[kind]; id < min_menu_id[kind + 1]; id++)
1507 { 1512 {
1508 MenuHandle menu = GetMenuHandle (id); 1513 MenuHandle menu = GetMenuHandle (id);
@@ -1511,9 +1516,9 @@ install_menu_quit_handler (kind, menu_handle)
1511 break; 1516 break;
1512 InstallMenuEventHandler (menu, menu_quit_handler, 1517 InstallMenuEventHandler (menu, menu_quit_handler,
1513 GetEventTypeCount (typesList), 1518 GetEventTypeCount (typesList),
1514 typesList, menu_handle, NULL); 1519 typesList, menu_handle, NULL);
1515 } 1520 }
1516#endif /* HAVE_CANCELMENUTRACKING */ 1521#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
1517} 1522}
1518 1523
1519/* Set the contents of the menubar widgets of frame F. 1524/* Set the contents of the menubar widgets of frame F.
@@ -2428,9 +2433,9 @@ mac_dialog_show (f, keymaps, title, header, error_name)
2428/* Is this item a separator? */ 2433/* Is this item a separator? */
2429static int 2434static int
2430name_is_separator (name) 2435name_is_separator (name)
2431 char *name; 2436 const char *name;
2432{ 2437{
2433 char *start = name; 2438 const char *start = name;
2434 2439
2435 /* Check if name string consists of only dashes ('-'). */ 2440 /* Check if name string consists of only dashes ('-'). */
2436 while (*name == '-') name++; 2441 while (*name == '-') name++;
@@ -2641,6 +2646,17 @@ dispose_menus (kind, id)
2641} 2646}
2642 2647
2643#endif /* HAVE_MENUS */ 2648#endif /* HAVE_MENUS */
2649
2650/* The following is used by delayed window autoselection. */
2651
2652DEFUN ("menu-or-popup-active-p", Fmenu_or_popup_active_p, Smenu_or_popup_active_p, 0, 0, 0,
2653 doc: /* Return t if a menu or popup dialog is active. */)
2654 ()
2655{
2656 /* Always return Qnil since menu selection functions do not return
2657 until a selection has been made or cancelled. */
2658 return Qnil;
2659}
2644 2660
2645void 2661void
2646syms_of_macmenu () 2662syms_of_macmenu ()
@@ -2652,6 +2668,7 @@ syms_of_macmenu ()
2652 staticpro (&Qdebug_on_next_call); 2668 staticpro (&Qdebug_on_next_call);
2653 2669
2654 defsubr (&Sx_popup_menu); 2670 defsubr (&Sx_popup_menu);
2671 defsubr (&Smenu_or_popup_active_p);
2655#ifdef HAVE_MENUS 2672#ifdef HAVE_MENUS
2656 defsubr (&Sx_popup_dialog); 2673 defsubr (&Sx_popup_dialog);
2657#endif 2674#endif