[libchamplain] Install the api_uri property, use makros insted of casts
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain] Install the api_uri property, use makros insted of casts
- Date: Sun, 24 Jan 2010 20:10:15 +0000 (UTC)
commit 0907a0b5d747123e997752e0ba1d87ba724f93c3
Author: Simon Wenner <simon wenner ch>
Date: Tue Jul 14 18:00:17 2009 +0200
Install the api_uri property, use makros insted of casts
champlain/champlain-network-map-data-source.c | 68 ++++++++++++++++++-------
champlain/champlain-network-map-data-source.h | 4 +-
2 files changed, 52 insertions(+), 20 deletions(-)
---
diff --git a/champlain/champlain-network-map-data-source.c b/champlain/champlain-network-map-data-source.c
index cbfbef4..8003cc0 100644
--- a/champlain/champlain-network-map-data-source.c
+++ b/champlain/champlain-network-map-data-source.c
@@ -48,11 +48,18 @@ champlain_network_map_data_source_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- switch (property_id) {
- // TODO
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ ChamplainNetworkMapDataSource *self =
+ CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (object);
+
+ switch (property_id)
+ {
+ case PROP_API_URI:
+ g_value_set_string (value,
+ champlain_network_map_data_source_get_api_uri (self));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
@@ -61,17 +68,25 @@ champlain_network_map_data_source_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- switch (property_id) {
- // TODO
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ ChamplainNetworkMapDataSource *self =
+ CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (object);
+
+ switch (property_id)
+ {
+ case PROP_API_URI:
+ champlain_network_map_data_source_set_api_uri (self,
+ g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
champlain_network_map_data_source_dispose (GObject *object)
{
- ChamplainNetworkMapDataSource *self = (ChamplainNetworkMapDataSource *) object;
+ ChamplainNetworkMapDataSource *self =
+ CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (object);
ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE(self);
memphis_map_free (priv->map);
@@ -82,7 +97,8 @@ champlain_network_map_data_source_dispose (GObject *object)
static void
champlain_network_map_data_source_finalize (GObject *object)
{
- ChamplainNetworkMapDataSource *self = (ChamplainNetworkMapDataSource *) object;
+ ChamplainNetworkMapDataSource *self =
+ CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (object);
ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE(self);
g_free (priv->api_uri);
@@ -112,6 +128,21 @@ champlain_network_map_data_source_class_init (ChamplainNetworkMapDataSourceClass
ChamplainMapDataSourceClass *map_data_source_class = CHAMPLAIN_MAP_DATA_SOURCE_CLASS (klass);
map_data_source_class->get_map_data = get_map_data;
+
+ /**
+ * ChamplainNetworkMapDataSource:api_uri:
+ *
+ * The uri of an Open Street Map API server
+ *
+ * Since: 0.6
+ */
+ g_object_class_install_property (object_class,
+ PROP_API_URI,
+ g_param_spec_string ("api_uri",
+ "API URI",
+ "The API URI of an Open Street Map server",
+ "http://www.informationfreeway.org/api/0.6",
+ G_PARAM_READWRITE));
}
static void
@@ -134,7 +165,7 @@ load_map_data_cb (SoupSession *session, SoupMessage *msg,
gpointer user_data)
{
ChamplainNetworkMapDataSource *self =
- (ChamplainNetworkMapDataSource *) user_data;
+ CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (user_data);
ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE(self);
// TODO: error handling, error tile?
@@ -178,7 +209,7 @@ champlain_network_map_data_source_load_map_data (
soup_session_queue_message (sess, msg, load_map_data_cb, self);
}
-gchar *
+const gchar *
champlain_network_map_data_source_get_api_uri (
ChamplainNetworkMapDataSource *self)
{
@@ -192,14 +223,15 @@ champlain_network_map_data_source_get_api_uri (
void
champlain_network_map_data_source_set_api_uri (
ChamplainNetworkMapDataSource *self,
- gchar *api_uri)
+ const gchar *api_uri)
{
- g_return_if_fail (CHAMPLAIN_IS_NETWORK_MAP_DATA_SOURCE (self));
+ g_return_if_fail (CHAMPLAIN_IS_NETWORK_MAP_DATA_SOURCE (self)
+ && api_uri != NULL);
ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE(self);
- if (api_uri != NULL)
+ if (priv->api_uri != NULL)
g_free (priv->api_uri);
- priv->api_uri = api_uri;
+ priv->api_uri = g_strdup (api_uri);
}
diff --git a/champlain/champlain-network-map-data-source.h b/champlain/champlain-network-map-data-source.h
index 2524233..8b18b20 100644
--- a/champlain/champlain-network-map-data-source.h
+++ b/champlain/champlain-network-map-data-source.h
@@ -61,12 +61,12 @@ void champlain_network_map_data_source_load_map_data (
gdouble bound_right,
gdouble bound_top);
-gchar * champlain_network_map_data_source_get_api_uri (
+const gchar * champlain_network_map_data_source_get_api_uri (
ChamplainNetworkMapDataSource *map_data_source);
void champlain_network_map_data_source_set_api_uri (
ChamplainNetworkMapDataSource *map_data_source,
- gchar *api_uri);
+ const gchar *api_uri);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]