]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxControl::PostCreation for wxGTK. Moved calls to
authorRobin Dunn <robin@alldunn.com>
Tue, 4 May 2004 07:09:32 +0000 (07:09 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 4 May 2004 07:09:32 +0000 (07:09 +0000)
InheritAttributes and ApplyWidgetStyle there, and added a call to
SetInitialBestSize.   Also removed calls to Show from Create since
PostCreation already does it.

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

46 files changed:
include/wx/gtk/control.h
include/wx/gtk1/control.h
src/gtk/bmpbuttn.cpp
src/gtk/button.cpp
src/gtk/checkbox.cpp
src/gtk/choice.cpp
src/gtk/combobox.cpp
src/gtk/control.cpp
src/gtk/gauge.cpp
src/gtk/listbox.cpp
src/gtk/notebook.cpp
src/gtk/radiobox.cpp
src/gtk/radiobut.cpp
src/gtk/scrolbar.cpp
src/gtk/slider.cpp
src/gtk/spinbutt.cpp
src/gtk/spinctrl.cpp
src/gtk/statbmp.cpp
src/gtk/statbox.cpp
src/gtk/statline.cpp
src/gtk/stattext.cpp
src/gtk/tbargtk.cpp
src/gtk/textctrl.cpp
src/gtk/tglbtn.cpp
src/gtk1/bmpbuttn.cpp
src/gtk1/button.cpp
src/gtk1/checkbox.cpp
src/gtk1/choice.cpp
src/gtk1/combobox.cpp
src/gtk1/control.cpp
src/gtk1/gauge.cpp
src/gtk1/listbox.cpp
src/gtk1/notebook.cpp
src/gtk1/radiobox.cpp
src/gtk1/radiobut.cpp
src/gtk1/scrolbar.cpp
src/gtk1/slider.cpp
src/gtk1/spinbutt.cpp
src/gtk1/spinctrl.cpp
src/gtk1/statbmp.cpp
src/gtk1/statbox.cpp
src/gtk1/statline.cpp
src/gtk1/stattext.cpp
src/gtk1/tbargtk.cpp
src/gtk1/textctrl.cpp
src/gtk1/tglbtn.cpp

index 623133c461bf6fc3d2efb546885c2ec6476041ec..38b277a8587debc95b2019b7aa826f70483610b9 100644 (file)
@@ -55,6 +55,8 @@ public:
 
 protected:
     virtual wxSize DoGetBestSize() const;
+    void PostCreation(const wxSize& size);
+
 #ifdef __WXGTK20__
     wxString PrepareLabelMnemonics( const wxString &label ) const;
 #endif
index 623133c461bf6fc3d2efb546885c2ec6476041ec..38b277a8587debc95b2019b7aa826f70483610b9 100644 (file)
@@ -55,6 +55,8 @@ public:
 
 protected:
     virtual wxSize DoGetBestSize() const;
+    void PostCreation(const wxSize& size);
+
 #ifdef __WXGTK20__
     wxString PrepareLabelMnemonics( const wxString &label ) const;
 #endif
index 2c7762f095f50ce27ca3ccd6c182dabbbc6fc92f..17bc64454f6dc88505e69eddf4d3827d2e10c753 100644 (file)
@@ -149,13 +149,6 @@ bool wxBitmapButton::Create( wxWindow *parent,
 
     if (m_bmpNormal.Ok())
     {
-        wxSize newSize = size;
-        wxSize bestSize = DoGetBestSize();
-        if (newSize.x == -1)
-            newSize.x = bestSize.x;
-        if (newSize.y == -1)
-            newSize.y = bestSize.y;
-        SetSize( newSize.x, newSize.y );
         OnSetBitmap();
     }
 
@@ -173,10 +166,7 @@ bool wxBitmapButton::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index bc4dff97689bc7730ddf494f5afd5592702bba60..1fc794b7636fd7f24e84e0b957ca1611a37b7925 100644 (file)
@@ -135,19 +135,7 @@ bool wxButton::Create(  wxWindow *parent, wxWindowID id, const wxString &label,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize best_size( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = best_size.x;
-    if (new_size.y == -1)
-        new_size.y = best_size.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-
-    SetSize( new_size );
+    PostCreation(size);
 
     return TRUE;
 }
index 2a7d0437bf6b44c4c240e42a8f7ca642c2b22e0f..33437d0b08207032d8ce9cf5f29e23ef06d803ef 100644 (file)
@@ -120,19 +120,7 @@ bool wxCheckBox::Create(wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 97eb8e120328d6edf4420f2c40eb70f1774fd69e..9c63f8502ff7e0eacd4bb65878359d3e5485853b 100644 (file)
@@ -122,12 +122,8 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    SetBestSize(size);
-
-    Show( TRUE );
+    PostCreation(size);
+    SetBestSize(size); // need this too because this is a wxControlWithItems
 
     return TRUE;
 }
index 7660f4a9fa47db790490bf376103e86a2d88d512..2972a0a99858f706c304259c1687bd69836724ae 100644 (file)
@@ -171,8 +171,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
 
     m_focusWidget = combo->entry;
 
-    PostCreation();
-    InheritAttributes();
+    PostCreation(size);
 
     ConnectWidget( combo->button );
 
@@ -189,24 +188,12 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
     gtk_signal_connect( GTK_OBJECT(combo->list), "select-child",
       GTK_SIGNAL_FUNC(gtk_combo_select_child_callback), (gpointer)this );
 
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if (new_size.y > size_best.y)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-    {
-        SetSize( new_size.x, new_size.y );
-
-        // This is required for tool bar support
-        gtk_widget_set_usize( m_widget, new_size.x, new_size.y );
-    }
-
-    Show( TRUE );
+    SetBestSize(size); // need this too because this is a wxControlWithItems
 
+    // This is required for tool bar support
+    wxSize setsize = GetSize();
+    gtk_widget_set_usize( m_widget, setsize.x, setsize.y );
+    
     return TRUE;
 }
 
index 82f10af912671f0dd764b08a1f974f23e050bb29..8e3e23ee5756e97f49cfe2989957bb73497bfd27 100644 (file)
@@ -86,6 +86,16 @@ wxSize wxControl::DoGetBestSize() const
     return wxSize(req.width, req.height);
 }
 
+
+void wxControl::PostCreation(const wxSize& size)
+{
+    wxWindow::PostCreation();
+    InheritAttributes();
+    ApplyWidgetStyle();
+    SetInitialBestSize(size);
+}
+
+
 #ifdef __WXGTK20__
 wxString wxControl::PrepareLabelMnemonics( const wxString &label ) const
 {
index accbf868897740be66a9be6542979a246ae99045..54360ce314f8da049eef15184831e8535c28b38b 100644 (file)
@@ -55,11 +55,9 @@ bool wxGauge::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
+    PostCreation(size);
     SetBestSize(size);
     
-    Show( TRUE );
-
     return TRUE;
 }
 
index a4304cfe0195769a69853fa0d64448a61c1e1ca6..3436dae15661ebf53b883a90dff336f93b910dc5 100644 (file)
@@ -404,16 +404,10 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
         DoAppend(choices[i]);
     }
 
