X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4a03bf0918353d397d8be851ad29fbb6ad22e0a1..9d5507f7a2701395e1d5c121bd877bb9066ee6ea:/src/gtk/spinctrl.cpp diff --git a/src/gtk/spinctrl.cpp b/src/gtk/spinctrl.cpp index 0642127501..cc7b511f0a 100644 --- a/src/gtk/spinctrl.cpp +++ b/src/gtk/spinctrl.cpp @@ -38,7 +38,7 @@ static void gtk_value_changed(GtkSpinButton* spinbutton, wxSpinCtrl* win) { win->m_pos = int(gtk_spin_button_get_value(spinbutton)); - if (!win->m_hasVMT || g_blockEventsOnDrag || win->m_blockScrollEvent) + if (!win->m_hasVMT || g_blockEventsOnDrag) return; wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, win->GetId()); @@ -51,7 +51,7 @@ gtk_value_changed(GtkSpinButton* spinbutton, wxSpinCtrl* win) // values in range 5..50 is then, ummm, quite challenging (hint: you can't // enter 1!) (VZ) event.SetInt(win->m_pos); - win->GetEventHandler()->ProcessEvent( event ); + win->HandleWindowEvent( event ); } } @@ -63,7 +63,7 @@ extern "C" { static void gtk_changed(GtkSpinButton* spinbutton, wxSpinCtrl* win) { - if (!win->m_hasVMT || win->m_blockScrollEvent) + if (!win->m_hasVMT) return; wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() ); @@ -72,7 +72,7 @@ gtk_changed(GtkSpinButton* spinbutton, wxSpinCtrl* win) // see above event.SetInt(win->m_pos); - win->GetEventHandler()->ProcessEvent( event ); + win->HandleWindowEvent( event ); } } @@ -106,8 +106,8 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id, } m_widget = gtk_spin_button_new_with_range(min, max, 1); - gtk_spin_button_set_value((GtkSpinButton*)m_widget, initial); - m_pos = int(gtk_spin_button_get_value((GtkSpinButton*)m_widget)); + gtk_spin_button_set_value( GTK_SPIN_BUTTON(m_widget), initial); + m_pos = (int) gtk_spin_button_get_value( GTK_SPIN_BUTTON(m_widget)); gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (int)(m_windowStyle & wxSP_WRAP) ); @@ -132,7 +132,7 @@ int wxSpinCtrl::GetMin() const wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") ); double min; - gtk_spin_button_get_range((GtkSpinButton*)m_widget, &min, NULL); + gtk_spin_button_get_range( GTK_SPIN_BUTTON(m_widget), &min, NULL); return int(min); } @@ -141,7 +141,7 @@ int wxSpinCtrl::GetMax() const wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") ); double max; - gtk_spin_button_get_range((GtkSpinButton*)m_widget, NULL, &max); + gtk_spin_button_get_range( GTK_SPIN_BUTTON(m_widget), NULL, &max); return int(max); } @@ -151,6 +151,8 @@ int wxSpinCtrl::GetValue() const GtkDisableEvents(); gtk_spin_button_update( GTK_SPIN_BUTTON(m_widget) ); + wx_const_cast(wxSpinCtrl*, this)->m_pos = + int(gtk_spin_button_get_value(GTK_SPIN_BUTTON(m_widget))); GtkEnableEvents(); return m_pos; @@ -180,8 +182,8 @@ void wxSpinCtrl::SetValue( int value ) wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); GtkDisableEvents(); - gtk_spin_button_set_value((GtkSpinButton*)m_widget, value); - m_pos = value; + gtk_spin_button_set_value( GTK_SPIN_BUTTON(m_widget), value); + m_pos = (int) gtk_spin_button_get_value( GTK_SPIN_BUTTON(m_widget)); GtkEnableEvents(); } @@ -203,7 +205,8 @@ void wxSpinCtrl::SetRange(int minVal, int maxVal) wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); GtkDisableEvents(); - gtk_spin_button_set_range((GtkSpinButton*)m_widget, minVal, maxVal); + gtk_spin_button_set_range( GTK_SPIN_BUTTON(m_widget), minVal, maxVal); + m_pos = int(gtk_spin_button_get_value(GTK_SPIN_BUTTON(m_widget))); GtkEnableEvents(); } @@ -212,7 +215,7 @@ void wxSpinCtrl::GtkDisableEvents() const { g_signal_handlers_block_by_func( m_widget, (gpointer)gtk_value_changed, (void*) this); - + g_signal_handlers_block_by_func(m_widget, (gpointer)gtk_changed, (void*) this); } @@ -221,7 +224,7 @@ void wxSpinCtrl::GtkEnableEvents() const { g_signal_handlers_unblock_by_func(m_widget, (gpointer)gtk_value_changed, (void*) this); - + g_signal_handlers_unblock_by_func(m_widget, (gpointer)gtk_changed, (void*) this); } @@ -257,7 +260,7 @@ void wxSpinCtrl::OnChar( wxKeyEvent &event ) GtkSpinButton *gsb = GTK_SPIN_BUTTON(m_widget); wxString val = wxGTK_CONV_BACK( gtk_entry_get_text( &gsb->entry ) ); evt.SetString( val ); - if (GetEventHandler()->ProcessEvent(evt)) return; + if (HandleWindowEvent(evt)) return; } event.Skip();