]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/spinctrl.cpp
Fix for crash when opening empty node
[wxWidgets.git] / src / os2 / spinctrl.cpp
index 93fb4fb140e80da6b97a96d816292eb9fec8e708..2aeef5f3d78cd26f6a432c0b9483500f10115c66 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msw/spinctrl.cpp
-// Purpose:     wxSpinCtrl class implementation for Win32
+// Name:        src/os2/spinctrl.cpp
+// Purpose:     wxSpinCtrl class implementation for OS/2
 // Author:      David Webster
 // Modified by:
 // Created:     10/15/99
 // Author:      David Webster
 // Modified by:
 // Created:     10/15/99
 // declarations
 // ============================================================================
 
 // declarations
 // ============================================================================
 
-
-#ifdef __GNUG__
-    #pragma implementation "spinctrlbase.h"
-    #pragma implementation "spinctrl.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -128,8 +122,6 @@ bool wxSpinCtrl::Create( wxWindow*       pParent,
                          int             nInitial,
                          const wxString& rsName )
 {
                          int             nInitial,
                          const wxString& rsName )
 {
-    SWP                             vSwp;
-
     if (vId == wxID_ANY)
         m_windowId = NewControlId();
     else
     if (vId == wxID_ANY)
         m_windowId = NewControlId();
     else
@@ -140,7 +132,7 @@ bool wxSpinCtrl::Create( wxWindow*       pParent,
     SetParent(pParent);
     m_windowStyle      = lStyle;
 
     SetParent(pParent);
     m_windowStyle      = lStyle;
 
-    int                             lSstyle = 0L;
+    int lSstyle = 0L;
 
     lSstyle = WS_VISIBLE      |
               WS_TABSTOP      |
 
     lSstyle = WS_VISIBLE      |
               WS_TABSTOP      |
@@ -177,20 +169,11 @@ bool wxSpinCtrl::Create( wxWindow*       pParent,
     m_hWndBuddy = m_hWnd; // One in the same for OS/2
     if(pParent)
         pParent->AddChild((wxSpinButton *)this);
     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);
-    SetSize( rPos.x
-            ,rPos.y
-            ,rSize.x
-            ,rSize.y
-           );
+
+    SetFont(*wxSMALL_FONT);
+    SetXComp(0);
+    SetYComp(0);
+    SetSize( rPos.x, rPos.y, rSize.x, rSize.y );
 
     SetRange(nMin, nMax);
     SetValue(nInitial);
 
     SetRange(nMin, nMax);
     SetValue(nInitial);
@@ -204,7 +187,6 @@ bool wxSpinCtrl::Create( wxWindow*       pParent,
     ::WinSetWindowULong(GetHwnd(), QWL_USER, (LONG)this);
     fnWndProcSpinCtrl = (WXFARPROC)::WinSubclassWindow(m_hWnd, (PFNWP)wxSpinCtrlWndProc);
     m_svAllSpins.Add(this);
     ::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
 
     return true;
 } // end of wxSpinCtrl::Create
 
@@ -221,7 +203,7 @@ wxSize wxSpinCtrl::DoGetBestSize() const
                   ,&nHeight
                   ,&vFont
                  );
                   ,&nHeight
                   ,&vFont
                  );
-    nHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nHeight);
+    nHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nHeight)+4;
 
     if (vSizeBtn.y < nHeight)
     {
 
     if (vSizeBtn.y < nHeight)
     {
@@ -238,13 +220,7 @@ void wxSpinCtrl::DoGetPosition(
 , int*                              pnY
 ) const
 {
 , 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(
 } // end of wxpinCtrl::DoGetPosition
 
 void wxSpinCtrl::DoGetSize(
@@ -480,7 +456,7 @@ void wxSpinCtrl::SetValue(
 {
     long                            lVal;
 
 {
     long                            lVal;
 
-    lVal = atol((char*)rsText.c_str());
+    lVal = atol(rsText.c_str());
     wxSpinButton::SetValue(lVal);
 } // end of wxSpinCtrl::SetValue
 
     wxSpinButton::SetValue(lVal);
 } // end of wxSpinCtrl::SetValue