[gimp] app: add gimp_grid_get_spacing() and gimp_grid_get_offset()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add gimp_grid_get_spacing() and gimp_grid_get_offset()
- Date: Wed, 21 May 2014 19:28:18 +0000 (UTC)
commit 5e2ded502066e7d54a120a0fb03927e41b723453
Author: Michael Natterer <mitch gimp org>
Date: Wed May 21 21:25:41 2014 +0200
app: add gimp_grid_get_spacing() and gimp_grid_get_offset()
and do the rounding to integer there instead of in several places.
app/core/gimpgrid.c | 25 +++++++++++++++++++++++++
app/core/gimpgrid.h | 8 ++++++++
app/core/gimpimage-snap.c | 37 +++++++------------------------------
app/display/gimpcanvasgrid.c | 14 ++------------
4 files changed, 42 insertions(+), 42 deletions(-)
---
diff --git a/app/core/gimpgrid.c b/app/core/gimpgrid.c
index 7ef1c67..4f78c4b 100644
--- a/app/core/gimpgrid.c
+++ b/app/core/gimpgrid.c
@@ -26,6 +26,7 @@
#include <gegl.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
+#include "libgimpmath/gimpmath.h"
#include "libgimpbase/gimpbase.h"
#include "libgimpconfig/gimpconfig.h"
@@ -225,6 +226,30 @@ gimp_grid_set_property (GObject *object,
}
}
+void
+gimp_grid_get_spacing (GimpGrid *grid,
+ gdouble *xspacing,
+ gdouble *yspacing)
+{
+ g_return_if_fail (GIMP_IS_GRID (grid));
+
+ /* FIXME subpixel grid */
+ if (xspacing) *xspacing = RINT (grid->xspacing);
+ if (yspacing) *yspacing = RINT (grid->yspacing);
+}
+
+void
+gimp_grid_get_offset (GimpGrid *grid,
+ gdouble *xoffset,
+ gdouble *yoffset)
+{
+ g_return_if_fail (GIMP_IS_GRID (grid));
+
+ /* FIXME subpixel grid */
+ if (xoffset) *xoffset = RINT (grid->xoffset);
+ if (yoffset) *yoffset = RINT (grid->yoffset);
+}
+
const gchar *
gimp_grid_parasite_name (void)
{
diff --git a/app/core/gimpgrid.h b/app/core/gimpgrid.h
index ae2904b..198ac48 100644
--- a/app/core/gimpgrid.h
+++ b/app/core/gimpgrid.h
@@ -58,6 +58,14 @@ struct _GimpGridClass
GType gimp_grid_get_type (void) G_GNUC_CONST;
+
+void gimp_grid_get_spacing (GimpGrid *grid,
+ gdouble *xspacing,
+ gdouble *yspacing);
+void gimp_grid_get_offset (GimpGrid *grid,
+ gdouble *xoffset,
+ gdouble *yoffset);
+
const gchar * gimp_grid_parasite_name (void) G_GNUC_CONST;
GimpParasite * gimp_grid_to_parasite (const GimpGrid *grid);
GimpGrid * gimp_grid_from_parasite (const GimpParasite *parasite);
diff --git a/app/core/gimpimage-snap.c b/app/core/gimpimage-snap.c
index 87bccc2..71b4a98 100644
--- a/app/core/gimpimage-snap.c
+++ b/app/core/gimpimage-snap.c
@@ -25,6 +25,7 @@
#include "core-types.h"
#include "gimp.h"
+#include "gimpgrid.h"
#include "gimpguide.h"
#include "gimpimage.h"
#include "gimpimage-grid.h"
@@ -101,16 +102,8 @@ gimp_image_snap_x (GimpImage *image,
gdouble xoffset;
gdouble i;
- g_object_get (grid,
- "xspacing", &xspacing,
- "xoffset", &xoffset,
- NULL);
-
- /* FIXME subpixel grid */
- xspacing = RINT (xspacing);
- xoffset = RINT (xoffset);
-
- g_printerr ("snap: spacing = %f offset = %f\n", xspacing, xoffset);
+ gimp_grid_get_spacing (grid, &xspacing, NULL);
+ gimp_grid_get_offset (grid, &xoffset, NULL);
/* the snap-to-grid part could probably be rewritten */
while (xoffset > xspacing)
@@ -194,14 +187,8 @@ gimp_image_snap_y (GimpImage *image,
gdouble yoffset;
gdouble i;
- g_object_get (grid,
- "yspacing", &yspacing,
- "yoffset", &yoffset,
- NULL);
-
- /* FIXME subpixel grid */
- yspacing = RINT (yspacing);
- yoffset = RINT (yoffset);
+ gimp_grid_get_spacing (grid, NULL, &yspacing);
+ gimp_grid_get_offset (grid, NULL, &yoffset);
while (yoffset > yspacing)
yoffset -= yspacing;
@@ -306,18 +293,8 @@ gimp_image_snap_point (GimpImage *image,
gdouble xoffset, yoffset;
gdouble i;
- g_object_get (grid,
- "xspacing", &xspacing,
- "yspacing", &yspacing,
- "xoffset", &xoffset,
- "yoffset", &yoffset,
- NULL);
-
- /* FIXME subpixel grid */
- xspacing = RINT (xspacing);
- yspacing = RINT (yspacing);
- xoffset = RINT (xoffset);
- yoffset = RINT (yoffset);
+ gimp_grid_get_spacing (grid, &xspacing, &yspacing);
+ gimp_grid_get_offset (grid, &xoffset, &yoffset);
while (xoffset > xspacing)
xoffset -= xspacing;
diff --git a/app/display/gimpcanvasgrid.c b/app/display/gimpcanvasgrid.c
index 36a6cd8..7ba850e 100644
--- a/app/display/gimpcanvasgrid.c
+++ b/app/display/gimpcanvasgrid.c
@@ -200,18 +200,8 @@ gimp_canvas_grid_draw (GimpCanvasItem *item,
#define CROSSHAIR 2
- g_object_get (private->grid,
- "xspacing", &xspacing,
- "yspacing", &yspacing,
- "xoffset", &xoffset,
- "yoffset", &yoffset,
- NULL);
-
- /* FIXME subpixel grid */
- xspacing = RINT (xspacing);
- yspacing = RINT (yspacing);
- xoffset = RINT (xoffset);
- yoffset = RINT (yoffset);
+ gimp_grid_get_spacing (private->grid, &xspacing, &yspacing);
+ gimp_grid_get_offset (private->grid, &xoffset, &yoffset);
g_return_if_fail (xspacing > 0.0 &&
yspacing > 0.0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]