app: add gimp_draw_tool_set_default_status()

which sets a statusbar message to be used if there is no widget set,
or when hovering another display.
This commit is contained in:
Michael Natterer 2017-06-26 21:47:54 +02:00
parent 068f850c03
commit 8b3be42e42
2 changed files with 26 additions and 0 deletions

View File

@ -161,6 +161,9 @@ gimp_draw_tool_dispose (GObject *object)
draw_tool->draw_timeout = 0;
}
gimp_draw_tool_set_widget (draw_tool, NULL);
gimp_draw_tool_set_default_status (draw_tool, NULL);
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@ -301,6 +304,14 @@ gimp_draw_tool_oper_update (GimpTool *tool,
{
gimp_tool_widget_hover (draw_tool->widget, coords, state, proximity);
}
else if (proximity && draw_tool->default_status)
{
gimp_tool_replace_status (tool, display, "%s", draw_tool->default_status);
}
else if (! proximity)
{
gimp_tool_pop_status (tool, display);
}
else
{
GIMP_TOOL_CLASS (parent_class)->oper_update (tool, coords, state,
@ -668,6 +679,18 @@ gimp_draw_tool_set_widget (GimpDrawTool *draw_tool,
}
}
void
gimp_draw_tool_set_default_status (GimpDrawTool *draw_tool,
const gchar *status)
{
g_return_if_fail (GIMP_IS_DRAW_TOOL (draw_tool));
if (draw_tool->default_status)
g_free (draw_tool->default_status);
draw_tool->default_status = g_strdup (status);
}
void
gimp_draw_tool_add_preview (GimpDrawTool *draw_tool,
GimpCanvasItem *item)

View File

@ -52,6 +52,7 @@ struct _GimpDrawTool
guint64 last_draw_time; /* time of last draw(), monotonically */
GimpToolWidget *widget;
gchar *default_status;
GimpCanvasItem *preview;
GimpCanvasItem *item;
GList *group_stack;
@ -93,6 +94,8 @@ gdouble gimp_draw_tool_calc_distance_square (GimpDrawTool *draw_too
void gimp_draw_tool_set_widget (GimpDrawTool *draw_tool,
GimpToolWidget *widget);
void gimp_draw_tool_set_default_status (GimpDrawTool *draw_tool,
const gchar *status);
void gimp_draw_tool_add_preview (GimpDrawTool *draw_tool,
GimpCanvasItem *item);