Beispiel #1
0
static void helper_test_imagewidget_scroll_event(GtkWidget* widget, GdkEvent *event, gpointer user_data){
  (void) user_data;
  printf("scrolling\n");
  GdkScrollDirection direction;
  GrfImageWidget* imagewidget = GRF_IMAGEWIDGET(widget);
  gdk_event_get_scroll_direction(event,&direction);
  if(direction == GDK_SCROLL_UP)
    grf_imagewidget_set_scale(imagewidget,grf_imagewidget_get_scale(imagewidget)*1.5,TRUE);
  else
    grf_imagewidget_set_scale(imagewidget,grf_imagewidget_get_scale(imagewidget)/1.5,TRUE);
}
Beispiel #2
0
static gboolean
sn_item_scroll_event (GtkWidget      *widget,
                      GdkEventScroll *event)
{
    SnItem *item;
    GdkScrollDirection direction;
    SnItemOrientation orientation;
    gdouble dx;
    gdouble dy;
    gint delta;

    item = SN_ITEM (widget);

    if (!gdk_event_get_scroll_direction ((GdkEvent *) event, &direction))
    {
        g_assert_not_reached ();
    }
    else
    {
        switch (direction)
        {
        case GDK_SCROLL_UP:
        case GDK_SCROLL_DOWN:
            orientation = SN_ITEM_ORIENTATION_VERTICAL;
            break;

        case GDK_SCROLL_LEFT:
        case GDK_SCROLL_RIGHT:
            orientation = SN_ITEM_ORIENTATION_HORIZONTAL;
            break;

        case GDK_SCROLL_SMOOTH:
        default:
            g_assert_not_reached ();
            break;
        }
    }

    if (!gdk_event_get_scroll_deltas ((GdkEvent *) event, &dx, &dy))
    {
        switch (direction)
        {
        case GDK_SCROLL_UP:
        case GDK_SCROLL_LEFT:
            delta = 1;
            break;

        case GDK_SCROLL_DOWN:
        case GDK_SCROLL_RIGHT:
            delta = -1;
            break;

        case GDK_SCROLL_SMOOTH:
        default:
            g_assert_not_reached ();
            break;
        }
    }
    else
    {
        if (dy != 0)
            delta = (gint) dy;
        else
            delta = (gint) dx;
    }

    SN_ITEM_GET_CLASS (item)->scroll (item, delta, orientation);

    return GDK_EVENT_STOP;
}