static VALUE rg_get_action_widget(VALUE self, VALUE pack_type) { return GOBJ2RVAL(gtk_notebook_get_action_widget(_SELF(self), RVAL2GTKPACKTYPE(pack_type))); }
static VALUE rg_get_action_widget(VALUE self, VALUE pack_type) { return GOBJ2RVAL(gtk_notebook_get_action_widget(_SELF(self), RVAL2GENUM(pack_type, GTK_TYPE_PACK_TYPE))); }
/* Tab scrolling was removed from GtkNotebook in gtk 3, so reimplement it here */ static gboolean scroll_event_cb (GtkWidget *widget, GdkEventScroll *event, gpointer user_data) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); GtkWidget *child, *event_widget, *action_widget; if ((event->state & gtk_accelerator_get_default_mod_mask ()) != 0) return FALSE; child = gtk_notebook_get_nth_page (notebook, gtk_notebook_get_current_page (notebook)); if (child == NULL) return FALSE; event_widget = gtk_get_event_widget ((GdkEvent *) event); /* Ignore scroll events from the content of the page */ if (event_widget == NULL || event_widget == child || gtk_widget_is_ancestor (event_widget, child)) return FALSE; /* And also from the action widgets */ action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_START); if (event_widget == action_widget || (action_widget != NULL && gtk_widget_is_ancestor (event_widget, action_widget))) return FALSE; action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_END); if (event_widget == action_widget || (action_widget != NULL && gtk_widget_is_ancestor (event_widget, action_widget))) return FALSE; switch (event->direction) { case GDK_SCROLL_RIGHT: case GDK_SCROLL_DOWN: gtk_notebook_next_page (notebook); return TRUE; case GDK_SCROLL_LEFT: case GDK_SCROLL_UP: gtk_notebook_prev_page (notebook); return TRUE; case GDK_SCROLL_SMOOTH: switch (gtk_notebook_get_tab_pos (notebook)) { case GTK_POS_LEFT: case GTK_POS_RIGHT: if (event->delta_y > 0) gtk_notebook_next_page (notebook); else if (event->delta_y < 0) gtk_notebook_prev_page (notebook); break; case GTK_POS_TOP: case GTK_POS_BOTTOM: if (event->delta_x > 0) gtk_notebook_next_page (notebook); else if (event->delta_x < 0) gtk_notebook_prev_page (notebook); break; } return TRUE; } return FALSE; }