]> git.saurik.com Git - wxWidgets.git/commitdiff
Sizing fixes according to patch #1523304.
authorStefan Neis <Stefan.Neis@t-online.de>
Wed, 19 Jul 2006 20:52:06 +0000 (20:52 +0000)
committerStefan Neis <Stefan.Neis@t-online.de>
Wed, 19 Jul 2006 20:52:06 +0000 (20:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/os2/spinbutt.cpp
src/os2/spinctrl.cpp

index 0c25a24f01db2a2ad6aafbc6885fdea6d578abbd..c176baa1419049717574e1ef8a87c3fb69c2fa51 100644 (file)
@@ -118,12 +118,8 @@ bool wxSpinButton::Create(
     ::WinQueryWindowPos(m_hWnd, &vSwp);
     SetXComp(vSwp.x);
     SetYComp(vSwp.y-5); // compensate for the associated TextControl border
-    wxFont*                          pTextFont = new wxFont( 10
-                                                            ,wxMODERN
-                                                            ,wxNORMAL
-                                                            ,wxNORMAL
-                                                           );
-    SetFont(*pTextFont);
+
+    SetFont(*wxSMALL_FONT);
     //
     // For OS/2 we want to hide the text portion so we can substitute an
     // independent text ctrl in its place.
@@ -144,7 +140,6 @@ bool wxSpinButton::Create(
     ::WinSetWindowULong(GetHwnd(), QWL_USER, (LONG)this);
     fnWndProcSpinCtrl = (WXFARPROC)::WinSubclassWindow(m_hWnd, (PFNWP)wxSpinCtrlWndProc);
 #endif
-    delete pTextFont;
     return TRUE;
 } // end of wxSpinButton::Create
 
@@ -159,12 +154,12 @@ wxSpinButton::~wxSpinButton()
 wxSize wxSpinButton::DoGetBestSize() const
 {
     //
-    // OS/2 PM does not really have system metrics so we'll just set  it to
-    // 26x20 which is the size of the buttons and the borders.
-    // Also we have no horizontal spin buttons.
+    // OS/2 PM does not really have system metrics so we'll just set it to
+    // a square based on its height.
     //
-    wxSize best(26,20);
-    return best;
+    RECTL   vRect;
+    ::WinQueryWindowRect(GetHwnd(),&vRect);
+    return wxSize(vRect.yTop,vRect.yTop);
 } // end of wxSpinButton::DoGetBestSize
 
 // ----------------------------------------------------------------------------
index a7da77ea4ea0d72c8bd6eb3f191bee6bc6364015..a6048ce89c5a53fb413bd2ed3daa91f76509e00e 100644 (file)
@@ -171,15 +171,10 @@ bool wxSpinCtrl::Create( wxWindow*       pParent,
     m_hWndBuddy = m_hWnd; // One in the same for OS/2
     if(pParent)
         pParent->AddChild((wxSpinButton *)this);
-    wxFont*                          pTextFont = new wxFont( 10
-                                                            ,wxMODERN
-                                                            ,wxNORMAL
-                                                            ,wxNORMAL
-                                                           );
-    SetFont(*pTextFont);
-    ::WinQueryWindowPos(m_hWnd, &vSwp);
-    SetXComp(vSwp.x);
-    SetYComp(vSwp.y);
+
+    SetFont(*wxSMALL_FONT);
+    SetXComp(0);
+    SetYComp(0);
     SetSize( rPos.x
             ,rPos.y
             ,rSize.x
@@ -198,7 +193,6 @@ bool wxSpinCtrl::Create( wxWindow*       pParent,
     ::WinSetWindowULong(GetHwnd(), QWL_USER, (LONG)this);
     fnWndProcSpinCtrl = (WXFARPROC)::WinSubclassWindow(m_hWnd, (PFNWP)wxSpinCtrlWndProc);
     m_svAllSpins.Add(this);
-    delete pTextFont;
     return true;
 } // end of wxSpinCtrl::Create
 
@@ -215,7 +209,7 @@ wxSize wxSpinCtrl::DoGetBestSize() const
                   ,&nHeight
                   ,&vFont
                  );
-    nHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nHeight);
+    nHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nHeight)+4;
 
     if (vSizeBtn.y < nHeight)
     {
@@ -232,13 +226,7 @@ void wxSpinCtrl::DoGetPosition(
 , int*                              pnY
 ) const
 {
-    WXHWND                          hWnd = GetHWND();
-
-    wxConstCast(this, wxSpinCtrl)->m_hWnd = m_hWndBuddy;
-    wxSpinButton::DoGetPosition( pnX
-                                ,pnY
-                               );
-    wxConstCast(this, wxSpinCtrl)->m_hWnd = hWnd;
+    wxSpinButton::DoGetPosition( pnX,pnY );
 } // end of wxpinCtrl::DoGetPosition
 
 void wxSpinCtrl::DoGetSize(