X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6ed897586a72ef2d7d7c8393bf8f75220d7bc160..673e6120795e4e1f3a49157581925a5ee14bf5a9:/src/mgl/app.cpp diff --git a/src/mgl/app.cpp b/src/mgl/app.cpp index a542b5c24f..e81251b5e7 100644 --- a/src/mgl/app.cpp +++ b/src/mgl/app.cpp @@ -3,7 +3,7 @@ // Author: Vaclav Slavik // based on GTK and MSW implementations // Id: $Id$ -// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) +// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -27,7 +27,6 @@ #include "wx/dialog.h" #include "wx/log.h" #include "wx/intl.h" - #include "wx/resource.h" #endif #include "wx/app.h" @@ -91,7 +90,7 @@ bool wxApp::Yield(bool onlyIfNeeded) while (wxEventLoop::GetActive()->Pending()) wxEventLoop::GetActive()->Dispatch(); } - + /* it's necessary to call ProcessIdle() to update the frames sizes which might have been changed (it also will update other things set from OnUpdateUI() which is a nice (and desired) side effect) */ @@ -116,7 +115,7 @@ void wxWakeUpIdle() wxMutexGuiEnter(); #endif - while (wxTheApp->ProcessIdle()) {} + while (wxTheApp->ProcessIdle()) {} #if wxUSE_THREADS if (!wxThread::IsMain()) @@ -139,12 +138,16 @@ class wxRootWindow : public wxWindow ~wxRootWindow() { // we don't want to delete MGL_WM's rootWnd - m_wnd = NULL; + m_wnd = NULL; } - virtual bool AcceptsFocus() { return FALSE; } + virtual bool AcceptsFocus() const { return FALSE; } + + DECLARE_DYNAMIC_CLASS(wxRootWindow) }; +IMPLEMENT_DYNAMIC_CLASS(wxRootWindow, wxWindow) + static wxRootWindow *gs_rootWindow = NULL; //----------------------------------------------------------------------------- @@ -155,18 +158,18 @@ static bool wxCreateMGL_WM(const wxDisplayModeInfo& displayMode) { int mode; int refresh = MGL_DEFAULT_REFRESH; - + #if wxUSE_SYSTEM_OPTIONS if ( wxSystemOptions::HasOption(wxT("mgl.screen-refresh")) ) refresh = wxSystemOptions::GetOptionInt(wxT("mgl.screen-refresh")); #endif - - mode = MGL_findMode(displayMode.GetWidth(), - displayMode.GetHeight(), + + mode = MGL_findMode(displayMode.GetWidth(), + displayMode.GetHeight(), displayMode.GetDepth()); if ( mode == -1 ) { - wxLogError(_("Mode %ix%i-%i not available."), + wxLogError(_("Mode %ix%i-%i not available."), displayMode.GetWidth(), displayMode.GetHeight(), displayMode.GetDepth()); @@ -179,7 +182,7 @@ static bool wxCreateMGL_WM(const wxDisplayModeInfo& displayMode) g_displayDC = NULL; return FALSE; } - + g_winMng = MGL_wmCreate(g_displayDC->getDC()); if (!g_winMng) return FALSE; @@ -225,7 +228,7 @@ wxDisplayModeInfo wxGetDefaultDisplayMode() wxString mode; unsigned w, h, bpp; - if ( !wxGetEnv(wxT("WXMODE"), &mode) || + if ( !wxGetEnv(wxT("WXMODE"), &mode) || (wxSscanf(mode.c_str(), _T("%ux%u-%u"), &w, &h, &bpp) != 3) ) { w = 640, h = 480, bpp = 16; @@ -265,8 +268,9 @@ bool wxApp::OnInitGui() #ifdef __WXDEBUG__ // MGL redirects stdout and stderr to physical console, so lets redirect // it to file. Do it only when WXDEBUG environment variable is set - if ( wxGetEnv(wxT("WXDEBUG"), NULL) ) - freopen("output.err", "wt", stderr); + wxString redirect; + if ( wxGetEnv(wxT("WXSTDERR"), &redirect) ) + freopen(redirect.mb_str(), "wt", stderr); #endif wxLog *oldLog = wxLog::SetActiveTarget(new wxLogGui); @@ -405,9 +409,10 @@ void wxApp::DeletePendingObjects() bool wxApp::Initialize() { if ( MGL_init(".", NULL) == 0 ) + { + wxLogError(_("Cannot initialize SciTech MGL!")); return FALSE; - - wxBuffer = new wxChar[BUFSIZ + 512]; + } wxClassInfo::InitializeClasses(); @@ -424,28 +429,19 @@ bool wxApp::Initialize() wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); wxTheColourDatabase->Initialize(); - + // Can't do this in wxModule, because fonts are needed by stock lists wxTheFontsManager = new wxFontsManager; wxInitializeStockLists(); wxInitializeStockObjects(); -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - wxModule::RegisterModules(); if (!wxModule::InitializeModules()) return FALSE; return TRUE; } -wxIcon wxApp::GetStdIcon(int which) const -{ - return wxTheme::Get()->GetRenderer()->GetStdIcon(which); -} - void wxApp::CleanUp() { #if wxUSE_LOG @@ -461,10 +457,6 @@ void wxApp::CleanUp() wxModule::CleanUpModules(); -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - if (wxTheColourDatabase) delete wxTheColourDatabase; @@ -492,8 +484,6 @@ void wxApp::CleanUp() delete wxTheFontsManager; wxTheFontsManager = (wxFontsManager*) NULL; - delete[] wxBuffer; - // check for memory leaks #if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT if (wxDebugContext::CountObjectsLeft(TRUE) > 0)