-    // call it after appending the strings to the listbox, otherwise it doesn't
-    // work correctly
-    SetBestSize( size );
-
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
+    SetBestSize(size); // need this too because this is a wxControlWithItems
 
     return TRUE;
 }
index ef02dbb7564d181bfd198f0c96eb47538dbe4c53..25edf2c1105058f75d15fe9c82dcc7659dc1b4b7 100644 (file)
@@ -365,15 +365,13 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
     gtk_signal_connect( GTK_OBJECT(m_widget), "key_press_event",
       GTK_SIGNAL_FUNC(gtk_notebook_key_press_callback), (gpointer)this );
 
-    PostCreation();
+    PostCreation(size);
 
     SetFont( parent->GetFont() );
 
     gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
                             GTK_SIGNAL_FUNC(gtk_notebook_realized_callback), (gpointer) this );
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index 551fc826aacd34577d8d5f3820cfd920d6dbd00a..37c9f529f2ea800779d6bbcc102239402925b545 100644 (file)
@@ -246,16 +246,10 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title,
     bool wasShown = IsShown();
     if ( wasShown )
         Hide(); // prevent PostCreation() from showing us
-    PostCreation();
-    InheritAttributes();
-
-    ApplyWidgetStyle();
 
     SetLabel( title );
 
-    SetFont( parent->GetFont() );
-
-    SetBestSize( size );
+    PostCreation(size);
 
     if ( wasShown )
         Show();
