]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
corrected warnings when compiling with -Wall -W
[wxWidgets.git] / include / wx / app.h
index 226be5346fe3ef330bec37e4be7d84914a4fdc3c..489194ab3bd1f0d9708dce2519a27574f6e1c444 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
@@ -51,6 +51,8 @@ class WXDLLEXPORT wxCmdLineParser;
     #include "wx/icon.h"
 #endif
 
+#include "wx/build.h"
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -90,6 +92,8 @@ private:
 
 class WXDLLEXPORT wxAppBase : public wxEvtHandler
 {
+    DECLARE_NO_COPY_CLASS(wxAppBase)
+        
 public:
     wxAppBase();
     virtual ~wxAppBase();
@@ -321,6 +325,11 @@ 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!
     // -------------------------------------------------------------
 
@@ -539,9 +548,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; }