implement the following:

EAPI void elm_gen_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
EAPI Eina_Bool elm_gen_always_select_mode_get(const Evas_Object *obj);
EAPI void elm_gen_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
EAPI Eina_Bool elm_gen_no_select_mode_get(const Evas_Object *obj);
EAPI void elm_gen_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_gen_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
EAPI void elm_gen_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
EAPI void elm_gen_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel);
EAPI void elm_gen_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
EAPI void elm_gen_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
EAPI void elm_gen_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
EAPI void elm_gen_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
EAPI void elm_gen_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
EAPI Elm_Gen_Item *elm_gen_first_item_get(const Evas_Object *obj);
EAPI Elm_Gen_Item *elm_gen_last_item_get(const Evas_Object *obj);
EAPI Elm_Gen_Item *elm_gen_item_next_get(const Elm_Gen_Item *it);
EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it);
EAPI Evas_Object *elm_gen_item_gen_get(const Elm_Gen_Item *it);



SVN revision: 64281
This commit is contained in:
Mike Blumenkrantz 2011-10-21 23:53:41 +00:00
parent 9cffa1a766
commit 9987b1034f
2 changed files with 223 additions and 0 deletions

View File

@ -7923,6 +7923,24 @@ extern "C" {
EAPI void elm_gen_clear(Evas_Object *obj);
EAPI void elm_gen_item_selected_set(Elm_Gen_Item *it, Eina_Bool selected);
EAPI Eina_Bool elm_gen_item_selected_get(const Elm_Gen_Item *it);
EAPI void elm_gen_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select);
EAPI Eina_Bool elm_gen_always_select_mode_get(const Evas_Object *obj);
EAPI void elm_gen_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select);
EAPI Eina_Bool elm_gen_no_select_mode_get(const Evas_Object *obj);
EAPI void elm_gen_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_gen_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
EAPI void elm_gen_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
EAPI void elm_gen_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel);
EAPI void elm_gen_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
EAPI void elm_gen_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
EAPI void elm_gen_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
EAPI void elm_gen_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
EAPI void elm_gen_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
EAPI Elm_Gen_Item *elm_gen_first_item_get(const Evas_Object *obj);
EAPI Elm_Gen_Item *elm_gen_last_item_get(const Evas_Object *obj);
EAPI Elm_Gen_Item *elm_gen_item_next_get(const Elm_Gen_Item *it);
EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it);
EAPI Evas_Object *elm_gen_item_gen_get(const Elm_Gen_Item *it);
/**
* @defgroup Gengrid Gengrid (Generic grid)

View File

@ -42,6 +42,8 @@ struct _Widget_Data
Eina_Bool wasselected : 1;
Eina_Bool always_select : 1;
Eina_Bool clear_me : 1;
Eina_Bool h_bounce : 1;
Eina_Bool v_bounce : 1;
Ecore_Cb del_cb, calc_cb, sizing_cb;
Ecore_Cb clear_cb;
};
@ -524,3 +526,206 @@ elm_gen_item_selected_get(const Elm_Gen_Item *it)
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, EINA_FALSE);
return it->selected;
}
EAPI void
elm_gen_always_select_mode_set(Evas_Object *obj,
Eina_Bool always_select)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
wd->always_select = always_select;
}
EAPI Eina_Bool
elm_gen_always_select_mode_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return EINA_FALSE;
return wd->always_select;
}
EAPI void
elm_gen_no_select_mode_set(Evas_Object *obj,
Eina_Bool no_select)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
wd->no_select = no_select;
}
EAPI Eina_Bool
elm_gen_no_select_mode_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return EINA_FALSE;
return wd->no_select;
}
EAPI void
elm_gen_bounce_set(Evas_Object *obj,
Eina_Bool h_bounce,
Eina_Bool v_bounce)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
elm_smart_scroller_bounce_allow_set(wd->scr, h_bounce, v_bounce);
wd->h_bounce = h_bounce;
wd->v_bounce = v_bounce;
}
EAPI void
elm_gen_bounce_get(const Evas_Object *obj,
Eina_Bool *h_bounce,
Eina_Bool *v_bounce)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (h_bounce) *h_bounce = wd->h_bounce;
if (v_bounce) *v_bounce = wd->v_bounce;
}
EAPI void
elm_gen_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);
}
EAPI void
elm_gen_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);
}
EAPI void
elm_gen_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 void
elm_gen_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (wd->scr)
elm_smart_scroller_current_page_get(wd->scr, h_pagenumber, v_pagenumber);
}
EAPI void
elm_gen_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (wd->scr)
elm_smart_scroller_last_page_get(wd->scr, h_pagenumber, v_pagenumber);
}
EAPI void
elm_gen_page_show(const Evas_Object *obj, int h_pagenumber, int v_pagenumber)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (wd->scr)
elm_smart_scroller_page_show(wd->scr, h_pagenumber, v_pagenumber);
}
EAPI void
elm_gen_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (wd->scr)
elm_smart_scroller_page_bring_in(wd->scr, h_pagenumber, v_pagenumber);
}
EAPI Elm_Gen_Item *
elm_gen_first_item_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
if (!wd->items) return NULL;
Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(wd->items);
while ((it) && (it->delete_me))
it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
return it;
}
EAPI Elm_Gen_Item *
elm_gen_last_item_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
if (!wd->items) return NULL;
Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(wd->items->last);
while ((it) && (it->delete_me))
it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
return it;
}
EAPI Elm_Gen_Item *
elm_gen_item_next_get(const Elm_Gen_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL);
while (it)
{
it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
if ((it) && (!it->delete_me)) break;
}
return (Elm_Gen_Item *)it;
}
EAPI Elm_Gen_Item *
elm_gen_item_prev_get(const Elm_Gen_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL);
while (it)
{
it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
if ((it) && (!it->delete_me)) break;
}
return (Elm_Gen_Item *)it;
}
EAPI Evas_Object *
elm_gen_item_gen_get(const Elm_Gen_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL);
return WIDGET(it);
}