// so the app name could be myapp while display name could be "My App"
wxString GetAppDisplayName() const
{
- return m_appDisplayName.empty() ? GetAppName() : m_appDisplayName;
+ return m_appDisplayName.empty() ? GetAppName().Capitalize()
+ : m_appDisplayName;
}
+
void SetAppDisplayName(const wxString& name) { m_appDisplayName = name; }
// set/get the app class name
// allows us to abstract the differences behind the common facade
wxAppTraits *GetTraits();
+ // this function provides safer access to traits object than
+ // wxTheApp->GetTraits() during startup or termination when the global
+ // application object itself may be unavailable
+ //
+ // of course, it still returns NULL in this case and the caller must check
+ // for it
+ static wxAppTraits *GetTraitsIfExists();
// event processing functions
// --------------------------
virtual int FilterEvent(wxEvent& event);
#if wxUSE_EXCEPTIONS
+ // execute the functor to handle the given event
+ //
+ // this is a generalization of HandleEvent() below and the base class
+ // implementation of CallEventHandler() still calls HandleEvent() for
+ // compatibility for functors which are just wxEventFunctions (i.e. methods
+ // of wxEvtHandler)
+ virtual void CallEventHandler(wxEvtHandler *handler,
+ wxEventFunctor& functor,
+ wxEvent& event) const;
+
// call the specified handler on the given object with the given event
//
// this method only exists to allow catching the exceptions thrown by any
// (already) be dispatched
static bool IsMainLoopRunning();
- // process all events in the wxPendingEvents list -- it is necessary to
- // call this function to process posted events. This happens during each
+ // process all events in the wxHandlersWithPendingEvents 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();
// with _extreme_ care or, better, don't use at all!
virtual bool Yield(bool onlyIfNeeded = false) = 0;
+ // returns true if the main thread is inside a Yield() call
+ bool IsYielding() const
+ { return m_isInsideYield; }
+
// this virtual function is called in the GUI mode when the application
// becomes idle and normally just sends wxIdleEvent to all interested
// parties
// does any of our windows have focus?
bool m_isActive;
+ bool m_isInsideYield;
DECLARE_NO_COPY_CLASS(wxAppBase)
};
//
// the cast is safe as in GUI build we only use wxApp, not wxAppConsole, and in
// console mode it does nothing at all
-#define wxTheApp wx_static_cast(wxApp*, wxApp::GetInstance())
+#define wxTheApp static_cast<wxApp*>(wxApp::GetInstance())
// ----------------------------------------------------------------------------
// global functions
// ------------------------------------------------------
// Force an exit from main loop
-extern void WXDLLIMPEXP_BASE wxExit();
+WXDLLIMPEXP_BASE void wxExit();
// avoid redeclaring this function here if it had been already declated by
// wx/utils.h, this results in warnings from g++ with -Wredundant-decls
#define wx_YIELD_DECLARED
// Yield to other apps/messages
-extern bool WXDLLIMPEXP_BASE wxYield();
+WXDLLIMPEXP_CORE bool wxYield();
#endif // wx_YIELD_DECLARED
// Yield to other apps/messages
-extern void WXDLLIMPEXP_BASE wxWakeUpIdle();
+WXDLLIMPEXP_BASE void wxWakeUpIdle();
// ----------------------------------------------------------------------------
// macros for dynamic creation of the application object
wxAppInitializer \
wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
DECLARE_APP(appname) \
- appname& wxGetApp() { return *wx_static_cast(appname*, wxApp::GetInstance()); }
+ appname& wxGetApp() { return *static_cast<appname*>(wxApp::GetInstance()); }
// Same as IMPLEMENT_APP() normally but doesn't include themes support in
// wxUniversal builds