index c8c6c53ecae61a8df1e1a9a9f45848d3ebecef3b..1fd39b77fba8688504a2b5e62c0181ed5c222377 100644 (file)
@@ -128,19 +128,7 @@ bool wxRadioButton::Create( wxWindow *parent,
        
     m_parent->DoAddChild( this );
   
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-        
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index edc4f34d719e579a5ad505dd4400523c2b967c9c..4aa408af1f440c51ac5a7e496176669d8600dc2a 100644 (file)
@@ -179,12 +179,7 @@ bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    SetBestSize(size);
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index f3ab24213f9f949e8eda96895e50e4a8b61325c5..2dcc57d58ec2b56d374885209260935a3f0bbfeb 100644 (file)
@@ -141,10 +141,7 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 2d5eb9650cd5acf8b9447475eec714eef6d5c6b4..f0db6cb58b897f76b7d2fe3cd2b9a6607c50b35c 100644 (file)
@@ -150,10 +150,7 @@ bool wxSpinButton::Create(wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(new_size);
 
     return TRUE;
 }
index a15f637dda564761191a956cf7112403f2c451f8..e5d32a1f85110deff169df24020af8c7e714a35e 100644 (file)
@@ -126,24 +126,10 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
     
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if (new_size.y > size_best.y)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
+    PostCreation(size);
 
     SetValue( value );
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index 36aba28da08b526273d1bb8441a0fd58f6db37e8..9d206950ea3ae8e26bf9f083fd0f342d94518c25 100644 (file)
@@ -54,7 +54,7 @@ void wxStaticBitmap::CreatePixmapWidget()
 
     m_focusWidget = m_widget;
 
-    PostCreation();
+    PostCreation(wxDefaultSize);
 }
 
 bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap,
@@ -78,8 +78,6 @@ bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi
         if ( m_bitmap.GetMask() )
             mask = m_bitmap.GetMask()->GetBitmap();
         m_widget = gtk_pixmap_new( m_bitmap.GetPixmap(), mask );
-
-        SetBestSize( size );
     }
     else
     {
@@ -87,7 +85,7 @@ bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi
         m_focusWidget = m_widget;
     }
 
-    PostCreation();
+    PostCreation(size);
     m_parent->DoAddChild( this );
 
     return TRUE;
index 6610fad49d89a8592efdb917baa04923f00a7502..3bf811a25be7d0b8ae87c68b2971921205d975e1 100644 (file)
@@ -66,9 +66,7 @@ bool wxStaticBox::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-
-    InheritAttributes();
+    PostCreation(size);
 
     // need to set non default alignment?
     gfloat xalign;
@@ -82,8 +80,6 @@ bool wxStaticBox::Create( wxWindow *parent,
     if ( xalign )
         gtk_frame_set_label_align(GTK_FRAME( m_widget ), xalign, 0.0);
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index d4299aa62ebfe87f1d0e11fe552757a38e968bd4..d10067f6acd179fe56bff23063ccb29b3bc73452 100644 (file)
@@ -74,9 +74,7 @@ bool wxStaticLine::Create( wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 6e0916a79a9b486e0243e950a3dd7e3dcdfbae68..7073bcd6ccafc9d431f923c1cb6caf64bdade0ec 100644 (file)
@@ -90,7 +90,7 @@ bool wxStaticText::Create(wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
+    PostCreation(size);
     
     // the bug below only happens with GTK 2
 #ifdef __WXGTK20__
@@ -109,27 +109,6 @@ bool wxStaticText::Create(wxWindow *parent,
     }
 #endif // __WXGTK20__
 
-    ApplyWidgetStyle();
-
-    InheritAttributes();
-//    wxControl::SetFont( parent->GetFont() );
-    
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-
-//     if (ShouldInheritColours())
-//     {
-//         SetBackgroundColour( parent->GetBackgroundColour() );
-//         SetForegroundColour( parent->GetForegroundColour() );
-//     }
-    Show( TRUE );
-
     return TRUE;
 }
 
@@ -168,7 +147,10 @@ void wxStaticText::SetLabel( const wxString &label )
 
     // adjust the label size to the new label unless disabled
     if (!HasFlag(wxST_NO_AUTORESIZE))
+    {
         SetSize( GetBestSize() );
+        SetSizeHints(GetSize());
+    }
 }
 
 bool wxStaticText::SetFont( const wxFont &font )
@@ -177,8 +159,10 @@ bool wxStaticText::SetFont( const wxFont &font )
 
     // adjust the label size to the new label unless disabled
     if (!HasFlag(wxST_NO_AUTORESIZE))
+    {
         SetSize( GetBestSize() );
-    
+        SetSizeHints(GetSize());
+    }
     return ret;
 }
 
