Пример #1
0
static void
get_property(GObject      *gobject,
             guint         property_id,
             GValue       *value,
             GParamSpec   *pspec)
{
    GeglGtkView *self = GEGL_GTK_VIEW(gobject);
    ViewHelper *priv = GET_PRIVATE(self);

    switch (property_id) {
    case PROP_NODE:
        g_value_set_object(value, gegl_gtk_view_get_node(self));
        break;
    case PROP_X:
        g_value_set_float(value, gegl_gtk_view_get_x(self));
        break;
    case PROP_BLOCK:
        g_value_set_boolean(value, priv->block);
        break;
    case PROP_Y:
        g_value_set_float(value, gegl_gtk_view_get_y(self));
        break;
    case PROP_SCALE:
        g_value_set_double(value, gegl_gtk_view_get_scale(self));
        break;
    case PROP_AUTOSCALE_POLICY:
        g_value_set_enum(value, gegl_gtk_view_get_autoscale_policy(self));
        break;
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, property_id, pspec);
        break;
    }
}
Пример #2
0
static void
finalize(GObject *gobject)
{
    GeglGtkView *self = GEGL_GTK_VIEW(gobject);

    g_object_unref(G_OBJECT(self->priv));

    G_OBJECT_CLASS(gegl_gtk_view_parent_class)->finalize(gobject);
}
Пример #3
0
static void
size_allocate(GtkWidget *widget, GdkRectangle *allocation, gpointer user_data)
{
    GeglGtkView *self = GEGL_GTK_VIEW(widget);
    gint scale_factor;

    scale_factor = gtk_widget_get_scale_factor (widget);
    view_helper_set_allocation(GET_PRIVATE(self), allocation, scale_factor);
}
Пример #4
0
static gboolean
draw(GtkWidget *widget, cairo_t *cr)
{
    GeglGtkView *self = GEGL_GTK_VIEW(widget);
    ViewHelper *priv = GET_PRIVATE(self);
    GdkRectangle rect;

    if (!priv->node)
        return FALSE;

    gdk_cairo_get_clip_rectangle(cr, &rect);

    draw_implementation(self, cr, &rect);

    return FALSE;
}
Пример #5
0
static gboolean
expose_event(GtkWidget      *widget,
             GdkEventExpose *event)
{
    GeglGtkView *self = GEGL_GTK_VIEW(widget);
    ViewHelper *priv = GET_PRIVATE(self);
    cairo_t      *cr;
    GdkRectangle rect;

    if (!priv->node)
        return FALSE;

    cr = gdk_cairo_create(widget->window);
    gdk_cairo_region(cr, event->region);
    cairo_clip(cr);
    gdk_region_get_clipbox(event->region, &rect);

    draw_implementation(self, cr, &rect);

    cairo_destroy(cr);

    return FALSE;
}
Пример #6
0
/**
 * gegl_gtk_view_new:
 *
 * Create a new #GeglGtkView
 *
 * Returns: New #GeglGtkView
 **/
GeglGtkView *
gegl_gtk_view_new(void)
{
    return GEGL_GTK_VIEW(g_object_new(GEGL_GTK_TYPE_VIEW, NULL));
}
Пример #7
0
static void
size_allocate(GtkWidget *widget, GdkRectangle *allocation, gpointer user_data)
{
    GeglGtkView *self = GEGL_GTK_VIEW(widget);
    view_helper_set_allocation(GET_PRIVATE(self), allocation);
}