wxTheApp can't be assigned to, anyhow, so make ms_appInstance private and provide Get/SetInstance() methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
cf01e37a49
commit
a80e5f9e5b
@ -270,15 +270,18 @@ public:
|
||||
static wxAppInitializerFunction GetInitializerFunction()
|
||||
{ return ms_appInitFn; }
|
||||
|
||||
// accessors for ms_appInstance field (external code might wish to modify
|
||||
// it, this is why we provide a setter here as well, but you should really
|
||||
// know what you're doing if you call it), wxTheApp is usually used instead
|
||||
// of GetInstance()
|
||||
static wxAppConsole *GetInstance() { return ms_appInstance; }
|
||||
static void SetInstance(wxAppConsole *app) { ms_appInstance = app; }
|
||||
|
||||
|
||||
// command line arguments (public for backwards compatibility)
|
||||
int argc;
|
||||
wxChar **argv;
|
||||
|
||||
// the one and only global application object (must be public for backwards
|
||||
// compatibility as assigning to wxTheApp should work)
|
||||
static wxAppConsole *ms_appInstance;
|
||||
|
||||
protected:
|
||||
// the function which creates the traits object when GetTraits() needs it
|
||||
// for the first time
|
||||
@ -288,6 +291,9 @@ protected:
|
||||
// function used for dynamic wxApp creation
|
||||
static wxAppInitializerFunction ms_appInitFn;
|
||||
|
||||
// the one and only global application object
|
||||
static wxAppConsole *ms_appInstance;
|
||||
|
||||
|
||||
// application info (must be set from the user code)
|
||||
wxString m_vendorName, // vendor name (ACME Inc)
|
||||
@ -534,7 +540,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 ((wxApp *)wxApp::ms_appInstance)
|
||||
#define wxTheApp ((wxApp *)wxApp::GetInstance())
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// global functions
|
||||
|
@ -81,7 +81,7 @@ public:
|
||||
{
|
||||
// the pointer is going to be deleted in the base class dtor, don't
|
||||
// leave the dangling pointer!
|
||||
wxTheApp = NULL;
|
||||
wxApp::SetInstance(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ public:
|
||||
{
|
||||
reset(ptr);
|
||||
|
||||
wxTheApp = ptr;
|
||||
wxApp::SetInstance(ptr);
|
||||
}
|
||||
|
||||
DECLARE_NO_COPY_CLASS(wxAppPtr)
|
||||
@ -356,7 +356,7 @@ void wxEntryCleanup()
|
||||
wxTheApp->CleanUp();
|
||||
|
||||
delete wxTheApp;
|
||||
wxTheApp = NULL;
|
||||
wxApp::SetInstance(NULL);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user