]> git.saurik.com Git - wxWidgets.git/commitdiff
Initial/Best size fixes for wxRadioBox, wxSlider and wxStaticText on wxMSW
authorRobin Dunn <robin@alldunn.com>
Mon, 3 May 2004 23:08:55 +0000 (23:08 +0000)
committerRobin Dunn <robin@alldunn.com>
Mon, 3 May 2004 23:08:55 +0000 (23:08 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/radiobox.h
src/msw/radiobox.cpp
src/msw/slider95.cpp
src/msw/stattext.cpp

index 698bde3d7a4c77164fbe047251bac2ff26f6a718..49c1cf07710d631d89bccf6180429286e8d45401 100644 (file)
@@ -128,6 +128,9 @@ public:
         { SetBackgroundColour(bg); }
 
 protected:
+    // we can't compute our best size before the items are added to the control
+    virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { }
+
     // subclass one radio button
     void SubclassRadioButton(WXHWND hWndBtn);
 
index 29943e25c8e2f8110bf64f6e874874fa69521331..c42ccbd12c316706e4e9c6a068940c4647342783 100644 (file)
@@ -346,9 +346,11 @@ bool wxRadioBox::Create(wxWindow *parent,
                          (HMENU)NewControlId(), wxGetInstance(), NULL);
 
     SetSelection(0);
-
     SetSize(pos.x, pos.y, size.x, size.y);
 
+    // Now that we have items determine what is the best size and set it.
+    SetBestSize(size);
+    
     return TRUE;
 }
 
index 3853c604471447229b369d893339fd0deb0351a6..36e29a5da77c329abc84bdc7265be72379b96b0f 100644 (file)
@@ -143,11 +143,6 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
     m_windowStyle = style;
     m_tickFreq = 0;
 
-    int x = pos.x;
-    int y = pos.y;
-    int width = size.x;
-    int height = size.y;
-
     long msStyle = 0;
     long wstyle = 0;
 
@@ -272,9 +267,13 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
         }
     }
 
-    SetSize(x, y, width, height);
+    SetSize(pos.x, pos.y, size.x, size.y);
     SetValue(value);
 
+    // SetInitialBestSize is not called since we don't call MSWCreateControl
+    // for this control, so call SetBestSize here instead.
+    SetBestSize(size);
+
     return TRUE;
 }
 
index ad7ef96d15385f3fcde57f89ee2d03360f13a078..12b740301880e7a625246ba2184a47363b9bfa0a 100644 (file)
@@ -216,6 +216,7 @@ void wxStaticText::SetLabel(const wxString& label)
     if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
     {
         DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+        SetSizeHints(GetSize());
     }
 }
 
@@ -229,6 +230,7 @@ bool wxStaticText::SetFont(const wxFont& font)
     if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
     {
         DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+        SetSizeHints(GetSize());
     }
 
     return ret;