]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikmapsourcedefault.c
Fix debug message
[andy/viking.git] / src / vikmapsourcedefault.c
index d51e20c1ada6827100662b05e99065620b60fe7d..5e0e57023e3cf2b28271a21576ea6797609fe1ae 100644 (file)
  */
 
 #include "vikmapsourcedefault.h"
+#include "vikenumtypes.h"
 
 static guint8 map_source_get_uniq_id (VikMapSource *self);
+static const gchar *map_source_get_label (VikMapSource *self);
 static guint16 map_source_get_tilesize_x (VikMapSource *self);
 static guint16 map_source_get_tilesize_y (VikMapSource *self);
 static VikViewportDrawMode map_source_get_drawmode (VikMapSource *self);
@@ -28,6 +30,7 @@ typedef struct _VikMapSourceDefaultPrivate VikMapSourceDefaultPrivate;
 struct _VikMapSourceDefaultPrivate
 {
        guint8 uniq_id;
+       gchar *label;
        guint16 tilesize_x;
        guint16 tilesize_y;
        VikViewportDrawMode drawmode;
@@ -35,21 +38,116 @@ struct _VikMapSourceDefaultPrivate
 
 #define VIK_MAP_SOURCE_DEFAULT_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIK_TYPE_MAP_SOURCE_DEFAULT, VikMapSourceDefaultPrivate))
 
+/* properties */
+enum
+{
+  PROP_0,
+
+  PROP_ID,
+  PROP_LABEL,
+  PROP_TILESIZE_X,
+  PROP_TILESIZE_Y,
+  PROP_DRAWMODE,
+};
 
 G_DEFINE_TYPE_EXTENDED (VikMapSourceDefault, vik_map_source_default, VIK_TYPE_MAP_SOURCE, (GTypeFlags)G_TYPE_FLAG_ABSTRACT,);
 
 static void
 vik_map_source_default_init (VikMapSourceDefault *object)
 {
-       /* TODO: Add initialization code here */
+  VikMapSourceDefault *self = VIK_MAP_SOURCE_DEFAULT (object);
+  VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE (self);
+
+  priv->label = NULL;
 }
 
 static void
 vik_map_source_default_finalize (GObject *object)
 {
-       /* TODO: Add deinitalization code here */
+  VikMapSourceDefault *self = VIK_MAP_SOURCE_DEFAULT (object);
+  VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE (self);
+
+  g_free (priv->label);
+  priv->label = NULL;
+       
+  G_OBJECT_CLASS (vik_map_source_default_parent_class)->finalize (object);
+}
+
+static void
+vik_map_source_default_set_property (GObject      *object,
+                                     guint         property_id,
+                                     const GValue *value,
+                                     GParamSpec   *pspec)
+{
+  VikMapSourceDefault *self = VIK_MAP_SOURCE_DEFAULT (object);
+  VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE (self);
+
+  switch (property_id)
+    {
+    case PROP_ID:
+      priv->uniq_id = g_value_get_uint (value);
+      break;
+
+       case PROP_LABEL:
+      g_free (priv->label);
+      priv->label = g_strdup(g_value_get_string (value));
+      break;
+
+    case PROP_TILESIZE_X:
+      priv->tilesize_x = g_value_get_uint (value);
+      break;
+
+    case PROP_TILESIZE_Y:
+      priv->tilesize_y = g_value_get_uint (value);
+      break;
+
+    case PROP_DRAWMODE:
+      priv->drawmode = g_value_get_enum(value);
+      break;
+
+    default:
+      /* We don't have any other property... */
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+    }
+}
+
+static void
+vik_map_source_default_get_property (GObject    *object,
+                                     guint       property_id,
+                                     GValue     *value,
+                                     GParamSpec *pspec)
+{
+  VikMapSourceDefault *self = VIK_MAP_SOURCE_DEFAULT (object);
+  VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE (self);
+
+  switch (property_id)
+    {
+    case PROP_ID:
+      g_value_set_uint (value, priv->uniq_id);
+      break;
+
+    case PROP_LABEL:
+      g_value_set_string (value, priv->label);
+      break;
+
+    case PROP_TILESIZE_X:
+      g_value_set_uint (value, priv->tilesize_x);
+      break;
 
-       G_OBJECT_CLASS (vik_map_source_default_parent_class)->finalize (object);
+    case PROP_TILESIZE_Y:
+      g_value_set_uint (value, priv->tilesize_y);
+      break;
+
+    case PROP_DRAWMODE:
+      g_value_set_enum (value, priv->drawmode);
+      break;
+
+    default:
+      /* We don't have any other property... */
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+    }
 }
 
 static void
@@ -57,13 +155,60 @@ vik_map_source_default_class_init (VikMapSourceDefaultClass *klass)
 {
        GObjectClass* object_class = G_OBJECT_CLASS (klass);
        VikMapSourceClass* parent_class = VIK_MAP_SOURCE_CLASS (klass);
-
+    GParamSpec *pspec = NULL;
+       
+       object_class->set_property = vik_map_source_default_set_property;
+    object_class->get_property = vik_map_source_default_get_property;
+       
        /* Overiding methods */
        parent_class->get_uniq_id =    map_source_get_uniq_id;
+       parent_class->get_label =      map_source_get_label;
        parent_class->get_tilesize_x = map_source_get_tilesize_x;
        parent_class->get_tilesize_y = map_source_get_tilesize_y;
        parent_class->get_drawmode =   map_source_get_drawmode;
 
+       pspec = g_param_spec_uint ("id",
+                                  "Id of the tool",
+                               "Set the id",
+                               0  /* minimum value */,
+                               G_MAXUINT8 /* maximum value */,
+                               0  /* default value */,
+                               G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
+       g_object_class_install_property (object_class, PROP_ID, pspec);
+
+       pspec = g_param_spec_string ("label",
+                                    "Label",
+                                    "The label of the map source",
+                                    "<no-set>" /* default value */,
+                                    G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
+       g_object_class_install_property (object_class, PROP_LABEL, pspec);
+
+       pspec = g_param_spec_uint ("tilesize-x",
+                                  "TileSizeX",
+                               "Set the size of the tile (x)",
+                               0  /* minimum value */,
+                               G_MAXUINT16 /* maximum value */,
+                               0  /* default value */,
+                               G_PARAM_READWRITE);
+       g_object_class_install_property (object_class, PROP_TILESIZE_X, pspec);
+
+       pspec = g_param_spec_uint ("tilesize-y",
+                                  "TileSizeY",
+                               "Set the size of the tile (y)",
+                               0  /* minimum value */,
+                               G_MAXUINT16 /* maximum value */,
+                               0  /* default value */,
+                               G_PARAM_READWRITE);
+       g_object_class_install_property (object_class, PROP_TILESIZE_Y, pspec);
+
+       pspec = g_param_spec_enum("drawmode",
+                              "Drawmode",
+                              "The mode used to draw map",
+                              VIK_TYPE_VIEWPORT_DRAW_MODE,
+                              VIK_VIEWPORT_DRAWMODE_UTM,
+                              G_PARAM_READWRITE);
+    g_object_class_install_property(object_class, PROP_DRAWMODE, pspec);                                    
+
        g_type_class_add_private (klass, sizeof (VikMapSourceDefaultPrivate));
 
        object_class->finalize = vik_map_source_default_finalize;
@@ -79,6 +224,16 @@ map_source_get_uniq_id (VikMapSource *self)
        return priv->uniq_id;
 }
 
+static const gchar *
+map_source_get_label (VikMapSource *self)
+{
+       g_return_val_if_fail (VIK_IS_MAP_SOURCE_DEFAULT(self), NULL);
+       
+       VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE(self);
+
+       return priv->label;
+}
+
 static guint16
 map_source_get_tilesize_x (VikMapSource *self)
 {
@@ -108,43 +263,3 @@ map_source_get_drawmode (VikMapSource *self)
 
        return priv->drawmode;
 }
-
-void
-vik_map_source_default_set_uniq_id (VikMapSourceDefault *self, guint8 id)
-{
-       g_return_if_fail (VIK_IS_MAP_SOURCE_DEFAULT(self));
-       
-       /* TODO use property */
-       VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE(self);
-       priv->uniq_id = id;
-}
-
-void
-vik_map_source_default_set_tilesize_x (VikMapSourceDefault *self, guint16 tilesize_x)
-{
-       g_return_if_fail (VIK_IS_MAP_SOURCE_DEFAULT(self));
-
-       /* TODO use property */
-       VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE(self);
-       priv->tilesize_x = tilesize_x;
-}
-
-void
-vik_map_source_default_set_tilesize_y (VikMapSourceDefault *self, guint16 tilesize_y)
-{
-       g_return_if_fail (VIK_IS_MAP_SOURCE_DEFAULT(self));
-
-       /* TODO use property */
-       VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE(self);
-       priv->tilesize_y = tilesize_y;
-}
-
-void
-vik_map_source_default_set_drawmode (VikMapSourceDefault *self, VikViewportDrawMode drawmode)
-{
-       g_return_if_fail (VIK_IS_MAP_SOURCE_DEFAULT(self));
-
-       /* TODO use property */
-       VikMapSourceDefaultPrivate *priv = VIK_MAP_SOURCE_DEFAULT_PRIVATE(self);
-       priv->drawmode = drawmode;
-}