]> git.saurik.com Git - wxWidgets.git/commitdiff
OS/2 Statusbar fixes, and class interface updates
authorDavid Webster <Dave.Webster@bhmi.com>
Mon, 2 Oct 2000 02:49:35 +0000 (02:49 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Mon, 2 Oct 2000 02:49:35 +0000 (02:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/statusbr.cpp
src/generic/tipwin.cpp
src/os2/app.cpp
src/os2/frame.cpp
src/os2/makefile.va
src/os2/utils.cpp
src/os2/window.cpp

index a65e6c1e5c13b518f296f86b48ad00c8832d19b5..82b90a180b937c5dd0fc6bbb9286b03a8c24d5de 100644 (file)
@@ -80,7 +80,6 @@ bool wxStatusBarGeneric::Create(wxWindow *parent,
   m_nFields = 0;
   m_borderX = wxTHICK_LINE_BORDER;
   m_borderY = wxTHICK_LINE_BORDER;
   m_nFields = 0;
   m_borderX = wxTHICK_LINE_BORDER;
   m_borderY = wxTHICK_LINE_BORDER;
-  m_themeEnabled = TRUE;
 
   bool success = wxWindow::Create(parent, id,
                                   wxDefaultPosition, wxDefaultSize,
 
   bool success = wxWindow::Create(parent, id,
                                   wxDefaultPosition, wxDefaultSize,
@@ -176,11 +175,17 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
 {
   wxPaintDC dc(this);
 
 {
   wxPaintDC dc(this);
 
+#ifdef __WXPM__
+    RECTL wrectl;
+
+    ::WinQueryWindowRect(GetHWND(), &wrectl);
+    ::WinFillRect(dc.GetHDC(), &wrectl, CLR_BLACK);
+#else
+
   int i;
   if ( GetFont().Ok() )
     dc.SetFont(GetFont());
   dc.SetBackgroundMode(wxTRANSPARENT);
   int i;
   if ( GetFont().Ok() )
     dc.SetFont(GetFont());
   dc.SetBackgroundMode(wxTRANSPARENT);
-  dc.SetTextForeground(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOWTEXT));
 
   for ( i = 0; i < m_nFields; i ++ )
     DrawField(dc, i);
 
   for ( i = 0; i < m_nFields; i ++ )
     DrawField(dc, i);
@@ -188,6 +193,7 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
 #   ifdef __WXMSW__
         dc.SetFont(wxNullFont);
 #   endif // MSW
 #   ifdef __WXMSW__
         dc.SetFont(wxNullFont);
 #   endif // MSW
+#endif
 }
 
 void wxStatusBarGeneric::DrawFieldText(wxDC& dc, int i)
 }
 
 void wxStatusBarGeneric::DrawFieldText(wxDC& dc, int i)
@@ -322,7 +328,7 @@ bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const
 void wxStatusBarGeneric::InitColours()
 {
     // Shadow colours
 void wxStatusBarGeneric::InitColours()
 {
     // Shadow colours
-#ifndef __WIN16__
+#if defined(__WIN95__)
     wxColour mediumShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW));
     m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID);
 
     wxColour mediumShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW));
     m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID);
 
index 6dc8aa8658c187e771d642fc317284ec4e4f8206..26f83781ba3ae9ae4a258d8129dc7f71be649e9b 100644 (file)
@@ -72,8 +72,12 @@ wxTipWindow::wxTipWindow(wxWindow *parent,
 {
     // set colours
     SetForegroundColour(*wxBLACK);
 {
     // set colours
     SetForegroundColour(*wxBLACK);
+#if !defined(__WXPM__)
     SetBackgroundColour(wxColour(0xc3ffff));
     SetBackgroundColour(wxColour(0xc3ffff));
-
+#else
+    // What is 0xc3ffff, try some legable documentation for those of us who don't memorize hex codes??
+    SetBackgroundColour(wxColour(*wxWHITE));
+#endif
     // set position and size
     int x, y;
     wxGetMousePosition(&x, &y);
     // set position and size
     int x, y;
     wxGetMousePosition(&x, &y);
index ef18d55511daf9494f801e07729ceead8fff6acd..70342ca40f4c85972ba76c9302b98f3e166c9c5b 100644 (file)
@@ -183,8 +183,8 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxFrameClassName
 
     if (!::WinRegisterClass( vHab
                             ,wxFrameClassName
-                            ,(PFNWP)wxWndProc
-                            ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT | CS_FRAME
+                            ,NULL
+                            ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT
                             ,sizeof(ULONG)
                            ))
     {
                             ,sizeof(ULONG)
                            ))
     {
@@ -196,7 +196,7 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxFrameClassNameNoRedraw
 
     if (!::WinRegisterClass( vHab
                             ,wxFrameClassNameNoRedraw
-                            ,(PFNWP)wxWndProc
+                            ,NULL
                             ,0
                             ,0
                            ))
                             ,0
                             ,0
                            ))
@@ -209,7 +209,7 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIFrameClassName
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIFrameClassName
-                            ,(PFNWP)wxWndProc
+                            ,NULL
                             ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT
                             ,0
                            ))
                             ,CS_SIZEREDRAW | CS_MOVENOTIFY | CS_SYNCPAINT
                             ,0
                            ))
