]> err.no Git - libchamplain/commitdiff
Rename Line to Polygon
authorPierre-Luc Beaudoin <pierre-luc@pierlux.com>
Wed, 10 Jun 2009 01:00:49 +0000 (21:00 -0400)
committerPierre-Luc Beaudoin <pierre-luc@pierlux.com>
Wed, 10 Jun 2009 01:00:49 +0000 (21:00 -0400)
champlain/Makefile.am
champlain/champlain-line.h [deleted file]
champlain/champlain-polygon.c [moved from champlain/champlain-line.c with 55% similarity]
champlain/champlain-polygon.h [new file with mode: 0644]
champlain/champlain-private.h
champlain/champlain-view.c
champlain/champlain-view.h
demos/Makefile.am
demos/polygons.c [moved from demos/lines.c with 73% similarity]

index 67cdcee8c9f15edc16d54b73aaea4378d2450ab2..fd5b2ea791e4d298c7d976c0ac5796b33a1301b5 100644 (file)
@@ -28,7 +28,7 @@ libchamplain_headers = \
        champlain-network-map-source.h  \
        champlain-map-source-factory.h  \
        champlain-map-source-desc.h     \
-       champlain-line.h                \
+       champlain-polygon.h             \
        champlain-version.h
 
 
@@ -47,7 +47,7 @@ libchamplain_0_3_la_SOURCES = \
        champlain-network-map-source.c  \
        champlain-map-source-factory.c  \
        champlain-cache.c               \
-       champlain-line.c
+       champlain-polygon.c
 
 noinst_HEADERS = \
        champlain-debug.h               \
@@ -65,7 +65,7 @@ noinst_HEADERS = \
        champlain-map-source-desc.h     \
        champlain-version.h             \
        champlain-cache.h               \
-       champlain-line.h                \
+       champlain-polygon.h             \
        champlain-version.h
 
 libchamplain_include_HEADERS = \
@@ -84,7 +84,7 @@ libchamplain_include_HEADERS = \
        champlain-marker.h              \
        champlain-version.h             \
        champlain-cache.h               \
-       champlain-line.h                \
+       champlain-polygon.h             \
        champlain-version.h
 
 libchamplain_0_3_la_LIBADD = $(DEPS_LIBS) $(SOUP_LIBS) ../tidy/libtidy-1.0.la
diff --git a/champlain/champlain-line.h b/champlain/champlain-line.h
deleted file mode 100644 (file)
index e20574c..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2009 Pierre-Luc Beaudoin <pierre-luc@pierlux.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#if !defined (__CHAMPLAIN_CHAMPLAIN_H_INSIDE__) && !defined (CHAMPLAIN_COMPILATION)
-#error "Only <champlain/champlain.h> can be included directly."
-#endif
-
-#ifndef CHAMPLAIN_LINE_H
-#define CHAMPLAIN_LINE_H
-
-#include <champlain/champlain-defines.h>
-
-#include <glib-object.h>
-#include <clutter/clutter.h>
-
-G_BEGIN_DECLS
-
-#define CHAMPLAIN_TYPE_LINE champlain_line_get_type()
-
-#define CHAMPLAIN_LINE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), CHAMPLAIN_TYPE_LINE, ChamplainLine))
-
-#define CHAMPLAIN_LINE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), CHAMPLAIN_TYPE_LINE, ChamplainLineClass))
-
-#define CHAMPLAIN_IS_LINE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CHAMPLAIN_TYPE_LINE))
-
-#define CHAMPLAIN_IS_LINE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), CHAMPLAIN_TYPE_LINE))
-
-#define CHAMPLAIN_LINE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), CHAMPLAIN_TYPE_LINE, ChamplainLineClass))
-
-typedef struct _ChamplainLinePrivate ChamplainLinePrivate;
-
-typedef struct {
-  GObject parent;
-  ChamplainLinePrivate *priv;
-} ChamplainLine;
-
-typedef struct {
-  GObjectClass parent_class;
-} ChamplainLineClass;
-
-GType champlain_line_get_type (void);
-
-ChamplainLine* champlain_line_new (void);
-
-void champlain_line_add_point (ChamplainLine *line,
-    gdouble lat,
-    gdouble lon);
-
-void champlain_line_clear_points (ChamplainLine *line);
-void champlain_line_set_fill_color (ChamplainLine *line,
-    const ClutterColor *color);
-void champlain_line_set_stroke_color (ChamplainLine *line,
-    const ClutterColor *color);
-ClutterColor * champlain_line_get_fill_color (ChamplainLine *line);
-ClutterColor * champlain_line_get_stroke_color (ChamplainLine *line);
-
-gboolean champlain_line_get_fill (ChamplainLine *line);
-void champlain_line_set_fill (ChamplainLine *line,
-    gboolean value);
-gboolean champlain_line_get_stroke (ChamplainLine *line);
-void champlain_line_set_stroke (ChamplainLine *line,
-    gboolean value);
-void champlain_line_set_stroke_width (ChamplainLine *line,
-    gdouble value);
-gdouble champlain_line_get_stroke_width (ChamplainLine *line);
-G_END_DECLS
-
-#endif
similarity index 55%
rename from champlain/champlain-line.c
rename to champlain/champlain-polygon.c
index d43bc7de950f97e1ed95a80d6b4dfa2a4ff05eae..f5695923e8ae47a7d1ec8c200408325bb75edfd6 100644 (file)
  */
 
 /**
- * SECTION:champlain-line
- * @short_description: A container for #ChamplainLine
+ * SECTION:champlain-polygon
+ * @short_description: A container for #ChamplainPolygon
  *
- * A ChamplainLine is little more than a #ClutterContainer. It keeps the
- * lines ordered so that they display correctly.
+ * A ChamplainPolygon is little more than a #ClutterContainer. It keeps the
+ * polygons ordered so that they display correctly.
  *
- * Use #clutter_container_add to add lines to the line and
+ * Use #clutter_container_add to add polygons to the polygon and
  * #clutter_container_remove to remove them.
  */
 
 #include "config.h"
 
