static void
gtk_value_changed(GtkRange* range, wxScrollBar* win)
{
- wxEventType eventType = win->GetScrollEventType(range);
+ wxEventType eventType = win->GTKGetScrollEventType(range);
if (eventType != wxEVT_NULL)
{
const int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL;
const int value = win->GetThumbPosition();
- wxScrollEvent event(eventType, win->GetId(), value, orient);
- event.SetEventObject(win);
- win->GetEventHandler()->ProcessEvent(event);
+ const int id = win->GetId();
+
+ // first send the specific event for the user action
+ wxScrollEvent evtSpec(eventType, id, value, orient);
+ evtSpec.SetEventObject(win);
+ win->HandleWindowEvent(evtSpec);
+
if (!win->m_isScrolling)
{
- wxScrollEvent event(wxEVT_SCROLL_CHANGED, win->GetId(), value, orient);
- event.SetEventObject(win);
- win->GetEventHandler()->ProcessEvent(event);
+ // and if it's over also send a general "changed" event
+ wxScrollEvent evtChanged(wxEVT_SCROLL_CHANGED, id, value, orient);
+ evtChanged.SetEventObject(win);
+ win->HandleWindowEvent(evtChanged);
}
}
}
const int value = win->GetThumbPosition();
const int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL;
+ const int id = win->GetId();
- wxScrollEvent event(wxEVT_SCROLL_THUMBRELEASE, win->GetId(), value, orient);
- event.SetEventObject(win);
- win->GetEventHandler()->ProcessEvent(event);
+ wxScrollEvent evtRel(wxEVT_SCROLL_THUMBRELEASE, id, value, orient);
+ evtRel.SetEventObject(win);
+ win->HandleWindowEvent(evtRel);
- wxScrollEvent event2(wxEVT_SCROLL_CHANGED, win->GetId(), value, orient);
- event2.SetEventObject(win);
- win->GetEventHandler()->ProcessEvent(event2);
+ wxScrollEvent evtChanged(wxEVT_SCROLL_CHANGED, id, value, orient);
+ evtChanged.SetEventObject(win);
+ win->HandleWindowEvent(evtChanged);
}
}
}
const bool isVertical = (style & wxSB_VERTICAL) != 0;
if (isVertical)
- m_widget = gtk_vscrollbar_new( (GtkAdjustment *) NULL );
+ m_widget = gtk_vscrollbar_new( NULL );
else
- m_widget = gtk_hscrollbar_new( (GtkAdjustment *) NULL );
+ m_widget = gtk_hscrollbar_new( NULL );
+ g_object_ref(m_widget);
m_scrollBar[0] = (GtkRange*)m_widget;