@@ -222,7 +222,7 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIFrameClassNameNoRedraw
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIFrameClassNameNoRedraw
-                            ,(PFNWP)wxWndProc
+                            ,NULL
                             ,0
                             ,0
                            ))
                             ,0
                             ,0
                            ))
@@ -235,7 +235,7 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIChildFrameClassName
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIChildFrameClassName
-                            ,(PFNWP)wxWndProc
+                            ,NULL
                             ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST
                             ,0
                            ))
                             ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST
                             ,0
                            ))
@@ -248,7 +248,7 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIChildFrameClassNameNoRedraw
 
     if (!::WinRegisterClass( vHab
                             ,wxMDIChildFrameClassNameNoRedraw
-                            ,(PFNWP)wxWndProc
+                            ,NULL
                             ,CS_HITTEST
                             ,0
                            ))
                             ,CS_HITTEST
                             ,0
                            ))
@@ -261,7 +261,7 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxPanelClassName
 
     if (!::WinRegisterClass( vHab
                             ,wxPanelClassName
-                            ,(PFNWP)wxWndProc
+                            ,NULL
                             ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
                             ,0
                            ))
                             ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
                             ,0
                            ))
@@ -274,8 +274,8 @@ bool wxApp::RegisterWindowClasses(
 
     if (!::WinRegisterClass( vHab
                             ,wxCanvasClassName
 
     if (!::WinRegisterClass( vHab
                             ,wxCanvasClassName
-                            ,(PFNWP)wxWndProc
-                            ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
+                            ,NULL
+                            ,0 // CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
                             ,0
                            ))
     {
                             ,0
                            ))
     {
@@ -651,11 +651,11 @@ int wxApp::MainLoop()
 #if wxUSE_THREADS
         wxMutexGuiLeaveOrEnter();
 #endif // wxUSE_THREADS
 #if wxUSE_THREADS
         wxMutexGuiLeaveOrEnter();
 #endif // wxUSE_THREADS
-      while (!Pending() && ProcessIdle())
-      {
+        while (/*Pending() &&*/ ProcessIdle())
+        {
 //          wxUsleep(10000);
 //          wxUsleep(10000);
-      }
-      DoMessage();
+        }
+        DoMessage();
     }
     return (int)svCurrentMsg.mp1;
 } // end of wxApp::MainLoop
     }
     return (int)svCurrentMsg.mp1;
 } // end of wxApp::MainLoop
@@ -749,11 +749,13 @@ bool wxApp::ProcessMessage(
            if((CHARMSG(pChmsg)->fs & (KC_ALT | KC_CTRL)) && CHARMSG(pChmsg)->chr != 0)
                 CHARMSG(pChmsg)->chr = (USHORT)wxToupper((UCHAR)uSch);
 
            if((CHARMSG(pChmsg)->fs & (KC_ALT | KC_CTRL)) && CHARMSG(pChmsg)->chr != 0)
                 CHARMSG(pChmsg)->chr = (USHORT)wxToupper((UCHAR)uSch);
 
-            for(pWnd = pWndThis; pWnd; pWnd = pWnd->GetParent() )
-            {
-                if((bRc = pWnd->OS2TranslateMessage(pWxmsg)) == TRUE)
-                    break;
-            }
+  
+           for(pWnd = pWndThis; pWnd; pWnd = pWnd->GetParent() )
+           {
+               if((bRc = pWnd->OS2TranslateMessage(pWxmsg)) == TRUE)
+                   break;
+           }
+  
             if(!bRc)    // untranslated, should restore original value
                 CHARMSG(pChmsg)->chr = uSch;
         }
             if(!bRc)    // untranslated, should restore original value
                 CHARMSG(pChmsg)->chr = uSch;
         }
