]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
Renamed internal GetClientWindow to GetClientAreaWindow so
[wxWidgets.git] / include / wx / app.h
index 88258c10fe8e8e52a33af3cb761be468413608a9..8324651d6017f190a53491ed532e98b24ee68950 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        app.h
+// Name:        wx/app.h
 // Purpose:     wxAppBase class and macros used for declaration of wxApp
 //              derived class in the user code
 // Author:      Julian Smart
@@ -47,6 +47,12 @@ class WXDLLEXPORT wxCmdLineParser;
     #include "wx/log.h"
 #endif
 
+#if WXWIN_COMPATIBILITY_2_2
+    #include "wx/icon.h"
+#endif
+
+#include "wx/build.h"
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -86,6 +92,8 @@ private:
 
 class WXDLLEXPORT wxAppBase : public wxEvtHandler
 {
+    DECLARE_NO_COPY_CLASS(wxAppBase)
+        
 public:
     wxAppBase();
     virtual ~wxAppBase();
@@ -100,6 +108,10 @@ public:
         // Override: always in GUI application, rarely in console ones.
     virtual bool OnInit();
 
+        // initializes wxMessageOutput; other responsibilities
+        // may be added later
+    virtual void DoInit();
+
 #if wxUSE_GUI
         // a platform-dependent version of OnInit(): the code here is likely to
         // depend on the toolkit. default version does nothing.
@@ -139,6 +151,8 @@ public:
         // Override: rarely.
     virtual void OnFatalException() { }
 
+    virtual bool ProcessIdle() = 0;
+
     // the worker functions - usually not used directly by the user code
     // -----------------------------------------------------------------
 
@@ -275,10 +289,13 @@ public:
 #endif // wxUSE_LOG
 
 #if wxUSE_GUI
+
+  #if WXWIN_COMPATIBILITY_2_2
         // get the standard icon used by wxWin dialogs - this allows the user
         // to customize the standard dialogs. The 'which' parameter is one of
         // wxICON_XXX values
-    virtual wxIcon GetStdIcon(int which) const = 0;
+    virtual wxIcon GetStdIcon(int WXUNUSED(which)) const { return wxNullIcon; }
+  #endif
 
         // Get display mode that is used use. This is only used in framebuffer wxWin ports
         // (such as wxMGL).
@@ -287,10 +304,6 @@ public:
         // (such as wxMGL). This method should be called from wxApp:OnInitGui
     virtual bool SetDisplayMode(const wxDisplayModeInfo& WXUNUSED(info)) { return TRUE; }
 
-        // VZ: what does this do exactly?
-    void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
-    bool GetWantDebugOutput() const { return m_wantDebugOutput; }
-
         // set use of best visual flag (see below)
     void SetUseBestVisual( bool flag ) { m_useBestVisual = flag; }
     bool GetUseBestVisual() const { return m_useBestVisual; }
@@ -308,16 +321,48 @@ public:
     virtual void SetActive(bool isActive, wxWindow *lastFocus);
 #endif // wxUSE_GUI
 
+    // this method allows to filter all the events processed by the program, so
+    // you should try to return quickly from it to avoid slowing down the
+    // program to the crawl
+    //
+    // return value should be -1 to continue with the normal event processing,
+    // or TRUE or FALSE to stop further processing and pretend that the event
+    // had been already processed or won't be processed at all, respectively
+    virtual int FilterEvent(wxEvent& event);
+
     // debugging support
     // -----------------
 
     // this function is called when an assert failure occurs, the base class
     // version does the normal processing (i.e. shows the usual assert failure
     // dialog box)
+    //
+    // the arguments are the place where the assert occured, the text of the
+    // assert itself and the user-specified message
 #ifdef __WXDEBUG__
-    virtual void OnAssert(const wxChar *file, int line, const wxChar *msg);
+    virtual void OnAssert(const wxChar *file,
+                          int line,
+                          const wxChar *cond,
+                          const wxChar *msg);
 #endif // __WXDEBUG__
 
+    // check that the wxBuildOptions object (constructed in the application
+    // itself, usually the one from IMPLEMENT_APP() macro) matches the build
+    // options of the library and abort if it doesn't
+    static bool CheckBuildOptions(const wxBuildOptions& buildOptions);
+
+    // deprecated functions, please updae your code to not use them!
+    // -------------------------------------------------------------
+
+#if WXWIN_COMPATIBILITY_2_2
+    // used by obsolete wxDebugMsg only
+    void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
+    bool GetWantDebugOutput() const { return m_wantDebugOutput; }
+
+    // TRUE if the application wants to get debug output
+    bool m_wantDebugOutput;
+#endif // WXWIN_COMPATIBILITY_2_2
+
     // implementation only from now on
     // -------------------------------
 
@@ -343,9 +388,6 @@ protected:
              m_appName,         // app name
              m_className;       // class name
 
-    // TRUE if the application wants to get debug output
-    bool m_wantDebugOutput;
-
 #if wxUSE_GUI
     // the main top level window - may be NULL
     wxWindow *m_topWindow;
@@ -530,7 +572,11 @@ public:
 // Use this macro if you want to define your own main() or WinMain() function
 // and call wxEntry() from there.
 #define IMPLEMENT_APP_NO_MAIN(appname)                   \
-    wxApp *wxCreateApp() { return new appname; }         \
+    wxApp *wxCreateApp()                                 \
+    {                                                    \
+        wxApp::CheckBuildOptions(wxBuildOptions());      \
+        return new appname;                              \
+    }                                                    \
     wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
     appname& wxGetApp() { return *(appname *)wxTheApp; }