1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     wxApp class 
   4 // Author:      Stefan Csomor 
   8 // Copyright:   (c) Stefan Csomor 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  15 #if defined(__GNUG__) && !defined(__APPLE__) 
  16 #pragma interface "app.h" 
  20 #include "wx/object.h" 
  21 #include "wx/gdicmn.h" 
  24 class WXDLLEXPORT wxFrame
; 
  25 class WXDLLEXPORT wxWindowMac
; 
  26 class WXDLLEXPORT wxApp 
; 
  27 class WXDLLEXPORT wxKeyEvent
; 
  28 class WXDLLEXPORT wxLog
; 
  30 #define wxPRINT_WINDOWS         1 
  31 #define wxPRINT_POSTSCRIPT      2 
  33 WXDLLEXPORT_DATA(extern wxApp
*) wxTheApp
; 
  35 // Force an exit from main loop 
  36 void WXDLLEXPORT 
wxExit(); 
  38 // Yield to other apps/messages 
  39 bool WXDLLEXPORT 
wxYield(); 
  41 // Represents the application. Derive OnInit and declare 
  42 // a new App object to start application 
  43 class WXDLLEXPORT wxApp
: public wxAppBase
 
  45     DECLARE_DYNAMIC_CLASS(wxApp
) 
  50     virtual int MainLoop(); 
  51     virtual void ExitMainLoop(); 
  52     virtual bool Initialized(); 
  53     virtual bool Pending() ; 
  54     virtual void Dispatch() ; 
  58     virtual bool Yield(bool onlyIfNeeded 
= FALSE
); 
  59     virtual void WakeUpIdle(); 
  61     virtual void SetPrintMode(int mode
) { m_printMode 
= mode
; } 
  62     virtual int GetPrintMode() const { return m_printMode
; } 
  65     // setting up all MacOS Specific Event-Handlers etc 
  66     virtual bool OnInitGui(); 
  68     // implementation only 
  69     void OnIdle(wxIdleEvent
& event
); 
  70     void OnEndSession(wxCloseEvent
& event
); 
  71     void OnQueryEndSession(wxCloseEvent
& event
); 
  73     // Windows only, but for compatibility... 
  74     inline void SetAuto3D(bool flag
) { m_auto3D 
= flag
; } 
  75     inline bool GetAuto3D() const { return m_auto3D
; } 
  79     int                   m_printMode
; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT 
  80     bool                  m_auto3D 
;   // Always use 3D controls, except 
  85     virtual bool Initialize(int& argc
, wxChar 
**argv
); 
  86     virtual void CleanUp(); 
  88     bool IsExiting() { return !m_keepGoing 
; } 
  90     WXEVENTHANDLERREF    
MacGetEventHandler() { return m_macEventHandler 
; } 
  91     WXEVENTHANDLERREF    
MacGetCurrentEventHandlerCallRef() { return m_macCurrentEventHandlerCallRef 
; } 
  95     static long           sm_lastMessageTime
; 
  96     static wxWindow
*      s_captureWindow 
; 
  97     static int            s_lastMouseDown 
; // 0 = none , 1 = left , 2 = right 
  98     static WXHRGN         s_macCursorRgn 
; 
  99     static long           s_lastModifiers 
; 
 108     WXEVENTHANDLERREF      m_macEventHandler 
; 
 109     WXEVENTHANDLERCALLREF      m_macCurrentEventHandlerCallRef 
; 
 111     WXEVENTREF            m_macCurrentEvent 
; 
 114     static bool           s_macDefaultEncodingIsPC 
; 
 115     static bool           s_macSupportPCMenuShortcuts 
; 
 116     static long           s_macAboutMenuItemId 
; 
 117     static long           s_macPreferencesMenuItemId 
; 
 118     static long           s_macExitMenuItemId 
; 
 119     static wxString       s_macHelpMenuTitleName 
; 
 121     static bool           s_macHasAppearance 
