X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/621b45743238c6bf9f8d33f2236052da6522ceb6..da19c58b6085f590b912b56e81cfdb8ff244cdb7:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index cf60a54926..3620b182ac 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp +// Name: src/os2/app.cpp // Purpose: wxApp // Author: David Webster // Modified by: @@ -9,16 +9,14 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ - #pragma implementation "app.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#include "wx/app.h" + #ifndef WX_PRECOMP + #include "wx/dynarray.h" #include "wx/frame.h" - #include "wx/app.h" #include "wx/utils.h" #include "wx/gdicmn.h" #include "wx/pen.h" @@ -30,13 +28,13 @@ #include "wx/dialog.h" #include "wx/msgdlg.h" #include "wx/intl.h" - #include "wx/dynarray.h" - #include "wx/wxchar.h" - #include "wx/icon.h" + #include "wx/crt.h" + #include "wx/log.h" + #include "wx/module.h" #endif -#include "wx/log.h" -#include "wx/module.h" +#include "wx/stdpaths.h" +#include "wx/filename.h" #include "wx/os2/private.h" @@ -54,7 +52,11 @@ #endif // -#ifndef __EMX__ +#if defined(__WATCOMC__) + +#include + +#elif !defined(__EMX__) #define select(a,b,c,d,e) bsdselect(a,b,c,d,e) extern "C" int _System bsdselect(int, @@ -79,9 +81,7 @@ extern "C" int _System bsdselect(int, // global variables // --------------------------------------------------------------------------- -extern wxChar* wxBuffer; -extern wxList* wxWinHandleList; -extern wxList WXDLLEXPORT wxPendingDelete; +WXDLLEXPORT_DATA(wxChar*) wxBuffer; extern wxCursor* g_globalCursor; HAB vHabmain = NULLHANDLE; @@ -121,7 +121,7 @@ struct GsocketCallbackInfo{ void wxApp::HandleSockets() { - bool pendingEvent = FALSE; + bool pendingEvent = false; // Check whether it's time for Gsocket operation if (m_maxSocketHandles > 0 && m_maxSocketNr > 0) @@ -150,7 +150,7 @@ void wxApp::HandleSockets() if (r < m_maxSocketHandles) { CallbackInfo[r].proc(CallbackInfo[r].gsock); - pendingEvent = TRUE; + pendingEvent = true; } } if (FD_ISSET(i, &writefds)) @@ -163,7 +163,7 @@ void wxApp::HandleSockets() if (r < m_maxSocketHandles) { CallbackInfo[r].proc(CallbackInfo[r].gsock); - pendingEvent = TRUE; + pendingEvent = true; } } } @@ -219,13 +219,15 @@ bool wxApp::Initialize(int& argc, wxChar **argv) // OS2 has to have an anchorblock // vHabmain = WinInitialize(0); - + wxFileName GetPrefix(argv[0]); + GetPrefix.MakeAbsolute(); + wxStandardPaths::SetInstallPrefix(GetPrefix.GetPath()); if (!vHabmain) { // TODO: at least give some error message here... wxAppBase::CleanUp(); - return FALSE; + return false; } wxBuffer = new wxChar[1500]; // FIXME; why? @@ -236,7 +238,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) // wxRedirectIOToConsole(); #endif - wxWinHandleList = new wxList(wxKEY_INTEGER); + wxWinHandleHash = new wxWinHashTable(wxKEY_INTEGER, 100); // This is to foil optimizations in Visual C++ that throw out dummy.obj. // PLEASE DO NOT ALTER THIS. @@ -249,7 +251,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) RegisterWindowClasses(vHabmain); - return TRUE; + return true; } // end of wxApp::Initialize const char* CANTREGISTERCLASS = " Can't register Class "; @@ -257,15 +259,13 @@ const char* CANTREGISTERCLASS = " Can't register Class " // RegisterWindowClasses // --------------------------------------------------------------------------- -bool wxApp::RegisterWindowClasses( - HAB vHab -) +bool wxApp::RegisterWindowClasses( HAB vHab ) { - ERRORID vError = 0L; - wxString sError; + ERRORID vError = 0L; + wxString sError; if (!::WinRegisterClass( vHab - ,wxFrameClassName + ,(PSZ)wxFrameClassName ,wxFrameWndProc ,CS_SIZEREDRAW | CS_SYNCPAINT ,sizeof(ULONG) @@ -274,11 +274,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxFrameClassNameNoRedraw + ,(PSZ)wxFrameClassNameNoRedraw ,wxWndProc ,0 ,sizeof(ULONG) @@ -287,11 +287,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxMDIFrameClassName + ,(PSZ)wxMDIFrameClassName ,wxWndProc ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT ,sizeof(ULONG) @@ -300,11 +300,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxMDIFrameClassNameNoRedraw + ,(PSZ)wxMDIFrameClassNameNoRedraw ,wxWndProc ,0 ,sizeof(ULONG) @@ -313,11 +313,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxMDIChildFrameClassName + ,(PSZ)wxMDIChildFrameClassName ,wxWndProc ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST ,sizeof(ULONG) @@ -326,11 +326,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxMDIChildFrameClassNameNoRedraw + ,(PSZ)wxMDIChildFrameClassNameNoRedraw ,wxWndProc ,CS_HITTEST ,sizeof(ULONG) @@ -339,11 +339,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxPanelClassName + ,(PSZ)wxPanelClassName ,wxWndProc ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT ,sizeof(ULONG) @@ -352,11 +352,11 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxCanvasClassName + ,(PSZ)wxCanvasClassName ,wxWndProc ,CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT ,sizeof(ULONG) @@ -365,10 +365,10 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } if (!::WinRegisterClass( vHab - ,wxCanvasClassNameNR + ,(PSZ)wxCanvasClassNameNR ,wxWndProc ,CS_HITTEST | CS_SYNCPAINT ,sizeof(ULONG) @@ -377,9 +377,9 @@ bool wxApp::RegisterWindowClasses( vError = ::WinGetLastError(vHab); sError = wxPMErrorToStr(vError); wxLogLastError(sError.c_str()); - return FALSE; + return false; } - return TRUE; + return true; } // end of wxApp::RegisterWindowClasses // @@ -394,7 +394,7 @@ void wxApp::CleanUp() // PM-SPECIFIC CLEANUP // - // wxSetKeyboardHook(FALSE); + // wxSetKeyboardHook(false); if (wxSTD_FRAME_ICON) ::WinFreeFileIcon(wxSTD_FRAME_ICON); @@ -415,8 +415,8 @@ void wxApp::CleanUp() // TODO: ::DeleteObject( wxDisableButtonBrush ); } - if (wxWinHandleList) - delete wxWinHandleList; + delete wxWinHandleHash; + wxWinHandleHash = NULL; // Delete Message queue if (wxTheApp->m_hMq) @@ -427,11 +427,11 @@ void wxApp::CleanUp() bool wxApp::OnInitGui() { - ERRORID vError; - wxString sError; + ERRORID vError; + wxString sError; if (!wxAppBase::OnInitGui()) - return FALSE; + return false; m_hMq = ::WinCreateMsgQueue(vHabmain, 0); if (!m_hMq) @@ -439,10 +439,10 @@ bool wxApp::OnInitGui() vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); wxLogDebug(sError); - return FALSE; + return false; } - return TRUE; + return true; } // end of wxApp::OnInitGui wxApp::wxApp() @@ -472,22 +472,17 @@ wxApp::~wxApp() #endif } // end of wxApp::~wxApp -bool gbInOnIdle = FALSE; +bool gbInOnIdle = false; -void wxApp::OnIdle( - wxIdleEvent& rEvent -) +void wxApp::OnIdle( wxIdleEvent& rEvent ) { - // // Avoid recursion (via ProcessEvent default case) // if (gbInOnIdle) return; - gbInOnIdle = TRUE; - - wxAppBase::OnIdle(rEvent); + gbInOnIdle = true; #if wxUSE_DC_CACHEING // automated DC cache management: clear the cached DCs and bitmap @@ -499,28 +494,26 @@ void wxApp::OnIdle( wxDC::ClearCache(); #endif // wxUSE_DC_CACHEING - gbInOnIdle = FALSE; + gbInOnIdle = false; } // end of wxApp::OnIdle void wxApp::OnEndSession( wxCloseEvent& WXUNUSED(rEvent)) { if (GetTopWindow()) - GetTopWindow()->Close(TRUE); + GetTopWindow()->Close(true); } // end of wxApp::OnEndSession // // Default behaviour: close the application with prompts. The // user can veto the close, and therefore the end session. // -void wxApp::OnQueryEndSession( - wxCloseEvent& rEvent -) +void wxApp::OnQueryEndSession( wxCloseEvent& rEvent ) { if (GetTopWindow()) { if (!GetTopWindow()->Close(!rEvent.CanVeto())) - rEvent.Veto(TRUE); + rEvent.Veto(true); } } // end of wxApp::OnQueryEndSession @@ -529,7 +522,7 @@ void wxApp::OnQueryEndSession( // bool wxApp::Yield(bool onlyIfNeeded) { - static bool s_inYield = FALSE; + static bool s_inYield = false; if ( s_inYield ) { @@ -538,11 +531,11 @@ bool wxApp::Yield(bool onlyIfNeeded) wxFAIL_MSG( _T("wxYield() called recursively") ); } - return FALSE; + return false; } - HAB vHab = 0; - QMSG vMsg; + HAB vHab = 0; + QMSG vMsg; // // Disable log flushing from here because a call to wxYield() shouldn't @@ -550,7 +543,7 @@ bool wxApp::Yield(bool onlyIfNeeded) // wxLog::Suspend(); - s_inYield = TRUE; + s_inYield = true; // // We want to go back to the main message loop @@ -575,8 +568,8 @@ bool wxApp::Yield(bool onlyIfNeeded) // Let the logs be flashed again // wxLog::Resume(); - s_inYield = FALSE; - return TRUE; + s_inYield = false; + return true; } // end of wxYield int wxApp::AddSocketHandler(int handle, int mask, @@ -648,7 +641,7 @@ void wxApp::WakeUpIdle() // // Should never happen // - wxLogLastError("PostMessage(WM_NULL)"); + wxLogLastError(wxT("PostMessage(WM_NULL)")); } } } // end of wxWakeUpIdle @@ -658,10 +651,7 @@ HAB wxGetInstance() return vHabmain; } -void wxSetInstance( - HAB vHab -) +void wxSetInstance( HAB vHab ) { vHabmain = vHab; } -