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
This commit is contained in:
Michael Natterer 2010-10-28 03:09:53 +02:00
parent 112ca01064
commit 0829e5b028
3 changed files with 12 additions and 70 deletions

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -51,9 +51,6 @@ struct _GimpColormapEditor
struct _GimpColormapEditorClass
{
GimpImageEditorClass parent_class;
void (* selected) (GimpColormapEditor *editor,
GdkModifierType state);
};