- // these handlers block mouse events to any window during scrolling such as
- // motion events and prevent GTK and wxWidgets from fighting over where the
- // slider should be
- g_signal_connect(m_scrollBar[0], "button_press_event",
- G_CALLBACK(gtk_scrollbar_button_press_event), this);
- g_signal_connect(m_scrollBar[1], "button_press_event",
- G_CALLBACK(gtk_scrollbar_button_press_event), this);
- g_signal_connect(m_scrollBar[0], "button_release_event",
- G_CALLBACK(gtk_scrollbar_button_release_event), this);
- g_signal_connect(m_scrollBar[1], "button_release_event",
- G_CALLBACK(gtk_scrollbar_button_release_event), this);
- gulong handler_id;
- handler_id = g_signal_connect(
- m_scrollBar[0], "event_after", G_CALLBACK(gtk_scrollbar_event_after), this);
- g_signal_handler_block(m_scrollBar[0], handler_id);
- handler_id = g_signal_connect(
- m_scrollBar[1], "event_after", G_CALLBACK(gtk_scrollbar_event_after), this);
- g_signal_handler_block(m_scrollBar[1], handler_id);
-
- // these handlers get notified when scrollbar slider moves
-
- g_signal_connect(m_scrollBar[0], "value_changed",
- G_CALLBACK(gtk_scrollbar_value_changed), this);
- g_signal_connect(m_scrollBar[1], "value_changed",
- G_CALLBACK(gtk_scrollbar_value_changed), this);
+ // connect various scroll-related events
+ for ( int dir = 0; dir < ScrollDir_Max; dir++ )
+ {
+ // these handlers block mouse events to any window during scrolling
+ // such as motion events and prevent GTK and wxWidgets from fighting
+ // over where the slider should be
+ g_signal_connect(m_scrollBar[dir], "button_press_event",
+ G_CALLBACK(gtk_scrollbar_button_press_event), this);
+ g_signal_connect(m_scrollBar[dir], "button_release_event",
+ G_CALLBACK(gtk_scrollbar_button_release_event), this);
+
+ gulong handler_id = g_signal_connect(m_scrollBar[dir], "event_after",
+ G_CALLBACK(gtk_scrollbar_event_after), this);
+ g_signal_handler_block(m_scrollBar[dir], handler_id);
+
+ // these handlers get notified when scrollbar slider moves
+ g_signal_connect(m_scrollBar[dir], "value_changed",
+ G_CALLBACK(gtk_scrollbar_value_changed), this);
+ }