static void gimp_view_renderer_imagefile_class_init (GimpViewRendererImagefileClass *klass) { GimpViewRendererClass *renderer_class = GIMP_VIEW_RENDERER_CLASS (klass); renderer_class->render = gimp_view_renderer_imagefile_render; }
static void gimp_view_renderer_layer_class_init (GimpViewRendererLayerClass *klass) { GimpViewRendererClass *renderer_class = GIMP_VIEW_RENDERER_CLASS (klass); renderer_class->render = gimp_view_renderer_layer_render; }
static void gimp_view_renderer_layer_render (GimpViewRenderer *renderer, GtkWidget *widget) { const gchar *icon_name = NULL; if (gimp_layer_is_floating_sel (GIMP_LAYER (renderer->viewable))) { icon_name = GIMP_STOCK_FLOATING_SELECTION; } else if (gimp_item_is_text_layer (GIMP_ITEM (renderer->viewable))) { icon_name = gimp_viewable_get_icon_name (renderer->viewable); } else { GimpContainer *children = gimp_viewable_get_children (renderer->viewable); if (children && gimp_container_get_n_children (children) == 0) icon_name = "folder"; } if (icon_name) gimp_view_renderer_render_icon (renderer, widget, icon_name); else GIMP_VIEW_RENDERER_CLASS (parent_class)->render (renderer, widget); }
static void gimp_view_renderer_gradient_set_context (GimpViewRenderer *renderer, GimpContext *context) { GimpViewRendererGradient *rendergrad; rendergrad = GIMP_VIEW_RENDERER_GRADIENT (renderer); if (renderer->context && rendergrad->has_fg_bg_segments) { g_signal_handlers_disconnect_by_func (renderer->context, gimp_view_renderer_gradient_fg_bg_changed, renderer); } GIMP_VIEW_RENDERER_CLASS (parent_class)->set_context (renderer, context); if (renderer->context && rendergrad->has_fg_bg_segments) { g_signal_connect (renderer->context, "foreground-changed", G_CALLBACK (gimp_view_renderer_gradient_fg_bg_changed), renderer); g_signal_connect (renderer->context, "background-changed", G_CALLBACK (gimp_view_renderer_gradient_fg_bg_changed), renderer); gimp_view_renderer_gradient_fg_bg_changed (renderer->context, NULL, renderer); } }
static void gimp_view_renderer_gradient_class_init (GimpViewRendererGradientClass *klass) { GimpViewRendererClass *renderer_class = GIMP_VIEW_RENDERER_CLASS (klass); renderer_class->set_context = gimp_view_renderer_gradient_set_context; renderer_class->invalidate = gimp_view_renderer_gradient_invalidate; renderer_class->render = gimp_view_renderer_gradient_render; }
static void gimp_view_renderer_palette_class_init (GimpViewRendererPaletteClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GimpViewRendererClass *renderer_class = GIMP_VIEW_RENDERER_CLASS (klass); object_class->finalize = gimp_view_renderer_palette_finalize; renderer_class->render = gimp_view_renderer_palette_render; }
static void gimp_view_renderer_layer_render (GimpViewRenderer *renderer, GtkWidget *widget) { const gchar *stock_id = NULL; if (gimp_layer_is_floating_sel (GIMP_LAYER (renderer->viewable))) { stock_id = GIMP_STOCK_FLOATING_SELECTION; } else if (gimp_drawable_is_text_layer (GIMP_DRAWABLE (renderer->viewable))) { stock_id = gimp_viewable_get_stock_id (renderer->viewable); } if (stock_id) gimp_view_renderer_default_render_stock (renderer, widget, stock_id); else GIMP_VIEW_RENDERER_CLASS (parent_class)->render (renderer, widget); }
static void gimp_view_renderer_gradient_invalidate (GimpViewRenderer *renderer) { GimpViewRendererGradient *rendergrad; gboolean has_fg_bg_segments = FALSE; rendergrad = GIMP_VIEW_RENDERER_GRADIENT (renderer); if (renderer->viewable) has_fg_bg_segments = gimp_gradient_has_fg_bg_segments (GIMP_GRADIENT (renderer->viewable)); if (rendergrad->has_fg_bg_segments != has_fg_bg_segments) { if (renderer->context) { if (rendergrad->has_fg_bg_segments) { g_signal_handlers_disconnect_by_func (renderer->context, gimp_view_renderer_gradient_fg_bg_changed, renderer); } else { g_signal_connect (renderer->context, "foreground-changed", G_CALLBACK (gimp_view_renderer_gradient_fg_bg_changed), renderer); g_signal_connect (renderer->context, "background-changed", G_CALLBACK (gimp_view_renderer_gradient_fg_bg_changed), renderer); } } rendergrad->has_fg_bg_segments = has_fg_bg_segments; } GIMP_VIEW_RENDERER_CLASS (parent_class)->invalidate (renderer); }