X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e04ef47f695b057dfe4c907e63497ae7ff05572..ba161d7e9579de457aedcf24c75fd24a2c024534:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index 226be5346f..489194ab3b 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -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; }