@@ -778,7 +780,7 @@ void wxApp::OnIdle(
     //
     // Avoid recursion (via ProcessEvent default case)
     //
     //
     // Avoid recursion (via ProcessEvent default case)
     //
-    if (sbInOnIdle )
+    if (sbInOnIdle)
         return;
 
     sbInOnIdle = TRUE;
         return;
 
     sbInOnIdle = TRUE;
index 1b431f44435a3340619ff273972b30c2b589b2a2..9de5fdf513519bb39e8e8f4b031323c32ce19065 100644 (file)
@@ -178,6 +178,7 @@ wxFrame::~wxFrame()
             ::WinPostMsg(NULL, WM_QUIT, 0, 0);
         }
     }
             ::WinPostMsg(NULL, WM_QUIT, 0, 0);
         }
     }
+
     wxModelessWindows.DeleteObject(this);
 
     //
     wxModelessWindows.DeleteObject(this);
 
     //
@@ -371,6 +372,7 @@ bool wxFrame::Show(
 
         ::WinQueryWindowPos(GetHWND(), &vSwp);
         m_bIconized = vSwp.fl & SWP_MINIMIZE;
 
         ::WinQueryWindowPos(GetHWND(), &vSwp);
         m_bIconized = vSwp.fl & SWP_MINIMIZE;
+        ::WinSendMsg(GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
         ::WinEnableWindow(GetHWND(), TRUE);
         vEvent.SetEventObject(this);
         GetEventHandler()->ProcessEvent(vEvent);
         ::WinEnableWindow(GetHWND(), TRUE);
         vEvent.SetEventObject(this);
         GetEventHandler()->ProcessEvent(vEvent);
@@ -475,51 +477,22 @@ wxStatusBar* wxFrame::OnCreateStatusBar(
     SWP                             vSwp;
     ERRORID                         vError;
     wxString                        sError;
     SWP                             vSwp;
     ERRORID                         vError;
     wxString                        sError;
-    HWND                            hWnd;
 
     pStatusBar = wxFrameBase::OnCreateStatusBar( nNumber
                                                 ,lulStyle
                                                 ,vId
                                                 ,rName
 
     pStatusBar = wxFrameBase::OnCreateStatusBar( nNumber
                                                 ,lulStyle
                                                 ,vId
                                                 ,rName
-                                               );
-    //
-    // The default parent set for the Statusbar is m_hWnd which, of course,
-    // is the handle to the client window of the frame.  We don't want that,
-    // so we have to set the parent to actually be the Frame.
-    //
-    hWnd = pStatusBar->GetHWND();
-    if (!::WinSetParent(hWnd, GetHWND(), FALSE))
-    {
-        vError = ::WinGetLastError(vHabmain);
-        sError = wxPMErrorToStr(vError);
-        wxLogError("Error setting parent for statusbar. Error: %s\n", sError);
+                                                 );
+
+    if( !pStatusBar )
         return NULL;
         return NULL;
-    }
 
 
+    // 
+    // to show statusbar
     //
     //
-    // Also we need to reset it positioning to enable the SHOW attribute
-    //
-    if (!::WinQueryWindowPos((HWND)pStatusBar->GetHWND(), &vSwp))
-    {
-        vError = ::WinGetLastError(vHabmain);
-        sError = wxPMErrorToStr(vError);
-        wxLogError("Error querying frame for statusbar position. Error: %s\n", sError);
-        return NULL;
-    }
-    if (!::WinSetWindowPos( (HWND)pStatusBar->GetHWND()
-                           ,HWND_TOP
-                           ,vSwp.cx
-                           ,vSwp.cy
-                           ,vSwp.x
-                           ,vSwp.y
-                           ,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
-                          ))
-    {
-        vError = ::WinGetLastError(vHabmain);
-        sError = wxPMErrorToStr(vError);
-        wxLogError("Error setting statusbar position. Error: %s\n", sError);
-        return NULL;
-    }
+    if( ::WinIsWindowShowing(GetHWND()) )
+        ::WinSendMsg(GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
+    
     return pStatusBar;
 } // end of wxFrame::OnCreateStatusBar
 
     return pStatusBar;
 } // end of wxFrame::OnCreateStatusBar
 
@@ -567,10 +540,10 @@ void wxFrame::PositionStatusBar()
         }
         if (!::WinSetWindowPos( m_frameStatusBar->GetHWND()
                                ,HWND_TOP
         }
         if (!::WinSetWindowPos( m_frameStatusBar->GetHWND()
                                ,HWND_TOP
-                               ,nStatbarWidth
-                               ,nStatbarHeight
                                ,vSwp.x
                                ,vSwp.y
                                ,vSwp.x
                                ,vSwp.y
+                               ,nStatbarWidth
+                               ,nStatbarHeight
                                ,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
                               ))
         {
                                ,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
                               ))
         {
@@ -860,7 +833,7 @@ bool wxFrame::ShowFullScreen(
         if ((m_lFsStyle & wxFULLSCREEN_NOSTATUSBAR) && (m_nFsStatusBarFields > 0))
         {
             CreateStatusBar(m_nFsStatusBarFields);
         if ((m_lFsStyle & wxFULLSCREEN_NOSTATUSBAR) && (m_nFsStatusBarFields > 0))
         {
             CreateStatusBar(m_nFsStatusBarFields);
-            PositionStatusBar();
+//          PositionStatusBar();
         }
 
         if ((m_lFsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0))
         }
 
         if ((m_lFsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0))
@@ -1004,6 +977,14 @@ bool wxFrame::OS2Create(
         return FALSE;
     }
 
         return FALSE;
     }
 
+    // 
+    // Now need to subclass window.
+    //
+
+  //SubclassWin(GetHWND());
+
+//  ::WinCreateWindow(GetHWND(), WC_LISTBOX, "", WS_VISIBLE, 0, 0,
+//                    0, 0, GetHWND(), HWND_TOP, FID_CLIENT, NULL, NULL);
     //
     // Now size everything.  If adding a menu the client will need to be resized.
     //
     //
     // Now size everything.  If adding a menu the client will need to be resized.
     //
@@ -1017,7 +998,7 @@ bool wxFrame::OS2Create(
                            ,SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_ZORDER
                           ))
         return FALSE;
                            ,SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_ZORDER
                           ))
         return FALSE;
