[gimp] Some straightforward tool editor cleanups
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Subject: [gimp] Some straightforward tool editor cleanups
- Date: Thu, 23 Jul 2009 08:29:37 +0000 (UTC)
commit 472bf62b67a50f27c98e55d7bdee35221229368e
Author: Michael Natterer <mitch gimp org>
Date: Thu Jul 23 10:28:04 2009 +0200
Some straightforward tool editor cleanups
- split up button callbacks into one callback per button
- add stephen to copyright
- some minor whitespace fixups
app/widgets/gimptooleditor.c | 190 +++++++++++++++++++++++++-----------------
app/widgets/gimptooleditor.h | 13 ++--
2 files changed, 119 insertions(+), 84 deletions(-)
---
diff --git a/app/widgets/gimptooleditor.c b/app/widgets/gimptooleditor.c
index 9e50850..28d29cd 100644
--- a/app/widgets/gimptooleditor.c
+++ b/app/widgets/gimptooleditor.c
@@ -2,7 +2,8 @@
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimptooleditor.c
- * Copyright (C) 2001-2004 Michael Natterer <mitch gimp org>
+ * Copyright (C) 2001-2009 Michael Natterer <mitch gimp org>
+ * Stephen Griffiths <scgmk5 gmail com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -35,7 +36,6 @@
#include "gimpviewrenderer.h"
#include "gimptooleditor.h"
#include "gimphelp-ids.h"
-#include "gimpuimanager.h"
#include "gimpwidgets-utils.h"
#include "gimp-intl.h"
@@ -75,13 +75,24 @@ static void gimp_tool_editor_eye_clicked (GtkCellRendererToggle *toggle,
gchar *path_str,
GdkModifierType state,
GimpToolEditor *tool_editor);
-static void gimp_tool_editor_button_clicked
+
+static void gimp_tool_editor_raise_clicked
(GtkButton *button,
GimpToolEditor *tool_editor);
-static void gimp_tool_editor_button_extend_clicked
+static void gimp_tool_editor_raise_extend_clicked
(GtkButton *button,
GdkModifierType mask,
GimpToolEditor *tool_editor);
+static void gimp_tool_editor_lower_clicked
+ (GtkButton *button,
+ GimpToolEditor *tool_editor);
+static void gimp_tool_editor_lower_extend_clicked
+ (GtkButton *button,
+ GdkModifierType mask,
+ GimpToolEditor *tool_editor);
+static void gimp_tool_editor_reset_clicked
+ (GtkButton *button,
+ GimpToolEditor *tool_editor);
G_DEFINE_TYPE (GimpToolEditor, gimp_tool_editor, GIMP_TYPE_CONTAINER_TREE_VIEW)
@@ -96,7 +107,7 @@ G_DEFINE_TYPE (GimpToolEditor, gimp_tool_editor, GIMP_TYPE_CONTAINER_TREE_VIEW)
static void
gimp_tool_editor_class_init (GimpToolEditorClass *klass)
{
- GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+ GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
g_type_class_add_private (klass, sizeof (GimpToolEditorPrivate));
@@ -133,14 +144,14 @@ gimp_tool_editor_destroy (GtkObject *object)
priv->visible_handler_id = 0;
}
- priv->context = NULL;
- priv->container = NULL;
+ priv->context = NULL;
+ priv->container = NULL;
- priv->raise_button = NULL;
- priv->lower_button = NULL;
- priv->reset_button = NULL;
+ priv->raise_button = NULL;
+ priv->lower_button = NULL;
+ priv->reset_button = NULL;
- priv->scrolled = NULL;
+ priv->scrolled = NULL;
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
@@ -158,8 +169,8 @@ gimp_tool_editor_new (GimpContainer *container,
GObject *object;
GimpToolEditorPrivate *priv;
- g_return_val_if_fail (container != NULL, NULL);
- g_return_val_if_fail (context != NULL, NULL);
+ g_return_val_if_fail (GIMP_IS_CONTAINER (container), NULL);
+ g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
object = g_object_new (GIMP_TYPE_TOOL_EDITOR, NULL);
tool_editor = GIMP_TOOL_EDITOR (object);
@@ -211,6 +222,7 @@ gimp_tool_editor_new (GimpContainer *container,
g_signal_connect (eye_cell, "clicked",
G_CALLBACK (gimp_tool_editor_eye_clicked),
tool_editor);
+
priv->visible_handler_id =
gimp_container_add_handler (container, "notify::visible",
G_CALLBACK (gimp_tool_editor_visible_notify),
@@ -222,40 +234,40 @@ gimp_tool_editor_new (GimpContainer *container,
gimp_editor_add_button (GIMP_EDITOR (tree_view), GTK_STOCK_GO_UP,
_("Raise this tool Raise this tool to the top"),
NULL,
- G_CALLBACK (gimp_tool_editor_button_clicked),
- G_CALLBACK (gimp_tool_editor_button_extend_clicked),
+ G_CALLBACK (gimp_tool_editor_raise_clicked),
+ G_CALLBACK (gimp_tool_editor_raise_extend_clicked),
tool_editor);
+
priv->lower_button =
gimp_editor_add_button (GIMP_EDITOR (tree_view), GTK_STOCK_GO_DOWN,
_("Lower this tool Lower this tool to the bottom"),
NULL,
- G_CALLBACK (gimp_tool_editor_button_clicked),
- G_CALLBACK (gimp_tool_editor_button_extend_clicked),
+ G_CALLBACK (gimp_tool_editor_lower_clicked),
+ G_CALLBACK (gimp_tool_editor_lower_extend_clicked),
tool_editor);
+
priv->reset_button =
gimp_editor_add_button (GIMP_EDITOR (tree_view), GIMP_STOCK_RESET,
_("Reset tool order and visibility"), NULL,
- G_CALLBACK (gimp_tool_editor_button_clicked), NULL,
+ G_CALLBACK (gimp_tool_editor_reset_clicked), NULL,
tool_editor);
return GTK_WIDGET (tool_editor);
}
static void
-gimp_tool_editor_button_clicked (GtkButton *button,
- GimpToolEditor *tool_editor)
+gimp_tool_editor_raise_clicked (GtkButton *button,
+ GimpToolEditor *tool_editor)
{
+ GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
GimpToolInfo *tool_info;
- GimpToolEditorPrivate *priv;
- gint index;
- priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
tool_info = gimp_context_get_tool (priv->context);
- if (tool_info && button == GTK_BUTTON (priv->raise_button))
+ if (tool_info)
{
- index = gimp_container_get_child_index (priv->container,
- GIMP_OBJECT (tool_info));
+ gint index = gimp_container_get_child_index (priv->container,
+ GIMP_OBJECT (tool_info));
if (index > 0)
{
@@ -263,75 +275,68 @@ gimp_tool_editor_button_clicked (GtkButton *button,
GIMP_OBJECT (tool_info), index - 1);
}
}
- else if (tool_info && button == GTK_BUTTON (priv->lower_button))
+}
+
+static void
+gimp_tool_editor_raise_extend_clicked (GtkButton *button,
+ GdkModifierType mask,
+ GimpToolEditor *tool_editor)
+{
+ GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
+ GimpToolInfo *tool_info;
+
+ tool_info = gimp_context_get_tool (priv->context);
+
+ if (tool_info && (mask & GDK_SHIFT_MASK))
{
- index = gimp_container_get_child_index (priv->container,
- GIMP_OBJECT (tool_info));
+ gint index = gimp_container_get_child_index (priv->container,
+ GIMP_OBJECT (tool_info));
- if (index + 1 < gimp_container_get_n_children (priv->container))
+ if (index > 0)
{
gimp_container_reorder (priv->container,
- GIMP_OBJECT (tool_info), index + 1);
+ GIMP_OBJECT (tool_info), 0);
}
}
- else if (tool_info && button == GTK_BUTTON (priv->reset_button))
- {
- GList *list;
- gint i = 0;
-
- for (list = priv->default_tool_order;
- list;
- list = g_list_next (list))
- {
- GimpObject *object =
- gimp_container_get_child_by_name (priv->container, list->data);
+}
- if (object)
- {
- gboolean visible;
- gpointer data;
+static void
+gimp_tool_editor_lower_clicked (GtkButton *button,
+ GimpToolEditor *tool_editor)
+{
+ GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
+ GimpToolInfo *tool_info;
- gimp_container_reorder (priv->container, object, i);
- data = g_object_get_data (G_OBJECT (object),
- "gimp-tool-default-visible");
+ tool_info = gimp_context_get_tool (priv->context);
- visible = GPOINTER_TO_INT (data);
- g_object_set (object, "visible", visible, NULL);
+ if (tool_info)
+ {
+ gint index = gimp_container_get_child_index (priv->container,
+ GIMP_OBJECT (tool_info));
- i++;
- }
+ if (index + 1 < gimp_container_get_n_children (priv->container))
+ {
+ gimp_container_reorder (priv->container,
+ GIMP_OBJECT (tool_info), index + 1);
}
}
}
static void
-gimp_tool_editor_button_extend_clicked (GtkButton *button,
- GdkModifierType mask,
- GimpToolEditor *tool_editor)
+gimp_tool_editor_lower_extend_clicked (GtkButton *button,
+ GdkModifierType mask,
+ GimpToolEditor *tool_editor)
{
+ GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
GimpToolInfo *tool_info;
- GimpToolEditorPrivate *priv;
- gint index;
- priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
tool_info = gimp_context_get_tool (priv->context);
- if (! mask == GDK_SHIFT_MASK)
+ if (tool_info && (mask & GDK_SHIFT_MASK))
{
- /* do nothing */
- }
- if (button == GTK_BUTTON (priv->raise_button))
- {
- index = gimp_container_get_child_index (priv->container,
- GIMP_OBJECT (tool_info));
- if (index > 0)
- gimp_container_reorder (priv->container,
- GIMP_OBJECT (tool_info), 0);
- }
- else if (button == GTK_BUTTON (priv->lower_button))
- {
- index = gimp_container_get_n_children (priv->container) - 1;
- index = index >= 0 ? index : 0;
+ gint index = gimp_container_get_n_children (priv->container) - 1;
+
+ index = MAX (index, 0);
gimp_container_reorder (priv->container,
GIMP_OBJECT (tool_info), index);
@@ -339,14 +344,43 @@ gimp_tool_editor_button_extend_clicked (GtkButton *button,
}
static void
+gimp_tool_editor_reset_clicked (GtkButton *button,
+ GimpToolEditor *tool_editor)
+{
+ GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
+ GList *list;
+ gint i;
+
+ for (list = priv->default_tool_order, i = 0;
+ list;
+ list = g_list_next (list), i++)
+ {
+ GimpObject *object =
+ gimp_container_get_child_by_name (priv->container, list->data);
+
+ if (object)
+ {
+ gboolean visible;
+ gpointer data;
+
+ gimp_container_reorder (priv->container, object, i);
+ data = g_object_get_data (G_OBJECT (object),
+ "gimp-tool-default-visible");
+
+ visible = GPOINTER_TO_INT (data);
+ g_object_set (object, "visible", visible, NULL);
+ }
+ }
+}
+
+static void
gimp_tool_editor_visible_notify (GimpToolInfo *tool_info,
GParamSpec *pspec,
GimpToolEditor *tool_editor)
{
- GimpToolEditorPrivate *priv;
+ GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
GtkTreeIter *iter;
- priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
iter = gimp_container_view_lookup (GIMP_CONTAINER_VIEW (tool_editor),
GIMP_VIEWABLE (tool_info));
@@ -389,9 +423,9 @@ gimp_tool_editor_eye_clicked (GtkCellRendererToggle *toggle,
GdkModifierType state,
GimpToolEditor *tool_editor)
{
- GtkTreeIter iter;
- GtkTreePath *path;
GimpToolEditorPrivate *priv = GIMP_TOOL_EDITOR_GET_PRIVATE (tool_editor);
+ GtkTreePath *path;
+ GtkTreeIter iter;
path = gtk_tree_path_new_from_string (path_str);
diff --git a/app/widgets/gimptooleditor.h b/app/widgets/gimptooleditor.h
index 28c0eee..bcbaf8f 100644
--- a/app/widgets/gimptooleditor.h
+++ b/app/widgets/gimptooleditor.h
@@ -2,7 +2,8 @@
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimptooleditor.h
- * Copyright (C) 2001 Michael Natterer <mitch gimp org>
+ * Copyright (C) 2001-2009 Michael Natterer <mitch gimp org>
+ * Stephen Griffiths <scgmk5 gmail com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -48,11 +49,11 @@ struct _GimpToolEditorClass
GType gimp_tool_editor_get_type (void) G_GNUC_CONST;
-GtkWidget * gimp_tool_editor_new (GimpContainer *container,
- GimpContext *context,
- GList *defualt_tool_order,
- gint view_size,
- gint view_border_width);
+GtkWidget * gimp_tool_editor_new (GimpContainer *container,
+ GimpContext *context,
+ GList *defualt_tool_order,
+ gint view_size,
+ gint view_border_width);
#endif /* __GIMP_TOOL_EDITOR_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]