static void gimp_navigation_editor_set_context (GimpDocked *docked, GimpContext *context) { GimpNavigationEditor *editor = GIMP_NAVIGATION_EDITOR (docked); GimpDisplay *display = NULL; if (editor->context) { g_signal_handlers_disconnect_by_func (editor->context, gimp_navigation_editor_display_changed, editor); } editor->context = context; if (editor->context) { g_signal_connect (context, "display-changed", G_CALLBACK (gimp_navigation_editor_display_changed), editor); display = gimp_context_get_display (context); } gimp_view_renderer_set_context (GIMP_VIEW (editor->view)->renderer, context); gimp_navigation_editor_display_changed (editor->context, display, editor); }
static void gimp_container_combo_box_set_context (GimpContainerView *view, GimpContext *context) { GtkTreeModel *model = gtk_combo_box_get_model (GTK_COMBO_BOX (view)); parent_view_iface->set_context (view, context); if (model) { GtkTreeIter iter; gboolean iter_valid; for (iter_valid = gtk_tree_model_get_iter_first (model, &iter); iter_valid; iter_valid = gtk_tree_model_iter_next (model, &iter)) { GimpViewRenderer *renderer; gtk_tree_model_get (model, &iter, COLUMN_RENDERER, &renderer, -1); gimp_view_renderer_set_context (renderer, context); g_object_unref (renderer); } } }
static void gimp_brush_editor_set_context (GimpDocked *docked, GimpContext *context) { GimpDataEditor *data_editor = GIMP_DATA_EDITOR (docked); parent_docked_iface->set_context (docked, context); gimp_view_renderer_set_context (GIMP_VIEW (data_editor->view)->renderer, context); }
static void gimp_selection_editor_set_context (GimpDocked *docked, GimpContext *context) { GimpSelectionEditor *editor = GIMP_SELECTION_EDITOR (docked); parent_docked_iface->set_context (docked, context); gimp_view_renderer_set_context (GIMP_VIEW (editor->view)->renderer, context); }
static void gimp_buffer_view_set_context (GimpDocked *docked, GimpContext *context) { GimpBufferView *view = GIMP_BUFFER_VIEW (docked); parent_docked_iface->set_context (docked, context); gimp_view_renderer_set_context (GIMP_VIEW (view->global_view)->renderer, context); }
static void gimp_palette_editor_set_context (GimpDocked *docked, GimpContext *context) { GimpPaletteEditor *editor = GIMP_PALETTE_EDITOR (docked); parent_docked_iface->set_context (docked, context); gimp_view_renderer_set_context (GIMP_VIEW (editor->view)->renderer, context); }
static void gimp_view_renderer_dispose (GObject *object) { GimpViewRenderer *renderer = GIMP_VIEW_RENDERER (object); if (renderer->viewable) gimp_view_renderer_set_viewable (renderer, NULL); if (renderer->context) gimp_view_renderer_set_context (renderer, NULL); gimp_view_renderer_remove_idle (renderer); G_OBJECT_CLASS (parent_class)->dispose (object); }
static void gimp_container_grid_view_set_context (GimpContainerView *view, GimpContext *context) { GimpContainerGridView *grid_view = GIMP_CONTAINER_GRID_VIEW (view); GtkWrapBoxChild *child; parent_view_iface->set_context (view, context); for (child = GTK_WRAP_BOX (grid_view->wrap_box)->children; child; child = child->next) { GimpView *view = GIMP_VIEW (child->widget); gimp_view_renderer_set_context (view->renderer, context); } }
static GimpViewRenderer * gimp_view_renderer_new_internal (GimpContext *context, GType viewable_type, gboolean is_popup) { GimpViewRenderer *renderer; renderer = g_object_new (gimp_view_renderer_type_from_viewable_type (viewable_type), NULL); renderer->viewable_type = viewable_type; renderer->is_popup = is_popup ? TRUE : FALSE; if (context) gimp_view_renderer_set_context (renderer, context); return renderer; }
static void gimp_component_editor_set_context (GimpDocked *docked, GimpContext *context) { GimpComponentEditor *editor = GIMP_COMPONENT_EDITOR (docked); GtkTreeIter iter; gboolean iter_valid; parent_docked_iface->set_context (docked, context); for (iter_valid = gtk_tree_model_get_iter_first (editor->model, &iter); iter_valid; iter_valid = gtk_tree_model_iter_next (editor->model, &iter)) { GimpViewRenderer *renderer; gtk_tree_model_get (editor->model, &iter, COLUMN_RENDERER, &renderer, -1); gimp_view_renderer_set_context (renderer, context); g_object_unref (renderer); } }
static GtkWidget * gimp_navigation_editor_new_private (GimpMenuFactory *menu_factory, GimpDisplayShell *shell) { GimpNavigationEditor *editor; g_return_val_if_fail (menu_factory == NULL || GIMP_IS_MENU_FACTORY (menu_factory), NULL); g_return_val_if_fail (shell == NULL || GIMP_IS_DISPLAY_SHELL (shell), NULL); g_return_val_if_fail (menu_factory || shell, NULL); if (shell) { Gimp *gimp = shell->display->gimp; GimpDisplayConfig *config = shell->display->config; GimpView *view; editor = g_object_new (GIMP_TYPE_NAVIGATION_EDITOR, NULL); view = GIMP_VIEW (editor->view); gimp_view_renderer_set_size (view->renderer, config->nav_preview_size * 3, view->renderer->border_width); gimp_view_renderer_set_context (view->renderer, gimp_get_user_context (gimp)); gimp_navigation_editor_set_shell (editor, shell); } else { GtkWidget *hscale; GtkWidget *hbox; editor = g_object_new (GIMP_TYPE_NAVIGATION_EDITOR, "menu-factory", menu_factory, "menu-identifier", "<NavigationEditor>", NULL); gtk_widget_set_size_request (editor->view, GIMP_VIEW_SIZE_HUGE, GIMP_VIEW_SIZE_HUGE); gimp_view_set_expand (GIMP_VIEW (editor->view), TRUE); /* the editor buttons */ editor->zoom_out_button = gimp_editor_add_action_button (GIMP_EDITOR (editor), "view", "view-zoom-out", NULL); editor->zoom_in_button = gimp_editor_add_action_button (GIMP_EDITOR (editor), "view", "view-zoom-in", NULL); editor->zoom_100_button = gimp_editor_add_action_button (GIMP_EDITOR (editor), "view", "view-zoom-1-1", NULL); editor->zoom_fit_in_button = gimp_editor_add_action_button (GIMP_EDITOR (editor), "view", "view-zoom-fit-in", NULL); editor->zoom_fill_button = gimp_editor_add_action_button (GIMP_EDITOR (editor), "view", "view-zoom-fill", NULL); editor->shrink_wrap_button = gimp_editor_add_action_button (GIMP_EDITOR (editor), "view", "view-shrink-wrap", NULL); /* the zoom scale */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_pack_end (GTK_BOX (editor), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); editor->zoom_adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, -8.0, 8.0, 0.5, 1.0, 0.0)); g_signal_connect (editor->zoom_adjustment, "value-changed", G_CALLBACK (gimp_navigation_editor_zoom_adj_changed), editor); hscale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, editor->zoom_adjustment); gtk_scale_set_draw_value (GTK_SCALE (hscale), FALSE); gtk_box_pack_start (GTK_BOX (hbox), hscale, TRUE, TRUE, 0); gtk_widget_show (hscale); /* the zoom label */ editor->zoom_label = gtk_label_new ("100%"); gtk_label_set_width_chars (GTK_LABEL (editor->zoom_label), 7); gtk_box_pack_start (GTK_BOX (hbox), editor->zoom_label, FALSE, FALSE, 0); gtk_widget_show (editor->zoom_label); } gimp_view_renderer_set_background (GIMP_VIEW (editor->view)->renderer, GIMP_STOCK_TEXTURE); return GTK_WIDGET (editor); }
void gimp_viewable_dialog_set_viewable (GimpViewableDialog *dialog, GimpViewable *viewable, GimpContext *context) { g_return_if_fail (GIMP_IS_VIEWABLE_DIALOG (dialog)); g_return_if_fail (viewable == NULL || GIMP_IS_VIEWABLE (viewable)); g_return_if_fail (context == NULL || GIMP_IS_CONTEXT (context)); dialog->context = context; if (dialog->view) { GimpViewable *old_viewable = GIMP_VIEW (dialog->view)->viewable; if (viewable == old_viewable) { gimp_view_renderer_set_context (GIMP_VIEW (dialog->view)->renderer, context); return; } gtk_widget_destroy (dialog->view); if (old_viewable) { g_signal_handlers_disconnect_by_func (old_viewable, gimp_viewable_dialog_name_changed, dialog); g_signal_handlers_disconnect_by_func (old_viewable, gimp_viewable_dialog_close, dialog); } } if (viewable) { GtkWidget *box; g_signal_connect_object (viewable, GIMP_VIEWABLE_GET_CLASS (viewable)->name_changed_signal, G_CALLBACK (gimp_viewable_dialog_name_changed), dialog, 0); box = gtk_widget_get_parent (dialog->icon); dialog->view = gimp_view_new (context, viewable, 32, 1, TRUE); gtk_box_pack_end (GTK_BOX (box), dialog->view, FALSE, FALSE, 2); gtk_widget_show (dialog->view); g_object_add_weak_pointer (G_OBJECT (dialog->view), (gpointer) &dialog->view); gimp_viewable_dialog_name_changed (GIMP_OBJECT (viewable), dialog); if (GIMP_IS_ITEM (viewable)) { g_signal_connect_object (viewable, "removed", G_CALLBACK (gimp_viewable_dialog_close), dialog, G_CONNECT_SWAPPED); } else { g_signal_connect_object (viewable, "disconnect", G_CALLBACK (gimp_viewable_dialog_close), dialog, G_CONNECT_SWAPPED); } } }