From: Emmanuel Rodriguez Date: Mon, 11 May 2009 12:41:26 +0000 (+0200) Subject: New getters as in the bug 581786 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf6603b26824a1f32077e0d28e5bc379b5220ee2;p=libchamplain New getters as in the bug 581786 --- diff --git a/bindings/perl/Champlain/xs/ChamplainView.xs b/bindings/perl/Champlain/xs/ChamplainView.xs index ea9d243..caf403a 100644 --- a/bindings/perl/Champlain/xs/ChamplainView.xs +++ b/bindings/perl/Champlain/xs/ChamplainView.xs @@ -23,7 +23,7 @@ champlain_view_zoom_in (ChamplainView *view) void champlain_view_zoom_out (ChamplainView *view) - + void champlain_view_add_layer (ChamplainView *view, ChamplainLayer *layer) @@ -104,3 +104,37 @@ champlain_view_ensure_markers_visible (ChamplainView *view, AV *av_markers, gboo champlain_view_ensure_markers_visible(view, markers, animate); g_free(markers); + +gint +champlain_view_get_zoom_level (ChamplainView *view) + + +gint +champlain_view_get_min_zoom_level (ChamplainView *view) + + +gint +champlain_view_get_max_zoom_level (ChamplainView *view) + + +ChamplainMapSource* +champlain_view_get_map_source (ChamplainView *view) + +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_zoom_on_double_click (ChamplainView *view) diff --git a/champlain/champlain-view.c b/champlain/champlain-view.c index e3616bd..1de362c 100644 --- a/champlain/champlain-view.c +++ b/champlain/champlain-view.c @@ -1963,3 +1963,164 @@ view_set_zoom_level_at (ChamplainView *view, g_object_notify (G_OBJECT (view), "zoom-level"); return TRUE; } + +/** + * champlain_view_get_zoom_level: + * @view: The view + * + * Returns the view's current zoom level. + * + * Since: 0.4 + */ +gint +champlain_view_get_zoom_level (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0); + + ChamplainViewPrivate *priv = view->priv; + + return priv->zoom_level; +} + +/** + * champlain_view_get_min_zoom_level: + * @view: The view + * + * Returns the view's minimal zoom level allowed. + * + * Since: 0.4 + */ +gint +champlain_view_get_min_zoom_level (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0); + + ChamplainViewPrivate *priv = view->priv; + + return priv->min_zoom_level; +} + +/** + * champlain_view_get_max_zoom_level: + * @view: The view + * + * Returns the view's maximal zoom level allowed. + * + * Since: 0.4 + */ +gint +champlain_view_get_max_zoom_level (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0); + + ChamplainViewPrivate *priv = view->priv; + + return priv->max_zoom_level; +} + +/** + * champlain_view_get_map_source: + * @view: The view + * + * Returns the view's current map source. If you need to keep a reference to the + * map source then you have to call #g_object_ref. + * + * Since: 0.4 + */ +ChamplainMapSource* +champlain_view_get_map_source (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), NULL); + + ChamplainViewPrivate *priv = view->priv; + + return priv->map_source; +} + +/** + * champlain_view_get_decel_rate: + * @view: The view + * + * Returns the view's deceleration rate. + * + * Since: 0.4 + */ +gdouble +champlain_view_get_decel_rate (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0.0); + + ChamplainViewPrivate *priv = view->priv; + gdouble decel = 0.0; + g_object_get (priv->finger_scroll, "decel-rate", &decel, NULL); + return decel; +} + +/** + * champlain_view_get_scroll_mode: + * @view: The view + * + * Returns the view's scroll mode behaviour. + * + * Since: 0.4 + */ +ChamplainScrollMode +champlain_view_get_scroll_mode (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), CHAMPLAIN_SCROLL_MODE_PUSH); + + ChamplainViewPrivate *priv = view->priv; + return priv->scroll_mode; +} + +/** + * champlain_view_get_keep_center_on_resize: + * @view: The view + * + * Returns TRUE if the view keeps the center or resize. + * + * Since: 0.4 + */ +gboolean +champlain_view_get_keep_center_on_resize (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), FALSE); + + ChamplainViewPrivate *priv = view->priv; + return priv->keep_center_on_resize; +} + +/** + * champlain_view_get_keep_center_on_resize: + * @view: The view + * + * Returns TRUE if the view displays the license. + * + * Since: 0.4 + */ +gboolean +champlain_view_get_show_license (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), FALSE); + + ChamplainViewPrivate *priv = view->priv; + return priv->show_license; +} + +/** + * champlain_view_get_zoom_on_double_click: + * @view: The view + * + * Returns TRUE if the view zooms on double click. + * + * Since: 0.4 + */ +gboolean +champlain_view_get_zoom_on_double_click (ChamplainView *view) +{ + g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), FALSE); + + ChamplainViewPrivate *priv = view->priv; + return priv->zoom_on_double_click; +} + diff --git a/champlain/champlain-view.h b/champlain/champlain-view.h index 05763c0..c998b60 100644 --- a/champlain/champlain-view.h +++ b/champlain/champlain-view.h @@ -129,6 +129,16 @@ gboolean champlain_view_get_coords_at (ChamplainView *view, gdouble *lat, gdouble *lon); +gint champlain_view_get_zoom_level (ChamplainView *view); +gint champlain_view_get_min_zoom_level (ChamplainView *view); +gint champlain_view_get_max_zoom_level (ChamplainView *view); +ChamplainMapSource* champlain_view_get_map_source (ChamplainView *view); +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_zoom_on_double_click (ChamplainView *view); + G_END_DECLS #endif