[libchamplain/libchamplain-0-4] Remove the signal handlers in favor of existing handlers
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain/libchamplain-0-4] Remove the signal handlers in favor of existing handlers
- Date: Tue, 5 Jan 2010 19:01:30 +0000 (UTC)
commit 41869abad9e39f8fa39bace01e21a80ed44f5d1c
Author: Pierre-Luc Beaudoin <pierre-luc pierlux com>
Date: Tue Dec 15 09:30:42 2009 -0500
Remove the signal handlers in favor of existing handlers
champlain/champlain-view.c | 68 ++++++++++++++++++++++++++++++-------------
champlain/champlain-view.h | 2 +
2 files changed, 49 insertions(+), 21 deletions(-)
---
diff --git a/champlain/champlain-view.c b/champlain/champlain-view.c
index e89f59e..ca39f0a 100644
--- a/champlain/champlain-view.c
+++ b/champlain/champlain-view.c
@@ -158,7 +158,7 @@ struct _ChamplainViewPrivate
ClutterActor *license_actor; /* Contains the license info */
ClutterActor *scale_actor;
- gboolean display_scale;
+ gboolean show_scale;
ChamplainState state; /* View's global state */
@@ -597,7 +597,7 @@ champlain_view_get_property (GObject *object,
g_value_set_enum (value, priv->scroll_mode);
break;
case PROP_DISPLAY_SCALE:
- g_value_set_boolean (value, priv->display_scale);
+ g_value_set_boolean (value, priv->show_scale);
break;
case PROP_DECEL_RATE:
{
@@ -658,7 +658,7 @@ champlain_view_set_property (GObject *object,
champlain_view_set_scroll_mode (view, g_value_get_enum (value));
break;
case PROP_DISPLAY_SCALE:
- priv->display_scale = g_value_get_boolean (value);
+ champlain_view_set_show_scale (view, g_value_get_enum (value));
break;
case PROP_DECEL_RATE:
champlain_view_set_decel_rate (view, g_value_get_double (value));
@@ -1000,9 +1000,7 @@ button_release_cb (ClutterActor *actor,
}
static void
-update_scale (gpointer *unused,
- GParamSpec *arg1,
- ChamplainView *view)
+update_scale (ChamplainView *view)
{
ClutterActor *text;
ChamplainViewPrivate *priv = view->priv;
@@ -1021,13 +1019,14 @@ update_scale (gpointer *unused,
if (! priv || !priv->map || !priv->map->current_level)
return;
- if (priv->display_scale)
+ if (priv->show_scale)
{
clutter_actor_show(priv->scale_actor);
}
else
{
clutter_actor_hide(priv->scale_actor);
+ return;
}
level = priv->map->current_level;
@@ -1050,19 +1049,6 @@ create_scale (ChamplainView *view)
ChamplainViewPrivate *priv = view->priv;
priv->scale_actor = g_object_ref (clutter_group_new());
- g_signal_connect (view,
- "notify::zoom-level",
- G_CALLBACK (update_scale),
- view);
- g_signal_connect (priv->viewport,
- "notify::y-origin",
- G_CALLBACK (update_scale),
- view);
- g_signal_connect (view,
- "notify::display-scale",
- G_CALLBACK (update_scale),
- view);
-
scale = clutter_cairo_texture_new (SCALE_WIDTH, SCALE_HEIGHT);
cr = clutter_cairo_texture_create (CLUTTER_CAIRO_TEXTURE (scale));
@@ -1122,7 +1108,7 @@ champlain_view_init (ChamplainView *view)
priv->goto_context = NULL;
priv->map = NULL;
priv->polygon_redraw_id = 0;
- priv->display_scale = TRUE;
+ priv->show_scale = TRUE;
/* Setup viewport */
priv->viewport = g_object_ref (tidy_viewport_new ());
@@ -1235,6 +1221,7 @@ viewport_pos_changed_cb (GObject *gobject,
view_tiles_reposition (view);
marker_reposition (view);
view_update_polygons (view);
+ update_scale (view);
priv->longitude = viewport_get_current_longitude (priv);
priv->latitude = viewport_get_current_latitude (priv);
@@ -2333,6 +2320,27 @@ champlain_view_set_show_license (ChamplainView *view,
}
/**
+* champlain_view_set_show_scale:
+* @view: a #ChamplainView
+* @value: a #gboolean
+*
+* Show the scale on the map view.
+*
+* Since: 0.4.3
+*/
+void
+champlain_view_set_show_scale (ChamplainView *view,
+ gboolean value)
+{
+ g_return_if_fail (CHAMPLAIN_IS_VIEW (view));
+
+ ChamplainViewPrivate *priv = view->priv;
+
+ priv->show_scale = value;
+ update_scale (view);
+}
+
+/**
* champlain_view_set_zoom_on_double_click:
* @view: a #ChamplainView
* @value: a #gboolean
@@ -2551,6 +2559,7 @@ view_set_zoom_level_at (ChamplainView *view,
clutter_container_add_actor (CLUTTER_CONTAINER (priv->map_layer),
new_group);
champlain_view_center_on (view, lat2, lon2);
+ update_scale (view);
g_object_notify (G_OBJECT (view), "zoom-level");
return TRUE;
@@ -2700,6 +2709,23 @@ champlain_view_get_show_license (ChamplainView *view)
}
/**
+ * champlain_view_get_show_scale:
+ * @view: The view
+ *
+ * Returns: TRUE if the view displays the scale, FALSE otherwise.
+ *
+ * Since: 0.4.3
+ */
+gboolean
+champlain_view_get_show_scale (ChamplainView *view)
+{
+ g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), FALSE);
+
+ ChamplainViewPrivate *priv = view->priv;
+ return priv->show_scale;
+}
+
+/**
* champlain_view_get_zoom_on_double_click:
* @view: The view
*
diff --git a/champlain/champlain-view.h b/champlain/champlain-view.h
index 0549b08..9192d8f 100644
--- a/champlain/champlain-view.h
+++ b/champlain/champlain-view.h
@@ -113,6 +113,7 @@ void champlain_view_set_scroll_mode (ChamplainView *view,
void champlain_view_set_keep_center_on_resize (ChamplainView *view,
gboolean value);
void champlain_view_set_show_license (ChamplainView *view, gboolean value);
+void champlain_view_set_show_scale (ChamplainView *view, gboolean value);
void champlain_view_set_zoom_on_double_click (ChamplainView *view,
gboolean value);
@@ -140,6 +141,7 @@ gdouble champlain_view_get_decel_rate (ChamplainView *view);
ChamplainScrollMode champlain_view_get_scroll_mode (ChamplainView *view);
gboolean champlain_view_get_keep_center_on_resize (ChamplainView *view);
gboolean champlain_view_get_show_license (ChamplainView *view);
+gboolean champlain_view_get_show_scale (ChamplainView *view);
gboolean champlain_view_get_zoom_on_double_click (ChamplainView *view);
void champlain_view_add_polygon (ChamplainView *view,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]