/////////////////////////////////////////////////////////////////////////////
-// 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
#include "wx/icon.h"
#endif
+#include "wx/build.h"
+
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxAppBase : public wxEvtHandler
{
+ DECLARE_NO_COPY_CLASS(wxAppBase)
+
public:
wxAppBase();
virtual ~wxAppBase();
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!
// -------------------------------------------------------------
// 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; }