// 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
// either should be configurable by the user (then he can change the
// default behaviour simply by overriding CreateTraits() and returning his
// own traits object) or which is GUI/console dependent as then wxAppTraits
- // allows us to abstract the differences behind the common fa�de
+ // 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
// --------------------------
// (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
// if it's unknown
virtual wxLayoutDirection GetLayoutDirection() const;
+ // Change the theme used by the application, return true on success.
+ virtual bool SetNativeTheme(const wxString& WXUNUSED(theme)) { return false; }
+
// command line parsing (GUI-specific)
// ------------------------------------------------------------------------
// does any of our windows have focus?
bool m_isActive;
+ bool m_isInsideYield;
DECLARE_NO_COPY_CLASS(wxAppBase)
};
#elif defined(__WXX11__)
#include "wx/x11/app.h"
#elif defined(__WXMAC__)
- #include "wx/mac/app.h"
+ #include "wx/osx/app.h"
#elif defined(__WXCOCOA__)
#include "wx/cocoa/app.h"
#elif defined(__WXPM__)
//
// 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();
+// avoid redeclaring this function here if it had been already declated by
+// wx/utils.h, this results in warnings from g++ with -Wredundant-decls
+#ifndef wx_YIELD_DECLARED
+#define wx_YIELD_DECLARED
+
// Yield to other apps/messages
extern bool WXDLLIMPEXP_BASE wxYield();
+#endif // wx_YIELD_DECLARED
+
// Yield to other apps/messages
extern void WXDLLIMPEXP_BASE wxWakeUpIdle();
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