; 
 122     static long           s_macAppearanceVersion 
; 
 123     static bool           s_macHasNavigation 
; 
 124     static bool           s_macNavigationVersion 
; 
 125     static bool           s_macHasWindowManager 
; 
 126     static long           s_macWindowManagerVersion 
; 
 127     static bool           s_macHasMenuManager 
; 
 128     static long           s_macMenuManagerVersion 
; 
 129     static bool           s_macHasDialogManager 
; 
 130     static long           s_macDialogManagerVersion 
; 
 132     WXHRGN                m_macCursorRgn 
; 
 133     WXHRGN                m_macSleepRgn 
; 
 134     WXHRGN                m_macHelpRgn 
; 
 136     virtual void          MacSuspend( bool convertClipboard 
) ; 
 137     virtual void          MacResume( bool convertClipboard 
) ; 
 138     virtual void          MacConvertPrivateToPublicScrap() ; 
 139     virtual void          MacConvertPublicToPrivateScrap() ; 
 141     void                  MacDoOneEvent() ; 
 142     WXEVENTREF            
MacGetCurrentEvent() { return m_macCurrentEvent 
; } 
 143     void                  MacHandleOneEvent( WXEVENTREF ev 
) ; 
 145     virtual void          MacHandleMenuSelect( int menuid 
, int menuitem 
) ; 
 146     virtual void          MacHandleMouseUpEvent( WXEVENTREF ev 
) ; 
 147     virtual void          MacHandleOSEvent( WXEVENTREF ev 
) ; 
 148     virtual void          MacHandleDiskEvent( WXEVENTREF ev 
) ; 
 149     virtual void          MacHandleActivateEvent( WXEVENTREF ev 
) ; 
 150     virtual void          MacHandleUpdateEvent( WXEVENTREF ev 
) ; 
 151     virtual void          MacHandleMouseDownEvent( WXEVENTREF ev 
) ; 
 153     void                  MacHandleModifierEvents( WXEVENTREF ev 
) ; 
 155     virtual void          MacHandleKeyDownEvent( WXEVENTREF ev 
) ; 
 156     virtual void          MacHandleKeyUpEvent( WXEVENTREF ev 
) ; 
 157     virtual void          MacHandleHighLevelEvent( WXEVENTREF ev 
) ; 
 161     void                  MacHandleMenuCommand( wxUint32 command 
) ;     
 162     bool                    MacSendKeyDownEvent( wxWindow
* focus 
, long keyval 
, long modifiers 
, long when 
, short wherex 
, short wherey 
) ; 
 163     bool                    MacSendKeyUpEvent( wxWindow
* focus 
, long keyval 
, long modifiers 
, long when 
, short wherex 
, short wherey 
) ; 
 165     virtual short         MacHandleAEODoc(const WXAPPLEEVENTREF event 
, WXAPPLEEVENTREF reply
) ; 
 166     virtual short         MacHandleAEPDoc(const WXAPPLEEVENTREF event 
, WXAPPLEEVENTREF reply
) ; 
 167     virtual short         MacHandleAEOApp(const WXAPPLEEVENTREF event 
, WXAPPLEEVENTREF reply
) ; 
 168     virtual short         MacHandleAEQuit(const WXAPPLEEVENTREF event 
, WXAPPLEEVENTREF reply
) ; 
 170     // in response of an open-document apple event 
 171     virtual void         MacOpenFile(const wxString 
&fileName
) ; 
 172     // in response of a print-document apple event 
 173     virtual void         MacPrintFile(const wxString 
&fileName
) ; 
 174     // in response of a open-application apple event 
 175     virtual void         MacNewFile() ; 
 177     DECLARE_EVENT_TABLE() 
 180 class WXDLLEXPORT wxStAppResource
 
 186     // opaque pointer for CFragInitBlock 
 187     static void OpenSharedLibraryResource(const void *) ; 
 188     static void CloseSharedLibraryResource() ; 
 191     short       m_currentRefNum 
;