]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
More of the same.
[wxWidgets.git] / include / wx / app.h
index 4e562c5968d153e35f84fc1a6e4262b78fd0ef9c..801c549d6483df0d0b7590bc0e30cba1085da793 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
 // ----------------------------------------------------------------------------
@@ -88,6 +94,7 @@ class WXDLLEXPORT wxAppBase : public wxEvtHandler
 {
 public:
     wxAppBase();
+    virtual ~wxAppBase();
 
     // the virtual functions which may/must be overridden in the derived class
     // -----------------------------------------------------------------------
@@ -274,10 +281,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).
@@ -286,10 +296,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; }
@@ -317,6 +323,23 @@ public:
     virtual void OnAssert(const wxChar *file, int line, 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
     // -------------------------------
 
@@ -326,11 +349,6 @@ public:
     static wxAppInitializerFunction GetInitializerFunction()
         { return m_appInitFn; }
 
-    // needed to avoid link errors
-#ifdef __DARWIN__
-    virtual ~wxAppBase() { }
-#endif
-
     // process all events in the wxPendingEvents list
     virtual void ProcessPendingEvents();
 
@@ -347,9 +365,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;
@@ -379,6 +394,8 @@ protected:
         #include "wx/mgl/app.h"
     #elif defined(__WXGTK__)
         #include "wx/gtk/app.h"
+    #elif defined(__WXX11__)
+        #include "wx/x11/app.h"
     #elif defined(__WXMAC__)
         #include "wx/mac/app.h"
     #elif defined(__WXPM__)
@@ -529,9 +546,19 @@ public:
     #define IMPLEMENT_WX_THEME_SUPPORT
 #endif
 
+// define the build options object for the application which is compared to the
+// one used for building the library on the program startup
+#define WX_DEFINE_BUILDOPTS()                            \
+    const wxBuildOptions& wxGetBuildOptions()            \
+    {                                                    \
+        static wxBuildOptions s_buildOptions;            \
+        return s_buildOptions;                           \
+    }
+
 // 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)                   \
+    WX_DEFINE_BUILDOPTS()                                \
     wxApp *wxCreateApp() { return new appname; }         \
     wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
     appname& wxGetApp() { return *(appname *)wxTheApp; }