X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cf73271dd6f442a98e86b559d4a55c37e25b99f..985acf8734d61067c66b4812a9dd9da90d725851:/include/wx/mac/carbon/app.h diff --git a/include/wx/mac/carbon/app.h b/include/wx/mac/carbon/app.h index efc50cbea2..00d42f2ad8 100644 --- a/include/wx/mac/carbon/app.h +++ b/include/wx/mac/carbon/app.h @@ -12,25 +12,20 @@ #ifndef _WX_APP_H_ #define _WX_APP_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "app.h" -#endif - #include "wx/defs.h" #include "wx/object.h" #include "wx/gdicmn.h" #include "wx/event.h" -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindowMac; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 +#ifdef __WXMAC_OSX__ +typedef struct __CFRunLoopSource * CFRunLoopSourceRef; +#endif -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; +class WXDLLIMPEXP_FWD_CORE wxFrame; +class WXDLLIMPEXP_FWD_CORE wxWindowMac; +class WXDLLIMPEXP_FWD_CORE wxApp ; +class WXDLLIMPEXP_FWD_CORE wxKeyEvent; +class WXDLLIMPEXP_FWD_CORE wxLog; // Force an exit from main loop void WXDLLEXPORT wxExit(); @@ -47,13 +42,6 @@ class WXDLLEXPORT wxApp: public wxAppBase wxApp(); virtual ~wxApp() {} - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Pending() ; - virtual bool Dispatch() ; - - virtual void Exit(); - virtual bool Yield(bool onlyIfNeeded = FALSE); virtual void WakeUpIdle(); @@ -69,15 +57,11 @@ class WXDLLEXPORT wxApp: public wxAppBase void OnEndSession(wxCloseEvent& event); void OnQueryEndSession(wxCloseEvent& event); - // Windows only, but for compatibility... - inline void SetAuto3D(bool flag) { m_auto3D = flag; } - inline bool GetAuto3D() const { return m_auto3D; } + void MacDoOneEvent() ; protected: - bool m_showOnInit; int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except - // where overriden + public: static bool sm_isEmbedded; @@ -85,92 +69,50 @@ public: virtual bool Initialize(int& argc, wxChar **argv); virtual void CleanUp(); - bool IsExiting() { return !m_keepGoing ; } -#if TARGET_CARBON // the installed application event handler WXEVENTHANDLERREF MacGetEventHandler() { return m_macEventHandler ; } WXEVENTHANDLERREF MacGetCurrentEventHandlerCallRef() { return m_macCurrentEventHandlerCallRef ; } void MacSetCurrentEvent( WXEVENTREF event , WXEVENTHANDLERCALLREF handler ) { m_macCurrentEvent = event ; m_macCurrentEventHandlerCallRef = handler ; } -#endif + // adding a CFType object to be released only at the end of the current event cycle (increases the + // refcount of the object passed), needed in case we are in the middle of an event concering an object + // we want to delete and cannot do it immediately + void MacAddToAutorelease( void* cfrefobj ); public: - static long sm_lastMessageTime; static wxWindow* s_captureWindow ; - static int s_lastMouseDown ; // 0 = none , 1 = left , 2 = right - static WXHRGN s_macCursorRgn ; static long s_lastModifiers ; int m_nCmdShow; private: - bool m_keepGoing ; - // mac specifics -#if TARGET_CARBON + WXEVENTHANDLERREF m_macEventHandler ; WXEVENTHANDLERCALLREF m_macCurrentEventHandlerCallRef ; -#endif WXEVENTREF m_macCurrentEvent ; +#ifdef __WXMAC_OSX__ + CFRunLoopSourceRef m_macEventPosted ; +#endif public: - static bool s_macSupportPCMenuShortcuts ; static long s_macAboutMenuItemId ; static long s_macPreferencesMenuItemId ; static long s_macExitMenuItemId ; static wxString s_macHelpMenuTitleName ; - static bool s_macHasAppearance ; - static long s_macAppearanceVersion ; - static bool s_macHasNavigation ; - static bool s_macNavigationVersion ; - static bool s_macHasWindowManager ; - static long s_macWindowManagerVersion ; - static bool s_macHasMenuManager ; - static long s_macMenuManagerVersion ; - static bool s_macHasDialogManager ; - static long s_macDialogManagerVersion ; - - WXHRGN m_macCursorRgn ; - WXHRGN m_macSleepRgn ; - WXHRGN m_macHelpRgn ; - - virtual void MacSuspend( bool convertClipboard ) ; - virtual void MacResume( bool convertClipboard ) ; - virtual void MacConvertPrivateToPublicScrap() ; - virtual void MacConvertPublicToPrivateScrap() ; - - void MacDoOneEvent() ; WXEVENTREF MacGetCurrentEvent() { return m_macCurrentEvent ; } void MacHandleOneEvent( WXEVENTREF ev ) ; // For embedded use. By default does nothing. virtual void MacHandleUnhandledEvent( WXEVENTREF ev ); -#if !TARGET_CARBON - virtual void MacHandleMenuSelect( int menuid , int menuitem ) ; - virtual void MacHandleMouseUpEvent( WXEVENTREF ev ) ; - virtual void MacHandleOSEvent( WXEVENTREF ev ) ; - virtual void MacHandleDiskEvent( WXEVENTREF ev ) ; - virtual void MacHandleActivateEvent( WXEVENTREF ev ) ; - virtual void MacHandleUpdateEvent( WXEVENTREF ev ) ; - virtual void MacHandleMouseDownEvent( WXEVENTREF ev ) ; - - void MacHandleModifierEvents( WXEVENTREF ev ) ; - - virtual void MacHandleKeyDownEvent( WXEVENTREF ev ) ; - virtual void MacHandleKeyUpEvent( WXEVENTREF ev ) ; - virtual void MacHandleHighLevelEvent( WXEVENTREF ev ) ; - -#else - virtual void MacHandleMouseMovedEvent( wxInt32 x , wxInt32 y ,wxUint32 modifiers , long timestamp ) ; -#endif - - void MacHandleMenuCommand( wxUint32 command ) ; - bool MacSendKeyDownEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey ) ; - bool MacSendKeyUpEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey ) ; - + bool MacSendKeyDownEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ; + bool MacSendKeyUpEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ; + bool MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ; + void MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ; virtual short MacHandleAEODoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ; + virtual short MacHandleAEGURL(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ; virtual short MacHandleAEPDoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ; virtual short MacHandleAEOApp(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ; virtual short MacHandleAEQuit(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ; @@ -178,6 +120,8 @@ public: // in response of an open-document apple event virtual void MacOpenFile(const wxString &fileName) ; + // in response of a get-url apple event + virtual void MacOpenURL(const wxString &url) ; // in response of a print-document apple event virtual void MacPrintFile(const wxString &fileName) ; // in response of a open-application apple event @@ -188,20 +132,6 @@ public: DECLARE_EVENT_TABLE() }; -class WXDLLEXPORT wxStAppResource -{ -public: - wxStAppResource() ; - ~wxStAppResource() ; - - // opaque pointer for CFragInitBlock - static void OpenSharedLibraryResource(const void *) ; - static void CloseSharedLibraryResource() ; - -private: - short m_currentRefNum ; -} ; - #endif // _WX_APP_H_