X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/26c093da541a103d66b3120b9a85a799d535d10e..b2eabfe86603fe932b61c513577a8e1b7d0fb815:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index f19a633abe..c3b87dd018 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -31,7 +31,7 @@ class WXDLLIMPEXP_FWD_BASE wxLog; class WXDLLIMPEXP_FWD_BASE wxMessageOutput; #if wxUSE_GUI - class WXDLLIMPEXP_FWD_CORE wxVideoMode; + struct WXDLLIMPEXP_FWD_CORE wxVideoMode; #endif // ---------------------------------------------------------------------------- @@ -131,8 +131,10 @@ public: // 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 @@ -198,6 +200,13 @@ public: // 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 // -------------------------- @@ -235,8 +244,8 @@ public: // (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(); @@ -445,6 +454,10 @@ public: // 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 @@ -567,6 +580,7 @@ protected: // does any of our windows have focus? bool m_isActive; + bool m_isInsideYield; DECLARE_NO_COPY_CLASS(wxAppBase) }; @@ -596,7 +610,7 @@ protected: #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__) @@ -624,7 +638,7 @@ protected: // // 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::GetInstance()) // ---------------------------------------------------------------------------- // global functions @@ -701,7 +715,7 @@ public: wxAppInitializer \ wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \ DECLARE_APP(appname) \ - appname& wxGetApp() { return *wx_static_cast(appname*, wxApp::GetInstance()); } + appname& wxGetApp() { return *static_cast(wxApp::GetInstance()); } // Same as IMPLEMENT_APP() normally but doesn't include themes support in // wxUniversal builds