]> git.saurik.com Git - wxWidgets.git/commitdiff
Tweaks to the generic scpinctrl to handle layouts on wxMac better and
authorRobin Dunn <robin@alldunn.com>
Sat, 15 May 2004 19:21:55 +0000 (19:21 +0000)
committerRobin Dunn <robin@alldunn.com>
Sat, 15 May 2004 19:21:55 +0000 (19:21 +0000)
fixed alignment of the spinbutton.  Also, since the generic spinctrl
is used then the generic header should be included.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/spinctrl.h
src/generic/spinctlg.cpp

index ce1b7f355301a9da494d18c1fd39bd9446e00a49..38ff4a0c592ff1d64c8e8574edbc4ba1c3777933 100644 (file)
@@ -64,7 +64,7 @@ protected:
 #elif defined(__WXMOTIF__)
     #include "wx/generic/spinctlg.h"
 #elif defined(__WXMAC__)
 #elif defined(__WXMOTIF__)
     #include "wx/generic/spinctlg.h"
 #elif defined(__WXMAC__)
-    #include "wx/mac/spinctrl.h"
+    #include "wx/generic/spinctlg.h"
 #elif defined(__WXCOCOA__)
     #include "wx/generic/spinctlg.h"
 #endif // platform
 #elif defined(__WXCOCOA__)
     #include "wx/generic/spinctlg.h"
 #endif // platform
index 91ae4c9f5f132f0da906d199b551957ce953913f..ff33ce7494194fa804cf0a1dbc60d0f65491920c 100644 (file)
 // ----------------------------------------------------------------------------
 
 // the margin between the text control and the spin
 // ----------------------------------------------------------------------------
 
 // the margin between the text control and the spin
+#ifdef __WXMAC__
+static const wxCoord MARGIN = 4;
+#else
 static const wxCoord MARGIN = 2;
 static const wxCoord MARGIN = 2;
+#endif
 
 // ----------------------------------------------------------------------------
 // wxSpinCtrlText: text control used by spin control
 
 // ----------------------------------------------------------------------------
 // wxSpinCtrlText: text control used by spin control
@@ -58,6 +62,9 @@ public:
         : wxTextCtrl(spin->GetParent(), -1, value)
     {
         m_spin = spin;
         : wxTextCtrl(spin->GetParent(), -1, value)
     {
         m_spin = spin;
+        
+        // remove the default minsize, the spinctrl will have one instead
+        SetSizeHints(-1,-1);
     }
 
 protected:
     }
 
 protected:
@@ -104,6 +111,9 @@ public:
         m_spin = spin;
 
         SetWindowStyle(style | wxSP_VERTICAL);
         m_spin = spin;
 
         SetWindowStyle(style | wxSP_VERTICAL);
+
+        // remove the default minsize, the spinctrl will have one instead
+        SetSizeHints(-1,-1);
     }
 
 protected:
     }
 
 protected:
@@ -174,24 +184,21 @@ bool wxSpinCtrl::Create(wxWindow *parent,
             initial = l;
     }
 
             initial = l;
     }
 
-    SetBackgroundColour(*wxRED);
     m_text = new wxSpinCtrlText(this, value);
     m_btn = new wxSpinCtrlButton(this, style);
     m_text = new wxSpinCtrlText(this, value);
     m_btn = new wxSpinCtrlButton(this, style);
-
+        
     m_btn->SetRange(min, max);
     m_btn->SetValue(initial);
 #ifdef __WXMAC__
     wxSize csize = size ;
     if ( size.y == -1 ) {
     m_btn->SetRange(min, max);
     m_btn->SetValue(initial);
 #ifdef __WXMAC__
     wxSize csize = size ;
     if ( size.y == -1 ) {
-      csize.y = m_text->GetSize().y ;
+      csize.y = m_text->GetSize().y;
     }
     }
-    DoSetSize(pos.x, pos.y, csize.x, csize.y);
+    SetBestSize(csize);
 #else
 #else
-    wxSize best = GetBestSize();
-    if ( size.x != -1 ) best.x = size.x;
-    if ( size.y != -1 ) best.y = size.y;
-    DoSetSize(pos.x, pos.y, best.x, best.y);
+    SetBestSize(size);
 #endif
 #endif
+    
     // have to disable this window to avoid interfering it with message
     // processing to the text and the button... but pretend it is enabled to
     // make IsEnabled() return TRUE
     // have to disable this window to avoid interfering it with message
     // processing to the text and the button... but pretend it is enabled to
     // make IsEnabled() return TRUE
@@ -209,11 +216,13 @@ bool wxSpinCtrl::Create(wxWindow *parent,
 
 wxSpinCtrl::~wxSpinCtrl()
 {
 
 wxSpinCtrl::~wxSpinCtrl()
 {
-    // delete the controls now, don't leave them alive even though they woudl
+    // delete the controls now, don't leave them alive even though they would
     // still be eventually deleted by our parent - but it will be too late, the
     // user code expects them to be gone now
     delete m_text;
     // still be eventually deleted by our parent - but it will be too late, the
     // user code expects them to be gone now
     delete m_text;
+    m_text = NULL ;
     delete m_btn;
     delete m_btn;
+    m_btn = NULL ;
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
@@ -237,11 +246,7 @@ void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height)
 
     wxCoord wText = width - sizeBtn.x;
     m_text->SetSize(x, y, wText, height);
 
     wxCoord wText = width - sizeBtn.x;
     m_text->SetSize(x, y, wText, height);
-#ifdef __WXMAC__
-    m_btn->SetSize(x + wText + MARGIN, y, -1, -1);
-#else
     m_btn->SetSize(x + wText + MARGIN, y, -1, height);
     m_btn->SetSize(x + wText + MARGIN, y, -1, height);
-#endif
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------