app: add gimp_tool_widget_add_rectangle(), _rectangle_guides(), _corner()

This commit is contained in:
Michael Natterer 2017-06-25 21:06:27 +02:00
parent ff35d35e63
commit d27359cca2
2 changed files with 144 additions and 49 deletions

View File

@ -27,11 +27,14 @@
#include "core/gimpmarshal.h"
#include "gimpcanvascorner.h"
#include "gimpcanvasgroup.h"
#include "gimpcanvashandle.h"
#include "gimpcanvasline.h"
#include "gimpcanvaspath.h"
#include "gimpcanvaspolygon.h"
#include "gimpcanvasrectangle.h"
#include "gimpcanvasrectangleguides.h"
#include "gimpcanvastransformguides.h"
#include "gimpdisplayshell.h"
#include "gimptoolwidget.h"
@ -454,6 +457,27 @@ gimp_tool_widget_add_line (GimpToolWidget *widget,
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_rectangle (GimpToolWidget *widget,
gdouble x,
gdouble y,
gdouble width,
gdouble height,
gboolean filled)
{
GimpCanvasItem *item;
g_return_val_if_fail (GIMP_IS_TOOL_WIDGET (widget), NULL);
item = gimp_canvas_rectangle_new (widget->private->shell,
x, y, width, height, filled);
gimp_tool_widget_add_item (widget, item);
g_object_unref (item);
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_polygon (GimpToolWidget *widget,
GimpMatrix3 *transform,
@ -498,6 +522,23 @@ gimp_tool_widget_add_polygon_from_coords (GimpToolWidget *widget,
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_path (GimpToolWidget *widget,
const GimpBezierDesc *desc)
{
GimpCanvasItem *item;
g_return_val_if_fail (GIMP_IS_TOOL_WIDGET (widget), NULL);
item = gimp_canvas_path_new (widget->private->shell,
desc, 0, 0, FALSE, GIMP_PATH_STYLE_DEFAULT);
gimp_tool_widget_add_item (widget, item);
g_object_unref (item);
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_handle (GimpToolWidget *widget,
GimpHandleType type,
@ -520,6 +561,53 @@ gimp_tool_widget_add_handle (GimpToolWidget *widget,
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_corner (GimpToolWidget *widget,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2,
GimpHandleAnchor anchor,
gint width,
gint height,
gboolean outside)
{
GimpCanvasItem *item;
g_return_val_if_fail (GIMP_IS_TOOL_WIDGET (widget), NULL);
item = gimp_canvas_corner_new (widget->private->shell,
x1, y1, x2 - x1, y2 - y1,
anchor, width, height,
outside);
gimp_tool_widget_add_item (widget, item);
g_object_unref (item);
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_rectangle_guides (GimpToolWidget *widget,
gdouble x,
gdouble y,
gdouble width,
gdouble height,
GimpGuidesType type)
{
GimpCanvasItem *item;
g_return_val_if_fail (GIMP_IS_TOOL_WIDGET (widget), NULL);
item = gimp_canvas_rectangle_guides_new (widget->private->shell,
x, y, width, height, type, 4);
gimp_tool_widget_add_item (widget, item);
g_object_unref (item);
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_transform_guides (GimpToolWidget *widget,
const GimpMatrix3 *transform,
@ -544,23 +632,6 @@ gimp_tool_widget_add_transform_guides (GimpToolWidget *widget,
return item;
}
GimpCanvasItem *
gimp_tool_widget_add_path (GimpToolWidget *widget,
const GimpBezierDesc *desc)
{
GimpCanvasItem *item;
g_return_val_if_fail (GIMP_IS_TOOL_WIDGET (widget), NULL);
item = gimp_canvas_path_new (widget->private->shell,
desc, 0, 0, FALSE, GIMP_PATH_STYLE_DEFAULT);
gimp_tool_widget_add_item (widget, item);
g_object_unref (item);
return item;
}
gint
gimp_tool_widget_button_press (GimpToolWidget *widget,
const GimpCoords *coords,

View File

@ -150,40 +150,64 @@ void gimp_tool_widget_pop_group (GimpToolWidget *widget);
/* for subclasses, convenience functions to add specific items
*/
GimpCanvasItem * gimp_tool_widget_add_line (GimpToolWidget *widget,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2);
GimpCanvasItem * gimp_tool_widget_add_polygon (GimpToolWidget *widget,
GimpMatrix3 *transform,
const GimpVector2 *points,
gint n_points,
gboolean filled);
GimpCanvasItem * gimp_tool_widget_add_line (GimpToolWidget *widget,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2);
GimpCanvasItem * gimp_tool_widget_add_rectangle (GimpToolWidget *widget,
gdouble x,
gdouble y,
gdouble width,
gdouble height,
gboolean filled);
GimpCanvasItem * gimp_tool_widget_add_polygon (GimpToolWidget *widget,
GimpMatrix3 *transform,
const GimpVector2 *points,
gint n_points,
gboolean filled);
GimpCanvasItem * gimp_tool_widget_add_polygon_from_coords
(GimpToolWidget *widget,
GimpMatrix3 *transform,
const GimpCoords *points,
gint n_points,
gboolean filled);
GimpCanvasItem * gimp_tool_widget_add_handle (GimpToolWidget *widget,
GimpHandleType type,
gdouble x,
gdouble y,
gint width,
gint height,
GimpHandleAnchor anchor);
(GimpToolWidget *widget,
GimpMatrix3 *transform,
const GimpCoords *points,
gint n_points,
gboolean filled);
GimpCanvasItem * gimp_tool_widget_add_path (GimpToolWidget *widget,
const GimpBezierDesc *desc);
GimpCanvasItem * gimp_tool_widget_add_handle (GimpToolWidget *widget,
GimpHandleType type,
gdouble x,
gdouble y,
gint width,
gint height,
GimpHandleAnchor anchor);
GimpCanvasItem * gimp_tool_widget_add_corner (GimpToolWidget *widget,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2,
GimpHandleAnchor anchor,
gint width,
gint height,
gboolean outside);
GimpCanvasItem * gimp_tool_widget_add_rectangle_guides
(GimpToolWidget *widget,
gdouble x,
gdouble y,
gdouble width,
gdouble height,
GimpGuidesType type);
GimpCanvasItem * gimp_tool_widget_add_transform_guides
(GimpToolWidget *widget,
const GimpMatrix3 *transform,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2,
GimpGuidesType type,
gint n_guides);
GimpCanvasItem * gimp_tool_widget_add_path (GimpToolWidget *widget,
const GimpBezierDesc *desc);
(GimpToolWidget *widget,
const GimpMatrix3 *transform,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2,
GimpGuidesType type,
gint n_guides);
/* for tools, to be called from the respective GimpTool method
* implementations