index 4755e17a0e16c75c2aca7d42daf8d82f878bd9ff..61804aa0488364fa2c1195df8cf66fde3dafce75 100644 (file)
@@ -373,9 +373,7 @@ bool wxToolBar::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 648fdab6a5533b8ae68ca1a3f9dee7a3afcf9686..815c0c66ac1831ac5efc95e010abb50da11fdd39 100644 (file)
@@ -348,17 +348,7 @@ bool wxTextCtrl::Create( wxWindow *parent,
 
     m_focusWidget = m_text;
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
+    PostCreation(size);
 
     if (multi_line)
         gtk_widget_show(m_text);
@@ -461,8 +451,6 @@ bool wxTextCtrl::Create( wxWindow *parent,
     wxTextAttr attrDef( colFg, m_backgroundColour, parent->GetFont() );
     SetDefaultStyle( attrDef );
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index f18eb9d04a1961a0798ee4ed7d2a2020c0655e54..4d57e220cf5ecf7898cd670b518d70819daa73d8 100644 (file)
@@ -79,13 +79,6 @@ bool wxToggleBitmapButton::Create(wxWindow *parent, wxWindowID id,
 
     if (m_bitmap.Ok())
     {
-        wxSize newSize = size;
-        int border = (style & wxNO_BORDER) ? 4 : 10;
-        if (newSize.x == -1)
-            newSize.x = m_bitmap.GetWidth()+border;
-        if (newSize.y == -1)
-            newSize.y = m_bitmap.GetHeight()+border;
-        SetSize( newSize.x, newSize.y );
         OnSetBitmap();
     }
 
@@ -95,10 +88,7 @@ bool wxToggleBitmapButton::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild(this);
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
@@ -207,15 +197,15 @@ void wxToggleBitmapButton::OnInternalIdle()
 // Get the "best" size for this control.
 wxSize wxToggleBitmapButton::DoGetBestSize() const
 {
-    wxSize ret(wxControl::DoGetBestSize());
-   
-    if (!HasFlag(wxBU_EXACTFIT))
+    wxSize best;
+    
+    if (m_bitmap.Ok())
     {
-        if (ret.x < 80) ret.x = 80;
+        int border = HasFlag(wxNO_BORDER) ? 4 : 10;
+        best.x = m_bitmap.GetWidth()+border;
+        best.y = m_bitmap.GetHeight()+border;
     }
-    
-
-   return ret;
+    return best;
 }
 // ------------------------------------------------------------------------
 // wxToggleButton
@@ -251,19 +241,7 @@ bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
 
    m_parent->DoAddChild(this);
 
-   PostCreation();
-   InheritAttributes();
-
-   wxSize size_best(DoGetBestSize());
-   wxSize new_size(size);
-   if (new_size.x == -1)
-      new_size.x = size_best.x;
-   if (new_size.y == -1)
-      new_size.y = size_best.y;
-   if ((new_size.x != size.x) || (new_size.y != size.y))
-      SetSize(new_size.x, new_size.y);
-
-   Show(TRUE);
+   PostCreation(size);
 
    return TRUE;
 }
index 2c7762f095f50ce27ca3ccd6c182dabbbc6fc92f..17bc64454f6dc88505e69eddf4d3827d2e10c753 100644 (file)
@@ -149,13 +149,6 @@ bool wxBitmapButton::Create( wxWindow *parent,
 
     if (m_bmpNormal.Ok())
     {
-        wxSize newSize = size;
-        wxSize bestSize = DoGetBestSize();
-        if (newSize.x == -1)
-            newSize.x = bestSize.x;
-        if (newSize.y == -1)
-            newSize.y = bestSize.y;
-        SetSize( newSize.x, newSize.y );
         OnSetBitmap();
     }
 
@@ -173,10 +166,7 @@ bool wxBitmapButton::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index bc4dff97689bc7730ddf494f5afd5592702bba60..1fc794b7636fd7f24e84e0b957ca1611a37b7925 100644 (file)
@@ -135,19 +135,7 @@ bool wxButton::Create(  wxWindow *parent, wxWindowID id, const wxString &label,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize best_size( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = best_size.x;
-    if (new_size.y == -1)
-        new_size.y = best_size.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-
-    SetSize( new_size );
+    PostCreation(size);
 
     return TRUE;
 }
index 2a7d0437bf6b44c4c240e42a8f7ca642c2b22e0f..33437d0b08207032d8ce9cf5f29e23ef06d803ef 100644 (file)
@@ -120,19 +120,7 @@ bool wxCheckBox::Create(wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 97eb8e120328d6edf4420f2c40eb70f1774fd69e..9c63f8502ff7e0eacd4bb65878359d3e5485853b 100644 (file)
@@ -122,12 +122,8 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    SetBestSize(size);
-
-    Show( TRUE );
+    PostCreation(size);
+    SetBestSize(size); // need this too because this is a wxControlWithItems
 
     return TRUE;
 }
index 7660f4a9fa47db790490bf376103e86a2d88d512..2972a0a99858f706c304259c1687bd69836724ae 100644 (file)
@@ -171,8 +171,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
 
     m_focusWidget = combo->entry;
 
-    PostCreation();
-    InheritAttributes();
+    PostCreation(size);
 
     ConnectWidget( combo->button );
 
@@ -189,24 +188,12 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value,
     gtk_signal_connect( GTK_OBJECT(combo->list), "select-child",
       GTK_SIGNAL_FUNC(gtk_combo_select_child_callback), (gpointer)this );
 
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if (new_size.y > size_best.y)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-    {
-        SetSize( new_size.x, new_size.y );
-
-        // This is required for tool bar support
-        gtk_widget_set_usize( m_widget, new_size.x, new_size.y );
-    }
-
-    Show( TRUE );
+    SetBestSize(size); // need this too because this is a wxControlWithItems
 
+    // This is required for tool bar support
+    wxSize setsize = GetSize();
+    gtk_widget_set_usize( m_widget, setsize.x, setsize.y );
+    
     return TRUE;
 }
 
index 82f10af912671f0dd764b08a1f974f23e050bb29..8e3e23ee5756e97f49cfe2989957bb73497bfd27 100644 (file)
@@ -86,6 +86,16 @@ wxSize wxControl::DoGetBestSize() const
     return wxSize(req.width, req.height);
 }
 
+
+void wxControl::PostCreation(const wxSize& size)
+{
+    wxWindow::PostCreation();
+    InheritAttributes();
+    ApplyWidgetStyle();
+    SetInitialBestSize(size);
+}
+
+
 #ifdef __WXGTK20__
 wxString wxControl::PrepareLabelMnemonics( const wxString &label ) const
 {
index accbf868897740be66a9be6542979a246ae99045..54360ce314f8da049eef15184831e8535c28b38b 100644 (file)
@@ -55,11 +55,9 @@ bool wxGauge::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
+    PostCreation(size);
     SetBestSize(size);
     
-    Show( TRUE );
-
     return TRUE;
 }
 
index a4304cfe0195769a69853fa0d64448a61c1e1ca6..3436dae15661ebf53b883a90dff336f93b910dc5 100644 (file)
@@ -404,16 +404,10 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
         DoAppend(choices[i]);
     }
 
-    // call it after appending the strings to the listbox, otherwise it doesn't
-    // work correctly
-    SetBestSize( size );
-
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
+    SetBestSize(size); // need this too because this is a wxControlWithItems
 
     return TRUE;
 }
