app: add gimp_tool_gui_set_description() and use it
This commit is contained in:
@ -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);
|
||||
@ -201,6 +200,35 @@ gimp_tool_gui_new (GimpToolInfo *tool_info,
|
||||
return gui;
|
||||
}
|
||||
|
||||
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)
|
||||
|
@ -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,
|
||||
|
@ -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));
|
||||
|
Reference in New Issue
Block a user