+ // override this function to create default log target of arbitrary
+ // user-defined class (default implementation creates a wxLogGui
+ // object) -- this log object is used by default by all wxLogXXX()
+ // functions.
+ wxDEPRECATED( virtual wxLog *CreateLogTarget() );
+#endif // wxUSE_LOG
+
+ // similar to CreateLogTarget() but for the global wxMessageOutput
+ // object
+ wxDEPRECATED( virtual wxMessageOutput *CreateMessageOutput() );
+
+#endif // WXWIN_COMPATIBILITY_2_4
+
+
+ // event processing functions
+ // --------------------------
+
+ // 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);
+
+#if wxUSE_EXCEPTIONS
+ // call the specified handler on the given object with the given event
+ //
+ // this method only exists to allow catching the exceptions thrown by any
+ // event handler, it would lead to an extra (useless) virtual function call
+ // if the exceptions were not used, so it doesn't even exist in that case
+ virtual void HandleEvent(wxEvtHandler *handler,
+ wxEventFunction func,
+ wxEvent& event) const;
+#endif // wxUSE_EXCEPTIONS
+
+ // process all events in the wxPendingEvents list -- it is necessary to
+ // call this function to process posted events. This happens during each
+ // event loop iteration in GUI mode but if there is no main loop, it may be
+ // also called directly.
+ virtual void ProcessPendingEvents();
+
+ // doesn't do anything in this class, just a hook for GUI wxApp
+ virtual bool Yield(bool WXUNUSED(onlyIfNeeded) = false) { return true; }
+
+ // make sure that idle events are sent again
+ virtual void WakeUpIdle() { }
+
+ // this is just a convenience: by providing its implementation here we
+ // avoid #ifdefs in the code using it
+ static bool IsMainLoopRunning() { return false; }
+
+
+ // 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 occurred, the text of the
+ // assert itself and the user-specified message
+#ifdef __WXDEBUG__
+ 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 char *optionsSignature,
+ const char *componentName);
+#if WXWIN_COMPATIBILITY_2_4
+ wxDEPRECATED( static bool CheckBuildOptions(const wxBuildOptions& buildOptions) );