From 0829e5b028773a6b80e8ebcb9944b749628ee81a Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 28 Oct 2010 03:09:53 +0200 Subject: [PATCH] app: simplify how the colormap editor sets FG/BG colors Set the FG/BG on the widget's own context and remove the "selected" signal and its callback in dialogs-constructors.c --- app/dialogs/dialogs-constructors.c | 45 +----------------------------- app/widgets/gimpcolormapeditor.c | 34 ++++++++-------------- app/widgets/gimpcolormapeditor.h | 3 -- 3 files changed, 12 insertions(+), 70 deletions(-) diff --git a/app/dialogs/dialogs-constructors.c b/app/dialogs/dialogs-constructors.c index 5a7eeb564c..a3c1f882ce 100644 --- a/app/dialogs/dialogs-constructors.c +++ b/app/dialogs/dialogs-constructors.c @@ -26,8 +26,6 @@ #include "core/gimp.h" #include "core/gimpcontext.h" -#include "core/gimpimage.h" -#include "core/gimpimage-colormap.h" #include "config/gimpguiconfig.h" @@ -84,13 +82,6 @@ #include "gimp-intl.h" -/* local function prototypes */ - -static void dialogs_indexed_palette_selected (GimpColormapEditor *editor, - GdkModifierType state, - gpointer data); - - /**********************/ /* toplevel dialogs */ /**********************/ @@ -659,15 +650,7 @@ dialogs_colormap_editor_new (GimpDialogFactory *factory, GimpUIManager *ui_manager, gint view_size) { - GtkWidget *view; - - view = gimp_colormap_editor_new (gimp_dialog_factory_get_menu_factory (factory)); - - g_signal_connect (view, "selected", - G_CALLBACK (dialogs_indexed_palette_selected), - NULL); - - return view; + return gimp_colormap_editor_new (gimp_dialog_factory_get_menu_factory (factory)); } GtkWidget * @@ -785,29 +768,3 @@ dialogs_tool_preset_editor_get (GimpDialogFactory *factory, return gimp_tool_preset_editor_new (context, gimp_dialog_factory_get_menu_factory (factory)); } - - -/* private functions */ - -static void -dialogs_indexed_palette_selected (GimpColormapEditor *editor, - GdkModifierType state, - gpointer data) -{ - GimpImageEditor *image_editor = GIMP_IMAGE_EDITOR (editor); - - if (image_editor->image) - { - GimpRGB color; - gint index; - - index = gimp_colormap_editor_get_index (editor, NULL); - - gimp_image_get_colormap_entry (image_editor->image, index, &color); - - if (state & GDK_CONTROL_MASK) - gimp_context_set_background (image_editor->context, &color); - else - gimp_context_set_foreground (image_editor->context, &color); - } -} diff --git a/app/widgets/gimpcolormapeditor.c b/app/widgets/gimpcolormapeditor.c index bc79cbddab..e98b4c025b 100644 --- a/app/widgets/gimpcolormapeditor.c +++ b/app/widgets/gimpcolormapeditor.c @@ -27,6 +27,7 @@ #include "widgets-types.h" #include "core/gimp.h" +#include "core/gimpcontext.h" #include "core/gimpcontainer.h" #include "core/gimpimage.h" #include "core/gimpimage-colormap.h" @@ -44,14 +45,7 @@ #include "gimp-intl.h" -#define BORDER 6 - -enum -{ - SELECTED, - LAST_SIGNAL -}; - +#define BORDER 6 #define EPSILON 1e-10 #define HAVE_COLORMAP(image) \ @@ -122,8 +116,6 @@ G_DEFINE_TYPE_WITH_CODE (GimpColormapEditor, gimp_colormap_editor, #define parent_class gimp_colormap_editor_parent_class -static guint editor_signals[LAST_SIGNAL] = { 0 }; - static GimpDockedInterface *parent_docked_iface = NULL; @@ -134,16 +126,6 @@ gimp_colormap_editor_class_init (GimpColormapEditorClass* klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GimpImageEditorClass *image_editor_class = GIMP_IMAGE_EDITOR_CLASS (klass); - editor_signals[SELECTED] = - g_signal_new ("selected", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GimpColormapEditorClass, selected), - NULL, NULL, - gimp_marshal_VOID__FLAGS, - G_TYPE_NONE, 1, - GDK_TYPE_MODIFIER_TYPE); - object_class->constructor = gimp_colormap_editor_constructor; object_class->dispose = gimp_colormap_editor_dispose; object_class->finalize = gimp_colormap_editor_finalize; @@ -151,8 +133,6 @@ gimp_colormap_editor_class_init (GimpColormapEditorClass* klass) widget_class->unmap = gimp_colormap_editor_unmap; image_editor_class->set_image = gimp_colormap_editor_set_image; - - klass->selected = NULL; } static void @@ -593,8 +573,14 @@ gimp_colormap_editor_entry_clicked (GimpPaletteView *view, GdkModifierType state, GimpColormapEditor *editor) { + GimpImageEditor *image_editor = GIMP_IMAGE_EDITOR (editor); + gimp_colormap_editor_set_index (editor, entry->position, NULL); - g_signal_emit (editor, editor_signals[SELECTED], 0, state); + + if (state & GDK_CONTROL_MASK) + gimp_context_set_background (image_editor->context, &entry->color); + else + gimp_context_set_foreground (image_editor->context, &entry->color); } static void @@ -613,6 +599,7 @@ gimp_colormap_editor_entry_activated (GimpPaletteView *view, GimpColormapEditor *editor) { gimp_colormap_editor_set_index (editor, entry->position, NULL); + gimp_ui_manager_activate_action (GIMP_EDITOR (editor)->ui_manager, "colormap", "colormap-edit-color"); @@ -624,6 +611,7 @@ gimp_colormap_editor_entry_context (GimpPaletteView *view, GimpColormapEditor *editor) { gimp_colormap_editor_set_index (editor, entry->position, NULL); + gimp_editor_popup_menu (GIMP_EDITOR (editor), NULL, NULL); } diff --git a/app/widgets/gimpcolormapeditor.h b/app/widgets/gimpcolormapeditor.h index a7cdabe6c4..cc5db57168 100644 --- a/app/widgets/gimpcolormapeditor.h +++ b/app/widgets/gimpcolormapeditor.h @@ -51,9 +51,6 @@ struct _GimpColormapEditor struct _GimpColormapEditorClass { GimpImageEditorClass parent_class; - - void (* selected) (GimpColormapEditor *editor, - GdkModifierType state); }; -- GitLab