]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/app.cpp
removed unused variables
[wxWidgets.git] / src / os2 / app.cpp
index cdc874ea903e75770c0cd7dfe1a4ab6e249a03b4..79c53dec75ed29aa4cce0504f5d4c522933ada7d 100644 (file)
@@ -9,6 +9,10 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+#ifdef __GNUG__
+    #pragma implementation "app.h"
+#endif
+
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -72,10 +76,6 @@ extern "C" int _System bsdselect(int,
     WX_DEFINE_OBJARRAY(wxMsgArray);
 #endif // wxUSE_THREADS
 
-#if wxUSE_WX_RESOURCES
-    #include "wx/resource.h"
-#endif
-
 #if wxUSE_TOOLTIPS
     #include "wx/tooltip.h"
 #endif // wxUSE_TOOLTIPS
@@ -96,16 +96,6 @@ HAB                                 vHabmain = NULLHANDLE;
 QMSG                                svCurrentMsg;
 wxApp*                              wxTheApp = NULL;
 
-// NB: all "NoRedraw" classes must have the same names as the "normal" classes
-//     with NR suffix - wxWindow::OS2Create() supposes this
-wxChar wxFrameClassName[]                 = wxT("wxFrameClass");
-wxChar wxFrameClassNameNoRedraw[]         = wxT("wxFrameClassNR");
-wxChar wxMDIFrameClassName[]              = wxT("wxMDIFrameClass");
-wxChar wxMDIFrameClassNameNoRedraw[]      = wxT("wxMDIFrameClassNR");
-wxChar wxMDIChildFrameClassName[]         = wxT("wxMDIChildFrameClass");
-wxChar wxMDIChildFrameClassNameNoRedraw[] = wxT("wxMDIChildFrameClassNR");
-wxChar wxPanelClassName[]                 = wxT("wxPanelClass");
-wxChar wxCanvasClassName[]                = wxT("wxCanvasClass");
 
 HICON wxSTD_FRAME_ICON          = (HICON) NULL;
 HICON wxSTD_MDICHILDFRAME_ICON  = (HICON) NULL;
@@ -263,22 +253,6 @@ bool wxApp::Initialize(
   #endif //wxUSE_CONSOLEDEBUG
 #endif
 
-    //
-    // OS2 has to have an anchorblock
-    //
-    vHab = WinInitialize(0);
-
-    if (!vHab)
-        return FALSE;
-    else
-        vHabmain = vHab;
-
-    // Some people may wish to use this, but
-    // probably it shouldn't be here by default.
-#ifdef __WXDEBUG__
-    //    wxRedirectIOToConsole();
-#endif
-
     wxBuffer = new wxChar[1500]; // FIXME; why?
 
     wxClassInfo::InitializeClasses();
@@ -293,13 +267,24 @@ bool wxApp::Initialize(
     wxInitializeStockLists();
     wxInitializeStockObjects();
 
-#if wxUSE_WX_RESOURCES
-    wxInitializeResourceSystem();
-#endif
-
     wxBitmap::InitStandardHandlers();
 
-    RegisterWindowClasses(vHab);
+    //
+    // OS2 has to have an anchorblock
+    //
+    vHab = WinInitialize(0);
+
+    if (!vHab)
+        return FALSE;
+    else
+        vHabmain = vHab;
+
+    // Some people may wish to use this, but
+    // probably it shouldn't be here by default.
+#ifdef __WXDEBUG__
+    //    wxRedirectIOToConsole();
+#endif
+
     wxWinHandleList = new wxList(wxKEY_INTEGER);
 
     // This is to foil optimizations in Visual C++ that throw out dummy.obj.
@@ -314,6 +299,7 @@ bool wxApp::Initialize(
     wxModule::RegisterModules();
     if (!wxModule::InitializeModules())
         return FALSE;
+    RegisterWindowClasses(vHab);
     return TRUE;
 } // end of wxApp::Initialize
 
@@ -423,7 +409,19 @@ bool wxApp::RegisterWindowClasses(
     if (!::WinRegisterClass( vHab
                             ,wxCanvasClassName
                             ,wxWndProc
-                            ,CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT | CS_CLIPCHILDREN
+                            ,CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT
+                            ,sizeof(ULONG)
+                           ))
+    {
+        vError = ::WinGetLastError(vHab);
+        sError = wxPMErrorToStr(vError);
+        wxLogLastError(sError);
+        return FALSE;
+    }
+    if (!::WinRegisterClass( vHab
+                            ,wxCanvasClassNameNR
+                            ,wxWndProc
+                            ,CS_HITTEST | CS_SYNCPAINT
                             ,sizeof(ULONG)
                            ))
     {
@@ -467,10 +465,6 @@ void wxApp::CleanUp()
 
     wxModule::CleanUpModules();
 
-#if wxUSE_WX_RESOURCES
-    wxCleanUpResourceSystem();
-#endif
-
     wxDeleteStockObjects();
 
     //
@@ -607,7 +601,7 @@ int wxEntry(
     {
         if (wxTheApp->OnInit())
         {
-            nRetValue = wxTheApp->OnRun();
+            wxTheApp->OnRun();
         }
         // Normal exit
         wxWindow*                   pTopWindow = wxTheApp->GetTopWindow();
@@ -635,7 +629,7 @@ int wxEntry(
     printf("wxTheApp->OnExit ");
     fflush(stdout);
 #endif
-    wxTheApp->OnExit();
+    nRetValue = wxTheApp->OnExit();
 #if wxUSE_CONSOLEDEBUG
     printf("wxApp::CleanUp ");
     fflush(stdout);
@@ -677,12 +671,10 @@ wxApp::wxApp()
 {
     m_topWindow = NULL;
     wxTheApp = this;
-    m_wantDebugOutput = TRUE;
 
     argc = 0;
     argv = NULL;
     m_nPrintMode = wxPRINT_WINDOWS;
-    m_exitOnFrameDelete = TRUE;
     m_bAuto3D = TRUE;
     m_hMq = 0;
     m_maxSocketHandles = 0;
@@ -780,10 +772,7 @@ bool wxApp::DoMessage()
                 {
                     QMSG            vMsg = svSavedMessages[n];
 
-                    if ( !ProcessMessage((WXMSG *)&vMsg) )
-                    {
-                        ::WinDispatchMsg(vHabmain, &vMsg);
-                    }
+                    DoMessage((WXMSG*)&vMsg);
                 }
                 svSavedMessages.Empty();
             }
@@ -861,13 +850,13 @@ bool wxApp::ProcessIdle()
 
 void wxApp::ExitMainLoop()
 {
-    m_bKeepGoing = FALSE;
-}
+    ::WinPostMsg(NULL, WM_QUIT, 0, 0);
+} // end of wxApp::ExitMainLoop
 
 bool wxApp::Pending()
 {
     return (::WinPeekMsg(vHabmain, (PQMSG)&svCurrentMsg, (HWND)NULL, 0, 0, PM_NOREMOVE) != 0);
-}
+} // end of wxApp::Pending
 
 void wxApp::Dispatch()
 {
@@ -890,26 +879,26 @@ bool wxApp::ProcessMessage(
     wxWindow*                       pWndThis = wxFindWinFromHandle((WXHWND)hWnd);
     wxWindow*                       pWnd;
 
-#if wxUSE_TOOLTIPS
     //
-    // We must relay WM_MOUSEMOVE events to the tooltip ctrl if we want it to
-    // popup the tooltip bubbles
+    // Pass non-system timer messages to the wxTimerProc
     //
-    if (pWndThis && (pMsg->msg == WM_MOUSEMOVE))
-    {
-        wxToolTip*                  pToolTip = pWndThis->GetToolTip();
-        if (pToolTip)
-        {
-            pToolTip->RelayEvent(pWxmsg);
-        }
-    }
-#endif // wxUSE_TOOLTIPS
+    if (pMsg->msg == WM_TIMER &&
+        (SHORT1FROMMP(pMsg->mp1) != TID_CURSOR &&
+         SHORT1FROMMP(pMsg->mp1) != TID_FLASHWINDOW &&
+         SHORT1FROMMP(pMsg->mp1) != TID_SCROLL &&
+         SHORT1FROMMP(pMsg->mp1) != 0x0000
+        ))
+        wxTimerProc(NULL, 0, (int)pMsg->mp1, 0);
 
     //
-    // We must relay Timer events to wxTimer's processing function
+    // Allow the window to prevent certain messages from being
+    // translated/processed (this is currently used by wxTextCtrl to always
+    // grab Ctrl-C/V/X, even if they are also accelerators in some parent)
     //
-    if (pMsg->msg == WM_TIMER)
-        wxTimerProc(NULL, 0, (int)pMsg->mp1, 0);
+    if (pWndThis && !pWndThis->OS2ShouldPreProcessMessage(pWxmsg))
+    {
+        return FALSE;
+    }
 
     //
     // For some composite controls (like a combobox), wndThis might be NULL
@@ -964,19 +953,20 @@ bool wxApp::ProcessMessage(
     return FALSE;
 } // end of wxApp::ProcessMessage
 
+bool                                gbInOnIdle = FALSE;
+
 void wxApp::OnIdle(
   wxIdleEvent&                      rEvent
 )
 {
-    static bool                     sbInOnIdle = FALSE;
 
     //
     // Avoid recursion (via ProcessEvent default case)
     //
-    if (sbInOnIdle)
+    if (gbInOnIdle)
         return;
 
-    sbInOnIdle = TRUE;
+    gbInOnIdle = TRUE;
 
     //
     // If there are pending events, we must process them: pending events
@@ -1018,7 +1008,7 @@ void wxApp::OnIdle(
         //
         rEvent.RequestMore(TRUE);
     }
-    sbInOnIdle = FALSE;
+    gbInOnIdle = FALSE;
 } // end of wxApp::OnIdle
 
 // Send idle event to all top-level windows
@@ -1171,31 +1161,6 @@ bool wxApp::Yield(bool onlyIfNeeded)
     return TRUE;
 } // end of wxYield
 
-wxIcon wxApp::GetStdIcon(
-  int                               nWhich
-) const
-{
-    switch(nWhich)
-    {
-        case wxICON_INFORMATION:
-            return wxIcon("wxICON_INFO");
-
-        case wxICON_QUESTION:
-            return wxIcon("wxICON_QUESTION");
-
-        case wxICON_EXCLAMATION:
-            return wxIcon("wxICON_WARNING");
-
-        default:
-            wxFAIL_MSG(wxT("requested non existent standard icon"));
-            // still fall through
-
-        case wxICON_HAND:
-            return wxIcon("wxICON_ERROR");
-    }
-    return wxIcon("wxICON_ERROR");
-} // end of wxApp::GetStdIcon
-
 int wxApp::AddSocketHandler(int handle, int mask,
                             void (*callback)(void*), void * gsock)
 {