X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/07f5b19a15a8664abad7b5176c0260aacbbbc174..aa5e1f75d9cc30fccc4c5e306c584aa2db5f2c40:/src/gtk/spinctrl.cpp?ds=sidebyside diff --git a/src/gtk/spinctrl.cpp b/src/gtk/spinctrl.cpp index 80f42b1354..d5efca072e 100644 --- a/src/gtk/spinctrl.cpp +++ b/src/gtk/spinctrl.cpp @@ -88,24 +88,28 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id, m_widget = gtk_spin_button_new( m_adjust, 1, 0 ); - wxSize new_size = size, - sizeBest = DoGetBestSize(); - if (new_size.x == -1) - new_size.x = sizeBest.x; - if (new_size.y == -1) - new_size.y = sizeBest.y; - - if ((new_size.x != size.x) || (new_size.y != size.y)) - SetSize( new_size.x, new_size.y ); - gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (int)(m_windowStyle & wxSP_WRAP) ); GtkEnableEvents(); + m_parent->DoAddChild( this ); PostCreation(); + 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.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 ); + SetBackgroundColour( parent->GetBackgroundColour() ); SetValue( value ); @@ -149,6 +153,8 @@ int wxSpinCtrl::GetValue() const { wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") ); + gtk_spin_button_update( GTK_SPIN_BUTTON(m_widget) ); + return (int)ceil(m_adjust->value); }