index ef02dbb7564d181bfd198f0c96eb47538dbe4c53..25edf2c1105058f75d15fe9c82dcc7659dc1b4b7 100644 (file)
@@ -365,15 +365,13 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
     gtk_signal_connect( GTK_OBJECT(m_widget), "key_press_event",
       GTK_SIGNAL_FUNC(gtk_notebook_key_press_callback), (gpointer)this );
 
-    PostCreation();
+    PostCreation(size);
 
     SetFont( parent->GetFont() );
 
     gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
                             GTK_SIGNAL_FUNC(gtk_notebook_realized_callback), (gpointer) this );
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index 551fc826aacd34577d8d5f3820cfd920d6dbd00a..37c9f529f2ea800779d6bbcc102239402925b545 100644 (file)
@@ -246,16 +246,10 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title,
     bool wasShown = IsShown();
     if ( wasShown )
         Hide(); // prevent PostCreation() from showing us
-    PostCreation();
-    InheritAttributes();
-
-    ApplyWidgetStyle();
 
     SetLabel( title );
 
-    SetFont( parent->GetFont() );
-
-    SetBestSize( size );
+    PostCreation(size);
 
     if ( wasShown )
         Show();
index c8c6c53ecae61a8df1e1a9a9f45848d3ebecef3b..1fd39b77fba8688504a2b5e62c0181ed5c222377 100644 (file)
@@ -128,19 +128,7 @@ bool wxRadioButton::Create( wxWindow *parent,
        
     m_parent->DoAddChild( this );
   
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-        
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index edc4f34d719e579a5ad505dd4400523c2b967c9c..4aa408af1f440c51ac5a7e496176669d8600dc2a 100644 (file)
@@ -179,12 +179,7 @@ bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    SetBestSize(size);
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index f3ab24213f9f949e8eda96895e50e4a8b61325c5..2dcc57d58ec2b56d374885209260935a3f0bbfeb 100644 (file)
@@ -141,10 +141,7 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 2d5eb9650cd5acf8b9447475eec714eef6d5c6b4..f0db6cb58b897f76b7d2fe3cd2b9a6607c50b35c 100644 (file)
@@ -150,10 +150,7 @@ bool wxSpinButton::Create(wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(new_size);
 
     return TRUE;
 }
index a15f637dda564761191a956cf7112403f2c451f8..e5d32a1f85110deff169df24020af8c7e714a35e 100644 (file)
@@ -126,24 +126,10 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
     
     m_parent->DoAddChild( this );
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if (new_size.y > size_best.y)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
+    PostCreation(size);
 
     SetValue( value );
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index 36aba28da08b526273d1bb8441a0fd58f6db37e8..9d206950ea3ae8e26bf9f083fd0f342d94518c25 100644 (file)
@@ -54,7 +54,7 @@ void wxStaticBitmap::CreatePixmapWidget()
 
     m_focusWidget = m_widget;
 
-    PostCreation();
+    PostCreation(wxDefaultSize);
 }
 
 bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap,
