Don't let wxSlider send events when programmatically changing

the controls.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2002-07-09 21:01:04 +00:00
parent e9409ae3e0
commit e1b93ccbdc
2 changed files with 66 additions and 10 deletions

View File

@@ -131,14 +131,11 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) );
gtk_signal_connect( GTK_OBJECT(m_adjust),
"value_changed",
(GtkSignalFunc) gtk_slider_callback,
(gpointer) this );
SetRange( minValue, maxValue );
SetValue( value );
GtkEnableEvents();
m_parent->DoAddChild( this );
PostCreation();
@@ -166,7 +163,11 @@ void wxSlider::SetValue( int value )
m_adjust->value = fpos;
GtkDisableEvents();
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
GtkEnableEvents();
}
void wxSlider::SetRange( int minValue, int maxValue )
@@ -185,7 +186,11 @@ void wxSlider::SetRange( int minValue, int maxValue )
m_adjust->step_increment = 1.0;
m_adjust->page_increment = ceil((fmax-fmin) / 10.0);
GtkDisableEvents();
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
GtkEnableEvents();
}
int wxSlider::GetMin() const
@@ -206,7 +211,11 @@ void wxSlider::SetPageSize( int pageSize )
m_adjust->page_increment = fpage;
GtkDisableEvents();
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
GtkEnableEvents();
}
int wxSlider::GetPageSize() const
@@ -222,7 +231,11 @@ void wxSlider::SetThumbLength( int len )
m_adjust->page_size = flen;
GtkDisableEvents();
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
GtkEnableEvents();
}
int wxSlider::GetThumbLength() const
@@ -258,4 +271,19 @@ void wxSlider::ApplyWidgetStyle()
gtk_widget_set_style( m_widget, m_widgetStyle );
}
void wxSlider::GtkDisableEvents()
{
gtk_signal_disconnect_by_func( GTK_OBJECT(m_adjust),
GTK_SIGNAL_FUNC(gtk_slider_callback),
(gpointer) this );
}
void wxSlider::GtkEnableEvents()
{
gtk_signal_connect( GTK_OBJECT (m_adjust),
"value_changed",
GTK_SIGNAL_FUNC(gtk_slider_callback),
(gpointer) this );
}
#endif