[libchamplain/libchamplain-0-4: 3/10] Add champlain_view_remove_layer
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain/libchamplain-0-4: 3/10] Add champlain_view_remove_layer
- Date: Sat, 17 Oct 2009 08:31:42 +0000 (UTC)
commit 7b72bff09d1eb2bcd16e7fdf07438edcdf52ae8b
Author: Pierre-Luc Beaudoin <pierre-luc pierlux com>
Date: Fri Oct 16 17:01:08 2009 -0400
Add champlain_view_remove_layer
champlain/champlain-view.c | 30 +++++++++++++++++++++++++++---
champlain/champlain-view.h | 2 ++
2 files changed, 29 insertions(+), 3 deletions(-)
---
diff --git a/champlain/champlain-view.c b/champlain/champlain-view.c
index d6ae74f..8ba5ee9 100644
--- a/champlain/champlain-view.c
+++ b/champlain/champlain-view.c
@@ -1716,11 +1716,11 @@ champlain_view_add_layer (ChamplainView *view,
ChamplainLayer *layer)
{
g_return_if_fail (CHAMPLAIN_IS_VIEW (view));
- g_return_if_fail (CLUTTER_IS_ACTOR (layer));
+ g_return_if_fail (CHAMPLAIN_IS_LAYER (layer));
ChamplainViewPrivate *priv = view->priv;
- clutter_container_add (CLUTTER_CONTAINER (priv->user_layers),
- CLUTTER_ACTOR (layer), NULL);
+ clutter_container_add_actor (CLUTTER_CONTAINER (priv->user_layers),
+ CLUTTER_ACTOR (layer));
clutter_actor_raise_top (CLUTTER_ACTOR (layer));
if (priv->map)
@@ -1734,6 +1734,30 @@ champlain_view_add_layer (ChamplainView *view,
}
/**
+ * champlain_view_remove_layer:
+ * @view: a #ChamplainView
+ * @layer: a #ChamplainLayer
+ *
+ * Removes the layer from the view
+ *
+ * Since: 0.4.1
+ */
+void
+champlain_view_remove_layer (ChamplainView *view,
+ ChamplainLayer *layer)
+{
+ g_return_if_fail (CHAMPLAIN_IS_VIEW (view));
+ g_return_if_fail (CHAMPLAIN_IS_LAYER (layer));
+
+ ChamplainViewPrivate *priv = view->priv;
+
+ g_signal_handlers_disconnect_by_func (layer,
+ G_CALLBACK (layer_add_marker_cb), view);
+ clutter_container_remove_actor (CLUTTER_CONTAINER (priv->user_layers),
+ CLUTTER_ACTOR (layer));
+}
+
+/**
* champlain_view_get_coords_from_event:
* @view: a #ChamplainView
* @event: a #ClutterEvent
diff --git a/champlain/champlain-view.h b/champlain/champlain-view.h
index cb46f13..85eb0e8 100644
--- a/champlain/champlain-view.h
+++ b/champlain/champlain-view.h
@@ -118,6 +118,8 @@ void champlain_view_set_zoom_on_double_click (ChamplainView *view,
void champlain_view_add_layer (ChamplainView *view,
ChamplainLayer *layer);
+void champlain_view_remove_layer (ChamplainView *view,
+ ChamplainLayer *layer);
gboolean champlain_view_get_coords_from_event (ChamplainView *view,
ClutterEvent *event,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]