@@ -78,8 +78,6 @@ bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi
         if ( m_bitmap.GetMask() )
             mask = m_bitmap.GetMask()->GetBitmap();
         m_widget = gtk_pixmap_new( m_bitmap.GetPixmap(), mask );
-
-        SetBestSize( size );
     }
     else
     {
@@ -87,7 +85,7 @@ bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi
         m_focusWidget = m_widget;
     }
 
-    PostCreation();
+    PostCreation(size);
     m_parent->DoAddChild( this );
 
     return TRUE;
index 6610fad49d89a8592efdb917baa04923f00a7502..3bf811a25be7d0b8ae87c68b2971921205d975e1 100644 (file)
@@ -66,9 +66,7 @@ bool wxStaticBox::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-
-    InheritAttributes();
+    PostCreation(size);
 
     // need to set non default alignment?
     gfloat xalign;
@@ -82,8 +80,6 @@ bool wxStaticBox::Create( wxWindow *parent,
     if ( xalign )
         gtk_frame_set_label_align(GTK_FRAME( m_widget ), xalign, 0.0);
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index d4299aa62ebfe87f1d0e11fe552757a38e968bd4..d10067f6acd179fe56bff23063ccb29b3bc73452 100644 (file)
@@ -74,9 +74,7 @@ bool wxStaticLine::Create( wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 6e0916a79a9b486e0243e950a3dd7e3dcdfbae68..7073bcd6ccafc9d431f923c1cb6caf64bdade0ec 100644 (file)
@@ -90,7 +90,7 @@ bool wxStaticText::Create(wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
+    PostCreation(size);
     
     // the bug below only happens with GTK 2
 #ifdef __WXGTK20__
@@ -109,27 +109,6 @@ bool wxStaticText::Create(wxWindow *parent,
     }
 #endif // __WXGTK20__
 
-    ApplyWidgetStyle();
-
-    InheritAttributes();
-//    wxControl::SetFont( parent->GetFont() );
-    
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
-
-//     if (ShouldInheritColours())
-//     {
-//         SetBackgroundColour( parent->GetBackgroundColour() );
-//         SetForegroundColour( parent->GetForegroundColour() );
-//     }
-    Show( TRUE );
-
     return TRUE;
 }
 
@@ -168,7 +147,10 @@ void wxStaticText::SetLabel( const wxString &label )
 
     // adjust the label size to the new label unless disabled
     if (!HasFlag(wxST_NO_AUTORESIZE))
+    {
         SetSize( GetBestSize() );
+        SetSizeHints(GetSize());
+    }
 }
 
 bool wxStaticText::SetFont( const wxFont &font )
@@ -177,8 +159,10 @@ bool wxStaticText::SetFont( const wxFont &font )
 
     // adjust the label size to the new label unless disabled
     if (!HasFlag(wxST_NO_AUTORESIZE))
+    {
         SetSize( GetBestSize() );
-    
+        SetSizeHints(GetSize());
+    }
     return ret;
 }
 
