git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22462
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
static wxAppInitializerFunction GetInitializerFunction()
{ return ms_appInitFn; }
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;
// 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
protected:
// the function which creates the traits object when GetTraits() needs it
// for the first time
// function used for dynamic wxApp creation
static wxAppInitializerFunction ms_appInitFn;
// 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)
// application info (must be set from the user code)
wxString m_vendorName, // vendor name (ACME Inc)
//
// the cast is safe as in GUI build we only use wxApp, not wxAppConsole, and in
// console mode it does nothing at all
//
// 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
// ----------------------------------------------------------------------------
// global functions
{
// the pointer is going to be deleted in the base class dtor, don't
// leave the dangling pointer!
{
// the pointer is going to be deleted in the base class dtor, don't
// leave the dangling pointer!
+ wxApp::SetInstance(NULL);
+ wxApp::SetInstance(ptr);
}
DECLARE_NO_COPY_CLASS(wxAppPtr)
}
DECLARE_NO_COPY_CLASS(wxAppPtr)
wxTheApp->CleanUp();
delete wxTheApp;
wxTheApp->CleanUp();
delete wxTheApp;
+ wxApp::SetInstance(NULL);