GtkEnableEvents();
}
+void wxSpinCtrl::SetSelection(long from, long to)
+{
+ // translate from wxWindows conventions to GTK+ ones: (-1, -1) means the
+ // entire range
+ if ( from == -1 && to == -1 )
+ {
+ from = 0;
+ to = INT_MAX;
+ }
+
+ gtk_editable_select_region( GTK_EDITABLE(m_widget), (gint)from, (gint)to );
+}
+
void wxSpinCtrl::SetRange(int minVal, int maxVal)
{
wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
if (event.GetKeyCode() == WXK_RETURN)
{
wxWindow *top_frame = m_parent;
- while (top_frame->GetParent() && !(top_frame->GetParent()->IsTopLevel()))
+ while (top_frame->GetParent() && !(top_frame->IsTopLevel()))
top_frame = top_frame->GetParent();
if ( GTK_IS_WINDOW(top_frame->m_widget) )
{
GtkWidget *widgetDef = window->default_widget;
- if ( widgetDef && GTK_IS_WINDOW(widgetDef) )
+ if ( widgetDef )
{
gtk_widget_activate(widgetDef);
return;
}
}
+ if ((event.GetKeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER))
+ {
+ wxCommandEvent evt( wxEVT_COMMAND_TEXT_ENTER, m_windowId );
+ evt.SetEventObject(this);
+ 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;
+ }
+
event.Skip();
}