[gimp] app: add gimp_tool_gui_set_description() and use it
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add gimp_tool_gui_set_description() and use it
- Date: Fri, 7 Jun 2013 15:02:42 +0000 (UTC)
commit 0afa7d30f0e79d2a5d3f0910de3a1e6bcf0c6159
Author: Michael Natterer <mitch gimp org>
Date: Fri Jun 7 17:01:39 2013 +0200
app: add gimp_tool_gui_set_description() and use it
app/display/gimptoolgui.c | 60 ++++++++++++++++++++++++++++++-----------
app/display/gimptoolgui.h | 5 +++-
app/tools/gimpoperationtool.c | 11 +++----
3 files changed, 53 insertions(+), 23 deletions(-)
---
diff --git a/app/display/gimptoolgui.c b/app/display/gimptoolgui.c
index 7005ec2..1638ba5 100644
--- a/app/display/gimptoolgui.c
+++ b/app/display/gimptoolgui.c
@@ -44,7 +44,7 @@ typedef struct _GimpToolGuiPrivate GimpToolGuiPrivate;
struct _GimpToolGuiPrivate
{
GimpToolInfo *tool_info;
- gchar *desc;
+ gchar *description;
gboolean overlay;
@@ -124,10 +124,10 @@ gimp_tool_gui_finalize (GObject *object)
{
GimpToolGuiPrivate *private = GET_PRIVATE (object);
- if (private->desc)
+ if (private->description)
{
- g_free (private->desc);
- private->desc = NULL;
+ g_free (private->description);
+ private->description = NULL;
}
G_OBJECT_CLASS (gimp_tool_gui_parent_class)->finalize (object);
@@ -136,11 +136,11 @@ gimp_tool_gui_finalize (GObject *object)
/**
* gimp_tool_gui_new:
- * @tool_info: a #GimpToolInfo
- * @desc: a string to use in the gui header or %NULL to use the help
- * field from #GimpToolInfo
- * @...: a %NULL-terminated valist of button parameters as described in
- * gtk_gui_new_with_buttons().
+ * @tool_info: a #GimpToolInfo
+ * @description: a string to use in the gui header or %NULL to use the help
+ * field from #GimpToolInfo
+ * @...: a %NULL-terminated valist of button parameters as described in
+ * gtk_gui_new_with_buttons().
*
* This function creates a #GimpToolGui using the information stored
* in @tool_info.
@@ -149,7 +149,7 @@ gimp_tool_gui_finalize (GObject *object)
**/
GimpToolGui *
gimp_tool_gui_new (GimpToolInfo *tool_info,
- const gchar *desc,
+ const gchar *description,
gboolean overlay,
...)
{
@@ -163,14 +163,13 @@ gimp_tool_gui_new (GimpToolInfo *tool_info,
private = GET_PRIVATE (gui);
- private->tool_info = g_object_ref (tool_info);
- private->desc = g_strdup (desc);
-
- private->overlay = overlay;
+ private->tool_info = g_object_ref (tool_info);
+ private->description = g_strdup (description);
+ private->overlay = overlay;
if (overlay)
{
- private->dialog = gimp_overlay_dialog_new (tool_info, desc, NULL);
+ private->dialog = gimp_overlay_dialog_new (tool_info, description, NULL);
g_object_ref_sink (private->dialog);
va_start (args, overlay);
@@ -186,7 +185,7 @@ gimp_tool_gui_new (GimpToolInfo *tool_info,
}
else
{
- private->dialog = gimp_tool_dialog_new (tool_info, desc, NULL);
+ private->dialog = gimp_tool_dialog_new (tool_info, description, NULL);
va_start (args, overlay);
gimp_dialog_add_buttons_valist (GIMP_DIALOG (private->dialog), args);
@@ -202,6 +201,35 @@ gimp_tool_gui_new (GimpToolInfo *tool_info,
}
void
+gimp_tool_gui_set_description (GimpToolGui *gui,
+ const gchar *description)
+{
+ GimpToolGuiPrivate *private;
+
+ g_return_if_fail (GIMP_IS_TOOL_GUI (gui));
+
+ private = GET_PRIVATE (gui);
+
+ if (description == private->description)
+ return;
+
+ g_free (private->description);
+ private->description = g_strdup (description);
+
+ if (! description)
+ description = private->tool_info->help;
+
+ if (private->overlay)
+ {
+ /* TODO */
+ }
+ else
+ {
+ g_object_set (private->dialog, "description", description, NULL);
+ }
+}
+
+void
gimp_tool_gui_set_shell (GimpToolGui *gui,
GimpDisplayShell *shell)
{
diff --git a/app/display/gimptoolgui.h b/app/display/gimptoolgui.h
index 58b3d2e..d1db4d1 100644
--- a/app/display/gimptoolgui.h
+++ b/app/display/gimptoolgui.h
@@ -49,10 +49,13 @@ struct _GimpToolGuiClass
GType gimp_tool_gui_get_type (void) G_GNUC_CONST;
GimpToolGui * gimp_tool_gui_new (GimpToolInfo *tool_info,
- const gchar *desc,
+ const gchar *description,
gboolean overlay,
...) G_GNUC_NULL_TERMINATED;
+void gimp_tool_gui_set_description (GimpToolGui *gui,
+ const gchar *description);
+
void gimp_tool_gui_set_shell (GimpToolGui *gui,
GimpDisplayShell *shell);
void gimp_tool_gui_set_viewable (GimpToolGui *gui,
diff --git a/app/tools/gimpoperationtool.c b/app/tools/gimpoperationtool.c
index 902d87b..1ebc39e 100644
--- a/app/tools/gimpoperationtool.c
+++ b/app/tools/gimpoperationtool.c
@@ -44,6 +44,7 @@
#include "widgets/gimpproptable.h"
#include "display/gimpdisplay.h"
+#include "display/gimptoolgui.h"
#include "gimpcoloroptions.h"
#include "gimpoperationtool.h"
@@ -202,9 +203,8 @@ gimp_operation_tool_dialog (GimpImageMapTool *image_map_tool)
}
if (tool->undo_desc)
- g_object_set (GIMP_IMAGE_MAP_TOOL (tool)->gui,
- "description", tool->undo_desc,
- NULL);
+ gimp_tool_gui_set_description (GIMP_IMAGE_MAP_TOOL (tool)->gui,
+ tool->undo_desc);
}
static void
@@ -448,9 +448,8 @@ gimp_operation_tool_set_operation (GimpOperationTool *tool,
}
if (undo_desc && GIMP_IMAGE_MAP_TOOL (tool)->gui)
- g_object_set (GIMP_IMAGE_MAP_TOOL (tool)->gui,
- "description", undo_desc,
- NULL);
+ gimp_tool_gui_set_description (GIMP_IMAGE_MAP_TOOL (tool)->gui,
+ undo_desc);
if (GIMP_TOOL (tool)->drawable)
gimp_image_map_tool_preview (GIMP_IMAGE_MAP_TOOL (tool));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]