Mercurial > emacs
comparison src/macterm.c @ 61786:223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
(do_window_update, do_ae_quit_application, XTread_socket): Don't
use them.
(WNE_SLEEP_AT_SUSPEND, WNE_SLEEP_AT_RESUME): Don't define.
[USE_CARBON_EVENTS && MAC_OSX] (mac_handle_service_event)
(init_service_handler): Move to macselect.c. Remove declarations.
[USE_CARBON_EVENTS && MAC_OSX] (init_service_handler): Add extern.
(Qapplication, Qabout): New variables.
(syms_of_mac): Initialize them.
[USE_CARBON_EVENTS && MAC_OSX] (Qpreferences, Qservices, Qpaste)
(Qperform): New variables.
(syms_of_mac) [USE_CARBON_EVENTS && MAC_OSX]: Initialize them.
(do_get_menus) [!TARGET_API_MAC_CARBON]: Don't call AppendResMenu.
(do_menu_choice): Unhighlight menu bar also when menu_id is 0.
(mac_store_application_menu_event, init_menu_bar): New functions.
[USE_CARBON_EVENTS] (mac_handle_command_event)
(init_command_handler): New functions.
(mac_handle_window_event): Return noErr on window update event.
(do_ae_quit_application): Call mac_store_application_menu_event.
(mac_initialize) [USE_CARBON_EVENTS]: Call init_command_handler
and init_menu_bar.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Sun, 24 Apr 2005 06:06:39 +0000 |
parents | 38a086380ddc |
children | 2d42fd79f829 ad07ff6e4555 08185296b491 |
comparison
equal
deleted
inserted
replaced
61785:6e608d2306b0 | 61786:223bdb2c3b9a |
---|---|
7086 #define DEFAULT_NUM_COLS 80 | 7086 #define DEFAULT_NUM_COLS 80 |
7087 | 7087 |
7088 #define MIN_DOC_SIZE 64 | 7088 #define MIN_DOC_SIZE 64 |
7089 #define MAX_DOC_SIZE 32767 | 7089 #define MAX_DOC_SIZE 32767 |
7090 | 7090 |
7091 #if 0 | |
7091 /* sleep time for WaitNextEvent */ | 7092 /* sleep time for WaitNextEvent */ |
7092 #define WNE_SLEEP_AT_SUSPEND 10 | 7093 #define WNE_SLEEP_AT_SUSPEND 10 |
7093 #define WNE_SLEEP_AT_RESUME 1 | 7094 #define WNE_SLEEP_AT_RESUME 1 |
7094 | 7095 |
7095 /* true when cannot handle any Mac OS events */ | |
7096 static int handling_window_update = 0; | |
7097 | |
7098 #if 0 | |
7099 /* the flag appl_is_suspended is used both for determining the sleep | 7096 /* the flag appl_is_suspended is used both for determining the sleep |
7100 time to be passed to WaitNextEvent and whether the cursor should be | 7097 time to be passed to WaitNextEvent and whether the cursor should be |
7101 drawn when updating the display. The cursor is turned off when | 7098 drawn when updating the display. The cursor is turned off when |
7102 Emacs is suspended. Redrawing it is unnecessary and what needs to | 7099 Emacs is suspended. Redrawing it is unnecessary and what needs to |
7103 be done depends on whether the cursor lies inside or outside the | 7100 be done depends on whether the cursor lies inside or outside the |
7111 | 7108 |
7112 #define ARGV_STRING_LIST_ID 129 | 7109 #define ARGV_STRING_LIST_ID 129 |
7113 #define ABOUT_ALERT_ID 128 | 7110 #define ABOUT_ALERT_ID 128 |
7114 #define RAM_TOO_LARGE_ALERT_ID 129 | 7111 #define RAM_TOO_LARGE_ALERT_ID 129 |
7115 | 7112 |
7116 Boolean terminate_flag = false; | |
7117 | |
7118 /* Contains the string "reverse", which is a constant for mouse button emu.*/ | 7113 /* Contains the string "reverse", which is a constant for mouse button emu.*/ |
7119 Lisp_Object Qreverse; | 7114 Lisp_Object Qreverse; |
7120 | 7115 |
7121 /* True if using command key as meta key. */ | 7116 /* True if using command key as meta key. */ |
7122 Lisp_Object Vmac_command_key_is_meta; | 7117 Lisp_Object Vmac_command_key_is_meta; |
7168 static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); | 7163 static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); |
7169 static DragTrackingHandlerUPP mac_do_track_dragUPP = NULL; | 7164 static DragTrackingHandlerUPP mac_do_track_dragUPP = NULL; |
7170 static DragReceiveHandlerUPP mac_do_receive_dragUPP = NULL; | 7165 static DragReceiveHandlerUPP mac_do_receive_dragUPP = NULL; |
7171 #endif | 7166 #endif |
7172 | 7167 |
7168 static Lisp_Object Qapplication, Qabout; | |
7173 #if USE_CARBON_EVENTS | 7169 #if USE_CARBON_EVENTS |
7174 #ifdef MAC_OSX | 7170 #ifdef MAC_OSX |
7175 /* Preliminary Support for the OSX Services Menu */ | 7171 extern void init_service_handler (); |
7176 static OSStatus mac_handle_service_event (EventHandlerCallRef,EventRef,void*); | 7172 static Lisp_Object Qpreferences, Qservices, Qpaste, Qperform; |
7177 static void init_service_handler (); | |
7178 #endif | 7173 #endif |
7179 /* Window Event Handler */ | 7174 /* Window Event Handler */ |
7180 static pascal OSStatus mac_handle_window_event (EventHandlerCallRef, | 7175 static pascal OSStatus mac_handle_window_event (EventHandlerCallRef, |
7181 EventRef, void *); | 7176 EventRef, void *); |
7182 #endif | 7177 #endif |
7330 if(menubar_handle == NULL) | 7325 if(menubar_handle == NULL) |
7331 abort (); | 7326 abort (); |
7332 SetMenuBar (menubar_handle); | 7327 SetMenuBar (menubar_handle); |
7333 DrawMenuBar (); | 7328 DrawMenuBar (); |
7334 | 7329 |
7330 #if !TARGET_API_MAC_CARBON | |
7335 menu_handle = GetMenuHandle (M_APPLE); | 7331 menu_handle = GetMenuHandle (M_APPLE); |
7336 if(menu_handle != NULL) | 7332 if(menu_handle != NULL) |
7337 AppendResMenu (menu_handle,'DRVR'); | 7333 AppendResMenu (menu_handle,'DRVR'); |
7338 else | 7334 else |
7339 abort (); | 7335 abort (); |
7336 #endif | |
7340 } | 7337 } |
7341 | 7338 |
7342 | 7339 |
7343 static void | 7340 static void |
7344 do_init_managers (void) | 7341 do_init_managers (void) |
7406 } | 7403 } |
7407 else | 7404 else |
7408 { | 7405 { |
7409 Rect r; | 7406 Rect r; |
7410 | 7407 |
7411 handling_window_update = 1; | |
7412 | |
7413 #if TARGET_API_MAC_CARBON | 7408 #if TARGET_API_MAC_CARBON |
7414 { | 7409 { |
7415 RgnHandle region = NewRgn (); | 7410 RgnHandle region = NewRgn (); |
7416 | 7411 |
7417 GetPortVisibleRegion (GetWindowPort (win), region); | 7412 GetPortVisibleRegion (GetWindowPort (win), region); |
7423 #else | 7418 #else |
7424 r = (*win->visRgn)->rgnBBox; | 7419 r = (*win->visRgn)->rgnBBox; |
7425 expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); | 7420 expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); |
7426 UpdateControls (win, win->visRgn); | 7421 UpdateControls (win, win->visRgn); |
7427 #endif | 7422 #endif |
7428 | |
7429 handling_window_update = 0; | |
7430 } | 7423 } |
7431 } | 7424 } |
7432 | 7425 |
7433 EndUpdate (win); | 7426 EndUpdate (win); |
7434 } | 7427 } |
7493 SInt16 menu_id, menu_item; | 7486 SInt16 menu_id, menu_item; |
7494 | 7487 |
7495 menu_id = HiWord (menu_choice); | 7488 menu_id = HiWord (menu_choice); |
7496 menu_item = LoWord (menu_choice); | 7489 menu_item = LoWord (menu_choice); |
7497 | 7490 |
7498 if (menu_id == 0) | |
7499 return; | |
7500 | |
7501 switch (menu_id) | 7491 switch (menu_id) |
7502 { | 7492 { |
7493 case 0: | |
7494 break; | |
7495 | |
7503 case M_APPLE: | 7496 case M_APPLE: |
7504 do_apple_menu (menu_item); | 7497 do_apple_menu (menu_item); |
7505 break; | 7498 break; |
7506 | 7499 |
7507 default: | 7500 default: |
7747 #endif | 7740 #endif |
7748 if (err != noErr) | 7741 if (err != noErr) |
7749 abort (); | 7742 abort (); |
7750 } | 7743 } |
7751 | 7744 |
7745 void | |
7746 mac_store_application_menu_event (event) | |
7752 #if USE_CARBON_EVENTS | 7747 #if USE_CARBON_EVENTS |
7748 EventRef event; | |
7749 #else | |
7750 UInt32 event; | |
7751 #endif | |
7752 { | |
7753 struct input_event buf; | |
7754 Lisp_Object frame, entry; | |
7755 | |
7756 EVENT_INIT (buf); | |
7757 | |
7758 XSETFRAME (frame, mac_focus_frame (&one_mac_display_info)); | |
7759 buf.kind = MENU_BAR_EVENT; | |
7760 buf.frame_or_window = frame; | |
7761 buf.arg = frame; | |
7762 kbd_buffer_store_event (&buf); | |
7763 | |
7764 buf.arg = Qapplication; | |
7765 kbd_buffer_store_event (&buf); | |
7766 | |
7767 #if USE_CARBON_EVENTS | |
7768 switch (GetEventClass (event)) | |
7769 { | |
7753 #ifdef MAC_OSX | 7770 #ifdef MAC_OSX |
7754 void | 7771 case kEventClassService: |
7755 init_service_handler () | 7772 buf.arg = Qservices; |
7756 { | 7773 kbd_buffer_store_event (&buf); |
7757 EventTypeSpec specs[] = {{kEventClassService, kEventServiceGetTypes}, | 7774 switch (GetEventKind (event)) |
7758 {kEventClassService, kEventServiceCopy}, | 7775 { |
7759 {kEventClassService, kEventServicePaste}}; | 7776 case kEventServicePaste: |
7760 InstallApplicationEventHandler (NewEventHandlerUPP (mac_handle_service_event), | 7777 entry = Qpaste; |
7761 3, specs, NULL, NULL); | 7778 break; |
7762 } | 7779 |
7763 | 7780 case kEventServicePerform: |
7764 /* | 7781 { |
7765 MAC_TODO: Check to see if this is called by AEProcessDesc... | 7782 OSErr err; |
7766 */ | 7783 CFStringRef message; |
7767 OSStatus | 7784 |
7768 mac_handle_service_event (EventHandlerCallRef callRef, | 7785 err = GetEventParameter (event, kEventParamServiceMessageName, |
7769 EventRef event, void *data) | 7786 typeCFStringRef, NULL, |
7770 { | 7787 sizeof (CFStringRef), NULL, &message); |
7771 OSStatus err = noErr; | 7788 buf.arg = Qperform; |
7772 switch (GetEventKind (event)) | 7789 kbd_buffer_store_event (&buf); |
7773 { | 7790 if (err == noErr && message) |
7774 case kEventServiceGetTypes: | 7791 entry = intern (SDATA (cfstring_to_lisp (message))); |
7792 else | |
7793 entry = Qnil; | |
7794 } | |
7795 break; | |
7796 | |
7797 default: | |
7798 abort (); | |
7799 } | |
7800 break; | |
7801 #endif /* MAC_OSX */ | |
7802 case kEventClassCommand: | |
7775 { | 7803 { |
7776 CFMutableArrayRef copyTypes, pasteTypes; | 7804 HICommand command; |
7777 CFStringRef type; | 7805 |
7778 Boolean selection = true; | 7806 GetEventParameter(event, kEventParamDirectObject, typeHICommand, |
7779 /* | 7807 NULL, sizeof (HICommand), NULL, &command); |
7780 GetEventParameter(event, kEventParamServicePasteTypes, | 7808 switch (command.commandID) |
7781 typeCFMutableArrayRef, NULL, | 7809 { |
7782 sizeof (CFMutableArrayRef), NULL, &pasteTypes); | 7810 case kHICommandAbout: |
7783 */ | 7811 entry = Qabout; |
7784 GetEventParameter(event, kEventParamServiceCopyTypes, | 7812 break; |
7785 typeCFMutableArrayRef, NULL, | 7813 #ifdef MAC_OSX |
7786 sizeof (CFMutableArrayRef), NULL, ©Types); | 7814 case kHICommandPreferences: |
7787 type = CreateTypeStringWithOSType (kScrapFlavorTypeText); | 7815 entry = Qpreferences; |
7788 if (type) { | 7816 break; |
7789 CFArrayAppendValue (copyTypes, type); | 7817 #endif /* MAC_OSX */ |
7790 //CFArrayAppendValue (pasteTypes, type); | 7818 case kHICommandQuit: |
7791 CFRelease (type); | 7819 entry = Qquit; |
7792 } | 7820 break; |
7821 default: | |
7822 abort (); | |
7823 } | |
7793 } | 7824 } |
7794 case kEventServiceCopy: | 7825 break; |
7795 { | 7826 |
7796 ScrapRef currentScrap, specificScrap; | 7827 default: |
7797 char * buf = ""; | 7828 abort (); |
7798 Size byteCount = 0; | 7829 } |
7799 | 7830 #else /* USE_CARBON_EVENTS */ |
7800 GetCurrentScrap (¤tScrap); | 7831 switch (event) |
7801 | 7832 { |
7802 err = GetScrapFlavorSize (currentScrap, kScrapFlavorTypeText, &byteCount); | 7833 case kHICommandAbout: |
7803 if (err == noErr) | 7834 entry = Qabout; |
7804 { | 7835 break; |
7805 void *buffer = xmalloc (byteCount); | 7836 case kHICommandQuit: |
7806 if (buffer != NULL) | 7837 entry = Qquit; |
7807 { | 7838 break; |
7808 GetEventParameter (event, kEventParamScrapRef, typeScrapRef, NULL, | 7839 default: |
7809 sizeof (ScrapRef), NULL, &specificScrap); | 7840 abort (); |
7810 | 7841 } |
7811 err = GetScrapFlavorData (currentScrap, kScrapFlavorTypeText, | 7842 #endif |
7812 &byteCount, buffer); | 7843 |
7813 if (err == noErr) | 7844 buf.arg = entry; |
7814 PutScrapFlavor (specificScrap, kScrapFlavorTypeText, | 7845 kbd_buffer_store_event (&buf); |
7815 kScrapFlavorMaskNone, byteCount, buffer); | 7846 } |
7816 xfree (buffer); | 7847 |
7817 } | 7848 #if USE_CARBON_EVENTS |
7818 } | 7849 static pascal OSStatus |
7819 err = noErr; | 7850 mac_handle_command_event (next_handler, event, data) |
7820 } | 7851 EventHandlerCallRef next_handler; |
7821 case kEventServicePaste: | 7852 EventRef event; |
7822 { | 7853 void *data; |
7823 /* | 7854 { |
7824 // Get the current location | 7855 HICommand command; |
7825 Size byteCount; | 7856 OSErr result; |
7826 ScrapRef specificScrap; | 7857 |
7827 GetEventParameter(event, kEventParamScrapRef, typeScrapRef, NULL, | 7858 GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, |
7828 sizeof(ScrapRef), NULL, &specificScrap); | 7859 sizeof (HICommand), NULL, &command); |
7829 err = GetScrapFlavorSize(specificScrap, kScrapFlavorTypeText, &byteCount); | 7860 |
7830 if (err == noErr) { | 7861 switch (command.commandID) |
7831 void * buffer = xmalloc(byteCount); | 7862 { |
7832 if (buffer != NULL ) { | 7863 case kHICommandAbout: |
7833 err = GetScrapFlavorData(specificScrap, kScrapFlavorTypeText, | 7864 #ifdef MAC_OSX |
7834 &byteCount, buffer); | 7865 case kHICommandPreferences: |
7835 if (err == noErr) { | 7866 #endif /* MAC_OSX */ |
7836 // Actually place in the buffer | 7867 result = CallNextEventHandler (next_handler, event); |
7837 BLOCK_INPUT; | 7868 if (result != eventNotHandledErr) |
7838 // Get the current "selection" string here | 7869 return result; |
7839 UNBLOCK_INPUT; | 7870 |
7840 } | 7871 mac_store_application_menu_event (event); |
7841 } | 7872 return noErr; |
7842 xfree(buffer); | 7873 |
7843 } | 7874 default: |
7844 */ | 7875 break; |
7845 } | 7876 } |
7846 } | 7877 |
7847 return err; | 7878 return eventNotHandledErr; |
7848 } | 7879 } |
7849 #endif | 7880 |
7881 static OSErr | |
7882 init_command_handler (window) | |
7883 WindowPtr window; | |
7884 { | |
7885 OSErr err = noErr; | |
7886 EventTypeSpec specs[] = {{kEventClassCommand, kEventCommandProcess}}; | |
7887 static EventHandlerUPP handle_command_eventUPP = NULL; | |
7888 | |
7889 if (handle_command_eventUPP == NULL) | |
7890 handle_command_eventUPP = NewEventHandlerUPP (mac_handle_command_event); | |
7891 return InstallApplicationEventHandler (handle_command_eventUPP, | |
7892 GetEventTypeCount (specs), specs, | |
7893 NULL, NULL); | |
7894 } | |
7850 | 7895 |
7851 static pascal OSStatus | 7896 static pascal OSStatus |
7852 mac_handle_window_event (next_handler, event, data) | 7897 mac_handle_window_event (next_handler, event, data) |
7853 EventHandlerCallRef next_handler; | 7898 EventHandlerCallRef next_handler; |
7854 EventRef event; | 7899 EventRef event; |
7868 result = CallNextEventHandler (next_handler, event); | 7913 result = CallNextEventHandler (next_handler, event); |
7869 if (result != eventNotHandledErr) | 7914 if (result != eventNotHandledErr) |
7870 return result; | 7915 return result; |
7871 | 7916 |
7872 do_window_update (wp); | 7917 do_window_update (wp); |
7873 break; | 7918 return noErr; |
7874 | 7919 |
7875 case kEventWindowBoundsChanging: | 7920 case kEventWindowBoundsChanging: |
7876 result = CallNextEventHandler (next_handler, event); | 7921 result = CallNextEventHandler (next_handler, event); |
7877 if (result != eventNotHandledErr) | 7922 if (result != eventNotHandledErr) |
7878 return result; | 7923 return result; |
8247 | 8292 |
8248 | 8293 |
8249 static pascal OSErr | 8294 static pascal OSErr |
8250 do_ae_quit_application (AppleEvent* message, AppleEvent *reply, long refcon) | 8295 do_ae_quit_application (AppleEvent* message, AppleEvent *reply, long refcon) |
8251 { | 8296 { |
8252 /* FixMe: Do we need an unwind-protect or something here? And what | 8297 #if USE_CARBON_EVENTS |
8253 do we do about unsaved files. Currently just forces quit rather | 8298 OSErr err; |
8254 than doing recursive callback to get user input. */ | 8299 EventRef event = NULL; |
8255 | 8300 static const HICommand quit_command = {kEventAttributeNone, kHICommandQuit}; |
8256 terminate_flag = true; | 8301 |
8257 | 8302 err = CreateEvent (NULL, kEventClassCommand, kEventCommandProcess, 0, |
8258 /* Fkill_emacs doesn't return. We have to return. (TI) */ | 8303 kEventAttributeUserEvent, &event); |
8304 if (err == noErr) | |
8305 err = SetEventParameter (event, kEventParamDirectObject, typeHICommand, | |
8306 sizeof (HICommand), &quit_command); | |
8307 if (err == noErr) | |
8308 mac_store_application_menu_event (event); | |
8309 if (event) | |
8310 ReleaseEvent (event); | |
8311 | |
8312 if (err == noErr) | |
8313 return noErr; | |
8314 else | |
8315 return errAEEventNotHandled; | |
8316 #else | |
8317 mac_store_application_menu_event (kHICommandQuit); | |
8318 | |
8259 return noErr; | 8319 return noErr; |
8320 #endif | |
8260 } | 8321 } |
8261 | 8322 |
8262 | 8323 |
8263 #if __profile__ | 8324 #if __profile__ |
8264 void | 8325 void |
8453 interrupt_input_pending = 0; | 8514 interrupt_input_pending = 0; |
8454 BLOCK_INPUT; | 8515 BLOCK_INPUT; |
8455 | 8516 |
8456 /* So people can tell when we have read the available input. */ | 8517 /* So people can tell when we have read the available input. */ |
8457 input_signal_count++; | 8518 input_signal_count++; |
8458 | |
8459 /* Don't poll for events to process (specifically updateEvt) if | |
8460 window update currently already in progress. A call to redisplay | |
8461 (in do_window_update) can be preempted by another call to | |
8462 redisplay, causing blank regions to be left on the screen and the | |
8463 cursor to be left at strange places. */ | |
8464 if (handling_window_update) | |
8465 { | |
8466 UNBLOCK_INPUT; | |
8467 return 0; | |
8468 } | |
8469 | |
8470 if (terminate_flag) | |
8471 Fkill_emacs (make_number (1)); | |
8472 | 8519 |
8473 #if USE_CARBON_EVENTS | 8520 #if USE_CARBON_EVENTS |
8474 toolbox_dispatcher = GetEventDispatcherTarget (); | 8521 toolbox_dispatcher = GetEventDispatcherTarget (); |
8475 | 8522 |
8476 while (!ReceiveNextEvent (0, NULL, kEventDurationNoWait, | 8523 while (!ReceiveNextEvent (0, NULL, kEventDurationNoWait, |
9560 RemoveEventFromQueue (GetMainEventQueue (), event); | 9607 RemoveEventFromQueue (GetMainEventQueue (), event); |
9561 ReleaseEvent (event); | 9608 ReleaseEvent (event); |
9562 kbd_buffer_store_event (&e); | 9609 kbd_buffer_store_event (&e); |
9563 } | 9610 } |
9564 } | 9611 } |
9565 | |
9566 #endif /* MAC_OSX */ | 9612 #endif /* MAC_OSX */ |
9613 | |
9614 static void | |
9615 init_menu_bar () | |
9616 { | |
9617 #ifdef MAC_OSX | |
9618 OSErr err; | |
9619 MenuRef menu; | |
9620 MenuItemIndex menu_index; | |
9621 | |
9622 err = GetIndMenuItemWithCommandID (NULL, kHICommandQuit, 1, | |
9623 &menu, &menu_index); | |
9624 if (err == noErr) | |
9625 SetMenuItemCommandKey (menu, menu_index, false, 0); | |
9626 #if USE_CARBON_EVENTS | |
9627 EnableMenuCommand (NULL, kHICommandPreferences); | |
9628 err = GetIndMenuItemWithCommandID (NULL, kHICommandPreferences, 1, | |
9629 &menu, &menu_index); | |
9630 if (err == noErr) | |
9631 { | |
9632 SetMenuItemCommandKey (menu, menu_index, false, 0); | |
9633 InsertMenuItemTextWithCFString (menu, NULL, | |
9634 0, kMenuItemAttrSeparator, 0); | |
9635 InsertMenuItemTextWithCFString (menu, CFSTR ("About Emacs"), | |
9636 0, 0, kHICommandAbout); | |
9637 } | |
9638 #endif /* USE_CARBON_EVENTS */ | |
9639 #else /* !MAC_OSX */ | |
9640 #if USE_CARBON_EVENTS | |
9641 SetMenuItemCommandID (GetMenuHandle (M_APPLE), I_ABOUT, kHICommandAbout); | |
9642 #endif | |
9643 #endif | |
9644 } | |
9645 | |
9567 | 9646 |
9568 /* Set up use of X before we make the first connection. */ | 9647 /* Set up use of X before we make the first connection. */ |
9569 | 9648 |
9570 extern frame_parm_handler mac_frame_parm_handlers[]; | 9649 extern frame_parm_handler mac_frame_parm_handlers[]; |
9571 | 9650 |
9679 BLOCK_INPUT; | 9758 BLOCK_INPUT; |
9680 | 9759 |
9681 #if TARGET_API_MAC_CARBON | 9760 #if TARGET_API_MAC_CARBON |
9682 init_required_apple_events (); | 9761 init_required_apple_events (); |
9683 | 9762 |
9684 #if USE_CARBON_EVENTS && defined (MAC_OSX) | 9763 #if USE_CARBON_EVENTS |
9764 #ifdef MAC_OSX | |
9685 init_service_handler (); | 9765 init_service_handler (); |
9686 | 9766 |
9687 init_quit_char_handler (); | 9767 init_quit_char_handler (); |
9688 #endif | 9768 #endif /* MAC_OSX */ |
9689 | 9769 |
9690 DisableMenuCommand (NULL, kHICommandQuit); | 9770 init_command_handler (); |
9771 | |
9772 init_menu_bar (); | |
9773 #endif /* USE_CARBON_EVENTS */ | |
9691 | 9774 |
9692 #ifdef MAC_OSX | 9775 #ifdef MAC_OSX |
9693 if (!inhibit_window_system) | 9776 if (!inhibit_window_system) |
9694 MakeMeTheFrontProcess (); | 9777 MakeMeTheFrontProcess (); |
9695 #endif | 9778 #endif |
9711 Fput (Qalt, Qmodifier_value, make_number (alt_modifier)); | 9794 Fput (Qalt, Qmodifier_value, make_number (alt_modifier)); |
9712 Qhyper = intern ("hyper"); | 9795 Qhyper = intern ("hyper"); |
9713 Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier)); | 9796 Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier)); |
9714 Qsuper = intern ("super"); | 9797 Qsuper = intern ("super"); |
9715 Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); | 9798 Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); |
9799 | |
9800 Qapplication = intern ("application"); staticpro (&Qapplication); | |
9801 Qabout = intern ("about"); staticpro (&Qabout); | |
9802 | |
9803 #if USE_CARBON_EVENTS && defined (MAC_OSX) | |
9804 Qpreferences = intern ("preferences"); staticpro (&Qpreferences); | |
9805 Qservices = intern ("services"); staticpro (&Qservices); | |
9806 Qpaste = intern ("paste"); staticpro (&Qpaste); | |
9807 Qperform = intern ("perform"); staticpro (&Qperform); | |
9808 #endif | |
9716 | 9809 |
9717 #ifdef MAC_OSX | 9810 #ifdef MAC_OSX |
9718 Fprovide (intern ("mac-carbon"), Qnil); | 9811 Fprovide (intern ("mac-carbon"), Qnil); |
9719 #endif | 9812 #endif |
9720 | 9813 |