]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/app.h
Adding SetFocus to wxABI_VERSION.
[wxWidgets.git] / include / wx / mac / carbon / app.h
index efc50cbea21ff37ab39ca3be76f3a670055eb812..492a71300478060951ca0c10ccd4df30caf7e619 100644 (file)
 #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"
 
+#ifdef __WXMAC_OSX__
+typedef struct __CFRunLoopSource * CFRunLoopSourceRef;
+#endif
+
 class WXDLLEXPORT wxFrame;
 class WXDLLEXPORT wxWindowMac;
 class WXDLLEXPORT wxApp ;
 class WXDLLEXPORT wxKeyEvent;
 class WXDLLEXPORT wxLog;
 
-#define wxPRINT_WINDOWS         1
-#define wxPRINT_POSTSCRIPT      2
-
-WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
-
 // 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,91 +69,48 @@ 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         MacHandleAEPDoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
     virtual short         MacHandleAEOApp(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
@@ -188,20 +129,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_