static void gimp_view_renderer_profile_changed (GimpViewRenderer *renderer, GimpViewable *viewable) { gimp_view_renderer_transform_free (renderer); gimp_view_renderer_invalidate (renderer); }
void gimp_view_renderer_set_size_full (GimpViewRenderer *renderer, gint width, gint height, gint border_width) { g_return_if_fail (GIMP_IS_VIEW_RENDERER (renderer)); g_return_if_fail (width > 0 && width <= GIMP_VIEWABLE_MAX_PREVIEW_SIZE); g_return_if_fail (height > 0 && height <= GIMP_VIEWABLE_MAX_PREVIEW_SIZE); g_return_if_fail (border_width >= 0 && border_width <= GIMP_VIEW_MAX_BORDER_WIDTH); if (width != renderer->width || height != renderer->height || border_width != renderer->border_width) { renderer->width = width; renderer->height = height; renderer->border_width = border_width; if (renderer->surface) { cairo_surface_destroy (renderer->surface); renderer->surface = NULL; } if (renderer->viewable) gimp_view_renderer_invalidate (renderer); } }
static void gimp_view_renderer_size_changed (GimpViewRenderer *renderer, GimpViewable *viewable) { if (renderer->size != -1) gimp_view_renderer_set_size (renderer, renderer->size, renderer->border_width); gimp_view_renderer_invalidate (renderer); }
static void gimp_view_renderer_gradient_fg_bg_changed (GimpContext *context, const GimpRGB *color, GimpViewRenderer *renderer) { #if 0 g_printerr ("%s: invalidating %s\n", G_STRFUNC, gimp_object_get_name (renderer->viewable)); #endif gimp_view_renderer_invalidate (renderer); }
void gimp_view_renderer_palette_set_draw_grid (GimpViewRendererPalette *renderer, gboolean draw_grid) { g_return_if_fail (GIMP_IS_VIEW_RENDERER_PALETTE (renderer)); if (draw_grid != renderer->draw_grid) { renderer->draw_grid = draw_grid ? TRUE : FALSE; gimp_view_renderer_invalidate (GIMP_VIEW_RENDERER (renderer)); } }
void gimp_view_renderer_palette_set_cell_size (GimpViewRendererPalette *renderer, gint cell_size) { g_return_if_fail (GIMP_IS_VIEW_RENDERER_PALETTE (renderer)); if (cell_size != renderer->cell_size) { renderer->cell_size = cell_size; gimp_view_renderer_invalidate (GIMP_VIEW_RENDERER (renderer)); } }
void gimp_view_renderer_gradient_set_reverse (GimpViewRendererGradient *renderer, gboolean reverse) { g_return_if_fail (GIMP_IS_VIEW_RENDERER_GRADIENT (renderer)); if (reverse != renderer->reverse) { renderer->reverse = reverse ? TRUE : FALSE; gimp_view_renderer_invalidate (GIMP_VIEW_RENDERER (renderer)); gimp_view_renderer_update (GIMP_VIEW_RENDERER (renderer)); } }
void gimp_view_renderer_set_context (GimpViewRenderer *renderer, GimpContext *context) { g_return_if_fail (GIMP_IS_VIEW_RENDERER (renderer)); g_return_if_fail (context == NULL || GIMP_IS_CONTEXT (context)); if (context != renderer->context) { GIMP_VIEW_RENDERER_GET_CLASS (renderer)->set_context (renderer, context); if (renderer->viewable) gimp_view_renderer_invalidate (renderer); } }
void gimp_view_renderer_set_dot_for_dot (GimpViewRenderer *renderer, gboolean dot_for_dot) { g_return_if_fail (GIMP_IS_VIEW_RENDERER (renderer)); if (dot_for_dot != renderer->dot_for_dot) { renderer->dot_for_dot = dot_for_dot ? TRUE: FALSE; if (renderer->size != -1) gimp_view_renderer_set_size (renderer, renderer->size, renderer->border_width); gimp_view_renderer_invalidate (renderer); } }
void gimp_view_renderer_gradient_set_offsets (GimpViewRendererGradient *renderer, gdouble left, gdouble right) { g_return_if_fail (GIMP_IS_VIEW_RENDERER_GRADIENT (renderer)); left = CLAMP (left, 0.0, 1.0); right = CLAMP (right, left, 1.0); if (left != renderer->left || right != renderer->right) { renderer->left = left; renderer->right = right; gimp_view_renderer_invalidate (GIMP_VIEW_RENDERER (renderer)); } }
static void gimp_selection_editor_mask_changed (GimpImage *image, GimpSelectionEditor *editor) { gimp_view_renderer_invalidate (GIMP_VIEW (editor->view)->renderer); }
void gimp_view_renderer_set_viewable (GimpViewRenderer *renderer, GimpViewable *viewable) { g_return_if_fail (GIMP_IS_VIEW_RENDERER (renderer)); g_return_if_fail (viewable == NULL || GIMP_IS_VIEWABLE (viewable)); if (viewable) g_return_if_fail (g_type_is_a (G_TYPE_FROM_INSTANCE (viewable), renderer->viewable_type)); if (viewable == renderer->viewable) return; if (renderer->surface) { cairo_surface_destroy (renderer->surface); renderer->surface = NULL; } if (renderer->pixbuf) { g_object_unref (renderer->pixbuf); renderer->pixbuf = NULL; } gimp_view_renderer_transform_free (renderer); if (renderer->viewable) { g_object_weak_unref (G_OBJECT (renderer->viewable), (GWeakNotify) gimp_view_renderer_weak_notify, renderer); g_signal_handlers_disconnect_by_func (renderer->viewable, G_CALLBACK (gimp_view_renderer_invalidate), renderer); g_signal_handlers_disconnect_by_func (renderer->viewable, G_CALLBACK (gimp_view_renderer_size_changed), renderer); if (GIMP_IS_COLOR_MANAGED (renderer->viewable)) g_signal_handlers_disconnect_by_func (renderer->viewable, G_CALLBACK (gimp_view_renderer_profile_changed), renderer); } renderer->viewable = viewable; if (renderer->viewable) { g_object_weak_ref (G_OBJECT (renderer->viewable), (GWeakNotify) gimp_view_renderer_weak_notify, renderer); g_signal_connect_swapped (renderer->viewable, "invalidate-preview", G_CALLBACK (gimp_view_renderer_invalidate), renderer); g_signal_connect_swapped (renderer->viewable, "size-changed", G_CALLBACK (gimp_view_renderer_size_changed), renderer); if (GIMP_IS_COLOR_MANAGED (renderer->viewable)) g_signal_connect_swapped (renderer->viewable, "profile-changed", G_CALLBACK (gimp_view_renderer_profile_changed), renderer); if (renderer->size != -1) gimp_view_renderer_set_size (renderer, renderer->size, renderer->border_width); gimp_view_renderer_invalidate (renderer); } else { gimp_view_renderer_update_idle (renderer); } }