X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba2fcb0711039f5f760994e11ab98e548dc984d9..66010e8d0d04c180c51203f9ed7e2c26c78eff25:/src/motif/app.cpp?ds=sidebyside diff --git a/src/motif/app.cpp b/src/motif/app.cpp index b41e0ebcd8..4fd539d71c 100644 --- a/src/motif/app.cpp +++ b/src/motif/app.cpp @@ -37,15 +37,12 @@ #include "wx/intl.h" #include "wx/evtloop.h" #include "wx/hash.h" +#include "wx/hashmap.h" #if wxUSE_THREADS #include "wx/thread.h" #endif -#if wxUSE_WX_RESOURCES - #include "wx/resource.h" -#endif - #ifdef __VMS__ #pragma message disable nosimpint #endif @@ -62,6 +59,8 @@ #include +WX_DECLARE_VOIDPTR_HASH_MAP( wxXVisualInfo*, wxXVisualInfoMap ); + extern wxList wxPendingDelete; extern bool wxAddIdleCallback(); @@ -105,21 +104,6 @@ bool wxApp::Initialize() wxInitializeStockLists(); wxInitializeStockObjects(); -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - // For PostScript printing -#if wxUSE_POSTSCRIPT - /* Done using wxModule now - wxInitializePrintSetupData(); - wxThePrintPaperDatabase = new wxPrintPaperDatabase; - wxThePrintPaperDatabase->CreateDatabase(); - */ -#endif - - wxBitmap::InitStandardHandlers(); - wxWidgetHashTable = new wxHashTable(wxKEY_INTEGER); wxModule::RegisterModules(); @@ -135,10 +119,6 @@ void wxApp::CleanUp() wxModule::CleanUpModules(); -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - wxDeleteStockObjects() ; // Destroy all GDI lists, etc. @@ -148,16 +128,6 @@ void wxApp::CleanUp() delete wxTheColourDatabase; wxTheColourDatabase = NULL; -#if wxUSE_POSTSCRIPT - /* Done using wxModule now - wxInitializePrintSetupData(FALSE); - delete wxThePrintPaperDatabase; - wxThePrintPaperDatabase = NULL; - */ -#endif - - wxBitmap::CleanUpHandlers(); - wxClassInfo::CleanUpClasses(); delete wxTheApp; @@ -244,8 +214,8 @@ int wxEntry( int argc, char *argv[] ) if ( pLog != NULL && pLog->HasPendingMessages() ) pLog->Flush(); - delete wxLog::SetActiveTarget(new wxLogStderr); // So dialog boxes aren't used - // for further messages + // So dialog boxes aren't used for further messages + delete wxLog::SetActiveTarget(new wxLogStderr); if (wxTheApp->GetTopWindow()) { @@ -276,11 +246,21 @@ wxApp::wxApp() m_topLevelWidget = (WXWidget) NULL; m_maxRequestSize = 0; m_initialDisplay = (WXDisplay*) 0; + m_visualInfoMap = new wxXVisualInfoMap; } wxApp::~wxApp() { delete m_eventLoop; + + for( wxXVisualInfoMap::iterator it = m_visualInfoMap->begin(), + end = m_visualInfoMap->end(); + it != end; ++it ) + { + delete it->second; + } + + delete m_visualInfoMap; } bool wxApp::Initialized() @@ -326,6 +306,9 @@ void wxApp::ExitMainLoop() // Is a message/event pending? bool wxApp::Pending() { +<<<<<<< app.cpp + return XtAppPending( (XtAppContext) GetAppContext() ) != 0; +======= return m_eventLoop->Pending(); #if 0 XFlush(XtDisplay( (Widget) wxTheApp->GetTopLevelWidget() )); @@ -334,6 +317,7 @@ bool wxApp::Pending() // is found. return ((XtAppPending( (XtAppContext) GetAppContext() ) & XtIMXEvent) != 0) ; #endif +>>>>>>> 1.57 } // Dispatch a message. @@ -526,6 +510,20 @@ WXColormap wxApp::GetMainColormap(WXDisplay* display) return (WXColormap) c; } +wxXVisualInfo* wxApp::GetVisualInfo( WXDisplay* display ) +{ + wxXVisualInfoMap::iterator it = m_visualInfoMap->find( display ); + + if( it != m_visualInfoMap->end() ) return it->second; + + wxXVisualInfo* vi = new wxXVisualInfo; + wxFillXVisualInfo( vi, (Display*)display ); + + (*m_visualInfoMap)[display] = vi; + + return vi; +} + void wxExit() { int retValue = 0; @@ -534,7 +532,8 @@ void wxExit() wxApp::CleanUp(); /* - * Exit in some platform-specific way. Not recommended that the app calls this: + * Exit in some platform-specific way. + * Not recommended that the app calls this: * only for emergencies. */ exit(retValue);