-
+/*
     uCtlCount = SHORT1FROMMP(::WinSendMsg(GetHWND(), WM_FORMATFRAME, (MPARAM)vSwp, (MPARAM)vRect));
     for (int i = 0; i < uCtlCount; i++)
     {
     uCtlCount = SHORT1FROMMP(::WinSendMsg(GetHWND(), WM_FORMATFRAME, (MPARAM)vSwp, (MPARAM)vRect));
     for (int i = 0; i < uCtlCount; i++)
     {
@@ -1029,7 +1010,7 @@ bool wxFrame::OS2Create(
             memcpy(&m_vSwpVScroll, &vSwp[i], sizeof(SWP));
         else if (vSwp[i].hwnd == m_hTitleBar)
             memcpy(&m_vSwpTitleBar, &vSwp[i], sizeof(SWP));
             memcpy(&m_vSwpVScroll, &vSwp[i], sizeof(SWP));
         else if (vSwp[i].hwnd == m_hTitleBar)
             memcpy(&m_vSwpTitleBar, &vSwp[i], sizeof(SWP));
-    }
+    }*/
     return TRUE;
 } // end of wxFrame::OS2Create
 
     return TRUE;
 } // end of wxFrame::OS2Create
 
@@ -1352,7 +1333,7 @@ bool wxFrame::HandleSize(
         }
 #endif // wxUSE_NATIVE_STATUSBAR
 
         }
 #endif // wxUSE_NATIVE_STATUSBAR
 
