]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/spinbutt.cpp
using on all OSX variants
[wxWidgets.git] / src / os2 / spinbutt.cpp
index 0c25a24f01db2a2ad6aafbc6885fdea6d578abbd..533b209728ae3466a5c77174d234491e21ad510e 100644 (file)
@@ -63,8 +63,11 @@ bool wxSpinButton::Create(
         m_windowId = NewControlId();
     else
         m_windowId = vId;
-    m_backgroundColour = pParent->GetBackgroundColour();
-    m_foregroundColour = pParent->GetForegroundColour();
+    if (pParent)
+    {
+        m_backgroundColour = pParent->GetBackgroundColour();
+        m_foregroundColour = pParent->GetForegroundColour();
+    }
     SetName(rsName);
     SetParent(pParent);
     m_windowStyle      = lStyle;
@@ -118,12 +121,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 +143,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 +157,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
 
 // ----------------------------------------------------------------------------
@@ -199,7 +197,7 @@ bool wxSpinButton::OS2OnScroll( int    WXUNUSED(nOrientation),
 
     vEvent.SetPosition(nVal);
     vEvent.SetEventObject(this);
-    return(GetEventHandler()->ProcessEvent(vEvent));
+    return(HandleWindowEvent(vEvent));
 } // end of wxSpinButton::OS2OnScroll
 
 bool wxSpinButton::OS2Command( WXUINT WXUNUSED(uCmd),