X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e04ef47f695b057dfe4c907e63497ae7ff05572..82df67d960355e99a66b1db473b9d6236bf2fbb9:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index 226be5346f..fc770fe7f5 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(); @@ -311,16 +315,36 @@ 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! // ------------------------------------------------------------- @@ -542,7 +566,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; }