forked from enlightenment/efl
Add two apis to limit page size of gengrid's scroller : elm_gengrid_page_relative_set and elm_gengrid_page_size_set.
These functions work exactly as those in elm_scroller. SVN revision: 52895
This commit is contained in:
parent
52e3df6faf
commit
62772bdb32
|
@ -665,6 +665,8 @@ extern "C" {
|
|||
EAPI Eina_Bool elm_gengrid_multi_select_get(const Evas_Object *obj);
|
||||
EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
|
||||
EAPI void elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
|
||||
EAPI void elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
|
||||
EAPI void elm_grngrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
|
||||
EAPI void elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting);
|
||||
EAPI void elm_gengrid_item_tooltip_text_set(Elm_Gengrid_Item *item, const char *text);
|
||||
EAPI void elm_gengrid_item_tooltip_content_cb_set(Elm_Gengrid_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
|
||||
|
|
|
@ -1884,6 +1884,70 @@ elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v
|
|||
*
|
||||
* @ingroup Gengrid
|
||||
*/
|
||||
|
||||
/**
|
||||
* Set 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_set(Evas_Object *obj, double h_pagerel, double v_pagerel)
|
||||
{
|
||||
Evas_Coord pagesize_h;
|
||||
Evas_Coord pagesize_v;
|
||||
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
|
||||
elm_smart_scroller_paging_get(wd->scr, NULL, NULL, &pagesize_h, &pagesize_v);
|
||||
elm_smart_scroller_paging_set(wd->scr, h_pagerel, v_pagerel, pagesize_h, pagesize_v);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Set gengrid scroll page size.
|
||||
*
|
||||
* See also elm_gengrid_page_relative_set(). This, instead of a page size
|
||||
* being relative to the viewport, sets it to an absolute fixed value, with
|
||||
* 0 turning it off for that axis.
|
||||
*
|
||||
* @param obj The gengrid object
|
||||
* @param h_pagesize The horizontal page size
|
||||
* @param v_pagesize The vertical page size
|
||||
*
|
||||
* @ingroup Gengrid
|
||||
*/
|
||||
EAPI void
|
||||
elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize)
|
||||
{
|
||||
double pagerel_h;
|
||||
double pagerel_v;
|
||||
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
elm_smart_scroller_paging_get(wd->scr, &pagerel_h, &pagerel_v, NULL, NULL);
|
||||
elm_smart_scroller_paging_set(wd->scr, pagerel_h, pagerel_v, h_pagesize, v_pagesize);
|
||||
}
|
||||
|
||||
|
||||
|
||||
EAPI const Eina_List *
|
||||
elm_gengrid_items_get(const Evas_Object *obj)
|
||||
{
|
||||
|
|
|
@ -1045,6 +1045,16 @@ elm_smart_scroller_paging_set(Evas_Object *obj, double pagerel_h, double pagerel
|
|||
_smart_page_adjust(sd);
|
||||
}
|
||||
|
||||
void
|
||||
elm_smart_scroller_paging_get(Evas_Object *obj, double *pagerel_h, double *pagerel_v, Evas_Coord *pagesize_h, Evas_Coord *pagesize_v)
|
||||
{
|
||||
API_ENTRY return;
|
||||
if(pagerel_h) *pagerel_h = sd->pagerel_h;
|
||||
if(pagerel_v) *pagerel_v = sd->pagerel_v;
|
||||
if(pagesize_h) *pagesize_h = sd->pagesize_h;
|
||||
if(pagesize_v) *pagesize_v = sd->pagesize_v;
|
||||
}
|
||||
|
||||
void
|
||||
elm_smart_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
|
||||
{
|
||||
|
|
|
@ -29,5 +29,6 @@ void elm_smart_scroller_freeze_set (Evas_Object *obj, Eina_Bool fre
|
|||
void elm_smart_scroller_bounce_allow_set (Evas_Object *obj, Eina_Bool horiz, Eina_Bool vert);
|
||||
void elm_smart_scroller_bounce_allow_get (const Evas_Object *obj, Eina_Bool *horiz, Eina_Bool *vert);
|
||||
void elm_smart_scroller_paging_set (Evas_Object *obj, double pagerel_h, double pagerel_v, Evas_Coord pagesize_h, Evas_Coord pagesize_v);
|
||||
void elm_smart_scroller_paging_get (Evas_Object *obj, double *pagerel_h, double *pagerel_v, Evas_Coord *pagesize_h, Evas_Coord *pagesize_v);
|
||||
void elm_smart_scroller_region_bring_in (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
|
||||
void elm_smart_scroller_widget_set (Evas_Object *obj, Evas_Object *wid);
|
||||
|
|
Loading…
Reference in New Issue