From a6dbb78dfa90f08153fa628f8fc70bc4862d654d Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Fri, 1 Sep 2006 11:26:54 +0000 Subject: [PATCH] added GimpContext parameters and create the GimpView with that context. 2006-09-01 Michael Natterer * app/widgets/gimpviewabledialog.[ch]: added GimpContext parameters and create the GimpView with that context. * app/widgets/gimpcolordialog.[ch] * app/dialogs/convert-dialog.[ch] * app/dialogs/desaturate-dialog.[ch] * app/dialogs/grid-dialog.[ch] * app/dialogs/image-properties-dialog.[ch] * app/dialogs/layer-add-mask-dialog.[ch] * app/dialogs/offset-dialog.[ch] * app/dialogs/print-size-dialog.[ch] * app/dialogs/resize-dialog.[ch] * app/dialogs/scale-dialog.[ch] * app/dialogs/stroke-dialog.[ch] * app/dialogs/template-options-dialog.[ch] * app/dialogs/vectors-options-dialog.[ch]: added GimpContext parameters here too and pass them to gimp_viewable_dialog_new(). * app/actions/colormap-editor-commands.c * app/actions/drawable-commands.c * app/actions/gradient-editor-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palette-editor-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/actions/view-commands.c * app/dialogs/channel-options-dialog.c * app/dialogs/dialogs-constructors.c * app/dialogs/image-merge-layers-dialog.c * app/dialogs/image-scale-dialog.c * app/dialogs/layer-options-dialog.c * app/display/gimpdisplayshell-filter-dialog.c * app/display/gimpdisplayshell-scale.c * app/tools/gimpcolorpickertool.c * app/tools/gimpimagemaptool.c * app/tools/gimpmeasuretool.c * app/tools/gimptexttool.c * app/tools/gimptransformtool.c * app/tools/gimpvectortool.c * app/widgets/gimpcolorpanel.c * app/widgets/gimpcontrollereditor.c * app/widgets/gimpcontrollerlist.c * app/widgets/gimptoolbox-color-area.c: pass contexts to above dialog constructors. --- ChangeLog | 48 ++++++++++++++++++++ app/actions/channels-commands.c | 6 +-- app/actions/colormap-commands.c | 4 +- app/actions/colormap-editor-commands.c | 4 +- app/actions/drawable-commands.c | 7 ++- app/actions/gradient-editor-commands.c | 14 ++++-- app/actions/image-commands.c | 14 ++++-- app/actions/layers-commands.c | 13 ++++-- app/actions/palette-editor-commands.c | 4 +- app/actions/quick-mask-commands.c | 3 +- app/actions/select-commands.c | 1 + app/actions/templates-commands.c | 4 +- app/actions/vectors-commands.c | 9 ++-- app/actions/view-commands.c | 18 ++++---- app/dialogs/channel-options-dialog.c | 6 +-- app/dialogs/channel-options-dialog.h | 2 +- app/dialogs/convert-dialog.c | 4 +- app/dialogs/convert-dialog.h | 1 + app/dialogs/desaturate-dialog.c | 5 +- app/dialogs/desaturate-dialog.h | 1 + app/dialogs/dialogs-constructors.c | 2 +- app/dialogs/grid-dialog.c | 9 ++-- app/dialogs/grid-dialog.h | 5 +- app/dialogs/image-merge-layers-dialog.c | 2 +- app/dialogs/image-new-dialog.c | 27 ++++++----- app/dialogs/image-new-dialog.h | 2 +- app/dialogs/image-properties-dialog.c | 9 ++-- app/dialogs/image-properties-dialog.h | 5 +- app/dialogs/image-scale-dialog.c | 5 +- app/dialogs/layer-add-mask-dialog.c | 7 ++- app/dialogs/layer-add-mask-dialog.h | 1 + app/dialogs/layer-options-dialog.c | 10 +++- app/dialogs/layer-options-dialog.h | 2 +- app/dialogs/offset-dialog.c | 12 +++-- app/dialogs/offset-dialog.h | 1 + app/dialogs/print-size-dialog.c | 5 +- app/dialogs/print-size-dialog.h | 1 + app/dialogs/resize-dialog.c | 9 ++-- app/dialogs/resize-dialog.h | 1 + app/dialogs/scale-dialog.c | 5 +- app/dialogs/scale-dialog.h | 1 + app/dialogs/stroke-dialog.c | 8 ++-- app/dialogs/stroke-dialog.h | 1 + app/dialogs/template-options-dialog.c | 15 +++--- app/dialogs/template-options-dialog.h | 4 +- app/dialogs/vectors-options-dialog.c | 5 +- app/dialogs/vectors-options-dialog.h | 1 + app/display/gimpdisplayshell-filter-dialog.c | 9 +++- app/display/gimpdisplayshell-scale.c | 6 ++- app/tools/gimpcolorpickertool.c | 3 +- app/tools/gimpimagemaptool.c | 3 +- app/tools/gimpmeasuretool.c | 3 +- app/tools/gimptexttool.c | 1 + app/tools/gimptransformtool.c | 3 +- app/tools/gimpvectortool.c | 1 + app/widgets/gimpcolordialog.c | 5 +- app/widgets/gimpcolordialog.h | 1 + app/widgets/gimpcolorpanel.c | 2 +- app/widgets/gimpcontrollereditor.c | 2 +- app/widgets/gimpcontrollerlist.c | 2 +- app/widgets/gimptoolbox-color-area.c | 2 +- app/widgets/gimpviewabledialog.c | 41 ++++++++++++++--- app/widgets/gimpviewabledialog.h | 16 ++++--- 63 files changed, 302 insertions(+), 121 deletions(-) diff --git a/ChangeLog b/ChangeLog index 63348d6341..057ef629e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,51 @@ +2006-09-01 Michael Natterer + + * app/widgets/gimpviewabledialog.[ch]: added GimpContext + parameters and create the GimpView with that context. + + * app/widgets/gimpcolordialog.[ch] + * app/dialogs/convert-dialog.[ch] + * app/dialogs/desaturate-dialog.[ch] + * app/dialogs/grid-dialog.[ch] + * app/dialogs/image-properties-dialog.[ch] + * app/dialogs/layer-add-mask-dialog.[ch] + * app/dialogs/offset-dialog.[ch] + * app/dialogs/print-size-dialog.[ch] + * app/dialogs/resize-dialog.[ch] + * app/dialogs/scale-dialog.[ch] + * app/dialogs/stroke-dialog.[ch] + * app/dialogs/template-options-dialog.[ch] + * app/dialogs/vectors-options-dialog.[ch]: added GimpContext + parameters here too and pass them to gimp_viewable_dialog_new(). + + * app/actions/colormap-editor-commands.c + * app/actions/drawable-commands.c + * app/actions/gradient-editor-commands.c + * app/actions/image-commands.c + * app/actions/layers-commands.c + * app/actions/palette-editor-commands.c + * app/actions/select-commands.c + * app/actions/vectors-commands.c + * app/actions/view-commands.c + * app/dialogs/channel-options-dialog.c + * app/dialogs/dialogs-constructors.c + * app/dialogs/image-merge-layers-dialog.c + * app/dialogs/image-scale-dialog.c + * app/dialogs/layer-options-dialog.c + * app/display/gimpdisplayshell-filter-dialog.c + * app/display/gimpdisplayshell-scale.c + * app/tools/gimpcolorpickertool.c + * app/tools/gimpimagemaptool.c + * app/tools/gimpmeasuretool.c + * app/tools/gimptexttool.c + * app/tools/gimptransformtool.c + * app/tools/gimpvectortool.c + * app/widgets/gimpcolorpanel.c + * app/widgets/gimpcontrollereditor.c + * app/widgets/gimpcontrollerlist.c + * app/widgets/gimptoolbox-color-area.c: pass contexts to above + dialog constructors. + 2006-09-01 Sven Neumann * app/widgets/gimpviewrendererdrawable.c: fixed includes for diff --git a/app/actions/channels-commands.c b/app/actions/channels-commands.c index b748454566..ddb3619453 100644 --- a/app/actions/channels-commands.c +++ b/app/actions/channels-commands.c @@ -77,9 +77,8 @@ channels_edit_attributes_cmd_callback (GtkAction *action, return_if_no_channel (image, channel, data); return_if_no_widget (widget, data); - options = channel_options_dialog_new (image, + options = channel_options_dialog_new (image, channel, action_data_get_context (data), - channel, widget, &channel->color, gimp_object_get_name (GIMP_OBJECT (channel)), @@ -109,9 +108,8 @@ channels_new_cmd_callback (GtkAction *action, return_if_no_image (image, data); return_if_no_widget (widget, data); - options = channel_options_dialog_new (image, + options = channel_options_dialog_new (image, NULL, action_data_get_context (data), - NULL, widget, &channel_color, channel_name ? channel_name : diff --git a/app/actions/colormap-commands.c b/app/actions/colormap-commands.c index 43390ab28f..b65c7e28c2 100644 --- a/app/actions/colormap-commands.c +++ b/app/actions/colormap-commands.c @@ -73,6 +73,7 @@ colormap_editor_edit_color_cmd_callback (GtkAction *action, { editor->color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (image), + action_data_get_context (data), _("Edit Colormap Entry"), GIMP_STOCK_COLORMAP, desc, @@ -93,7 +94,8 @@ colormap_editor_edit_color_cmd_callback (GtkAction *action, else { gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (editor->color_dialog), - GIMP_VIEWABLE (image)); + GIMP_VIEWABLE (image), + action_data_get_context (data)); g_object_set (editor->color_dialog, "description", desc, NULL); gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (editor->color_dialog), &color); diff --git a/app/actions/colormap-editor-commands.c b/app/actions/colormap-editor-commands.c index 43390ab28f..b65c7e28c2 100644 --- a/app/actions/colormap-editor-commands.c +++ b/app/actions/colormap-editor-commands.c @@ -73,6 +73,7 @@ colormap_editor_edit_color_cmd_callback (GtkAction *action, { editor->color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (image), + action_data_get_context (data), _("Edit Colormap Entry"), GIMP_STOCK_COLORMAP, desc, @@ -93,7 +94,8 @@ colormap_editor_edit_color_cmd_callback (GtkAction *action, else { gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (editor->color_dialog), - GIMP_VIEWABLE (image)); + GIMP_VIEWABLE (image), + action_data_get_context (data)); g_object_set (editor->color_dialog, "description", desc, NULL); gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (editor->color_dialog), &color); diff --git a/app/actions/drawable-commands.c b/app/actions/drawable-commands.c index 23b956b6ec..63e42955e9 100644 --- a/app/actions/drawable-commands.c +++ b/app/actions/drawable-commands.c @@ -75,7 +75,9 @@ drawable_desaturate_cmd_callback (GtkAction *action, return; } - dialog = desaturate_dialog_new (drawable, widget, desaturate_mode); + dialog = desaturate_dialog_new (drawable, + action_data_get_context (data), + widget, desaturate_mode); g_signal_connect (dialog->dialog, "response", G_CALLBACK (desaturate_response), @@ -151,7 +153,8 @@ drawable_offset_cmd_callback (GtkAction *action, return_if_no_drawable (image, drawable, data); return_if_no_widget (widget, data); - dialog = offset_dialog_new (drawable, widget); + dialog = offset_dialog_new (drawable, action_data_get_context (data), + widget); gtk_widget_show (dialog); } diff --git a/app/actions/gradient-editor-commands.c b/app/actions/gradient-editor-commands.c index fc72f7f7fd..ea6658fc00 100644 --- a/app/actions/gradient-editor-commands.c +++ b/app/actions/gradient-editor-commands.c @@ -82,6 +82,7 @@ gradient_editor_left_color_cmd_callback (GtkAction *action, editor->color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (gradient), + GIMP_DATA_EDITOR (editor)->context, _("Left Endpoint Color"), GIMP_STOCK_GRADIENT, _("Gradient Segment's Left Endpoint Color"), @@ -232,6 +233,7 @@ gradient_editor_right_color_cmd_callback (GtkAction *action, editor->color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (gradient), + GIMP_DATA_EDITOR (editor)->context, _("Right Endpoint Color"), GIMP_STOCK_GRADIENT, _("Gradient Segment's Right Endpoint Color"), @@ -436,7 +438,8 @@ void gradient_editor_replicate_cmd_callback (GtkAction *action, gpointer data) { - GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data); + GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data); + GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data); GtkWidget *dialog; GtkWidget *vbox; GtkWidget *label; @@ -457,7 +460,8 @@ gradient_editor_replicate_cmd_callback (GtkAction *action, } dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (GIMP_DATA_EDITOR (editor)->data), + gimp_viewable_dialog_new (GIMP_VIEWABLE (data_editor->data), + data_editor->context, title, "gimp-gradient-segment-replicate", GIMP_STOCK_GRADIENT, desc, GTK_WIDGET (editor), @@ -535,7 +539,8 @@ void gradient_editor_split_uniformly_cmd_callback (GtkAction *action, gpointer data) { - GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data); + GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data); + GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data); GtkWidget *dialog; GtkWidget *vbox; GtkWidget *label; @@ -556,7 +561,8 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action, } dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (GIMP_DATA_EDITOR (editor)->data), + gimp_viewable_dialog_new (GIMP_VIEWABLE (data_editor->data), + data_editor->context, title, "gimp-gradient-segment-split-uniformly", GIMP_STOCK_GRADIENT, desc, GTK_WIDGET (editor), diff --git a/app/actions/image-commands.c b/app/actions/image-commands.c index e576d4e906..820c3e4fe4 100644 --- a/app/actions/image-commands.c +++ b/app/actions/image-commands.c @@ -185,7 +185,9 @@ image_convert_cmd_callback (GtkAction *action, if (! dialog) { - dialog = convert_dialog_new (image, widget, + dialog = convert_dialog_new (image, + action_data_get_context (data), + widget, GIMP_PROGRESS (display)); g_object_set_data (G_OBJECT (widget), @@ -229,6 +231,7 @@ image_resize_cmd_callback (GtkAction *action, unit = GIMP_DISPLAY_SHELL (display->shell)->unit; dialog = resize_dialog_new (GIMP_VIEWABLE (image), + action_data_get_context (data), _("Set Image Canvas Size"), "gimp-image-resize", widget, gimp_standard_help_func, GIMP_HELP_IMAGE_RESIZE, @@ -278,6 +281,7 @@ image_print_size_cmd_callback (GtkAction *action, return_if_no_widget (widget, data); dialog = print_size_dialog_new (display->image, + action_data_get_context (data), _("Set Image Print Resolution"), "gimp-image-print-size", widget, @@ -446,7 +450,9 @@ image_configure_grid_cmd_callback (GtkAction *action, if (! shell->grid_dialog) { - shell->grid_dialog = grid_dialog_new (display->image, display->shell); + shell->grid_dialog = grid_dialog_new (display->image, + action_data_get_context (data), + display->shell); gtk_window_set_transient_for (GTK_WINDOW (shell->grid_dialog), GTK_WINDOW (display->shell)); @@ -473,7 +479,9 @@ image_properties_cmd_callback (GtkAction *action, shell = GIMP_DISPLAY_SHELL (display->shell); image = display->image; - dialog = image_properties_dialog_new (display->image, display->shell); + dialog = image_properties_dialog_new (display->image, + action_data_get_context (data), + display->shell); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (display->shell)); diff --git a/app/actions/layers-commands.c b/app/actions/layers-commands.c index c37f476675..fd64d83f1e 100644 --- a/app/actions/layers-commands.c +++ b/app/actions/layers-commands.c @@ -195,8 +195,9 @@ layers_edit_attributes_cmd_callback (GtkAction *action, return_if_no_widget (widget, data); dialog = layer_options_dialog_new (gimp_item_get_image (GIMP_ITEM (layer)), + layer, action_data_get_context (data), - layer, widget, + widget, gimp_object_get_name (GIMP_OBJECT (layer)), layer_fill_type, _("Layer Attributes"), @@ -233,8 +234,9 @@ layers_new_cmd_callback (GtkAction *action, return; } - dialog = layer_options_dialog_new (image, action_data_get_context (data), - NULL, widget, + dialog = layer_options_dialog_new (image, NULL, + action_data_get_context (data), + widget, layer_name ? layer_name : _("New Layer"), layer_fill_type, _("New Layer"), @@ -532,6 +534,7 @@ layers_resize_cmd_callback (GtkAction *action, unit = display ? GIMP_DISPLAY_SHELL (display->shell)->unit : GIMP_UNIT_PIXEL; dialog = resize_dialog_new (GIMP_VIEWABLE (layer), + action_data_get_context (data), _("Set Layer Boundary Size"), "gimp-layer-resize", widget, gimp_standard_help_func, GIMP_HELP_LAYER_RESIZE, @@ -575,6 +578,7 @@ layers_scale_cmd_callback (GtkAction *action, unit = display ? GIMP_DISPLAY_SHELL (display->shell)->unit : GIMP_UNIT_PIXEL; dialog = scale_dialog_new (GIMP_VIEWABLE (layer), + action_data_get_context (data), _("Scale Layer"), "gimp-layer-scale", widget, gimp_standard_help_func, GIMP_HELP_LAYER_SCALE, @@ -629,7 +633,8 @@ layers_mask_add_cmd_callback (GtkAction *action, return_if_no_layer (image, layer, data); return_if_no_widget (widget, data); - dialog = layer_add_mask_dialog_new (layer, widget, + dialog = layer_add_mask_dialog_new (layer, action_data_get_context (data), + widget, layer_add_mask_type, layer_mask_invert); g_signal_connect (dialog->dialog, "response", diff --git a/app/actions/palette-editor-commands.c b/app/actions/palette-editor-commands.c index 0ce3adb79a..9f57c6982e 100644 --- a/app/actions/palette-editor-commands.c +++ b/app/actions/palette-editor-commands.c @@ -65,6 +65,7 @@ palette_editor_edit_color_cmd_callback (GtkAction *action, { editor->color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (palette), + data_editor->context, _("Edit Palette Color"), GIMP_STOCK_PALETTE, _("Edit Color Palette Entry"), @@ -85,7 +86,8 @@ palette_editor_edit_color_cmd_callback (GtkAction *action, else { gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (editor->color_dialog), - GIMP_VIEWABLE (palette)); + GIMP_VIEWABLE (palette), + data_editor->context); gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (editor->color_dialog), &editor->color->color); } diff --git a/app/actions/quick-mask-commands.c b/app/actions/quick-mask-commands.c index e9b334e895..6320747f0d 100644 --- a/app/actions/quick-mask-commands.c +++ b/app/actions/quick-mask-commands.c @@ -97,9 +97,8 @@ quick_mask_configure_cmd_callback (GtkAction *action, gimp_image_get_quick_mask_color (image, &color); - options = channel_options_dialog_new (image, + options = channel_options_dialog_new (image, NULL, action_data_get_context (data), - NULL, widget, &color, NULL, diff --git a/app/actions/select-commands.c b/app/actions/select-commands.c index b50283fb48..27e61773a1 100644 --- a/app/actions/select-commands.c +++ b/app/actions/select-commands.c @@ -291,6 +291,7 @@ select_stroke_cmd_callback (GtkAction *action, } dialog = stroke_dialog_new (GIMP_ITEM (gimp_image_get_mask (image)), + action_data_get_context (data), _("Stroke Selection"), GIMP_STOCK_SELECTION_STROKE, GIMP_HELP_SELECTION_STROKE, diff --git a/app/actions/templates-commands.c b/app/actions/templates-commands.c index a04137043e..6f4cb04154 100644 --- a/app/actions/templates-commands.c +++ b/app/actions/templates-commands.c @@ -117,7 +117,7 @@ templates_new_cmd_callback (GtkAction *action, context = gimp_container_view_get_context (editor->view); - options = template_options_dialog_new (context->gimp, NULL, + options = template_options_dialog_new (NULL, context, GTK_WIDGET (editor), _("New Template"), "gimp-template-new", @@ -179,7 +179,7 @@ templates_edit_cmd_callback (GtkAction *action, { TemplateOptionsDialog *options; - options = template_options_dialog_new (context->gimp, template, + options = template_options_dialog_new (template, context, GTK_WIDGET (editor), _("Edit Template"), "gimp-template-edit", diff --git a/app/actions/vectors-commands.c b/app/actions/vectors-commands.c index d71ae719ae..80795c5db0 100644 --- a/app/actions/vectors-commands.c +++ b/app/actions/vectors-commands.c @@ -135,8 +135,8 @@ vectors_edit_attributes_cmd_callback (GtkAction *action, return_if_no_vectors (image, vectors, data); return_if_no_widget (widget, data); - options = vectors_options_dialog_new (image, - vectors, + options = vectors_options_dialog_new (image, vectors, + action_data_get_context (data), widget, gimp_object_get_name (GIMP_OBJECT (vectors)), _("Path Attributes"), @@ -162,8 +162,8 @@ vectors_new_cmd_callback (GtkAction *action, return_if_no_image (image, data); return_if_no_widget (widget, data); - options = vectors_options_dialog_new (image, - NULL, + options = vectors_options_dialog_new (image, NULL, + action_data_get_context (data), widget, vectors_name ? vectors_name : _("New Path"), @@ -365,6 +365,7 @@ vectors_stroke_cmd_callback (GtkAction *action, } dialog = stroke_dialog_new (GIMP_ITEM (vectors), + action_data_get_context (data), _("Stroke Path"), GIMP_STOCK_PATH_STROKE, GIMP_HELP_PATH_STROKE, diff --git a/app/actions/view-commands.c b/app/actions/view-commands.c index 396f71aabb..beae0dd524 100644 --- a/app/actions/view-commands.c +++ b/app/actions/view-commands.c @@ -565,14 +565,16 @@ view_padding_color_cmd_callback (GtkAction *action, if (! color_dialog) { - color_dialog = gimp_color_dialog_new (GIMP_VIEWABLE (display->image), - _("Set Canvas Padding Color"), - GTK_STOCK_SELECT_COLOR, - _("Set Custom Canvas Padding Color"), - display->shell, - NULL, NULL, - &options->padding_color, - FALSE, FALSE); + color_dialog = + gimp_color_dialog_new (GIMP_VIEWABLE (display->image), + action_data_get_context (data), + _("Set Canvas Padding Color"), + GTK_STOCK_SELECT_COLOR, + _("Set Custom Canvas Padding Color"), + display->shell, + NULL, NULL, + &options->padding_color, + FALSE, FALSE); g_signal_connect (color_dialog, "update", G_CALLBACK (view_padding_color_dialog_update), diff --git a/app/dialogs/channel-options-dialog.c b/app/dialogs/channel-options-dialog.c index e27fadb78b..95e9b81d57 100644 --- a/app/dialogs/channel-options-dialog.c +++ b/app/dialogs/channel-options-dialog.c @@ -49,8 +49,8 @@ static void channel_options_color_changed (GimpColorButton *button, ChannelOptionsDialog * channel_options_dialog_new (GimpImage *image, - GimpContext *context, GimpChannel *channel, + GimpContext *context, GtkWidget *parent, const GimpRGB *channel_color, const gchar *channel_name, @@ -71,8 +71,8 @@ channel_options_dialog_new (GimpImage *image, GtkObject *opacity_adj; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); - g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (channel == NULL || GIMP_IS_CHANNEL (channel), NULL); + g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); g_return_val_if_fail (channel_color != NULL, NULL); g_return_val_if_fail (title != NULL, NULL); @@ -102,7 +102,7 @@ channel_options_dialog_new (GimpImage *image, viewable = GIMP_VIEWABLE (image); options->dialog = - gimp_viewable_dialog_new (viewable, + gimp_viewable_dialog_new (viewable, context, title, role, stock_id, desc, parent, gimp_standard_help_func, help_id, diff --git a/app/dialogs/channel-options-dialog.h b/app/dialogs/channel-options-dialog.h index 44afc20c37..ca309f1158 100644 --- a/app/dialogs/channel-options-dialog.h +++ b/app/dialogs/channel-options-dialog.h @@ -36,8 +36,8 @@ struct _ChannelOptionsDialog ChannelOptionsDialog * channel_options_dialog_new (GimpImage *image, - GimpContext *context, GimpChannel *channel, + GimpContext *context, GtkWidget *parent, const GimpRGB *channel_color, const gchar *channel_name, diff --git a/app/dialogs/convert-dialog.c b/app/dialogs/convert-dialog.c index 2537da3cca..f89730614c 100644 --- a/app/dialogs/convert-dialog.c +++ b/app/dialogs/convert-dialog.c @@ -85,6 +85,7 @@ static GimpPalette *saved_palette = NULL; GtkWidget * convert_dialog_new (GimpImage *image, + GimpContext *context, GtkWidget *parent, GimpProgress *progress) { @@ -102,6 +103,7 @@ convert_dialog_new (GimpImage *image, GtkWidget *combo; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); g_return_val_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress), NULL); @@ -116,7 +118,7 @@ convert_dialog_new (GimpImage *image, dialog->palette_type = saved_palette_type; dialog->dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + gimp_viewable_dialog_new (GIMP_VIEWABLE (image), context, _("Indexed Color Conversion"), "gimp-image-convert-indexed", GIMP_STOCK_CONVERT_INDEXED, diff --git a/app/dialogs/convert-dialog.h b/app/dialogs/convert-dialog.h index d174fb1504..3b290dce30 100644 --- a/app/dialogs/convert-dialog.h +++ b/app/dialogs/convert-dialog.h @@ -21,6 +21,7 @@ GtkWidget * convert_dialog_new (GimpImage *image, + GimpContext *context, GtkWidget *parent, GimpProgress *progress); diff --git a/app/dialogs/desaturate-dialog.c b/app/dialogs/desaturate-dialog.c index de9e237bd0..6a0867d21a 100644 --- a/app/dialogs/desaturate-dialog.c +++ b/app/dialogs/desaturate-dialog.c @@ -24,6 +24,7 @@ #include "dialogs-types.h" +#include "core/gimpcontext.h" #include "core/gimplayer.h" #include "widgets/gimphelp-ids.h" @@ -38,6 +39,7 @@ DesaturateDialog * desaturate_dialog_new (GimpDrawable *drawable, + GimpContext *context, GtkWidget *parent, GimpDesaturateMode mode) { @@ -47,6 +49,7 @@ desaturate_dialog_new (GimpDrawable *drawable, GtkWidget *button; g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); dialog = g_new0 (DesaturateDialog, 1); @@ -55,7 +58,7 @@ desaturate_dialog_new (GimpDrawable *drawable, dialog->mode = mode; dialog->dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (drawable), + gimp_viewable_dialog_new (GIMP_VIEWABLE (drawable), context, _("Desaturate"), "gimp-drawable-desaturate", GIMP_STOCK_CONVERT_GRAYSCALE, _("Remove Colors"), diff --git a/app/dialogs/desaturate-dialog.h b/app/dialogs/desaturate-dialog.h index 59fe242a19..08a737a724 100644 --- a/app/dialogs/desaturate-dialog.h +++ b/app/dialogs/desaturate-dialog.h @@ -32,6 +32,7 @@ struct _DesaturateDialog DesaturateDialog * desaturate_dialog_new (GimpDrawable *drawable, + GimpContext *context, GtkWidget *parent, GimpDesaturateMode mode); diff --git a/app/dialogs/dialogs-constructors.c b/app/dialogs/dialogs-constructors.c index 6730556431..7b1299dcda 100644 --- a/app/dialogs/dialogs-constructors.c +++ b/app/dialogs/dialogs-constructors.c @@ -100,7 +100,7 @@ dialogs_image_new_new (GimpDialogFactory *factory, GimpContext *context, gint view_size) { - return image_new_dialog_new (context->gimp); + return image_new_dialog_new (context); } GtkWidget * diff --git a/app/dialogs/grid-dialog.c b/app/dialogs/grid-dialog.c index c4e3e20bde..e8f3dba29b 100644 --- a/app/dialogs/grid-dialog.c +++ b/app/dialogs/grid-dialog.c @@ -32,6 +32,7 @@ #include "config/gimpcoreconfig.h" #include "core/gimp.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimpimage-grid.h" #include "core/gimpimage-undo.h" @@ -62,8 +63,9 @@ static void grid_dialog_response (GtkWidget *widget, GtkWidget * -grid_dialog_new (GimpImage *image, - GtkWidget *parent) +grid_dialog_new (GimpImage *image, + GimpContext *context, + GtkWidget *parent) { GimpGrid *grid; GimpGrid *grid_backup; @@ -71,12 +73,13 @@ grid_dialog_new (GimpImage *image, GtkWidget *editor; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL); grid = gimp_image_get_grid (GIMP_IMAGE (image)); grid_backup = gimp_config_duplicate (GIMP_CONFIG (grid)); - dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), context, _("Configure Grid"), "gimp-grid-configure", GIMP_STOCK_GRID, _("Configure Image Grid"), parent, diff --git a/app/dialogs/grid-dialog.h b/app/dialogs/grid-dialog.h index d90ba45ced..85f2f8d8d3 100644 --- a/app/dialogs/grid-dialog.h +++ b/app/dialogs/grid-dialog.h @@ -22,8 +22,9 @@ #define __GRID_DIALOG_H__ -GtkWidget * grid_dialog_new (GimpImage *image, - GtkWidget *parent); +GtkWidget * grid_dialog_new (GimpImage *image, + GimpContext *context, + GtkWidget *parent); #endif /* __GRID_DIALOG_H__ */ diff --git a/app/dialogs/image-merge-layers-dialog.c b/app/dialogs/image-merge-layers-dialog.c index e369704c32..bbba1a42ba 100644 --- a/app/dialogs/image-merge-layers-dialog.c +++ b/app/dialogs/image-merge-layers-dialog.c @@ -59,7 +59,7 @@ image_merge_layers_dialog_new (GimpImage *image, dialog->merge_type = GIMP_EXPAND_AS_NECESSARY; dialog->dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + gimp_viewable_dialog_new (GIMP_VIEWABLE (image), context, _("Merge Layers"), "gimp-image-merge-layers", GIMP_STOCK_MERGE_DOWN, _("Layers Merge Options"), diff --git a/app/dialogs/image-new-dialog.c b/app/dialogs/image-new-dialog.c index a47a0c73c2..4628e212d1 100644 --- a/app/dialogs/image-new-dialog.c +++ b/app/dialogs/image-new-dialog.c @@ -31,6 +31,7 @@ #include "config/gimpguiconfig.h" #include "core/gimp.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimpimage-new.h" #include "core/gimptemplate.h" @@ -57,7 +58,7 @@ typedef struct GtkWidget *combo; GtkWidget *editor; - Gimp *gimp; + GimpContext *context; GimpTemplate *template; } ImageNewDialog; @@ -78,18 +79,18 @@ static void image_new_create_image (ImageNewDialog *dialog); /* public functions */ GtkWidget * -image_new_dialog_new (Gimp *gimp) +image_new_dialog_new (GimpContext *context) { ImageNewDialog *dialog; GtkWidget *main_vbox; GtkWidget *table; GimpSizeEntry *entry; - g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL); + g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); dialog = g_new0 (ImageNewDialog, 1); - dialog->gimp = gimp; + dialog->context = context; dialog->template = g_object_new (GIMP_TYPE_TEMPLATE, NULL); dialog->dialog = gimp_dialog_new (_("Create a New Image"), @@ -131,7 +132,7 @@ image_new_dialog_new (Gimp *gimp) gtk_widget_show (table); dialog->combo = g_object_new (GIMP_TYPE_CONTAINER_COMBO_BOX, - "container", gimp->templates, + "container", context->gimp->templates, "view-size", 16, "view-border-width", 0, "ellipsize", PANGO_ELLIPSIZE_NONE, @@ -147,7 +148,8 @@ image_new_dialog_new (Gimp *gimp) dialog); /* Template editor */ - dialog->editor = gimp_template_editor_new (dialog->template, gimp, FALSE); + dialog->editor = gimp_template_editor_new (dialog->template, context->gimp, + FALSE); gtk_box_pack_start (GTK_BOX (main_vbox), dialog->editor, FALSE, FALSE, 0); gtk_widget_show (dialog->editor); @@ -180,7 +182,8 @@ image_new_dialog_set (GtkWidget *widget, } else { - template = gimp_image_new_get_last_template (dialog->gimp, image); + template = gimp_image_new_get_last_template (dialog->context->gimp, + image); gimp_config_sync (G_OBJECT (template), G_OBJECT (dialog->template), 0); @@ -199,7 +202,7 @@ image_new_response (GtkWidget *widget, switch (response_id) { case RESPONSE_RESET: - gimp_config_sync (G_OBJECT (dialog->gimp->config->default_image), + gimp_config_sync (G_OBJECT (dialog->context->gimp->config->default_image), G_OBJECT (dialog->template), 0); gimp_container_view_select_item (GIMP_CONTAINER_VIEW (dialog->combo), NULL); @@ -207,7 +210,7 @@ image_new_response (GtkWidget *widget, case GTK_RESPONSE_OK: if (dialog->template->initial_size > - GIMP_GUI_CONFIG (dialog->gimp->config)->max_new_image_size) + GIMP_GUI_CONFIG (dialog->context->gimp->config)->max_new_image_size) image_new_confirm_dialog (dialog); else image_new_create_image (dialog); @@ -303,7 +306,7 @@ image_new_confirm_dialog (ImageNewDialog *data) "with a size of %s."), size); g_free (size); - config = GIMP_GUI_CONFIG (data->gimp->config); + config = GIMP_GUI_CONFIG (data->context->gimp->config); size = gimp_memsize_to_string (config->max_new_image_size); gimp_message_box_set_text (GIMP_MESSAGE_DIALOG (dialog)->box, _("An image of the chosen size will use more " @@ -324,11 +327,11 @@ image_new_create_image (ImageNewDialog *dialog) Gimp *gimp; template = g_object_ref (dialog->template); - gimp = dialog->gimp; + gimp = dialog->context->gimp; gtk_widget_destroy (dialog->dialog); - gimp_template_create_image (gimp, template, gimp_get_user_context (gimp)); + gimp_template_create_image (gimp, template, dialog->context); gimp_image_new_set_last_template (gimp, template); g_object_unref (template); diff --git a/app/dialogs/image-new-dialog.h b/app/dialogs/image-new-dialog.h index c0fe4db4d9..02c8eccdf3 100644 --- a/app/dialogs/image-new-dialog.h +++ b/app/dialogs/image-new-dialog.h @@ -20,7 +20,7 @@ #define __IMAGE_NEW_DIALOG_H__ -GtkWidget * image_new_dialog_new (Gimp *gimp); +GtkWidget * image_new_dialog_new (GimpContext *context); void image_new_dialog_set (GtkWidget *widget, GimpImage *image, diff --git a/app/dialogs/image-properties-dialog.c b/app/dialogs/image-properties-dialog.c index d26781261b..3472e0676b 100644 --- a/app/dialogs/image-properties-dialog.c +++ b/app/dialogs/image-properties-dialog.c @@ -27,6 +27,7 @@ #include "dialogs-types.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "widgets/gimphelp-ids.h" @@ -41,16 +42,18 @@ /* public functions */ GtkWidget * -image_properties_dialog_new (GimpImage *image, - GtkWidget *parent) +image_properties_dialog_new (GimpImage *image, + GimpContext *context, + GtkWidget *parent) { GtkWidget *dialog; GtkWidget *view; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL); - dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), context, _("Image Properties"), "gimp-image-properties", GTK_STOCK_INFO, diff --git a/app/dialogs/image-properties-dialog.h b/app/dialogs/image-properties-dialog.h index f4c3a724b3..1b6e4e70e5 100644 --- a/app/dialogs/image-properties-dialog.h +++ b/app/dialogs/image-properties-dialog.h @@ -23,8 +23,9 @@ #define __IMAGE_PROPERTIES_DIALOG_H__ -GtkWidget * image_properties_dialog_new (GimpImage *image, - GtkWidget *parent); +GtkWidget * image_properties_dialog_new (GimpImage *image, + GimpContext *context, + GtkWidget *parent); #endif /* __IMAGE_PROPERTIES_DIALOG_H__ */ diff --git a/app/dialogs/image-scale-dialog.c b/app/dialogs/image-scale-dialog.c index 2b2194cf55..8215436bcb 100644 --- a/app/dialogs/image-scale-dialog.c +++ b/app/dialogs/image-scale-dialog.c @@ -93,8 +93,9 @@ image_scale_dialog_new (GimpImage *image, dialog->image = image; dialog->display = display; dialog->context = context; - dialog->dialog = scale_dialog_new (GIMP_VIEWABLE (display->image), - Q_("dialog-title|Scale Image"), "gimp-image-scale", + dialog->dialog = scale_dialog_new (GIMP_VIEWABLE (display->image), context, + Q_("dialog-title|Scale Image"), + "gimp-image-scale", parent, gimp_standard_help_func, GIMP_HELP_IMAGE_SCALE, diff --git a/app/dialogs/layer-add-mask-dialog.c b/app/dialogs/layer-add-mask-dialog.c index d83215531f..3ffc47a930 100644 --- a/app/dialogs/layer-add-mask-dialog.c +++ b/app/dialogs/layer-add-mask-dialog.c @@ -26,6 +26,7 @@ #include "core/gimpchannel.h" #include "core/gimpcontainer.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimplayer.h" @@ -52,6 +53,7 @@ static gboolean layer_add_mask_dialog_channel_selected (GimpContainerView *vi LayerAddMaskDialog * layer_add_mask_dialog_new (GimpLayer *layer, + GimpContext *context, GtkWidget *parent, GimpAddMaskType add_mask_type, gboolean invert) @@ -65,6 +67,7 @@ layer_add_mask_dialog_new (GimpLayer *layer, g_return_val_if_fail (GIMP_IS_LAYER (layer), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); dialog = g_new0 (LayerAddMaskDialog, 1); @@ -73,7 +76,7 @@ layer_add_mask_dialog_new (GimpLayer *layer, dialog->invert = invert; dialog->dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (layer), + gimp_viewable_dialog_new (GIMP_VIEWABLE (layer), context, _("Add Layer Mask"), "gimp-layer-add-mask", GIMP_STOCK_LAYER_MASK, _("Add a Mask to the Layer"), @@ -114,7 +117,7 @@ layer_add_mask_dialog_new (GimpLayer *layer, gtk_widget_show (frame); combo = gimp_container_combo_box_new (GIMP_ITEM (layer)->image->channels, - NULL, + context, GIMP_VIEW_SIZE_SMALL, 1); gimp_enum_radio_frame_add (GTK_FRAME (frame), combo, GIMP_ADD_CHANNEL_MASK); gtk_widget_show (combo); diff --git a/app/dialogs/layer-add-mask-dialog.h b/app/dialogs/layer-add-mask-dialog.h index 6433012a1b..3bb16a281f 100644 --- a/app/dialogs/layer-add-mask-dialog.h +++ b/app/dialogs/layer-add-mask-dialog.h @@ -34,6 +34,7 @@ struct _LayerAddMaskDialog LayerAddMaskDialog * layer_add_mask_dialog_new (GimpLayer *layer, + GimpContext *context, GtkWidget *parent, GimpAddMaskType add_mask_type, gboolean invert); diff --git a/app/dialogs/layer-options-dialog.c b/app/dialogs/layer-options-dialog.c index fafccf730f..cd3762c89c 100644 --- a/app/dialogs/layer-options-dialog.c +++ b/app/dialogs/layer-options-dialog.c @@ -49,8 +49,8 @@ static void layer_options_dialog_toggle_rename (GtkWidget *widget, LayerOptionsDialog * layer_options_dialog_new (GimpImage *image, - GimpContext *context, GimpLayer *layer, + GimpContext *context, GtkWidget *parent, const gchar *layer_name, GimpFillType layer_fill_type, @@ -70,6 +70,11 @@ layer_options_dialog_new (GimpImage *image, GtkWidget *frame; GtkWidget *button; + g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); + g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); + g_return_val_if_fail (layer == NULL || GIMP_IS_LAYER (layer), NULL); + g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); + options = g_new0 (LayerOptionsDialog, 1); options->image = image; @@ -83,7 +88,8 @@ layer_options_dialog_new (GimpImage *image, viewable = GIMP_VIEWABLE (image); options->dialog = - gimp_viewable_dialog_new (viewable, title, role, stock_id, desc, + gimp_viewable_dialog_new (viewable, context, + title, role, stock_id, desc, parent, gimp_standard_help_func, help_id, diff --git a/app/dialogs/layer-options-dialog.h b/app/dialogs/layer-options-dialog.h index cb5bedfad2..d23cb72dc3 100644 --- a/app/dialogs/layer-options-dialog.h +++ b/app/dialogs/layer-options-dialog.h @@ -40,8 +40,8 @@ struct _LayerOptionsDialog LayerOptionsDialog * layer_options_dialog_new (GimpImage *image, - GimpContext *context, GimpLayer *layer, + GimpContext *context, GtkWidget *parent, const gchar *layer_name, GimpFillType layer_fill_type, diff --git a/app/dialogs/offset-dialog.c b/app/dialogs/offset-dialog.c index ad78f35f17..1a0c5c2abd 100644 --- a/app/dialogs/offset-dialog.c +++ b/app/dialogs/offset-dialog.c @@ -27,6 +27,7 @@ #include "core/gimp.h" #include "core/gimpchannel.h" +#include "core/gimpcontext.h" #include "core/gimpdrawable.h" #include "core/gimpdrawable-offset.h" #include "core/gimplayer.h" @@ -51,6 +52,8 @@ typedef struct _OffsetDialog OffsetDialog; struct _OffsetDialog { + GimpContext *context; + GtkWidget *dialog; GtkWidget *off_se; @@ -73,6 +76,7 @@ static void offset_halfheight_callback (GtkWidget *widget, GtkWidget * offset_dialog_new (GimpDrawable *drawable, + GimpContext *context, GtkWidget *parent) { OffsetDialog *dialog; @@ -87,12 +91,14 @@ offset_dialog_new (GimpDrawable *drawable, const gchar *title = NULL; g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL); + g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); dialog = g_new0 (OffsetDialog, 1); + dialog->context = context; dialog->fill_type = gimp_drawable_has_alpha (drawable) | WRAP_AROUND; - dialog->image = gimp_item_get_image (GIMP_ITEM (drawable)); + dialog->image = gimp_item_get_image (GIMP_ITEM (drawable)); if (GIMP_IS_LAYER (drawable)) title = _("Offset Layer"); @@ -104,7 +110,7 @@ offset_dialog_new (GimpDrawable *drawable, g_warning ("%s: unexpected drawable type", G_STRFUNC); dialog->dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (drawable), + gimp_viewable_dialog_new (GIMP_VIEWABLE (drawable), context, _("Offset"), "gimp-drawable-offset", GIMP_STOCK_TOOL_MOVE, title, @@ -259,7 +265,7 @@ offset_response (GtkWidget *widget, 1)); gimp_drawable_offset (drawable, - gimp_get_user_context (image->gimp), + dialog->context, dialog->fill_type & WRAP_AROUND ? TRUE : FALSE, dialog->fill_type & FILL_MASK, offset_x, offset_y); diff --git a/app/dialogs/offset-dialog.h b/app/dialogs/offset-dialog.h index 7311da5913..8bfa4a7ea0 100644 --- a/app/dialogs/offset-dialog.h +++ b/app/dialogs/offset-dialog.h @@ -21,6 +21,7 @@ GtkWidget * offset_dialog_new (GimpDrawable *drawable, + GimpContext *context, GtkWidget *parent); diff --git a/app/dialogs/print-size-dialog.c b/app/dialogs/print-size-dialog.c index 76fbd30c5e..98ca8f3945 100644 --- a/app/dialogs/print-size-dialog.c +++ b/app/dialogs/print-size-dialog.c @@ -25,6 +25,7 @@ #include "dialogs-types.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimp-utils.h" @@ -74,6 +75,7 @@ static void print_size_dialog_set_resolution (PrintSizeDialog *private, GtkWidget * print_size_dialog_new (GimpImage *image, + GimpContext *context, const gchar *title, const gchar *role, GtkWidget *parent, @@ -96,9 +98,10 @@ print_size_dialog_new (GimpImage *image, GList *focus_chain = NULL; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (callback != NULL, NULL); - dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), context, title, role, GIMP_STOCK_PRINT_RESOLUTION, title, parent, diff --git a/app/dialogs/print-size-dialog.h b/app/dialogs/print-size-dialog.h index b44258afd1..a7cfabf292 100644 --- a/app/dialogs/print-size-dialog.h +++ b/app/dialogs/print-size-dialog.h @@ -29,6 +29,7 @@ typedef void (* GimpResolutionCallback) (GtkWidget *dialog, GtkWidget * print_size_dialog_new (GimpImage *image, + GimpContext *context, const gchar *title, const gchar *role, GtkWidget *parent, diff --git a/app/dialogs/resize-dialog.c b/app/dialogs/resize-dialog.c index 99b1c2d9b9..5359f59a9b 100644 --- a/app/dialogs/resize-dialog.c +++ b/app/dialogs/resize-dialog.c @@ -25,7 +25,7 @@ #include "dialogs-types.h" -#include "core/gimp.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimplayer.h" @@ -79,6 +79,7 @@ static void offset_center_clicked (GtkWidget *widget, GtkWidget * resize_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *role, GtkWidget *parent, @@ -105,6 +106,7 @@ resize_dialog_new (GimpViewable *viewable, gdouble xres, yres; g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (callback != NULL, NULL); if (GIMP_IS_IMAGE (viewable)) @@ -132,7 +134,7 @@ resize_dialog_new (GimpViewable *viewable, g_return_val_if_reached (NULL); } - dialog = gimp_viewable_dialog_new (viewable, + dialog = gimp_viewable_dialog_new (viewable, context, title, role, GIMP_STOCK_RESIZE, title, parent, help_func, help_id, @@ -260,8 +262,7 @@ resize_dialog_new (GimpViewable *viewable, gtk_widget_show (private->area); gimp_viewable_get_preview_size (viewable, 200, FALSE, TRUE, &width, &height); - pixbuf = gimp_viewable_get_pixbuf (viewable, - gimp_get_user_context (image->gimp), + pixbuf = gimp_viewable_get_pixbuf (viewable, context, width, height); if (pixbuf) diff --git a/app/dialogs/resize-dialog.h b/app/dialogs/resize-dialog.h index 5d4a1e0fb5..656442d507 100644 --- a/app/dialogs/resize-dialog.h +++ b/app/dialogs/resize-dialog.h @@ -32,6 +32,7 @@ typedef void (* GimpResizeCallback) (GtkWidget *dialog, GtkWidget * resize_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *role, GtkWidget *parent, diff --git a/app/dialogs/scale-dialog.c b/app/dialogs/scale-dialog.c index 8e9ea25cd3..d1e8304e3a 100644 --- a/app/dialogs/scale-dialog.c +++ b/app/dialogs/scale-dialog.c @@ -24,6 +24,7 @@ #include "dialogs-types.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimpitem.h" @@ -62,6 +63,7 @@ static void scale_dialog_reset (ScaleDialog *private); GtkWidget * scale_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *role, GtkWidget *parent, @@ -84,6 +86,7 @@ scale_dialog_new (GimpViewable *viewable, gdouble xres, yres; g_return_val_if_fail (GIMP_IS_VIEWABLE (viewable), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (callback != NULL, NULL); if (GIMP_IS_IMAGE (viewable)) @@ -111,7 +114,7 @@ scale_dialog_new (GimpViewable *viewable, g_return_val_if_reached (NULL); } - dialog = gimp_viewable_dialog_new (viewable, + dialog = gimp_viewable_dialog_new (viewable, context, title, role, GIMP_STOCK_SCALE, title, parent, help_func, help_id, diff --git a/app/dialogs/scale-dialog.h b/app/dialogs/scale-dialog.h index b43c3473f5..79576524a8 100644 --- a/app/dialogs/scale-dialog.h +++ b/app/dialogs/scale-dialog.h @@ -33,6 +33,7 @@ typedef void (* GimpScaleCallback) (GtkWidget *dialog, GtkWidget * scale_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *role, GtkWidget *parent, diff --git a/app/dialogs/stroke-dialog.c b/app/dialogs/stroke-dialog.c index 0ea037813b..6bbc73e66c 100644 --- a/app/dialogs/stroke-dialog.c +++ b/app/dialogs/stroke-dialog.c @@ -64,12 +64,12 @@ static void stroke_dialog_paint_info_selected (GimpContainerView *view, GtkWidget * stroke_dialog_new (GimpItem *item, + GimpContext *context, const gchar *title, const gchar *stock_id, const gchar *help_id, GtkWidget *parent) { - GimpContext *context; GimpStrokeDesc *desc; GimpStrokeDesc *saved_desc; GimpImage *image; @@ -82,12 +82,12 @@ stroke_dialog_new (GimpItem *item, GtkWidget *frame; g_return_val_if_fail (GIMP_IS_ITEM (item), NULL); + g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (stock_id != NULL, NULL); g_return_val_if_fail (help_id != NULL, NULL); g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL); - image = gimp_item_get_image (item); - context = gimp_get_user_context (image->gimp); + image = gimp_item_get_image (item); desc = gimp_stroke_desc_new (context->gimp, context); @@ -96,7 +96,7 @@ stroke_dialog_new (GimpItem *item, if (saved_desc) gimp_config_sync (G_OBJECT (saved_desc), G_OBJECT (desc), 0); - dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (item), + dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (item), context, title, "gimp-stroke-options", stock_id, _("Choose Stroke Style"), diff --git a/app/dialogs/stroke-dialog.h b/app/dialogs/stroke-dialog.h index 73781d0cd2..6718d0c7d2 100644 --- a/app/dialogs/stroke-dialog.h +++ b/app/dialogs/stroke-dialog.h @@ -23,6 +23,7 @@ GtkWidget * stroke_dialog_new (GimpItem *item, + GimpContext *context, const gchar *title, const gchar *stock_id, const gchar *help_id, diff --git a/app/dialogs/template-options-dialog.c b/app/dialogs/template-options-dialog.c index da74a9642c..e38614f2ea 100644 --- a/app/dialogs/template-options-dialog.c +++ b/app/dialogs/template-options-dialog.c @@ -28,6 +28,7 @@ #include "config/gimpcoreconfig.h" #include "core/gimp.h" +#include "core/gimpcontext.h" #include "core/gimptemplate.h" #include "widgets/gimptemplateeditor.h" @@ -41,8 +42,8 @@ /* public functions */ TemplateOptionsDialog * -template_options_dialog_new (Gimp *gimp, - GimpTemplate *template, +template_options_dialog_new (GimpTemplate *template, + GimpContext *context, GtkWidget *parent, const gchar *title, const gchar *role, @@ -54,8 +55,8 @@ template_options_dialog_new (Gimp *gimp, GimpViewable *viewable = NULL; GtkWidget *vbox; - g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL); g_return_val_if_fail (template == NULL || GIMP_IS_TEMPLATE (template), NULL); + g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); g_return_val_if_fail (title != NULL, NULL); g_return_val_if_fail (role != NULL, NULL); @@ -65,7 +66,7 @@ template_options_dialog_new (Gimp *gimp, options = g_new0 (TemplateOptionsDialog, 1); - options->gimp = gimp; + options->gimp = context->gimp; options->template = template; if (template) @@ -76,13 +77,13 @@ template_options_dialog_new (Gimp *gimp, else { template = - gimp_config_duplicate (GIMP_CONFIG (gimp->config->default_image)); + gimp_config_duplicate (GIMP_CONFIG (options->gimp->config->default_image)); gimp_object_set_static_name (GIMP_OBJECT (template), _("Unnamed")); } options->dialog = - gimp_viewable_dialog_new (viewable, + gimp_viewable_dialog_new (viewable, context, title, role, stock_id, desc, parent, gimp_standard_help_func, help_id, @@ -105,7 +106,7 @@ template_options_dialog_new (Gimp *gimp, gtk_container_add (GTK_CONTAINER (GTK_DIALOG (options->dialog)->vbox), vbox); gtk_widget_show (vbox); - options->editor = gimp_template_editor_new (template, gimp, TRUE); + options->editor = gimp_template_editor_new (template, options->gimp, TRUE); gtk_box_pack_start (GTK_BOX (vbox), options->editor, FALSE, FALSE, 0); gtk_widget_show (options->editor); diff --git a/app/dialogs/template-options-dialog.h b/app/dialogs/template-options-dialog.h index c8bf54d6cf..414637a42e 100644 --- a/app/dialogs/template-options-dialog.h +++ b/app/dialogs/template-options-dialog.h @@ -32,8 +32,8 @@ struct _TemplateOptionsDialog }; -TemplateOptionsDialog * template_options_dialog_new (Gimp *gimp, - GimpTemplate *template, +TemplateOptionsDialog * template_options_dialog_new (GimpTemplate *template, + GimpContext *context, GtkWidget *parent, const gchar *title, const gchar *role, diff --git a/app/dialogs/vectors-options-dialog.c b/app/dialogs/vectors-options-dialog.c index cab915f2f2..09d6a17873 100644 --- a/app/dialogs/vectors-options-dialog.c +++ b/app/dialogs/vectors-options-dialog.c @@ -26,6 +26,7 @@ #include "dialogs-types.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "vectors/gimpvectors.h" @@ -42,6 +43,7 @@ VectorsOptionsDialog * vectors_options_dialog_new (GimpImage *image, GimpVectors *vectors, + GimpContext *context, GtkWidget *parent, const gchar *vectors_name, const gchar *title, @@ -58,6 +60,7 @@ vectors_options_dialog_new (GimpImage *image, g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); g_return_val_if_fail (vectors == NULL || GIMP_IS_VECTORS (vectors), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); g_return_val_if_fail (title != NULL, NULL); g_return_val_if_fail (role != NULL, NULL); @@ -76,7 +79,7 @@ vectors_options_dialog_new (GimpImage *image, viewable = GIMP_VIEWABLE (image); options->dialog = - gimp_viewable_dialog_new (viewable, + gimp_viewable_dialog_new (viewable, context, title, role, stock_id, desc, parent, gimp_standard_help_func, diff --git a/app/dialogs/vectors-options-dialog.h b/app/dialogs/vectors-options-dialog.h index 718e2576f7..ba453b0f20 100644 --- a/app/dialogs/vectors-options-dialog.h +++ b/app/dialogs/vectors-options-dialog.h @@ -34,6 +34,7 @@ struct _VectorsOptionsDialog VectorsOptionsDialog * vectors_options_dialog_new (GimpImage *image, GimpVectors *vectors, + GimpContext *context, GtkWidget *parent, const gchar *vectors_name, const gchar *title, diff --git a/app/display/gimpdisplayshell-filter-dialog.c b/app/display/gimpdisplayshell-filter-dialog.c index ff8835e1de..6e1c78003d 100644 --- a/app/display/gimpdisplayshell-filter-dialog.c +++ b/app/display/gimpdisplayshell-filter-dialog.c @@ -24,7 +24,8 @@ #include "display-types.h" -#include "core/gimpviewable.h" +#include "core/gimp.h" +#include "core/gimpimage.h" #include "widgets/gimpcolordisplayeditor.h" #include "widgets/gimphelp-ids.h" @@ -62,14 +63,18 @@ GtkWidget * gimp_display_shell_filter_dialog_new (GimpDisplayShell *shell) { ColorDisplayDialog *cdd; + GimpImage *image; GtkWidget *editor; g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), NULL); + image = shell->display->image; + cdd = g_new0 (ColorDisplayDialog, 1); cdd->shell = shell; - cdd->dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (shell->display->image), + cdd->dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + gimp_get_user_context (image->gimp), _("Color Display Filters"), "gimp-display-filters", GIMP_STOCK_DISPLAY_FILTER, diff --git a/app/display/gimpdisplayshell-scale.c b/app/display/gimpdisplayshell-scale.c index ce4dc832b1..592897cda2 100644 --- a/app/display/gimpdisplayshell-scale.c +++ b/app/display/gimpdisplayshell-scale.c @@ -444,6 +444,7 @@ void gimp_display_shell_scale_dialog (GimpDisplayShell *shell) { ScaleDialogData *data; + GimpImage *image; GtkWidget *hbox; GtkWidget *table; GtkWidget *spin; @@ -464,6 +465,8 @@ gimp_display_shell_scale_dialog (GimpDisplayShell *shell) shell->other_scale = gimp_zoom_model_get_factor (shell->zoom); } + image = shell->display->image; + data = g_new (ScaleDialogData, 1); data->shell = shell; @@ -472,7 +475,8 @@ gimp_display_shell_scale_dialog (GimpDisplayShell *shell) NULL); shell->scale_dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (shell->display->image), + gimp_viewable_dialog_new (GIMP_VIEWABLE (image), + gimp_get_user_context (image->gimp), _("Zoom Ratio"), "display_scale", GTK_STOCK_ZOOM_100, _("Select Zoom Ratio"), diff --git a/app/tools/gimpcolorpickertool.c b/app/tools/gimpcolorpickertool.c index 3ba29db1d6..4bd1b32d95 100644 --- a/app/tools/gimpcolorpickertool.c +++ b/app/tools/gimpcolorpickertool.c @@ -283,7 +283,8 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool) gtk_window_set_focus_on_map (GTK_WINDOW (picker_tool->dialog), FALSE); gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (picker_tool->dialog), - GIMP_VIEWABLE (tool->drawable)); + GIMP_VIEWABLE (tool->drawable), + GIMP_CONTEXT (tool->tool_info->tool_options)); g_signal_connect (picker_tool->dialog, "response", G_CALLBACK (gimp_color_picker_tool_info_response), diff --git a/app/tools/gimpimagemaptool.c b/app/tools/gimpimagemaptool.c index 44b0ac779b..cdc24f8ee7 100644 --- a/app/tools/gimpimagemaptool.c +++ b/app/tools/gimpimagemaptool.c @@ -307,7 +307,8 @@ gimp_image_map_tool_initialize (GimpTool *tool, drawable = gimp_image_active_drawable (display->image); gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (image_map_tool->shell), - GIMP_VIEWABLE (drawable)); + GIMP_VIEWABLE (drawable), + GIMP_CONTEXT (tool_info->tool_options)); gtk_widget_show (image_map_tool->shell); diff --git a/app/tools/gimpmeasuretool.c b/app/tools/gimpmeasuretool.c index 2821b08c53..401db3930d 100644 --- a/app/tools/gimpmeasuretool.c +++ b/app/tools/gimpmeasuretool.c @@ -329,7 +329,8 @@ gimp_measure_tool_button_press (GimpTool *tool, if (mtool->dialog) gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (mtool->dialog), - GIMP_VIEWABLE (tool->display->image)); + GIMP_VIEWABLE (tool->display->image), + GIMP_CONTEXT (options)); } static void diff --git a/app/tools/gimptexttool.c b/app/tools/gimptexttool.c index f1f5f93669..330ddc2d78 100644 --- a/app/tools/gimptexttool.c +++ b/app/tools/gimptexttool.c @@ -867,6 +867,7 @@ gimp_text_tool_confirm_dialog (GimpTextTool *text_tool) } dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (text_tool->layer), + GIMP_CONTEXT (tool->tool_info->tool_options), _("Confirm Text Editing"), "gimp-text-tool-confirm", GIMP_STOCK_TEXT_LAYER, diff --git a/app/tools/gimptransformtool.c b/app/tools/gimptransformtool.c index abfa596f68..ed5e5defa1 100644 --- a/app/tools/gimptransformtool.c +++ b/app/tools/gimptransformtool.c @@ -1584,7 +1584,8 @@ gimp_transform_tool_prepare (GimpTransformTool *tr_tool, if (tr_tool->dialog) { gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (tr_tool->dialog), - GIMP_VIEWABLE (gimp_image_active_drawable (display->image))); + GIMP_VIEWABLE (gimp_image_active_drawable (display->image)), + GIMP_CONTEXT (options)); gtk_widget_set_sensitive (tr_tool->dialog, TRUE); } diff --git a/app/tools/gimpvectortool.c b/app/tools/gimpvectortool.c index d0eaaa8735..d0d0f876a2 100644 --- a/app/tools/gimpvectortool.c +++ b/app/tools/gimpvectortool.c @@ -1902,6 +1902,7 @@ gimp_vector_tool_stroke_vectors (GimpVectorTool *vector_tool, } dialog = stroke_dialog_new (GIMP_ITEM (vector_tool->vectors), + GIMP_CONTEXT (GIMP_TOOL (vector_tool)->tool_info->tool_options), _("Stroke Path"), GIMP_STOCK_PATH_STROKE, GIMP_HELP_PATH_STROKE, diff --git a/app/widgets/gimpcolordialog.c b/app/widgets/gimpcolordialog.c index 437aea6b8d..d57829e069 100644 --- a/app/widgets/gimpcolordialog.c +++ b/app/widgets/gimpcolordialog.c @@ -27,6 +27,7 @@ #include "widgets-types.h" +#include "core/gimpcontext.h" #include "core/gimpmarshal.h" #include "core/gimpviewable.h" @@ -234,6 +235,7 @@ gimp_color_dialog_response (GtkDialog *gtk_dialog, GtkWidget * gimp_color_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *stock_id, const gchar *desc, @@ -248,6 +250,7 @@ gimp_color_dialog_new (GimpViewable *viewable, const gchar *role; g_return_val_if_fail (viewable == NULL || GIMP_IS_VIEWABLE (viewable), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL); g_return_val_if_fail (dialog_factory == NULL || GIMP_IS_DIALOG_FACTORY (dialog_factory), NULL); @@ -269,7 +272,7 @@ gimp_color_dialog_new (GimpViewable *viewable, if (viewable) gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (dialog), - viewable); + viewable, context); else gtk_widget_hide (GIMP_VIEWABLE_DIALOG (dialog)->icon->parent->parent); diff --git a/app/widgets/gimpcolordialog.h b/app/widgets/gimpcolordialog.h index b4df91f62f..52acecdd12 100644 --- a/app/widgets/gimpcolordialog.h +++ b/app/widgets/gimpcolordialog.h @@ -60,6 +60,7 @@ struct _GimpColorDialogClass GType gimp_color_dialog_get_type (void) G_GNUC_CONST; GtkWidget * gimp_color_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *stock_id, const gchar *desc, diff --git a/app/widgets/gimpcolorpanel.c b/app/widgets/gimpcolorpanel.c index 19232ca15b..b53b98f270 100644 --- a/app/widgets/gimpcolorpanel.c +++ b/app/widgets/gimpcolorpanel.c @@ -157,7 +157,7 @@ gimp_color_panel_clicked (GtkButton *button) if (! panel->color_dialog) { panel->color_dialog = - gimp_color_dialog_new (NULL, + gimp_color_dialog_new (NULL, NULL, GIMP_COLOR_BUTTON (button)->title, NULL, NULL, GTK_WIDGET (button), diff --git a/app/widgets/gimpcontrollereditor.c b/app/widgets/gimpcontrollereditor.c index f065c583ee..8f7a852436 100644 --- a/app/widgets/gimpcontrollereditor.c +++ b/app/widgets/gimpcontrollereditor.c @@ -664,7 +664,7 @@ gimp_controller_editor_edit_clicked (GtkWidget *button, event_blurb); editor->edit_dialog = - gimp_viewable_dialog_new (GIMP_VIEWABLE (editor->info), + gimp_viewable_dialog_new (GIMP_VIEWABLE (editor->info), NULL, /* FIXME */ _("Select Controller Event Action"), "gimp-controller-action-dialog", GTK_STOCK_EDIT, diff --git a/app/widgets/gimpcontrollerlist.c b/app/widgets/gimpcontrollerlist.c index 606614265d..b54685bc9a 100644 --- a/app/widgets/gimpcontrollerlist.c +++ b/app/widgets/gimpcontrollerlist.c @@ -629,7 +629,7 @@ gimp_controller_list_edit_clicked (GtkWidget *button, return; } - dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (list->dest_info), + dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (list->dest_info), NULL, /* FIXME */ _("Configure Controller"), "gimp-controller-editor-dialog", GTK_STOCK_EDIT, diff --git a/app/widgets/gimptoolbox-color-area.c b/app/widgets/gimptoolbox-color-area.c index 6be4df0239..92d8d027e9 100644 --- a/app/widgets/gimptoolbox-color-area.c +++ b/app/widgets/gimptoolbox-color-area.c @@ -148,7 +148,7 @@ color_area_color_clicked (GimpFgBgEditor *editor, toplevel_factory = gimp_dialog_factory_from_name ("toplevel"); - color_dialog = gimp_color_dialog_new (NULL, NULL, NULL, NULL, + color_dialog = gimp_color_dialog_new (NULL, NULL, NULL, NULL, NULL, GTK_WIDGET (editor), toplevel_factory, "gimp-toolbox-color-dialog", diff --git a/app/widgets/gimpviewabledialog.c b/app/widgets/gimpviewabledialog.c index e6aa5d988f..6ee03fc2b0 100644 --- a/app/widgets/gimpviewabledialog.c +++ b/app/widgets/gimpviewabledialog.c @@ -27,6 +27,7 @@ #include "widgets-types.h" +#include "core/gimpcontext.h" #include "core/gimpimage.h" #include "core/gimpitem.h" @@ -34,12 +35,14 @@ #include "gimpview.h" #include "gimpviewabledialog.h" +#include "gimpviewrenderer.h" enum { PROP_0, PROP_VIEWABLE, + PROP_CONTEXT, PROP_STOCK_ID, PROP_DESC, PROP_PARENT @@ -82,6 +85,10 @@ gimp_viewable_dialog_class_init (GimpViewableDialogClass *klass) g_param_spec_object ("viewable", NULL, NULL, GIMP_TYPE_VIEWABLE, GIMP_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_CONTEXT, + g_param_spec_object ("context", NULL, NULL, + GIMP_TYPE_CONTEXT, + GIMP_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_STOCK_ID, g_param_spec_string ("stock-id", NULL, NULL, NULL, @@ -158,7 +165,16 @@ gimp_viewable_dialog_set_property (GObject *object, switch (property_id) { case PROP_VIEWABLE: - gimp_viewable_dialog_set_viewable (dialog, g_value_get_object (value)); + gimp_viewable_dialog_set_viewable (dialog, + g_value_get_object (value), + dialog->context); + break; + case PROP_CONTEXT: + gimp_viewable_dialog_set_viewable (dialog, + dialog->view ? + GIMP_VIEW (dialog->view)->viewable : + NULL, + g_value_get_object (value)); break; case PROP_STOCK_ID: gtk_image_set_from_stock (GTK_IMAGE (dialog->icon), @@ -205,6 +221,9 @@ gimp_viewable_dialog_get_property (GObject *object, dialog->view ? GIMP_VIEW (dialog->view)->viewable : NULL); break; + case PROP_CONTEXT: + g_value_set_object (value, dialog->context); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -217,13 +236,14 @@ gimp_viewable_dialog_destroy (GtkObject *object) GimpViewableDialog *dialog = GIMP_VIEWABLE_DIALOG (object); if (dialog->view) - gimp_viewable_dialog_set_viewable (dialog, NULL); + gimp_viewable_dialog_set_viewable (dialog, NULL, NULL); GTK_OBJECT_CLASS (parent_class)->destroy (object); } GtkWidget * gimp_viewable_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *role, const gchar *stock_id, @@ -237,6 +257,7 @@ gimp_viewable_dialog_new (GimpViewable *viewable, va_list args; g_return_val_if_fail (viewable == NULL || GIMP_IS_VIEWABLE (viewable), NULL); + g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL); g_return_val_if_fail (title != NULL, NULL); g_return_val_if_fail (role != NULL, NULL); g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL); @@ -246,6 +267,7 @@ gimp_viewable_dialog_new (GimpViewable *viewable, dialog = g_object_new (GIMP_TYPE_VIEWABLE_DIALOG, "viewable", viewable, + "context", context, "title", title, "role", role, "help-func", help_func, @@ -264,17 +286,25 @@ gimp_viewable_dialog_new (GimpViewable *viewable, void gimp_viewable_dialog_set_viewable (GimpViewableDialog *dialog, - GimpViewable *viewable) + 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) - return; + { + gimp_view_renderer_set_context (GIMP_VIEW (dialog->view)->renderer, + context); + return; + } gtk_widget_destroy (dialog->view); @@ -298,8 +328,7 @@ gimp_viewable_dialog_set_viewable (GimpViewableDialog *dialog, dialog, 0); - dialog->view = gimp_view_new (NULL, /* FIXME */ - viewable, 32, 1, TRUE); + dialog->view = gimp_view_new (context, viewable, 32, 1, TRUE); gtk_box_pack_end (GTK_BOX (dialog->icon->parent), dialog->view, FALSE, FALSE, 2); gtk_widget_show (dialog->view); diff --git a/app/widgets/gimpviewabledialog.h b/app/widgets/gimpviewabledialog.h index 3ca49445e2..f8f1437bbf 100644 --- a/app/widgets/gimpviewabledialog.h +++ b/app/widgets/gimpviewabledialog.h @@ -39,12 +39,14 @@ typedef struct _GimpViewableDialogClass GimpViewableDialogClass; struct _GimpViewableDialog { - GimpDialog parent_instance; + GimpDialog parent_instance; - GtkWidget *icon; - GtkWidget *view; - GtkWidget *desc_label; - GtkWidget *viewable_label; + GimpContext *context; + + GtkWidget *icon; + GtkWidget *view; + GtkWidget *desc_label; + GtkWidget *viewable_label; }; struct _GimpViewableDialogClass @@ -56,6 +58,7 @@ struct _GimpViewableDialogClass GType gimp_viewable_dialog_get_type (void) G_GNUC_CONST; GtkWidget * gimp_viewable_dialog_new (GimpViewable *viewable, + GimpContext *context, const gchar *title, const gchar *role, const gchar *stock_id, @@ -66,7 +69,8 @@ GtkWidget * gimp_viewable_dialog_new (GimpViewable *viewable, ...) G_GNUC_NULL_TERMINATED; void gimp_viewable_dialog_set_viewable (GimpViewableDialog *dialog, - GimpViewable *viewable); + GimpViewable *viewable, + GimpContext *context); G_END_DECLS