From: Pierre-Luc Beaudoin Date: Wed, 29 Jul 2009 03:47:54 +0000 (-0400) Subject: Hide some of the Clutter API X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd3e6d13c93360d95e23deb692517ce99ac9a8a6;p=libchamplain Hide some of the Clutter API Just in case we decide to have ChamplainLayer not be a ClutterGroup in future versions --- diff --git a/champlain/champlain-layer.c b/champlain/champlain-layer.c index c25192a..b28295b 100644 --- a/champlain/champlain-layer.c +++ b/champlain/champlain-layer.c @@ -189,3 +189,73 @@ champlain_layer_new () { return g_object_new (CHAMPLAIN_TYPE_LAYER, NULL); } + +/** + * champlain_layer_add_marker: + * @layer: a #ChamplainLayer + * @marker: a #ChamplainBaseMarker + * + * Adds the marker to the layer. + * + * Since: 0.4 + */ +void +champlain_layer_add_marker (ChamplainLayer *layer, + ChamplainBaseMarker *marker) +{ + g_return_if_fail (CHAMPLAIN_IS_LAYER (layer)); + g_return_if_fail (CHAMPLAIN_IS_BASE_MARKER (marker)); + + clutter_container_add (CLUTTER_CONTAINER (layer), CLUTTER_ACTOR (marker), NULL); +} + +/** + * champlain_layer_remove_marker: + * @layer: a #ChamplainLayer + * @marker: a #ChamplainBaseMarker + * + * Removes the marker from the layer. + * + * Since: 0.4 + */ +void +champlain_layer_remove_marker (ChamplainLayer *layer, + ChamplainBaseMarker *marker) +{ + g_return_if_fail (CHAMPLAIN_IS_LAYER (layer)); + g_return_if_fail (CHAMPLAIN_IS_BASE_MARKER (marker)); + + clutter_container_remove (CLUTTER_CONTAINER (layer), CLUTTER_ACTOR (marker), NULL); +} + +/** + * champlain_layer_show: + * @layer: a #ChamplainLayer + * + * Makes the layer and its markers visible. + * + * Since: 0.4 + */ +void +champlain_layer_show (ChamplainLayer *layer) +{ + g_return_if_fail (CHAMPLAIN_IS_LAYER (layer)); + + clutter_actor_show (CLUTTER_ACTOR (layer)); +} + +/** + * champlain_layer_hide: + * @layer: a #ChamplainLayer + * + * Makes the layer and its markers invisible. + * + * Since: 0.4 + */ +void +champlain_layer_hide (ChamplainLayer *layer) +{ + g_return_if_fail (CHAMPLAIN_IS_LAYER (layer)); + + clutter_actor_hide (CLUTTER_ACTOR (layer)); +} diff --git a/champlain/champlain-layer.h b/champlain/champlain-layer.h index 6bd471a..54a5d5e 100644 --- a/champlain/champlain-layer.h +++ b/champlain/champlain-layer.h @@ -24,6 +24,7 @@ #define CHAMPLAIN_LAYER_H #include +#include #include #include @@ -59,6 +60,14 @@ GType champlain_layer_get_type (void); ChamplainLayer* champlain_layer_new (void); +void champlain_layer_show (ChamplainLayer *layer); +void champlain_layer_hide (ChamplainLayer *layer); + +void champlain_layer_add_marker (ChamplainLayer *layer, + ChamplainBaseMarker *marker); +void champlain_layer_remove_marker (ChamplainLayer *layer, + ChamplainBaseMarker *marker); + G_END_DECLS #endif diff --git a/demos/markers.c b/demos/markers.c index c8d9006..6166eaa 100644 --- a/demos/markers.c +++ b/demos/markers.c @@ -49,7 +49,7 @@ create_marker_layer (ChamplainView *view) champlain_base_marker_set_position (CHAMPLAIN_BASE_MARKER (marker), 45.528178, -73.563788); - clutter_container_add (CLUTTER_CONTAINER (layer), marker, NULL); + champlain_layer_add_marker (layer, CHAMPLAIN_BASE_MARKER (marker)); clutter_actor_set_reactive (marker, TRUE); g_signal_connect_after (marker, "button-release-event", G_CALLBACK (marker_button_release_cb), view); @@ -57,19 +57,19 @@ create_marker_layer (ChamplainView *view) marker = champlain_marker_new_from_file ("/usr/share/icons/gnome/24x24/emblems/emblem-generic.png", NULL); champlain_marker_set_text (CHAMPLAIN_MARKER (marker), "New York"); champlain_base_marker_set_position (CHAMPLAIN_BASE_MARKER (marker), 40.77, -73.98); - clutter_container_add (CLUTTER_CONTAINER (layer), marker, NULL); + champlain_layer_add_marker (layer, CHAMPLAIN_BASE_MARKER (marker)); marker = champlain_marker_new_from_file ("/usr/share/icons/gnome/24x24/emblems/emblem-important.png", NULL); champlain_base_marker_set_position (CHAMPLAIN_BASE_MARKER (marker), 47.130885, -70.764141); - clutter_container_add (CLUTTER_CONTAINER (layer), marker, NULL); + champlain_layer_add_marker (layer, CHAMPLAIN_BASE_MARKER (marker)); marker = champlain_marker_new_from_file ("/usr/share/icons/gnome/24x24/emblems/emblem-favorite.png", NULL); champlain_marker_set_draw_background (CHAMPLAIN_MARKER (marker), FALSE); champlain_base_marker_set_position (CHAMPLAIN_BASE_MARKER (marker), 45.41484, -71.918907); - clutter_container_add (CLUTTER_CONTAINER (layer), marker, NULL); + champlain_layer_add_marker (layer, CHAMPLAIN_BASE_MARKER (marker)); - clutter_actor_show (CLUTTER_ACTOR (layer)); + champlain_layer_show (layer); return layer; }