]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/app.cpp
1. fixed bug with the index of the last column in EVT_COL_CLICK being shifted
[wxWidgets.git] / src / os2 / app.cpp
index f4f9a25d9c8b0396baf8330c7bbc70f067c6aaa2..3e752ba5ff84a10761bf05d0b3f2edb84b5e9ef5 100644 (file)
@@ -68,6 +68,7 @@ extern wxCursor*                    g_globalCursor;
 HINSTANCE                           wxhInstance = 0;
 QMSG                                svCurrentMsg;
 wxApp*                              wxTheApp = NULL;
+HAB                                 vHabmain = NULL;
 
 // FIXME why not const? and not static?
 
@@ -92,7 +93,11 @@ HICON wxDEFAULT_MDIPARENTFRAME_ICON  = (HICON) NULL;
 
 HBRUSH wxDisableButtonBrush = (HBRUSH) 0;
 
-MRESULT wxWndProc(HWND, UINT, MPARAM, MPARAM);
+MRESULT wxWndProc( HWND
+                  ,ULONG
+                  ,MPARAM
+                  ,MPARAM
+                 );
 
 // ===========================================================================
 // implementation
@@ -102,7 +107,6 @@ MRESULT wxWndProc(HWND, UINT, MPARAM, MPARAM);
 // wxApp
 // ---------------------------------------------------------------------------
 
-#if !USE_SHARED_LIBRARY
     IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
 
     BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
@@ -110,7 +114,6 @@ MRESULT wxWndProc(HWND, UINT, MPARAM, MPARAM);
         EVT_END_SESSION(wxApp::OnEndSession)
         EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession)
     END_EVENT_TABLE()
-#endif
 
 //// Initialize
 bool wxApp::Initialize(
@@ -161,7 +164,7 @@ bool wxApp::Initialize(
 
     // This is to foil optimizations in Visual C++ that throw out dummy.obj.
     // PLEASE DO NOT ALTER THIS.
-#if !defined(WXMAKINGDLL)
+#if !defined(WXMAKINGDLL) && defined(__VISAGECPP__)
     extern char wxDummyChar;
     if (wxDummyChar) wxDummyChar++;
 #endif
@@ -185,13 +188,14 @@ bool wxApp::RegisterWindowClasses(
   HAB                               vHab
 )
 {
-
-    if (!::WinRegisterClass( vHab
-                            ,wxFrameClassName
-                            ,(PFNWP)wxWndProc
-                            ,CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST | CS_CLIPCHILDREN | CS_FRAME
-                            ,0
-                           ))
+    APIRET                          rc;
+
+    if ((rc = ::WinRegisterClass( vHab
+                                 ,wxFrameClassName
+                                 ,(PFNWP)wxWndProc
+                                 ,CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST | CS_CLIPCHILDREN | CS_FRAME
+                                 ,0
+                                )) != 0)
     {
         wxLogLastError("RegisterClass(frame)");
 
@@ -397,7 +401,7 @@ int wxEntry(
 , char*                             argv[]
 )
 {
-    HAB                             vHab;
+    HAB                             vHab = 0;
 
     if (!wxApp::Initialize(vHab))
         return 0;
@@ -480,8 +484,8 @@ int wxEntry(
 
 bool wxApp::OnInitGui()
 {
-    m_vHab = WinInitialize(0);
-    m_hMq  = WinCreateMsgQueue(m_vHab, 0);
+    vHabmain = WinInitialize(0);
+    m_hMq    = WinCreateMsgQueue(vHabmain, 0);
 
     return TRUE;
 }
@@ -506,6 +510,7 @@ wxApp::wxApp()
 
 wxApp::~wxApp()
 {
+#if wxUSE_UNICODE
     // Delete command-line args
     int i;
     for (i = 0; i < argc; i++)
@@ -513,6 +518,7 @@ wxApp::~wxApp()
         delete[] argv[i];
     }
     delete[] argv;
+#endif
 }
 
 bool wxApp::Initialized()
@@ -529,7 +535,7 @@ bool wxApp::Initialized()
 //
 bool wxApp::DoMessage()
 {
-    BOOL                            bRc = ::WinGetMsg(m_vHab, &m_vMsg, HWND(NULL), 0, 0);
+    BOOL                            bRc = ::WinGetMsg(vHabmain, &m_vMsg, HWND(NULL), 0, 0);
 
     if (bRc == 0)
     {
@@ -591,7 +597,7 @@ bool wxApp::DoMessage()
 
                     if ( !ProcessMessage((WXMSG *)&vMsg) )
                     {
-                        ::WinDispatchMsg(m_vHab, &vMsg);
+                        ::WinDispatchMsg(vHabmain, &vMsg);
                     }
                 }
                 svSavedMessages.Empty();
@@ -602,7 +608,7 @@ bool wxApp::DoMessage()
         // Process the message
         if (!ProcessMessage((WXMSG *)&svCurrentMsg) )
         {
-            ::WinDispatchMsg(m_vHab, (PQMSG)&svCurrentMsg);
+            ::WinDispatchMsg(vHabmain, (PQMSG)&svCurrentMsg);
         }
     }
     return TRUE;
@@ -632,7 +638,7 @@ int wxApp::MainLoop()
 #if wxUSE_THREADS
         wxMutexGuiLeaveOrEnter();
 #endif // wxUSE_THREADS
-        while (!::WinPeekMsg(m_vHab, &svCurrentMsg, (HWND)NULL, 0, 0, PM_NOREMOVE) &&
+        while (!::WinPeekMsg(vHabmain, &svCurrentMsg, (HWND)NULL, 0, 0, PM_NOREMOVE) &&
                 ProcessIdle() )
         {
         }
@@ -677,7 +683,7 @@ void wxApp::ExitMainLoop()
 
 bool wxApp::Pending()
 {
-    return (::WinPeekMsg(m_vHab, (PQMSG)&svCurrentMsg, (HWND)NULL, 0, 0, PM_NOREMOVE) != 0);
+    return (::WinPeekMsg(vHabmain, (PQMSG)&svCurrentMsg, (HWND)NULL, 0, 0, PM_NOREMOVE) != 0);
 }
 
 void wxApp::Dispatch()
@@ -872,7 +878,7 @@ void wxExit()
 // Yield to incoming messages
 bool wxYield()
 {
-    HAB                             vHab;
+    HAB                             vHab = 0;
     QMSG                            vMsg;
     // We want to go back to the main message loop
     // if we see a WM_QUIT. (?)