-        PositionStatusBar();
+//      PositionStatusBar();
         PositionToolBar();
         wxSizeEvent                 vEvent( wxSize( nX
                                                    ,nY
         PositionToolBar();
         wxSizeEvent                 vEvent( wxSize( nX
                                                    ,nY
@@ -1388,7 +1369,7 @@ bool wxFrame::HandleCommand(
     //
     // Handle here commands from menus and accelerators
     //
     //
     // Handle here commands from menus and accelerators
     //
-    if (nCmd == 0 || nCmd == 1)
+    if (nCmd == CMDSRC_MENU || nCmd == CMDSRC_ACCELERATOR)
     {
         if (wxCurrentPopupMenu)
         {
     {
         if (wxCurrentPopupMenu)
         {
@@ -1487,11 +1468,12 @@ MRESULT wxFrame::OS2WindowProc(
                 WXHWND              hWnd;
 
                 UnpackCommand( (WXWPARAM)wParam
                 WXHWND              hWnd;
 
                 UnpackCommand( (WXWPARAM)wParam
-                              ,(WXLPARAM)lParam
-                              ,&wId
-                              ,&hWnd
-                              ,&wCmd
-                             );
+                            ,(WXLPARAM)lParam
+                            ,&wId
+                            ,&hWnd
+                            ,&wCmd
+                           );
+
                 bProcessed = HandleCommand( wId
                                            ,wCmd
                                            ,(WXHWND)hWnd
                 bProcessed = HandleCommand( wId
                                            ,wCmd
                                            ,(WXHWND)hWnd
@@ -1548,6 +1530,81 @@ MRESULT wxFrame::OS2WindowProc(
         case WM_SIZE:
             bProcessed = HandleSize(LOWORD(lParam), HIWORD(lParam), (WXUINT)wParam);
             break;
         case WM_SIZE:
             bProcessed = HandleSize(LOWORD(lParam), HIWORD(lParam), (WXUINT)wParam);
             break;
+
+        case WM_QUERYFRAMECTLCOUNT:
+            {
+                USHORT itemCount = SHORT1FROMMR(OS2GetOldWndProc()(GetHWND(), uMessage, wParam, lParam));
+                if(m_frameStatusBar)
+                   ++itemCount;
+                bProcessed = TRUE;
+                mRc = MRFROMSHORT( itemCount );
+            }
+            break;
+
+        case WM_FORMATFRAME:
+            {
+                PSWP   pSWP     = 0;
+                USHORT usClient = 0;
+                SWP    swp;
+                USHORT itemCount;
+                char   s[128];
+
+                itemCount = SHORT1FROMMR(OS2GetOldWndProc()(GetHWND(), uMessage, wParam, lParam));
+                pSWP = (PSWP)PVOIDFROMMP( wParam );
+
+                while(pSWP[usClient].hwnd != WinWindowFromID(GetHWND(), FID_CLIENT)
+                     && usClient < itemCount)
+                    usClient++;
+
+                if(m_frameStatusBar)
+                {
+                   int height;
+
+                   m_frameStatusBar->GetSize(NULL, &height);
+                   if(usClient == itemCount)
+                   {
+                      // frame has no client window
+                      // using another method of calculation
+                      RECTL wRectl;
+
+                      ::WinQueryWindowRect(GetHWND(), &wRectl);
+                      ::WinMapWindowPoints(GetHWND(), HWND_DESKTOP, (PPOINTL)&wRectl, 2);
+                      ::WinCalcFrameRect(GetHWND(), &wRectl, TRUE);
+                      ::WinMapWindowPoints(HWND_DESKTOP, GetHWND(), (PPOINTL)&wRectl, 2);
+
+                      pSWP[itemCount].x    = wRectl.xLeft;
+                      pSWP[itemCount].y    = wRectl.yBottom;
+                      pSWP[itemCount].cx   = wRectl.xRight - wRectl.xLeft - 1;
+                      pSWP[itemCount].cy   = height;
+                      pSWP[itemCount].fl   = SWP_SIZE |
+                                             SWP_MOVE |
+                                             SWP_SHOW;
+                      pSWP[itemCount].hwnd = m_frameStatusBar->GetHWND();
+                      pSWP[itemCount].hwndInsertBehind = HWND_TOP;
+                      ++itemCount;
+                   }
+                   else
+                   {
+                       pSWP[itemCount].x    = pSWP[usClient].x;
+                       pSWP[itemCount].y    = pSWP[usClient].y;
+                       pSWP[itemCount].cx   = pSWP[usClient].cx;
+                       pSWP[itemCount].cy   = height;
+                       pSWP[itemCount].fl   = SWP_SIZE |
+                                              SWP_MOVE |
+                                              SWP_SHOW;
+                       pSWP[itemCount].hwnd = m_frameStatusBar->GetHWND();
+                       pSWP[itemCount].hwndInsertBehind = HWND_TOP;
+                       pSWP[usClient].cy -= height;
+                       pSWP[usClient].y  += height;
+
+                       ++itemCount;
+                   }
+                }
+                bProcessed = TRUE;
+                mRc = MRFROMSHORT(itemCount);
+            }
+            break;
     }
 
     if (!bProcessed )
     }
 
     if (!bProcessed )
@@ -1558,3 +1615,63 @@ MRESULT wxFrame::OS2WindowProc(
     return (MRESULT)mRc;
 } // wxFrame::OS2WindowProc
 
     return (MRESULT)mRc;
 } // wxFrame::OS2WindowProc
 
+
+void wxFrame::SetClient(WXHWND c_Hwnd)
+{
+   // Are we really need to implement it?
+}
+
+void wxFrame::SetClient(wxWindow* c_Window)
+{
+     wxWindow *oldClient      = this->GetClient();
+     bool      clientHasFocus = oldClient && (oldClient == wxWindow::FindFocus());
+
+     if(oldClient == c_Window)  // nothing to do
+        return;
+
+     if(c_Window == NULL) // just need to remove old client
+     {
+        if(oldClient == NULL) // nothing to do
+           return;
+
+        if( clientHasFocus )
+            this->SetFocus();
+
+        oldClient->Enable( FALSE );
+        oldClient->Show( FALSE );
+        ::WinSetWindowUShort(oldClient->GetHWND(), QWS_ID, (USHORT)oldClient->GetId());
+        // to avoid OS/2 bug need to update frame
+        ::WinSendMsg((HWND)this->GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
+        return;
+     }
+
+     // else need to change client
+     if( clientHasFocus )
+         this->SetFocus();
+
+     ::WinEnableWindowUpdate((HWND)GetHWND(), FALSE);
+     if( oldClient )
+     {
+         oldClient->Enable( FALSE );
+         oldClient->Show( FALSE );
+         ::WinSetWindowUShort(oldClient->GetHWND(), QWS_ID, (USHORT)oldClient->GetId());
+     }
+
+     c_Window->Reparent( this );
+     ::WinSetWindowUShort(c_Window->GetHWND(), QWS_ID, FID_CLIENT);
+
+     ::WinEnableWindowUpdate((HWND)GetHWND(), TRUE);
+     c_Window->Enable();
+     c_Window->Show();   // ensure client is showing
+
+     if( this->IsShown() )
+     {
+         this->Show();
+         ::WinSendMsg(GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
+     }
+}
+
+wxWindow *wxFrame::GetClient()
+{
+   return wxFindWinFromHandle((WXHWND)::WinWindowFromID(GetHWND(), FID_CLIENT));
+}
index 1bd843ce90c8b4bdcac943bbbdc488adfcb82e00..ba49185c321fcb13075708a38e9af3ef8e8be47b 100644 (file)
@@ -130,6 +130,7 @@ GENERICOBJS= \
   ..\generic\$D\tbarsmpl.obj \
   ..\generic\$D\textdlgg.obj \
   ..\generic\$D\tipdlg.obj \
   ..\generic\$D\tbarsmpl.obj \
   ..\generic\$D\textdlgg.obj \
   ..\generic\$D\tipdlg.obj \
+  ..\generic\$D\tipwin.obj \
   ..\generic\$D\treectlg.obj \
   ..\generic\$D\treelay.obj \
   ..\generic\$D\wizard.obj
   ..\generic\$D\treectlg.obj \
   ..\generic\$D\treelay.obj \
   ..\generic\$D\wizard.obj
@@ -173,6 +174,7 @@ GENLIBOBJS= \
   tbarsmpl.obj \
   textdlgg.obj \
   tipdlg.obj \
   tbarsmpl.obj \
   textdlgg.obj \
   tipdlg.obj \
+  tipwin.obj \
   treectlg.obj \
   treelay.obj \
   wizard.obj
   treectlg.obj \
   treelay.obj \
   wizard.obj
@@ -189,6 +191,7 @@ COMMONOBJS = \
   ..\common\$D\cmdline.obj \
   ..\common\$D\cmndata.obj \
   ..\common\$D\config.obj \
   ..\common\$D\cmdline.obj \
   ..\common\$D\cmndata.obj \
   ..\common\$D\config.obj \
+  ..\common\$D\cshelp.obj \
   ..\common\$D\ctrlcmn.obj \
   ..\common\$D\ctrlsub.obj \
   ..\common\$D\datetime.obj \
   ..\common\$D\ctrlcmn.obj \
   ..\common\$D\ctrlsub.obj \
   ..\common\$D\datetime.obj \
@@ -300,6 +303,7 @@ COMLIBOBJS1 = \
   cmdline.obj \
   cmndata.obj \
   config.obj \
   cmdline.obj \
   cmndata.obj \
   config.obj \
+  cshelp.obj \
   ctrlcmn.obj \
   ctrlsub.obj \
   datetime.obj \
   ctrlcmn.obj \
   ctrlsub.obj \
   datetime.obj \
@@ -336,10 +340,10 @@ COMLIBOBJS1 = \
   helpbase.obj \
   http.obj \
   imagall.obj \
   helpbase.obj \
   http.obj \
   imagall.obj \
-  imagbmp.obj \
-  image.obj
+  imagbmp.obj
 
 COMLIBOBJS2 = \
 
 COMLIBOBJS2 = \
+  image.obj \
   imaggif.obj \
   imagjpeg.obj \
   imagpcx.obj \
   imaggif.obj \
   imagjpeg.obj \
   imagpcx.obj \
@@ -380,10 +384,10 @@ COMLIBOBJS2 = \
   string.obj \
   tbarbase.obj \
   textcmn.obj \
   string.obj \
   tbarbase.obj \
   textcmn.obj \
-  textfile.obj \
-  timercmn.obj
+  textfile.obj
 
 COMLIBOBJS3 = \
 
 COMLIBOBJS3 = \
+  timercmn.obj \
   tokenzr.obj \
   treebase.obj \
   txtstrm.obj \
   tokenzr.obj \
   treebase.obj \
   txtstrm.obj \
@@ -631,6 +635,7 @@ $(COMLIBOBJS1):
   copy ..\common\$D\cmdline.obj
   copy ..\common\$D\cmndata.obj
   copy ..\common\$D\config.obj
   copy ..\common\$D\cmdline.obj
   copy ..\common\$D\cmndata.obj
   copy ..\common\$D\config.obj
+  copy ..\common\$D\cshelp.obj
   copy ..\common\$D\ctrlcmn.obj
   copy ..\common\$D\ctrlsub.obj
   copy ..\common\$D\datetime.obj
   copy ..\common\$D\ctrlcmn.obj
   copy ..\common\$D\ctrlsub.obj
   copy ..\common\$D\datetime.obj
@@ -668,9 +673,9 @@ $(COMLIBOBJS1):
   copy ..\common\$D\http.obj
   copy ..\common\$D\imagall.obj
   copy ..\common\$D\imagbmp.obj
   copy ..\common\$D\http.obj
   copy ..\common\$D\imagall.obj
   copy ..\common\$D\imagbmp.obj
-  copy ..\common\$D\image.obj
 
 $(COMLIBOBJS2):
 
 $(COMLIBOBJS2):
+  copy ..\common\$D\image.obj
   copy ..\common\$D\imaggif.obj
   copy ..\common\$D\imagjpeg.obj
   copy ..\common\$D\imagpcx.obj
   copy ..\common\$D\imaggif.obj
   copy ..\common\$D\imagjpeg.obj
   copy ..\common\$D\imagpcx.obj
@@ -712,9 +717,9 @@ $(COMLIBOBJS2):
   copy ..\common\$D\tbarbase.obj
   copy ..\common\$D\textcmn.obj
   copy ..\common\$D\textfile.obj
   copy ..\common\$D\tbarbase.obj
   copy ..\common\$D\textcmn.obj
   copy ..\common\$D\textfile.obj
-  copy ..\common\$D\timercmn.obj
 
 $(COMLIBOBJS3):
 
 $(COMLIBOBJS3):
+  copy ..\common\$D\timercmn.obj
   copy ..\common\$D\tokenzr.obj
   copy ..\common\$D\treebase.obj
   copy ..\common\$D\txtstrm.obj
   copy ..\common\$D\tokenzr.obj
   copy ..\common\$D\treebase.obj
   copy ..\common\$D\txtstrm.obj
@@ -769,6 +774,7 @@ $(GENLIBOBJS):
   copy ..\generic\$D\tbarsmpl.obj
   copy ..\generic\$D\textdlgg.obj
   copy ..\generic\$D\tipdlg.obj
   copy ..\generic\$D\tbarsmpl.obj
   copy ..\generic\$D\textdlgg.obj
   copy ..\generic\$D\tipdlg.obj
+  copy ..\generic\$D\tipwin.obj
   copy ..\generic\$D\treectlg.obj
   copy ..\generic\$D\treelay.obj
   copy ..\generic\$D\wizard.obj
   copy ..\generic\$D\treectlg.obj
   copy ..\generic\$D\treelay.obj
   copy ..\generic\$D\wizard.obj
index 9bfe35f46feab1663433750a8fbfd5256c4ac366..4ae4063779875044af997ddaf3e70a47cfd99689 100644 (file)
@@ -755,6 +755,31 @@ void wxDisplaySize(
     *pHeight = (int)lHeight;
 }
 
     *pHeight = (int)lHeight;
 }
 
+void wxDisplaySizeMM(
+  int*                              pWidth
+, int*                              pHeight
+)
+{
+    HPS                             hpsScreen;
+    HDC                             hdcScreen;
+
+    hpsScreen = ::WinGetScreenPS(HWND_DESKTOP);
+    hdcScreen = ::GpiQueryDevice(hpsScreen);
+
+    if (pWidth)
+        ::DevQueryCaps( hdcScreen
+                       ,CAPS_HORIZONTAL_RESOLUTION
+                       ,1L
+                       ,(PLONG)pWidth
+                      );
+    if (pHeight)
+        ::DevQueryCaps( hdcScreen
+                       ,CAPS_VERTICAL_RESOLUTION
+                       ,1L
+                       ,(PLONG)pHeight
+                      );
+}
+
 bool wxDirExists(
   const wxString&                   rDir
 )
 bool wxDirExists(
   const wxString&                   rDir
 )
index 1618cb714a6889b56106e69be5a6215e5af669f5..9d0e828f52ae0c9d8c570bc51237c939a71a957f 100644 (file)
@@ -1718,9 +1718,14 @@ void wxWindow::UnpackCommand(
 , WORD*                             pCmd
 )
 {
 , WORD*                             pCmd
 )
 {
+/*
     *pId = LOWORD(wParam);
     *phWnd = (WXHWND)lParam;
     *pCmd = HIWORD(wParam);
     *pId = LOWORD(wParam);
     *phWnd = (WXHWND)lParam;
     *pCmd = HIWORD(wParam);
+*/
+    *pId = LOWORD(wParam);
+    *phWnd = NULL;  // or may be GetHWND() ?
+    *pCmd = LOWORD(lParam);
 } // end of wxWindow::UnpackCommand
 
 void wxWindow::UnpackActivate(
 } // end of wxWindow::UnpackCommand
 
 void wxWindow::UnpackActivate(
@@ -1802,7 +1807,7 @@ MRESULT EXPENTRY wxWndProc(
         pWnd->SetHWND((WXHWND)hWnd);
     }
 
         pWnd->SetHWND((WXHWND)hWnd);
     }
 
-    MRESULT                         rc = (MRESULT)FALSE;
+    MRESULT                         rc = (MRESULT)0;
 
 
     //
 
 
     //
@@ -1821,6 +1826,7 @@ MRESULT EXPENTRY wxWndProc(
         else
             rc = ::WinDefWindowProc(hWnd, ulMsg, wParam, lParam);
     }
         else
             rc = ::WinDefWindowProc(hWnd, ulMsg, wParam, lParam);
     }
+
     return rc;
 } // end of wxWndProc
 
     return rc;
 } // end of wxWndProc
 
@@ -1881,7 +1887,6 @@ MRESULT wxWindow::OS2WindowProc(
         case WM_DESTROY:
              HandleDestroy();
              bProcessed = TRUE;
         case WM_DESTROY:
              HandleDestroy();
              bProcessed = TRUE;
-//             delete this;
              break;
 
         case WM_MOVE:
              break;
 
         case WM_MOVE:
@@ -2337,10 +2342,10 @@ bool wxWindow::OS2Create(
 {
     ERRORID                         vError;
     wxString                        sError;
 {
     ERRORID                         vError;
     wxString                        sError;
-    long                            lX1      = (long)CW_USEDEFAULT;
+    long                            lX1      = 0L;
     long                            lY1      = 0L;
     long                            lY1      = 0L;
-    long                            lWidth1  = (long)CW_USEDEFAULT;
-    long                            lHeight1 = 100L;
+    long                            lWidth1  = 20L;
+    long                            lHeight1 = 20L;
     int                             nControlId = 0;
 
     //
     int                             nControlId = 0;
 
     //
@@ -2426,7 +2431,7 @@ bool wxWindow::OS2Create(
     wxAssociateWinWithHandle((HWND)m_hWnd
                              ,this
                             );
     wxAssociateWinWithHandle((HWND)m_hWnd
                              ,this
                             );
-    //
+    // 
     // Now need to subclass window.
     //
 
     // Now need to subclass window.
     //