index 4755e17a0e16c75c2aca7d42daf8d82f878bd9ff..61804aa0488364fa2c1195df8cf66fde3dafce75 100644 (file)
@@ -373,9 +373,7 @@ bool wxToolBar::Create( wxWindow *parent,
 
     m_parent->DoAddChild( this );
 
-    PostCreation();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
index 648fdab6a5533b8ae68ca1a3f9dee7a3afcf9686..815c0c66ac1831ac5efc95e010abb50da11fdd39 100644 (file)
@@ -348,17 +348,7 @@ bool wxTextCtrl::Create( wxWindow *parent,
 
     m_focusWidget = m_text;
 
-    PostCreation();
-    InheritAttributes();
-
-    wxSize size_best( DoGetBestSize() );
-    wxSize new_size( size );
-    if (new_size.x == -1)
-        new_size.x = size_best.x;
-    if (new_size.y == -1)
-        new_size.y = size_best.y;
-    if ((new_size.x != size.x) || (new_size.y != size.y))
-        SetSize( new_size.x, new_size.y );
+    PostCreation(size);
 
     if (multi_line)
         gtk_widget_show(m_text);
@@ -461,8 +451,6 @@ bool wxTextCtrl::Create( wxWindow *parent,
     wxTextAttr attrDef( colFg, m_backgroundColour, parent->GetFont() );
     SetDefaultStyle( attrDef );
 
-    Show( TRUE );
-
     return TRUE;
 }
 
index f18eb9d04a1961a0798ee4ed7d2a2020c0655e54..4d57e220cf5ecf7898cd670b518d70819daa73d8 100644 (file)
@@ -79,13 +79,6 @@ bool wxToggleBitmapButton::Create(wxWindow *parent, wxWindowID id,
 
     if (m_bitmap.Ok())
     {
-        wxSize newSize = size;
-        int border = (style & wxNO_BORDER) ? 4 : 10;
-        if (newSize.x == -1)
-            newSize.x = m_bitmap.GetWidth()+border;
-        if (newSize.y == -1)
-            newSize.y = m_bitmap.GetHeight()+border;
-        SetSize( newSize.x, newSize.y );
         OnSetBitmap();
     }
 
@@ -95,10 +88,7 @@ bool wxToggleBitmapButton::Create(wxWindow *parent, wxWindowID id,
 
     m_parent->DoAddChild(this);
 
-    PostCreation();
-    InheritAttributes();
-
-    Show( TRUE );
+    PostCreation(size);
 
     return TRUE;
 }
@@ -207,15 +197,15 @@ void wxToggleBitmapButton::OnInternalIdle()
 // Get the "best" size for this control.
 wxSize wxToggleBitmapButton::DoGetBestSize() const
 {
-    wxSize ret(wxControl::DoGetBestSize());
-   
-    if (!HasFlag(wxBU_EXACTFIT))
+    wxSize best;
+    
+    if (m_bitmap.Ok())
     {
-        if (ret.x < 80) ret.x = 80;
+        int border = HasFlag(wxNO_BORDER) ? 4 : 10;
+        best.x = m_bitmap.GetWidth()+border;
+        best.y = m_bitmap.GetHeight()+border;
     }
-    
-
-   return ret;
+    return best;
 }
 // ------------------------------------------------------------------------
 // wxToggleButton
@@ -251,19 +241,7 @@ bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
 
    m_parent->DoAddChild(this);
 
-   PostCreation();
-   InheritAttributes();
-
-   wxSize size_best(DoGetBestSize());
-   wxSize new_size(size);
-   if (new_size.x == -1)
-      new_size.x = size_best.x;
-   if (new_size.y == -1)
-      new_size.y = size_best.y;
-   if ((new_size.x != size.x) || (new_size.y != size.y))
-      SetSize(new_size.x, new_size.y);
-
-   Show(TRUE);
+   PostCreation(size);
 
    return TRUE;
 }