From 03e5812682cb2ef57e44d388fd54ff908c45d401 Mon Sep 17 00:00:00 2001 From: yoz Date: Mon, 18 Apr 2011 10:54:25 +0000 Subject: [PATCH] elementary: add page_relative and horizontal getters to gengrid git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@58705 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Elementary.h.in | 2 ++ src/lib/elm_gengrid.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index 158517e..cfeec6a 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -932,8 +932,10 @@ extern "C" { EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1); EAPI void elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1); EAPI void elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1); + EAPI void elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) EINA_ARG_NONNULL(1); EAPI void elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1); EAPI void elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1); + EAPI Eina_Bool elm_gengrid_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI Elm_Gengrid_Item *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI Elm_Gengrid_Item *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index a528efd..fbea174 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -1926,6 +1926,24 @@ elm_gengrid_horizontal_set(Evas_Object *obj, } /** + * Get for what direction the Gengrid is expanded. + * + * @param obj The Gengrid object. + * @return If the Gengrid is expanded horizontally return @c EINA_TRUE + * else @c EINA_FALSE. + * + * @ingroup Gengrid + */ +EAPI Eina_Bool +elm_gengrid_horizontal_get(const Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return EINA_FALSE; + return wd->horizontal; +} + +/** * Clear the Gengrid * * This clears all items in the Gengrid, leaving it empty. @@ -2748,6 +2766,37 @@ elm_gengrid_page_relative_set(Evas_Object *obj, pagesize_v); } +/* + * Get gengrid scroll page size relative to viewport size. + * + * The gengrid scroller is capable of limiting scrolling by the user + * to "pages" That is to jump by and only show a "whole page" at a + * time as if the continuous area of the scroller content is split + * into page sized pieces. This sets the size of a page relative to + * the viewport of the scroller. 1.0 is "1 viewport" is size + * (horizontally or vertically). 0.0 turns it off in that axis. This + * is mutually exclusive with page size (see + * elm_gengrid_page_size_set() for more information). Likewise 0.5 is + * "half a viewport". Sane usable valus are normally between 0.0 and + * 1.0 including 1.0. If you only want 1 axis to be page "limited", + * use 0.0 for the other axis. + * + * @param obj The gengrid object + * @param h_pagerel The horizontal page relative size + * @param v_pagerel The vertical page relative size + * + @ingroup Gengrid + */ +EAPI void +elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + + elm_smart_scroller_paging_get(wd->scr, h_pagerel, v_pagerel, NULL, NULL); +} + /** * Set gengrid scroll page size. * -- 2.7.4