#include "wx/utils.h"
+#include "wx/textctrl.h" // for wxEVT_COMMAND_TEXT_UPDATED
+
#include <math.h>
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
+#include "wx/gtk/private.h"
//-----------------------------------------------------------------------------
// idle system
wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, win->GetId());
event.SetEventObject( win );
- event.SetInt( win->GetValue() );
+
+ // note that we don't use wxSpinCtrl::GetValue() here because it would
+ // adjust the value to fit into the control range and this means that we
+ // would never be able to enter an "invalid" value in the control, even
+ // temporarily - and trying to enter 10 into the control which accepts the
+ // values in range 5..50 is then, ummm, quite challenging (hint: you can't
+ // enter 1!) (VZ)
+ event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
wxWindow *top_frame = m_parent;
while (top_frame->GetParent() && !(top_frame->GetParent()->IsTopLevel()))
top_frame = top_frame->GetParent();
- GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
- if (window->default_widget)
+ if ( GTK_IS_WINDOW(top_frame->m_widget) )
{
- gtk_widget_activate (window->default_widget);
- return;
+ GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
+ if ( window )
+ {
+ GtkWidget *widgetDef = window->default_widget;
+
+ if ( widgetDef && GTK_IS_WINDOW(widgetDef) )
+ {
+ gtk_widget_activate(widgetDef);
+ return;
+ }
+ }
}
}