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()
|
static wxAppInitializerFunction GetInitializerFunction()
|
||||||
{ return ms_appInitFn; }
|
{ 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)
|
// command line arguments (public for backwards compatibility)
|
||||||
int argc;
|
int argc;
|
||||||
wxChar **argv;
|
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:
|
protected:
|
||||||
// the function which creates the traits object when GetTraits() needs it
|
// the function which creates the traits object when GetTraits() needs it
|
||||||
// for the first time
|
// for the first time
|
||||||
@ -288,6 +291,9 @@ protected:
|
|||||||
// function used for dynamic wxApp creation
|
// function used for dynamic wxApp creation
|
||||||
static wxAppInitializerFunction ms_appInitFn;
|
static wxAppInitializerFunction ms_appInitFn;
|
||||||
|
|
||||||
|
// the one and only global application object
|
||||||
|
static wxAppConsole *ms_appInstance;
|
||||||
|
|
||||||
|
|
||||||
// application info (must be set from the user code)
|
// application info (must be set from the user code)
|
||||||
wxString m_vendorName, // vendor name (ACME Inc)
|
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
|
// the cast is safe as in GUI build we only use wxApp, not wxAppConsole, and in
|
||||||
// console mode it does nothing at all
|
// console mode it does nothing at all
|
||||||
#define wxTheApp ((wxApp *)wxApp::ms_appInstance)
|
#define wxTheApp ((wxApp *)wxApp::GetInstance())
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// global functions
|
// global functions
|
||||||
|
@ -81,7 +81,7 @@ public:
|
|||||||
{
|
{
|
||||||
// the pointer is going to be deleted in the base class dtor, don't
|
// the pointer is going to be deleted in the base class dtor, don't
|
||||||
// leave the dangling pointer!
|
// leave the dangling pointer!
|
||||||
wxTheApp = NULL;
|
wxApp::SetInstance(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ public:
|
|||||||
{
|
{
|
||||||
reset(ptr);
|
reset(ptr);
|
||||||
|
|
||||||
wxTheApp = ptr;
|
wxApp::SetInstance(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(wxAppPtr)
|
DECLARE_NO_COPY_CLASS(wxAppPtr)
|
||||||
@ -356,7 +356,7 @@ void wxEntryCleanup()
|
|||||||
wxTheApp->CleanUp();
|
wxTheApp->CleanUp();
|
||||||
|
|
||||||
delete wxTheApp;
|
delete wxTheApp;
|
||||||
wxTheApp = NULL;
|
wxApp::SetInstance(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user