-#include "champlain-line.h"
+#include "champlain-polygon.h"
 
 #include "champlain-defines.h"
 #include "champlain-private.h"
 static ClutterColor DEFAULT_FILL_COLOR = {0xcc, 0x00, 0x00, 0xaa};
 static ClutterColor DEFAULT_STROKE_COLOR = {0xa4, 0x00, 0x00, 0xff};
 
-G_DEFINE_TYPE (ChamplainLine, champlain_line, G_TYPE_OBJECT)
+G_DEFINE_TYPE (ChamplainPolygon, champlain_polygon, G_TYPE_OBJECT)
 
 #define GET_PRIVATE(o) \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((o), CHAMPLAIN_TYPE_LINE, ChamplainLinePrivate))
+  (G_TYPE_INSTANCE_GET_PRIVATE ((o), CHAMPLAIN_TYPE_POLYGON, ChamplainPolygonPrivate))
 
 enum
 {
@@ -57,12 +57,12 @@ enum
 };
 
 static void
-champlain_line_get_property (GObject *object,
+champlain_polygon_get_property (GObject *object,
     guint property_id,
     GValue *value,
     GParamSpec *pspec)
 {
-  ChamplainLinePrivate *priv = GET_PRIVATE (object);
+  ChamplainPolygonPrivate *priv = GET_PRIVATE (object);
 
   switch (property_id)
     {
@@ -90,12 +90,12 @@ champlain_line_get_property (GObject *object,
 }
 
 static void
-champlain_line_set_property (GObject *object,
+champlain_polygon_set_property (GObject *object,
     guint property_id,
     const GValue *value,
     GParamSpec *pspec)
 {
-  ChamplainLinePrivate *priv = GET_PRIVATE (object);
+  ChamplainPolygonPrivate *priv = GET_PRIVATE (object);
 
   switch (property_id)
     {
@@ -103,23 +103,23 @@ champlain_line_set_property (GObject *object,
         priv->closed_path = g_value_get_boolean (value);
         break;
       case PROP_FILL:
-        champlain_line_set_fill (CHAMPLAIN_LINE (object),
+        champlain_polygon_set_fill (CHAMPLAIN_POLYGON (object),
             g_value_get_boolean (value));
         break;
       case PROP_STROKE:
-        champlain_line_set_stroke (CHAMPLAIN_LINE (object),
+        champlain_polygon_set_stroke (CHAMPLAIN_POLYGON (object),
             g_value_get_boolean (value));
         break;
       case PROP_FILL_COLOR:
-        champlain_line_set_fill_color (CHAMPLAIN_LINE (object),
+        champlain_polygon_set_fill_color (CHAMPLAIN_POLYGON (object),
             clutter_value_get_color (value));
         break;
       case PROP_STROKE_COLOR:
-        champlain_line_set_stroke_color (CHAMPLAIN_LINE (object),
+        champlain_polygon_set_stroke_color (CHAMPLAIN_POLYGON (object),
             clutter_value_get_color (value));
         break;
       case PROP_STROKE_WIDTH:
-        champlain_line_set_stroke_width (CHAMPLAIN_LINE (object),
+        champlain_polygon_set_stroke_width (CHAMPLAIN_POLYGON (object),
             g_value_get_double (value));
         break;
       default:
@@ -128,33 +128,33 @@ champlain_line_set_property (GObject *object,
 }
 
 static void
-champlain_line_dispose (GObject *object)
+champlain_polygon_dispose (GObject *object)
 {
-  //ChamplainLinePrivate *priv = GET_PRIVATE (object);
+  //ChamplainPolygonPrivate *priv = GET_PRIVATE (object);
 
-  G_OBJECT_CLASS (champlain_line_parent_class)->dispose (object);
+  G_OBJECT_CLASS (champlain_polygon_parent_class)->dispose (object);
 }
 
 static void
-champlain_line_finalize (GObject *object)
+champlain_polygon_finalize (GObject *object)
 {
-  G_OBJECT_CLASS (champlain_line_parent_class)->finalize (object);
+  G_OBJECT_CLASS (champlain_polygon_parent_class)->finalize (object);
 }
 
 static void
-champlain_line_class_init (ChamplainLineClass *klass)
+champlain_polygon_class_init (ChamplainPolygonClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (ChamplainLinePrivate));
+  g_type_class_add_private (klass, sizeof (ChamplainPolygonPrivate));
 
-  object_class->get_property = champlain_line_get_property;
-  object_class->set_property = champlain_line_set_property;
-  object_class->dispose = champlain_line_dispose;
-  object_class->finalize = champlain_line_finalize;
+  object_class->get_property = champlain_polygon_get_property;
+  object_class->set_property = champlain_polygon_set_property;
+  object_class->dispose = champlain_polygon_dispose;
+  object_class->finalize = champlain_polygon_finalize;
 
   /**
-  * ChamplainLine:close-path:
+  * ChamplainPolygon:close-path:
   *
   * The shape is a closed path
   *
@@ -168,7 +168,7 @@ champlain_line_class_init (ChamplainLineClass *klass)
           FALSE, CHAMPLAIN_PARAM_READWRITE));
 
   /**
-  * ChamplainLine:fill:
+  * ChamplainPolygon:fill:
   *
   * The shape should be filled
   *
@@ -182,7 +182,7 @@ champlain_line_class_init (ChamplainLineClass *klass)
           FALSE, CHAMPLAIN_PARAM_READWRITE));
 
   /**
-  * ChamplainLine:stroke:
+  * ChamplainPolygon:stroke:
   *
   * The shape should be stroked
   *
@@ -196,9 +196,9 @@ champlain_line_class_init (ChamplainLineClass *klass)
           TRUE, CHAMPLAIN_PARAM_READWRITE));
 
   /**
-  * ChamplainLine:stroke-color:
+  * ChamplainPolygon:stroke-color:
   *
-  * The line's stroke color
+  * The polygon's stroke color
   *
   * Since: 0.4
   */
@@ -206,14 +206,14 @@ champlain_line_class_init (ChamplainLineClass *klass)
       PROP_STROKE_COLOR,
       clutter_param_spec_color ("stroke-color",
         "Stroke Color",
-        "The line's stroke color",
+        "The polygon's stroke color",
         &DEFAULT_STROKE_COLOR,
         CHAMPLAIN_PARAM_READWRITE));
 
   /**
-  * ChamplainLine:text-color:
+  * ChamplainPolygon:text-color:
   *
-  * The line's fill color
+  * The polygon's fill color
   *
   * Since: 0.4
   */
@@ -221,14 +221,14 @@ champlain_line_class_init (ChamplainLineClass *klass)
       PROP_FILL_COLOR,
       clutter_param_spec_color ("fill-color",
           "Fill Color",
-          "The line's fill color",
+          "The polygon's fill color",
           &DEFAULT_FILL_COLOR,
           CHAMPLAIN_PARAM_READWRITE));
 
   /**
-  * ChamplainLine:stroke-width:
+  * ChamplainPolygon:stroke-width:
   *
-  * The line's stroke width (in pixels)
+  * The polygon's stroke width (in pixels)
   *
   * Since: 0.4
   */
@@ -236,14 +236,14 @@ champlain_line_class_init (ChamplainLineClass *klass)
       PROP_STROKE_WIDTH,
       g_param_spec_double ("stroke-width",
           "Stroke Width",
-          "The line's stroke width",
+          "The polygon's stroke width",
           0, 100.0,
           2.0,
           CHAMPLAIN_PARAM_READWRITE));
 }
 
 static void
-champlain_line_init (ChamplainLine *self)
+champlain_polygon_init (ChamplainPolygon *self)
 {
   self->priv = GET_PRIVATE (self);
 
@@ -257,24 +257,24 @@ champlain_line_init (ChamplainLine *self)
 }
 
 /**
- * champlain_line_new:
+ * champlain_polygon_new:
  *
- * Returns a new #ChamplainLine ready to be to draw lines on the map
+ * Returns a new #ChamplainPolygon ready to be to draw polygons on the map
  *
  * Since: 0.4
  */
-ChamplainLine *
-champlain_line_new ()
+ChamplainPolygon *
+champlain_polygon_new ()
 {
-  return g_object_new (CHAMPLAIN_TYPE_LINE, NULL);
+  return g_object_new (CHAMPLAIN_TYPE_POLYGON, NULL);
 }
 
 void
-champlain_line_add_point (ChamplainLine *self,
+champlain_polygon_add_point (ChamplainPolygon *self,
     gdouble lat,
     gdouble lon)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (self));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (self));
 
   ChamplainPoint *point = g_new0 (ChamplainPoint, 1);
   point->lat = lat;
@@ -284,9 +284,9 @@ champlain_line_add_point (ChamplainLine *self,
 }
 
 void
-champlain_line_clear_points (ChamplainLine *self)
+champlain_polygon_clear_points (ChamplainPolygon *self)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (self));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (self));
 
   GList *next = self->priv->points;
   while (next != NULL)
@@ -298,22 +298,22 @@ champlain_line_clear_points (ChamplainLine *self)
 }
 
 /**
- * champlain_line_set_fill_color:
- * @line: The line
- * @color: The line's fill color or NULL to reset to the
+ * champlain_polygon_set_fill_color:
+ * @polygon: The polygon
+ * @color: The polygon's fill color or NULL to reset to the
  *         default color. The color parameter is copied.
  *
- * Set the line's fill color.
+ * Set the polygon's fill color.
  *
  * Since: 0.4
  */
 void
-champlain_line_set_fill_color (ChamplainLine *line,
+champlain_polygon_set_fill_color (ChamplainPolygon *polygon,
     const ClutterColor *color)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  ChamplainLinePrivate *priv = line->priv;
+  ChamplainPolygonPrivate *priv = polygon->priv;
 
   if (priv->fill_color != NULL)
     clutter_color_free (priv->fill_color);
@@ -322,26 +322,26 @@ champlain_line_set_fill_color (ChamplainLine *line,
      color = &DEFAULT_FILL_COLOR;
 
   priv->fill_color = clutter_color_copy (color);
-  g_object_notify (G_OBJECT (line), "fill-color");
+  g_object_notify (G_OBJECT (polygon), "fill-color");
 }
 
 /**
- * champlain_line_set_stoke_color:
- * @line: The line
- * @color: The line's stroke color or NULL to reset to the
+ * champlain_polygon_set_stoke_color:
+ * @polygon: The polygon
+ * @color: The polygon's stroke color or NULL to reset to the
  *         default color. The color parameter is copied.
  *
- * Set the line's stroke color.
+ * Set the polygon's stroke color.
  *
  * Since: 0.4
  */
 void
-champlain_line_set_stroke_color (ChamplainLine *line,
+champlain_polygon_set_stroke_color (ChamplainPolygon *polygon,
     const ClutterColor *color)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  ChamplainLinePrivate *priv = line->priv;
+  ChamplainPolygonPrivate *priv = polygon->priv;
 
   if (priv->stroke_color != NULL)
     clutter_color_free (priv->stroke_color);
@@ -350,112 +350,112 @@ champlain_line_set_stroke_color (ChamplainLine *line,
      color = &DEFAULT_STROKE_COLOR;
 
   priv->stroke_color = clutter_color_copy (color);
-  g_object_notify (G_OBJECT (line), "stroke-color");
+  g_object_notify (G_OBJECT (polygon), "stroke-color");
 }
 
 /**
- * champlain_line_get_color:
- * @line: The line
+ * champlain_polygon_get_color:
+ * @polygon: The polygon
  *
- * Returns the line's fill color.
+ * Returns the polygon's fill color.
  *
  * Since: 0.4
  */
 ClutterColor *
-champlain_line_get_fill_color (ChamplainLine *line)
+champlain_polygon_get_fill_color (ChamplainPolygon *polygon)
 {
-  g_return_val_if_fail (CHAMPLAIN_IS_LINE (line), NULL);
+  g_return_val_if_fail (CHAMPLAIN_IS_POLYGON (polygon), NULL);
 
-  return line->priv->fill_color;
+  return polygon->priv->fill_color;
 }
 
 /**
- * champlain_line_get_stroke_color:
- * @line: The line
+ * champlain_polygon_get_stroke_color:
+ * @polygon: The polygon
  *
- * Returns the line's stroke color.
+ * Returns the polygon's stroke color.
  *
  * Since: 0.4
  */
 ClutterColor *
-champlain_line_get_stroke_color (ChamplainLine *line)
+champlain_polygon_get_stroke_color (ChamplainPolygon *polygon)
 {
-  g_return_val_if_fail (CHAMPLAIN_IS_LINE (line), NULL);
+  g_return_val_if_fail (CHAMPLAIN_IS_POLYGON (polygon), NULL);
 
-  return line->priv->stroke_color;
+  return polygon->priv->stroke_color;
 }
 
 /**
- * champlain_line_set_stroke:
- * @line: The line
- * @value: if the line is stroked
+ * champlain_polygon_set_stroke:
+ * @polygon: The polygon
+ * @value: if the polygon is stroked
  *
- * Sets the line to have a stroke
+ * Sets the polygon to have a stroke
  *
  * Since: 0.4
  */
 void
-champlain_line_set_stroke (ChamplainLine *line,
+champlain_polygon_set_stroke (ChamplainPolygon *polygon,
     gboolean value)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  line->priv->stroke = value;
+  polygon->priv->stroke = value;
 }
 
 /**
- * champlain_line_get_stroke:
- * @line: The line
+ * champlain_polygon_get_stroke:
+ * @polygon: The polygon
  *
- * Returns if the line has a stroke
+ * Returns if the polygon has a stroke
  *
  * Since: 0.4
  */
 gboolean
-champlain_line_get_stroke (ChamplainLine *line)
+champlain_polygon_get_stroke (ChamplainPolygon *polygon)
 {
-  g_return_val_if_fail (CHAMPLAIN_IS_LINE (line), FALSE);
+  g_return_val_if_fail (CHAMPLAIN_IS_POLYGON (polygon), FALSE);
 
-  return line->priv->stroke;
+  return polygon->priv->stroke;
 }
 
 /**
- * champlain_line_set_fill:
- * @line: The line
- * @value: if the line is filled
+ * champlain_polygon_set_fill:
+ * @polygon: The polygon
+ * @value: if the polygon is filled
  *
- * Sets the line to have be filled
+ * Sets the polygon to have be filled
  *
  * Since: 0.4
  */
 void
-champlain_line_set_fill (ChamplainLine *line,
+champlain_polygon_set_fill (ChamplainPolygon *polygon,
     gboolean value)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  line->priv->fill = value;
+  polygon->priv->fill = value;
 }
 
 /**
- * champlain_line_get_fill:
- * @line: The line
+ * champlain_polygon_get_fill:
+ * @polygon: The polygon
  *
- * Returns if the line is filled
+ * Returns if the polygon is filled
  *
  * Since: 0.4
  */
 gboolean
-champlain_line_get_fill (ChamplainLine *line)
+champlain_polygon_get_fill (ChamplainPolygon *polygon)
 {
-  g_return_val_if_fail (CHAMPLAIN_IS_LINE (line), FALSE);
+  g_return_val_if_fail (CHAMPLAIN_IS_POLYGON (polygon), FALSE);
 
-  return line->priv->fill;
+  return polygon->priv->fill;
 }
 
 /**
- * champlain_line_set_stroke_width:
- * @line: The line
+ * champlain_polygon_set_stroke_width:
+ * @polygon: The polygon
  * @value: the width of the stroke (in pixels)
  *
  * Sets the width of the stroke
@@ -463,26 +463,26 @@ champlain_line_get_fill (ChamplainLine *line)
  * Since: 0.4
  */
 void
-champlain_line_set_stroke_width (ChamplainLine *line,
+champlain_polygon_set_stroke_width (ChamplainPolygon *polygon,
     gdouble value)
 {
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  line->priv->stroke_width = value;
+  polygon->priv->stroke_width = value;
 }
 
 /**
- * champlain_line_get_stroke_width:
- * @line: The line
+ * champlain_polygon_get_stroke_width:
+ * @polygon: The polygon
  *
  * Returns the width of the stroke
  *
  * Since: 0.4
  */
 gdouble
-champlain_line_get_stroke_width (ChamplainLine *line)
+champlain_polygon_get_stroke_width (ChamplainPolygon *polygon)
 {
-  g_return_val_if_fail (CHAMPLAIN_IS_LINE (line), 0);
+  g_return_val_if_fail (CHAMPLAIN_IS_POLYGON (polygon), 0);
 
-  return line->priv->stroke_width;
+  return polygon->priv->stroke_width;
 }
diff --git a/champlain/champlain-polygon.h b/champlain/champlain-polygon.h
new file mode 100644 (file)
index 0000000..8f995d4
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2009 Pierre-Luc Beaudoin <pierre-luc@pierlux.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#if !defined (__CHAMPLAIN_CHAMPLAIN_H_INSIDE__) && !defined (CHAMPLAIN_COMPILATION)
+#error "Only <champlain/champlain.h> can be included directly."
+#endif
+
+#ifndef CHAMPLAIN_POLYGON_H
+#define CHAMPLAIN_POLYGON_H
+
+#include <champlain/champlain-defines.h>
+
+#include <glib-object.h>
+#include <clutter/clutter.h>
+
+G_BEGIN_DECLS
+
+#define CHAMPLAIN_TYPE_POLYGON champlain_polygon_get_type()
+
+#define CHAMPLAIN_POLYGON(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), CHAMPLAIN_TYPE_POLYGON, ChamplainPolygon))
+
+#define CHAMPLAIN_POLYGON_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), CHAMPLAIN_TYPE_POLYGON, ChamplainPolygonClass))
+
+#define CHAMPLAIN_IS_POLYGON(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CHAMPLAIN_TYPE_POLYGON))
+
+#define CHAMPLAIN_IS_POLYGON_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), CHAMPLAIN_TYPE_POLYGON))
+
+#define CHAMPLAIN_POLYGON_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), CHAMPLAIN_TYPE_POLYGON, ChamplainPolygonClass))
+
+typedef struct _ChamplainPolygonPrivate ChamplainPolygonPrivate;
+
+typedef struct {
+  GObject parent;
+  ChamplainPolygonPrivate *priv;
+} ChamplainPolygon;
+
+typedef struct {
+  GObjectClass parent_class;
+} ChamplainPolygonClass;
+
+GType champlain_polygon_get_type (void);
+
+ChamplainPolygon* champlain_polygon_new (void);
+
+void champlain_polygon_add_point (ChamplainPolygon *polygon,
+    gdouble lat,
+    gdouble lon);
+
+void champlain_polygon_clear_points (ChamplainPolygon *polygon);
+void champlain_polygon_set_fill_color (ChamplainPolygon *polygon,
+    const ClutterColor *color);
+void champlain_polygon_set_stroke_color (ChamplainPolygon *polygon,
+    const ClutterColor *color);
+ClutterColor * champlain_polygon_get_fill_color (ChamplainPolygon *polygon);
+ClutterColor * champlain_polygon_get_stroke_color (ChamplainPolygon *polygon);
+
+gboolean champlain_polygon_get_fill (ChamplainPolygon *polygon);
+void champlain_polygon_set_fill (ChamplainPolygon *polygon,
+    gboolean value);
+gboolean champlain_polygon_get_stroke (ChamplainPolygon *polygon);
+void champlain_polygon_set_stroke (ChamplainPolygon *polygon,
+    gboolean value);
+void champlain_polygon_set_stroke_width (ChamplainPolygon *polygon,
+    gdouble value);
+gdouble champlain_polygon_get_stroke_width (ChamplainPolygon *polygon);
+G_END_DECLS
+
+#endif
index 2777a5ae856e0c957523e330bb46c1036f098cac..37fa6c69cd79e68adfd0bbc943e48150d7a423d4 100644 (file)
@@ -37,7 +37,7 @@ struct _ChamplainBaseMarkerPrivate
   gdouble lat;
 };
 
-struct _ChamplainLinePrivate {
+struct _ChamplainPolygonPrivate {
   GList *points;
   gboolean closed_path;
   ClutterColor *stroke_color;
index cc61c30e3329a6639b0babd9821de8c7caec1ab1..f27b8369da780eff7bf6fb00991fa9e12558ccb4 100644 (file)
@@ -59,6 +59,7 @@
 #include "champlain-marshal.h"
 #include "champlain-map-source.h"
 #include "champlain-map-source-factory.h"
+#include "champlain-polygon.h"
 #include "champlain-private.h"
 #include "champlain-tile.h"
 #include "champlain-zoom-level.h"
@@ -156,8 +157,8 @@ struct _ChamplainViewPrivate
   GoToContext *goto_context;
 
   /* Lines and shapes */
-  GList *lines;
-  ClutterActor *line_layer;  /* Contains the lines */
+  GList *polygons;
+  ClutterActor *polygon_layer;  /* Contains the polygons */
 
 };
 
@@ -205,7 +206,7 @@ static gboolean view_set_zoom_level_at (ChamplainView *view,
 static void tile_state_notify (GObject *gobject,
     GParamSpec *pspec,
     gpointer data);
-static void view_update_lines (ChamplainView *view);
+static void view_update_polygons (ChamplainView *view);
 
 static gdouble
 viewport_get_longitude_at (ChamplainViewPrivate *priv, gint x)
@@ -857,15 +858,15 @@ champlain_view_init (ChamplainView *view)
       priv->user_layers);
   clutter_actor_raise (priv->user_layers, priv->map_layer);
 
-  priv->lines = NULL;
+  priv->polygons = NULL;
 
-  /* Setup line layer */
-  priv->line_layer = g_object_ref (clutter_cairo_new (800, 600));
-  clutter_actor_show (priv->line_layer);
+  /* Setup polygon layer */
+  priv->polygon_layer = g_object_ref (clutter_cairo_new (800, 600));
+  clutter_actor_show (priv->polygon_layer);
   clutter_container_add_actor (CLUTTER_CONTAINER (priv->viewport),
-      priv->line_layer);
-  clutter_actor_raise (priv->line_layer, priv->map_layer);
-  clutter_actor_set_position (priv->line_layer, 0, 0);
+      priv->polygon_layer);
+  clutter_actor_raise (priv->polygon_layer, priv->map_layer);
+  clutter_actor_set_position (priv->polygon_layer, 0, 0);
 
   champlain_view_set_size (view, priv->viewport_size.width,
       priv->viewport_size.height);
@@ -919,7 +920,7 @@ viewport_x_changed_cb (GObject *gobject,
   view_load_visible_tiles (view);
   view_tiles_reposition (view);
   marker_reposition (view);
-  view_update_lines (view);
+  view_update_polygons (view);
 
   priv->longitude = viewport_get_current_longitude (priv);
   priv->latitude = viewport_get_current_latitude (priv);
@@ -1098,7 +1099,7 @@ champlain_view_center_on (ChamplainView *view,
 
   view_load_visible_tiles (view);
   view_tiles_reposition (view);
-  view_update_lines (view);
+  view_update_polygons (view);
   marker_reposition (view);
 }
 
@@ -2178,12 +2179,12 @@ champlain_view_get_zoom_on_double_click (ChamplainView *view)
 }
 
 static void
-draw_line (ChamplainView *view, cairo_t *cr, ChamplainLine *line)
+draw_polygon (ChamplainView *view, cairo_t *cr, ChamplainPolygon *polygon)
 {
   ChamplainViewPrivate *priv = view->priv;
 
   cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
-  GList *list = g_list_first (line->priv->points);
+  GList *list = g_list_first (polygon->priv->points);
   while (list != NULL)
     {
       ChamplainPoint *point = (ChamplainPoint*) list->data;
@@ -2201,56 +2202,56 @@ draw_line (ChamplainView *view, cairo_t *cr, ChamplainLine *line)
       list = list->next;
     }
 
-  if (line->priv->closed_path)
+  if (polygon->priv->closed_path)
     cairo_close_path (cr);
 
   cairo_set_source_rgba (cr,
-      line->priv->fill_color->red / 255.0,
-      line->priv->fill_color->green / 255.0,
-      line->priv->fill_color->blue / 255.0,
-      line->priv->fill_color->alpha / 255.0);
+      polygon->priv->fill_color->red / 255.0,
+      polygon->priv->fill_color->green / 255.0,
+      polygon->priv->fill_color->blue / 255.0,
+      polygon->priv->fill_color->alpha / 255.0);
 
-  if (line->priv->fill)
+  if (polygon->priv->fill)
     cairo_fill_preserve (cr);
 
   cairo_set_source_rgba (cr,
-      line->priv->stroke_color->red / 255.0,
-      line->priv->stroke_color->green / 255.0,
-      line->priv->stroke_color->blue / 255.0,
-      line->priv->stroke_color->alpha / 255.0);
+      polygon->priv->stroke_color->red / 255.0,
+      polygon->priv->stroke_color->green / 255.0,
+      polygon->priv->stroke_color->blue / 255.0,
+      polygon->priv->stroke_color->alpha / 255.0);
 
-  cairo_set_line_width (cr, line->priv->stroke_width);
+  cairo_set_line_width (cr, polygon->priv->stroke_width);
 
-  if (line->priv->stroke)
+  if (polygon->priv->stroke)
     cairo_stroke (cr);
 }
 
 static void
-view_update_lines (ChamplainView *view)
+view_update_polygons (ChamplainView *view)
 {
   ChamplainViewPrivate *priv = view->priv;
-  GList * lines;
-    cairo_t *cr;
-    gint x, y;
+  GList *polygons;
+  cairo_t *cr;
+  gint x, y;
 
-  if (priv->lines == NULL)
+  if (priv->polygons == NULL)
     return;
 
-  cr = clutter_cairo_create (CLUTTER_CAIRO (priv->line_layer));
+  cr = clutter_cairo_create (CLUTTER_CAIRO (priv->polygon_layer));
 
   /* Clear the drawing area */
   cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
   cairo_rectangle (cr, 0, 0, 800, 600);
   cairo_fill (cr);
 
-  lines = priv->lines;
-  while (lines != NULL)
+  polygons = priv->polygons;
+  while (polygons != NULL)
     {
-      ChamplainLine *line;
+      ChamplainPolygon *polygon;
 
-      line = CHAMPLAIN_LINE (lines->data);
-      draw_line (view, cr, line);
-      lines = lines->next;
+      polygon = CHAMPLAIN_POLYGON (polygons->data);
+      draw_polygon (view, cr, polygon);
+      polygons = polygons->next;
     }
 
   /* Position the layer in the viewport */
@@ -2259,44 +2260,44 @@ view_update_lines (ChamplainView *view)
 
   cairo_destroy (cr);
 
-  clutter_actor_set_position (priv->line_layer, x, y);
+  clutter_actor_set_position (priv->polygon_layer, x, y);
 }
 
 /**
- * champlain_view_add_line:
+ * champlain_view_add_polygon:
  * @view: a #ChamplainView
- * @line: a #ChamplainLine
+ * @polygon: a #ChamplainPolygon
  *
- * Adds a #ChamplainLine to the #ChamplainView
+ * Adds a #ChamplainPolygon to the #ChamplainView
  *
  * Since: 0.4
  */
 void
-champlain_view_add_line (ChamplainView *view,
-    ChamplainLine *line)
+champlain_view_add_polygon (ChamplainView *view,
+    ChamplainPolygon *polygon)
 {
   g_return_if_fail (CHAMPLAIN_IS_VIEW (view));
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  view->priv->lines = g_list_append (view->priv->lines, g_object_ref (line));
+  view->priv->polygons = g_list_append (view->priv->polygons, g_object_ref (polygon));
 }
 
 /**
- * champlain_view_remove_line:
+ * champlain_view_remove_polygon:
  * @view: a #ChamplainView
- * @line: a #ChamplainLine
+ * @polygon: a #ChamplainPolygon
  *
- * Removes a #ChamplainLine to the #ChamplainView
+ * Removes a #ChamplainPolygon to the #ChamplainView
  *
  * Since: 0.4
  */
 void
-champlain_view_remove_line (ChamplainView *view,
-    ChamplainLine *line)
+champlain_view_remove_polygon (ChamplainView *view,
+    ChamplainPolygon *polygon)
 {
   g_return_if_fail (CHAMPLAIN_IS_VIEW (view));
-  g_return_if_fail (CHAMPLAIN_IS_LINE (line));
+  g_return_if_fail (CHAMPLAIN_IS_POLYGON (polygon));
 
-  view->priv->lines = g_list_remove (view->priv->lines, line);
-  g_object_unref (line);
+  view->priv->polygons = g_list_remove (view->priv->polygons, polygon);
+  g_object_unref (polygon);
 }
index 1a11f1b45e6bd392e61895d97c97cfc841168b6b..d3fd233ca0dca4270d12f072f542fec9d9b455b1 100644 (file)
@@ -26,7 +26,7 @@
 #include <champlain/champlain-defines.h>
 #include <champlain/champlain-base-marker.h>
 #include <champlain/champlain-layer.h>
-#include <champlain/champlain-line.h>
+#include <champlain/champlain-polygon.h>
 #include <champlain/champlain-map-source.h>
 #include <champlain/champlain-zoom-level.h>
 
@@ -140,10 +140,10 @@ gboolean champlain_view_get_keep_center_on_resize (ChamplainView *view);
 gboolean champlain_view_get_show_license (ChamplainView *view);
 gboolean champlain_view_get_zoom_on_double_click (ChamplainView *view);
 
-void champlain_view_add_line (ChamplainView *view,
-    ChamplainLine *line);
-void champlain_view_remove_line (ChamplainView *view,
-    ChamplainLine *line);
+void champlain_view_add_polygon (ChamplainView *view,
+    ChamplainPolygon *polygon);
+void champlain_view_remove_polygon (ChamplainView *view,
+    ChamplainPolygon *polygon);
 
 
 G_END_DECLS
index 5d9e6b4a739c22156f142a7058dcb85d6e8aa0dc..8a710dd06ba323ac50b9c6bb1a60569e5fefe366 100644 (file)
@@ -1,4 +1,4 @@
-noinst_PROGRAMS = launcher animated-marker lines
+noinst_PROGRAMS = launcher animated-marker polygons
 
 INCLUDES = -I$(top_srcdir)
 
@@ -11,8 +11,8 @@ launcher_LDADD = $(DEPS_LIBS) ../champlain/libchamplain-0.3.la
 animated_marker_SOURCES = animated-marker.c
 animated_marker_LDADD = $(DEPS_LIBS) ../champlain/libchamplain-0.3.la
 
-lines_SOURCES = lines.c
-lines_LDADD = $(DEPS_LIBS) ../champlain/libchamplain-0.3.la
+polygons_SOURCES = polygons.c
+polygons_LDADD = $(DEPS_LIBS) ../champlain/libchamplain-0.3.la
 
 if ENABLE_GTK
 noinst_PROGRAMS += launcher-gtk
similarity index 73%
rename from demos/lines.c
rename to demos/polygons.c
index 955a2976f3d056dd476ba3334bc6584c88c1ec60..7c23745cb7bc9f1d9ac2a6e508d9808ff4e43f97 100644 (file)
@@ -68,7 +68,7 @@ main (int argc,
     char *argv[])
 {
   ClutterActor* actor, *stage, *buttons, *button;
-  ChamplainLine *line;
+  ChamplainPolygon *polygon;
   guint width, total_width = 0;;
 
   g_thread_init (NULL);
@@ -108,35 +108,35 @@ main (int argc,
   clutter_container_add_actor (CLUTTER_CONTAINER (stage), buttons);
 
   /* draw a line */
-  line = champlain_line_new ();
+  polygon = champlain_polygon_new ();
   /* Cheap approx of Highway 10 */
-  champlain_line_add_point (line, 45.4095, -73.3197);
-  champlain_line_add_point (line, 45.4104, -73.2846);
-  champlain_line_add_point (line, 45.4178, -73.2239);
-  champlain_line_add_point (line, 45.4176, -73.2181);
-  champlain_line_add_point (line, 45.4151, -73.2126);
-  champlain_line_add_point (line, 45.4016, -73.1926);
-  champlain_line_add_point (line, 45.3994, -73.1877);
-  champlain_line_add_point (line, 45.4000, -73.1815);
-  champlain_line_add_point (line, 45.4151, -73.1218);
-  champlain_line_set_stroke_width (line, 5.0);
-  champlain_view_add_line (CHAMPLAIN_VIEW (actor), line);
+  champlain_polygon_add_point (polygon, 45.4095, -73.3197);
+  champlain_polygon_add_point (polygon, 45.4104, -73.2846);
+  champlain_polygon_add_point (polygon, 45.4178, -73.2239);
+  champlain_polygon_add_point (polygon, 45.4176, -73.2181);
+  champlain_polygon_add_point (polygon, 45.4151, -73.2126);
+  champlain_polygon_add_point (polygon, 45.4016, -73.1926);
+  champlain_polygon_add_point (polygon, 45.3994, -73.1877);
+  champlain_polygon_add_point (polygon, 45.4000, -73.1815);
+  champlain_polygon_add_point (polygon, 45.4151, -73.1218);
+  champlain_polygon_set_stroke_width (polygon, 5.0);
+  champlain_view_add_polygon (CHAMPLAIN_VIEW (actor), polygon);
 
   /* draw a polygon */
-  line = champlain_line_new ();
-  champlain_line_add_point (line, 45.1386, -73.9196);
-  champlain_line_add_point (line, 45.1229, -73.8991);
-  champlain_line_add_point (line, 45.0946, -73.9531);
-  champlain_line_add_point (line, 45.1085, -73.9714);
-  champlain_line_add_point (line, 45.1104, -73.9761);
-  champlain_view_add_line (CHAMPLAIN_VIEW (actor), line);
-  g_object_set (line, "closed-path", TRUE, NULL);
-  g_object_set (line, "fill", TRUE, NULL);
+  polygon = champlain_polygon_new ();
+  champlain_polygon_add_point (polygon, 45.1386, -73.9196);
+  champlain_polygon_add_point (polygon, 45.1229, -73.8991);
+  champlain_polygon_add_point (polygon, 45.0946, -73.9531);
+  champlain_polygon_add_point (polygon, 45.1085, -73.9714);
+  champlain_polygon_add_point (polygon, 45.1104, -73.9761);
+  champlain_view_add_polygon (CHAMPLAIN_VIEW (actor), polygon);
+  g_object_set (polygon, "closed-path", TRUE, NULL);
+  g_object_set (polygon, "fill", TRUE, NULL);
 
   /* Finish initialising the map view */
   g_object_set (G_OBJECT (actor), "zoom-level", 9,
       "scroll-mode", CHAMPLAIN_SCROLL_MODE_KINETIC, NULL);
-  champlain_view_center_on(CHAMPLAIN_VIEW(actor), 45.466, -73.75);
+  champlain_view_center_on (CHAMPLAIN_VIEW (actor), 45.466, -73.75);
 
   clutter_actor_show (stage);
   clutter_main ();