void wxSpinCtrlGTKBase::DoSetRange(double minVal, double maxVal) { wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); GtkDisableEvents(); gtk_spin_button_set_range( GTK_SPIN_BUTTON(m_widget), minVal, maxVal); GtkEnableEvents(); }
void wxSpinCtrlGTKBase::DoSetValue( double value ) { wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); GtkDisableEvents(); gtk_spin_button_set_value( GTK_SPIN_BUTTON(m_widget), value); GtkEnableEvents(); }
void wxSpinCtrlGTKBase::DoSetIncrement(double inc) { wxCHECK_RET( m_widget, "invalid spin button" ); GtkDisableEvents(); gtk_spin_button_set_increments( GTK_SPIN_BUTTON(m_widget), inc, 10*inc); GtkEnableEvents(); }
void wxSpinButton::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); m_pos = int(gtk_spin_button_get_value((GtkSpinButton*)m_widget)); GtkEnableEvents(); }
void wxSpinButton::SetValue( int value ) { wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); GtkDisableEvents(); gtk_spin_button_set_value((GtkSpinButton*)m_widget, value); m_pos = int(gtk_spin_button_get_value((GtkSpinButton*)m_widget)); GtkEnableEvents(); }
void wxSpinCtrlGTKBase::DoSetIncrement(double inc) { wxCHECK_RET( m_widget, "invalid spin button" ); GtkDisableEvents(); // Preserve the old page value when changing just the increment. double page = 10*inc; gtk_spin_button_get_increments( GTK_SPIN_BUTTON(m_widget), NULL, &page); gtk_spin_button_set_increments( GTK_SPIN_BUTTON(m_widget), inc, page); GtkEnableEvents(); }
void wxSpinCtrl::SetValue( int value ) { wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); float fpos = (float)value; m_oldPos = fpos; if (fabs(fpos-m_adjust->value) < sensitivity) return; m_adjust->value = fpos; GtkDisableEvents(); gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); GtkEnableEvents(); }
void wxSlider::SetThumbLength( int len ) { double flen = (double)len; if (fabs(flen-m_adjust->page_size) < 0.2) return; m_adjust->page_size = flen; GtkDisableEvents(); gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); GtkEnableEvents(); }
void wxSlider::SetPageSize( int pageSize ) { double fpage = (double)pageSize; if (fabs(fpage-m_adjust->page_increment) < 0.2) return; m_adjust->page_increment = fpage; GtkDisableEvents(); gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); GtkEnableEvents(); }
void wxSlider::SetValue( int value ) { double fpos = (double)value; m_oldPos = fpos; if ( AreSameAdjustValues(fpos, m_adjust->value) ) return; m_adjust->value = fpos; GtkDisableEvents(); gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); GtkEnableEvents(); }
void wxRadioBox::SetSelection( int n ) { wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.Item( n ); wxCHECK_RET( node, wxT("radiobox wrong index") ); GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->GetData() ); GtkDisableEvents(); gtk_toggle_button_set_active( button, 1 ); GtkEnableEvents(); }
void wxSpinCtrlGTKBase::SetValue( const wxString& value ) { wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); double n; if ( wxSscanf(value, "%lg", &n) == 1 ) { // a number - set it, let DoSetValue round for int value DoSetValue(n); return; } // invalid number - set text as is (wxMSW compatible) GtkDisableEvents(); gtk_entry_set_text( GTK_ENTRY(m_widget), wxGTK_CONV( value ) ); GtkEnableEvents(); }
void wxSpinCtrl::SetValue( const wxString& value ) { wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") ); int n; if ( (wxSscanf(value, wxT("%d"), &n) == 1) ) { // a number - set it SetValue(n); } else { // invalid number - set text as is (wxMSW compatible) GtkDisableEvents(); gtk_entry_set_text( GTK_ENTRY(m_widget), wxGTK_CONV( value ) ); GtkEnableEvents(); } }
void wxSlider::SetRange( int minValue, int maxValue ) { double fmin = (double)minValue; double fmax = (double)maxValue; if ((fabs(fmin-m_adjust->lower) < 0.2) && (fabs(fmax-m_adjust->upper) < 0.2)) { return; } m_adjust->lower = fmin; m_adjust->upper = fmax; 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(); }
bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, long style, int min, int max, int initial, const wxString& name) { m_needParent = TRUE; m_acceptsFocus = TRUE; if (!PreCreation( parent, pos, size ) || !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) { wxFAIL_MSG( wxT("wxSpinCtrl creation failed") ); return FALSE; } m_oldPos = initial; m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0); m_widget = gtk_spin_button_new( m_adjust, 1, 0 ); gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (int)(m_windowStyle & wxSP_WRAP) ); GtkEnableEvents(); m_parent->DoAddChild( this ); PostCreation(size); SetValue( value ); return TRUE; }
bool wxSlider::Create(wxWindow *parent, wxWindowID id, int value, int minValue, int maxValue, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator, const wxString& name ) { m_acceptsFocus = TRUE; m_needParent = TRUE; if (!PreCreation( parent, pos, size ) || !CreateBase( parent, id, pos, size, style, validator, name )) { wxFAIL_MSG( wxT("wxSlider creation failed") ); return FALSE; } m_oldPos = 0.0; if (style & wxSL_VERTICAL) m_widget = gtk_vscale_new( (GtkAdjustment *) NULL ); else m_widget = gtk_hscale_new( (GtkAdjustment *) NULL ); if (style & wxSL_LABELS) { gtk_scale_set_draw_value( GTK_SCALE( m_widget ), TRUE ); gtk_scale_set_digits( GTK_SCALE( m_widget ), 0 ); /* labels need more space and too small window will cause junk to appear on the dialog */ if (style & wxSL_VERTICAL) { wxSize sz( size ); if (sz.x < 35) { sz.x = 35; SetSize( sz ); } } else { wxSize sz( size ); if (sz.y < 35) { sz.y = 35; SetSize( sz ); } } } else gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE ); m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) ); #ifdef __WXGTK20__ if (style & wxSL_INVERSE) gtk_range_set_inverted( GTK_RANGE(m_widget), TRUE ); #endif GtkEnableEvents(); #ifdef __WXGTK20__ g_signal_connect (m_widget, "button_press_event", G_CALLBACK (gtk_slider_button_press_callback), this); g_signal_connect (m_widget, "button_release_event", G_CALLBACK (gtk_slider_button_release_callback), this); #endif SetRange( minValue, maxValue ); SetValue( value ); m_parent->DoAddChild( this ); PostCreation(size); return TRUE; }