[gimp] app: use gimp_prop_spin_scale_new() in GimpPosterizeTool
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: use gimp_prop_spin_scale_new() in GimpPosterizeTool
- Date: Tue, 28 May 2013 20:48:34 +0000 (UTC)
commit 783edc1e7b6727ac678291ee215704219f6d21be
Author: Michael Natterer <mitch gimp org>
Date: Tue May 28 22:47:12 2013 +0200
app: use gimp_prop_spin_scale_new() in GimpPosterizeTool
and remove tons of code needed to update the old stuff.
app/tools/gimpposterizetool.c | 124 +++++-----------------------------------
app/tools/gimpposterizetool.h | 7 +--
2 files changed, 17 insertions(+), 114 deletions(-)
---
diff --git a/app/tools/gimpposterizetool.c b/app/tools/gimpposterizetool.c
index 4f91a33..ed8f2a9 100644
--- a/app/tools/gimpposterizetool.c
+++ b/app/tools/gimpposterizetool.c
@@ -20,21 +20,15 @@
#include <gegl.h>
#include <gtk/gtk.h>
-#include "libgimpmath/gimpmath.h"
-#include "libgimpconfig/gimpconfig.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "tools-types.h"
#include "operations/gimpposterizeconfig.h"
-#include "core/gimpdrawable.h"
-#include "core/gimperror.h"
-#include "core/gimpimage.h"
-
#include "widgets/gimphelp-ids.h"
-
-#include "display/gimpdisplay.h"
+#include "widgets/gimppropwidgets.h"
+#include "widgets/gimpspinscale.h"
#include "gimpimagemapoptions.h"
#include "gimpposterizetool.h"
@@ -42,24 +36,10 @@
#include "gimp-intl.h"
-#define SLIDER_WIDTH 200
-
-
-static gboolean gimp_posterize_tool_initialize (GimpTool *tool,
- GimpDisplay *display,
- GError **error);
-
-static GeglNode * gimp_posterize_tool_get_operation (GimpImageMapTool *im_tool,
- GObject **config,
- gchar **undo_desc);
-static void gimp_posterize_tool_dialog (GimpImageMapTool *im_tool);
-
-static void gimp_posterize_tool_config_notify (GObject *object,
- GParamSpec *pspec,
- GimpPosterizeTool *posterize_tool);
-
-static void gimp_posterize_tool_levels_changed (GtkAdjustment *adjustment,
- GimpPosterizeTool *posterize_tool);
+static GeglNode * gimp_posterize_tool_get_operation (GimpImageMapTool *im_tool,
+ GObject **config,
+ gchar **undo_desc);
+static void gimp_posterize_tool_dialog (GimpImageMapTool *im_tool);
G_DEFINE_TYPE (GimpPosterizeTool, gimp_posterize_tool,
@@ -87,11 +67,8 @@ gimp_posterize_tool_register (GimpToolRegisterCallback callback,
static void
gimp_posterize_tool_class_init (GimpPosterizeToolClass *klass)
{
- GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpImageMapToolClass *im_tool_class = GIMP_IMAGE_MAP_TOOL_CLASS (klass);
- tool_class->initialize = gimp_posterize_tool_initialize;
-
im_tool_class->dialog_desc = _("Posterize (Reduce Number of Colors)");
im_tool_class->get_operation = gimp_posterize_tool_get_operation;
@@ -103,42 +80,16 @@ gimp_posterize_tool_init (GimpPosterizeTool *posterize_tool)
{
}
-static gboolean
-gimp_posterize_tool_initialize (GimpTool *tool,
- GimpDisplay *display,
- GError **error)
-{
- GimpPosterizeTool *posterize_tool = GIMP_POSTERIZE_TOOL (tool);
-
- if (! GIMP_TOOL_CLASS (parent_class)->initialize (tool, display, error))
- {
- return FALSE;
- }
-
- gtk_adjustment_set_value (posterize_tool->levels_data,
- posterize_tool->config->levels);
-
- return TRUE;
-}
-
static GeglNode *
gimp_posterize_tool_get_operation (GimpImageMapTool *image_map_tool,
GObject **config,
gchar **undo_desc)
{
- GimpPosterizeTool *posterize_tool = GIMP_POSTERIZE_TOOL (image_map_tool);
-
- posterize_tool->config = g_object_new (GIMP_TYPE_POSTERIZE_CONFIG, NULL);
-
- g_signal_connect_object (posterize_tool->config, "notify",
- G_CALLBACK (gimp_posterize_tool_config_notify),
- G_OBJECT (posterize_tool), 0);
-
- *config = G_OBJECT (posterize_tool->config);
+ *config = g_object_new (GIMP_TYPE_POSTERIZE_CONFIG, NULL);
return gegl_node_new_child (NULL,
"operation", "gimp:posterize",
- "config", posterize_tool->config,
+ "config", *config,
NULL);
}
@@ -150,58 +101,15 @@ gimp_posterize_tool_get_operation (GimpImageMapTool *image_map_tool,
static void
gimp_posterize_tool_dialog (GimpImageMapTool *image_map_tool)
{
- GimpPosterizeTool *posterize_tool = GIMP_POSTERIZE_TOOL (image_map_tool);
- GtkWidget *main_vbox;
- GtkWidget *table;
- GtkObject *data;
+ GtkWidget *main_vbox;
+ GtkWidget *scale;
main_vbox = gimp_image_map_tool_dialog_get_vbox (image_map_tool);
- /* The table containing sliders */
- table = gtk_table_new (1, 3, FALSE);
- gtk_table_set_col_spacings (GTK_TABLE (table), 4);
- gtk_box_pack_start (GTK_BOX (main_vbox), table, FALSE, FALSE, 0);
- gtk_widget_show (table);
-
- data = gimp_scale_entry_new (GTK_TABLE (table), 0, 0,
- _("Posterize _levels:"), SLIDER_WIDTH, -1,
- posterize_tool->config->levels,
- 2.0, 256.0, 1.0, 10.0, 0,
- TRUE, 0.0, 0.0,
- NULL, NULL);
-
- gimp_scale_entry_set_logarithmic (data, TRUE);
-
- posterize_tool->levels_data = GTK_ADJUSTMENT (data);
-
- g_signal_connect (posterize_tool->levels_data, "value-changed",
- G_CALLBACK (gimp_posterize_tool_levels_changed),
- posterize_tool);
-}
-
-static void
-gimp_posterize_tool_config_notify (GObject *object,
- GParamSpec *pspec,
- GimpPosterizeTool *posterize_tool)
-{
- GimpPosterizeConfig *config = GIMP_POSTERIZE_CONFIG (object);
-
- if (! posterize_tool->levels_data)
- return;
-
- gtk_adjustment_set_value (posterize_tool->levels_data, config->levels);
-}
-
-static void
-gimp_posterize_tool_levels_changed (GtkAdjustment *adjustment,
- GimpPosterizeTool *posterize_tool)
-{
- gint value = ROUND (gtk_adjustment_get_value (adjustment));
-
- if (posterize_tool->config->levels != value)
- {
- g_object_set (posterize_tool->config,
- "levels", value,
- NULL);
- }
+ scale = gimp_prop_spin_scale_new (image_map_tool->config, "levels",
+ _("Posterize _levels"),
+ 1.0, 10.0, 0);
+ gimp_spin_scale_set_gamma (GIMP_SPIN_SCALE (scale), 1.5);
+ gtk_box_pack_start (GTK_BOX (main_vbox), scale, FALSE, FALSE, 0);
+ gtk_widget_show (scale);
}
diff --git a/app/tools/gimpposterizetool.h b/app/tools/gimpposterizetool.h
index e2f747b..ac804a6 100644
--- a/app/tools/gimpposterizetool.h
+++ b/app/tools/gimpposterizetool.h
@@ -35,12 +35,7 @@ typedef struct _GimpPosterizeToolClass GimpPosterizeToolClass;
struct _GimpPosterizeTool
{
- GimpImageMapTool parent_instance;
-
- GimpPosterizeConfig *config;
-
- /* dialog */
- GtkAdjustment *levels_data;
+ GimpImageMapTool parent_instance;
};
struct _GimpPosterizeToolClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]