[gimp] app: add more accessors to GimpGrid and use them instead of grid->foo



commit d3966c2c9004390038200afa2c856f070390e368
Author: Michael Natterer <mitch gimp org>
Date:   Wed May 21 21:44:28 2014 +0200

    app: add more accessors to GimpGrid and use them instead of grid->foo

 app/core/gimpgrid.c            |   31 +++++++++++++++++++++++++++++++
 app/core/gimpgrid.h            |    7 +++++++
 app/display/gimpcanvas-style.c |   21 ++++++++++++---------
 app/display/gimpcanvasgrid.c   |    2 +-
 4 files changed, 51 insertions(+), 10 deletions(-)
---
diff --git a/app/core/gimpgrid.c b/app/core/gimpgrid.c
index 4f78c4b..dfb6cbd 100644
--- a/app/core/gimpgrid.c
+++ b/app/core/gimpgrid.c
@@ -226,6 +226,37 @@ gimp_grid_set_property (GObject      *object,
     }
 }
 
+
+/*  public functions  */
+
+GimpGridStyle
+gimp_grid_get_style (GimpGrid *grid)
+{
+  g_return_val_if_fail (GIMP_IS_GRID (grid), GIMP_GRID_SOLID);
+
+  return grid->style;
+}
+
+void
+gimp_grid_get_fgcolor (GimpGrid *grid,
+                       GimpRGB  *fgcolor)
+{
+  g_return_if_fail (GIMP_IS_GRID (grid));
+  g_return_if_fail (fgcolor != NULL);
+
+  *fgcolor = grid->fgcolor;
+}
+
+void
+gimp_grid_get_bgcolor (GimpGrid *grid,
+                       GimpRGB  *bgcolor)
+{
+  g_return_if_fail (GIMP_IS_GRID (grid));
+  g_return_if_fail (bgcolor != NULL);
+
+  *bgcolor = grid->bgcolor;
+}
+
 void
 gimp_grid_get_spacing (GimpGrid *grid,
                        gdouble  *xspacing,
diff --git a/app/core/gimpgrid.h b/app/core/gimpgrid.h
index 198ac48..6a18278 100644
--- a/app/core/gimpgrid.h
+++ b/app/core/gimpgrid.h
@@ -59,6 +59,13 @@ struct _GimpGridClass
 
 GType          gimp_grid_get_type               (void) G_GNUC_CONST;
 
+GimpGridStyle  gimp_grid_get_style              (GimpGrid           *grid);
+
+void           gimp_grid_get_fgcolor            (GimpGrid           *grid,
+                                                 GimpRGB            *fgcolor);
+void           gimp_grid_get_bgcolor            (GimpGrid           *grid,
+                                                 GimpRGB            *bgcolor);
+
 void           gimp_grid_get_spacing            (GimpGrid           *grid,
                                                  gdouble            *xspacing,
                                                  gdouble            *yspacing);
diff --git a/app/display/gimpcanvas-style.c b/app/display/gimpcanvas-style.c
index 9868417..81b840b 100644
--- a/app/display/gimpcanvas-style.c
+++ b/app/display/gimpcanvas-style.c
@@ -122,13 +122,18 @@ gimp_canvas_set_grid_style (GtkWidget *canvas,
                             cairo_t   *cr,
                             GimpGrid  *grid)
 {
+  GimpRGB fg;
+  GimpRGB bg;
+
   g_return_if_fail (GTK_IS_WIDGET (canvas));
   g_return_if_fail (cr != NULL);
   g_return_if_fail (GIMP_IS_GRID (grid));
 
   cairo_set_line_width (cr, 1.0);
 
-  switch (grid->style)
+  gimp_grid_get_fgcolor (grid, &fg);
+
+  switch (gimp_grid_get_style (grid))
     {
       cairo_pattern_t *pattern;
 
@@ -136,17 +141,15 @@ gimp_canvas_set_grid_style (GtkWidget *canvas,
     case GIMP_GRID_DOUBLE_DASH:
       if (grid->style == GIMP_GRID_DOUBLE_DASH)
         {
-          pattern = gimp_cairo_stipple_pattern_create (&grid->fgcolor,
-                                                       &grid->bgcolor,
-                                                       0);
+          gimp_grid_get_bgcolor (grid, &bg);
+
+          pattern = gimp_cairo_stipple_pattern_create (&fg, &bg, 0);
         }
       else
         {
-          GimpRGB bg = { 0.0, 0.0, 0.0, 0.0 };
+          gimp_rgba_set (&bg, 0.0, 0.0, 0.0, 0.0);
 
-          pattern = gimp_cairo_stipple_pattern_create (&grid->fgcolor,
-                                                       &bg,
-                                                       0);
+          pattern = gimp_cairo_stipple_pattern_create (&fg, &bg, 0);
         }
 
       cairo_set_source (cr, pattern);
@@ -156,7 +159,7 @@ gimp_canvas_set_grid_style (GtkWidget *canvas,
     case GIMP_GRID_DOTS:
     case GIMP_GRID_INTERSECTIONS:
     case GIMP_GRID_SOLID:
-      gimp_cairo_set_source_rgb (cr, &grid->fgcolor);
+      gimp_cairo_set_source_rgb (cr, &fg);
       break;
     }
 }
diff --git a/app/display/gimpcanvasgrid.c b/app/display/gimpcanvasgrid.c
index 7ba850e..fa26f96 100644
--- a/app/display/gimpcanvasgrid.c
+++ b/app/display/gimpcanvasgrid.c
@@ -229,7 +229,7 @@ gimp_canvas_grid_draw (GimpCanvasItem *item,
   while (yoffset > 0)
     yoffset -= yspacing;
 
-  switch (private->grid->style)
+  switch (gimp_grid_get_style (private->grid))
     {
     case GIMP_GRID_DOTS:
       for (x = xoffset; x <= width; x += xspacing)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]