X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/abdeb9e7006488bf917d90048fcd0cbe22f44a71..653d7a50e5d9cc02146c5c79a0cbf41e2a1f6cfb:/src/gtk1/spinctrl.cpp diff --git a/src/gtk1/spinctrl.cpp b/src/gtk1/spinctrl.cpp index e5d32a1f85..f4c9e8d27c 100644 --- a/src/gtk1/spinctrl.cpp +++ b/src/gtk1/spinctrl.cpp @@ -22,9 +22,7 @@ #include "wx/utils.h" #include "wx/textctrl.h" // for wxEVT_COMMAND_TEXT_UPDATED - -#include - +#include "wx/math.h" #include "wx/gtk/private.h" //----------------------------------------------------------------------------- @@ -46,6 +44,7 @@ extern bool g_blockEventsOnDrag; // "value_changed" //----------------------------------------------------------------------------- +extern "C" { static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win ) { if (g_isIdle) wxapp_install_idle_handler(); @@ -65,11 +64,13 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win event.SetInt( (int)ceil(win->m_adjust->value) ); win->GetEventHandler()->ProcessEvent( event ); } +} //----------------------------------------------------------------------------- // "changed" //----------------------------------------------------------------------------- +extern "C" { static void gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win ) { @@ -85,6 +86,7 @@ gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win event.SetInt( (int)ceil(win->m_adjust->value) ); win->GetEventHandler()->ProcessEvent( event ); } +} //----------------------------------------------------------------------------- // wxSpinCtrl @@ -216,7 +218,7 @@ void wxSpinCtrl::SetValue( int value ) void wxSpinCtrl::SetSelection(long from, long to) { - // translate from wxWindows conventions to GTK+ ones: (-1, -1) means the + // translate from wxWidgets conventions to GTK+ ones: (-1, -1) means the // entire range if ( from == -1 && to == -1 ) { @@ -298,16 +300,21 @@ bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window ) return FALSE; } -void wxSpinCtrl::ApplyWidgetStyle() +wxSize wxSpinCtrl::DoGetBestSize() const { - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); + wxSize ret( wxControl::DoGetBestSize() ); + wxSize best(95, ret.y); + CacheBestSize(best); + return best; } -wxSize wxSpinCtrl::DoGetBestSize() const +// static +wxVisualAttributes +wxSpinCtrl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant)) { - wxSize ret( wxControl::DoGetBestSize() ); - return wxSize(95, ret.y); + // TODO: overload to accept functions like gtk_spin_button_new? + // Until then use a similar type + return GetDefaultAttributesFromGTKWidget(gtk_entry_new, true); } #endif