[elm] Gengrid now a scrollable layout.

SVN revision: 73541
This commit is contained in:
Gustavo Lima Chaves 2012-07-10 21:40:38 +00:00
parent ce361dca42
commit 363cdf94c3
5 changed files with 2734 additions and 2040 deletions

View File

@ -74,16 +74,16 @@ set_api_state(api_data *api)
break; break;
case GRID_NO_BOUNCE: /* 3 */ case GRID_NO_BOUNCE: /* 3 */
elm_gengrid_bounce_set(grid, EINA_TRUE, EINA_FALSE); elm_scroller_bounce_set(grid, EINA_TRUE, EINA_FALSE);
break; break;
case GRID_PAGE_RELATIVE: /* 4 */ case GRID_PAGE_RELATIVE: /* 4 */
elm_gengrid_bounce_set(grid, EINA_TRUE, EINA_TRUE); elm_scroller_bounce_set(grid, EINA_TRUE, EINA_TRUE);
elm_gengrid_page_relative_set(grid, 0.5, 0.5); elm_scroller_page_relative_set(grid, 0.5, 0.5);
break; break;
case GRID_PAGE_SIZE: /* 5 */ case GRID_PAGE_SIZE: /* 5 */
elm_gengrid_page_size_set(grid, 50, 25); elm_scroller_page_size_set(grid, 50, 25);
break; break;
case GRID_TOOLTIP_SET_TEXT: /* 6 */ case GRID_TOOLTIP_SET_TEXT: /* 6 */

View File

@ -59,26 +59,26 @@ external_gengrid_state_set(void *data __UNUSED__, Evas_Object *obj, const void *
if (p->h_bounce_exists) if (p->h_bounce_exists)
{ {
Eina_Bool h_bounce, v_bounce; Eina_Bool h_bounce, v_bounce;
elm_gengrid_bounce_get(obj, &h_bounce, &v_bounce); elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
elm_gengrid_bounce_set(obj, p->h_bounce, v_bounce); elm_scroller_bounce_set(obj, p->h_bounce, v_bounce);
} }
if (p->v_bounce_exists) if (p->v_bounce_exists)
{ {
Eina_Bool h_bounce, v_bounce; Eina_Bool h_bounce, v_bounce;
elm_gengrid_bounce_get(obj, &h_bounce, &v_bounce); elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
elm_gengrid_bounce_set(obj, h_bounce, p->v_bounce); elm_scroller_bounce_set(obj, h_bounce, p->v_bounce);
} }
if (p->h_pagerel_exists) if (p->h_pagerel_exists)
{ {
double h_pagerel, v_pagerel; double h_pagerel, v_pagerel;
elm_gengrid_page_relative_get(obj, &h_pagerel, &v_pagerel); elm_scroller_page_relative_get(obj, &h_pagerel, &v_pagerel);
elm_gengrid_page_relative_set(obj, h_pagerel, p->v_pagerel); elm_scroller_page_relative_set(obj, h_pagerel, p->v_pagerel);
} }
if (p->v_pagerel_exists) if (p->v_pagerel_exists)
{ {
double h_pagerel, v_pagerel; double h_pagerel, v_pagerel;
elm_gengrid_page_relative_get(obj, &h_pagerel, &v_pagerel); elm_scroller_page_relative_get(obj, &h_pagerel, &v_pagerel);
elm_gengrid_page_relative_set(obj, p->h_pagerel, v_pagerel); elm_scroller_page_relative_set(obj, p->h_pagerel, v_pagerel);
} }
if (p->h_itemsize_exists) if (p->h_itemsize_exists)
{ {
@ -145,8 +145,8 @@ external_gengrid_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{ {
Eina_Bool h_bounce, v_bounce; Eina_Bool h_bounce, v_bounce;
elm_gengrid_bounce_get(obj, &h_bounce, &v_bounce); elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
elm_gengrid_bounce_set(obj, param->i, v_bounce); elm_scroller_bounce_set(obj, param->i, v_bounce);
return EINA_TRUE; return EINA_TRUE;
} }
} }
@ -155,8 +155,8 @@ external_gengrid_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{ {
Eina_Bool h_bounce, v_bounce; Eina_Bool h_bounce, v_bounce;
elm_gengrid_bounce_get(obj, &h_bounce, &v_bounce); elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
elm_gengrid_bounce_set(obj, h_bounce, param->i); elm_scroller_bounce_set(obj, h_bounce, param->i);
return EINA_TRUE; return EINA_TRUE;
} }
} }
@ -165,8 +165,8 @@ external_gengrid_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
{ {
double h_pagerel, v_pagerel; double h_pagerel, v_pagerel;
elm_gengrid_page_relative_get(obj, &h_pagerel, &v_pagerel); elm_scroller_page_relative_get(obj, &h_pagerel, &v_pagerel);
elm_gengrid_page_relative_set(obj, param->d, v_pagerel); elm_scroller_page_relative_set(obj, param->d, v_pagerel);
return EINA_TRUE; return EINA_TRUE;
} }
} }
@ -175,8 +175,8 @@ external_gengrid_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
{ {
double h_pagerel, v_pagerel; double h_pagerel, v_pagerel;
elm_gengrid_page_relative_get(obj, &h_pagerel, &v_pagerel); elm_scroller_page_relative_get(obj, &h_pagerel, &v_pagerel);
elm_gengrid_page_relative_set(obj, h_pagerel, param->d); elm_scroller_page_relative_set(obj, h_pagerel, param->d);
return EINA_TRUE; return EINA_TRUE;
} }
} }
@ -270,7 +270,7 @@ external_gengrid_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{ {
Eina_Bool h_bounce, v_bounce; Eina_Bool h_bounce, v_bounce;
elm_gengrid_bounce_get(obj, &h_bounce, &v_bounce); elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
param->i = h_bounce; param->i = h_bounce;
return EINA_TRUE; return EINA_TRUE;
} }
@ -280,7 +280,7 @@ external_gengrid_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{ {
Eina_Bool h_bounce, v_bounce; Eina_Bool h_bounce, v_bounce;
elm_gengrid_bounce_get(obj, &h_bounce, &v_bounce); elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
param->i = v_bounce; param->i = v_bounce;
return EINA_TRUE; return EINA_TRUE;
} }
@ -290,7 +290,7 @@ external_gengrid_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
{ {
double h_pagerel, v_pagerel; double h_pagerel, v_pagerel;
elm_gengrid_page_relative_get(obj, &h_pagerel, &v_pagerel); elm_scroller_page_relative_get(obj, &h_pagerel, &v_pagerel);
param->d = h_pagerel; param->d = h_pagerel;
return EINA_TRUE; return EINA_TRUE;
} }
@ -300,7 +300,7 @@ external_gengrid_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_E
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
{ {
double h_pagerel, v_pagerel; double h_pagerel, v_pagerel;
elm_gengrid_page_relative_get(obj, &h_pagerel, &v_pagerel); elm_scroller_page_relative_get(obj, &h_pagerel, &v_pagerel);
param->d = v_pagerel; param->d = v_pagerel;
return EINA_TRUE; return EINA_TRUE;
} }

View File

@ -27,6 +27,8 @@ struct Elm_Gen_Item
{ {
ELM_WIDGET_ITEM; ELM_WIDGET_ITEM;
EINA_INLIST; EINA_INLIST;
//FIXME: remove it
Widget_Data *wd; Widget_Data *wd;
Elm_Gen_Item_Type *item; Elm_Gen_Item_Type *item;
const Elm_Gen_Item_Class *itc; const Elm_Gen_Item_Class *itc;
@ -66,6 +68,7 @@ struct Elm_Gen_Item
Eina_Bool flipped : 1; /**< a flag that shows the flip status of the item. */ Eina_Bool flipped : 1; /**< a flag that shows the flip status of the item. */
}; };
//FIXME: remove it
typedef struct _Pan Pan; typedef struct _Pan Pan;
struct _Pan struct _Pan
{ {

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,9 @@
* @defgroup Gengrid Gengrid (Generic grid) * @defgroup Gengrid Gengrid (Generic grid)
* @ingroup Elementary * @ingroup Elementary
* *
* @image html gengrid_inheritance_tree.png
* @image latex gengrid_inheritance_tree.eps
*
* This widget aims to position objects in a grid layout while * This widget aims to position objects in a grid layout while
* actually creating and rendering only the visible ones, using the * actually creating and rendering only the visible ones, using the
* same idea as the @ref Genlist "genlist": the user defines a @b * same idea as the @ref Genlist "genlist": the user defines a @b
@ -13,6 +16,16 @@
* view) or via the keyboard, navigating through item with the * view) or via the keyboard, navigating through item with the
* arrow keys. * arrow keys.
* *
* This widget implements the @b @ref elm-scrollable-interface
* interface, so that all (non-deprecated) functions for the base @ref
* Scroller widget also work for gengrids.
*
* Some calls on the gengrid's API are marked as @b deprecated, as
* they just wrap the scrollable widgets counterpart functions. Use
* the ones we point you to, for each case of deprecation here,
* instead -- eventually the deprecated ones will be discarded (next
* major release).
*
* @section Gengrid_Layouts Gengrid layouts * @section Gengrid_Layouts Gengrid layouts
* *
* Gengrid may layout its items in one of two possible layouts: * Gengrid may layout its items in one of two possible layouts:
@ -386,11 +399,13 @@ EAPI Eina_Bool elm_gengrid_horizontal_get(const Evas_Object
* *
* @note By default, gengrids have bouncing enabled on both axis * @note By default, gengrids have bouncing enabled on both axis
* *
* @see elm_gengrid_bounce_get() * @deprecated Use elm_scroller_bounce_set() instead.
*
* @see elm_scroller_bounce_set()
* *
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce); EINA_DEPRECATED EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
/** /**
* Get whether bouncing effects are enabled or disabled, for a * Get whether bouncing effects are enabled or disabled, for a
@ -402,11 +417,13 @@ EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina
* @param v_bounce Pointer to a variable where to store the * @param v_bounce Pointer to a variable where to store the
* vertical bouncing flag. * vertical bouncing flag.
* *
* @see elm_gengrid_bounce_set() for more details * @deprecated Use elm_scroller_bounce_get() instead.
*
* @see elm_scroller_bounce_get()
* *
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce); EINA_DEPRECATED EAPI void elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
/** /**
* Append a new item in a given gengrid widget. * Append a new item in a given gengrid widget.
@ -634,17 +651,22 @@ EAPI Elm_Object_Item *elm_gengrid_last_item_get(const Evas_Object *o
* @param policy_v Vertical scrollbar policy. * @param policy_v Vertical scrollbar policy.
* *
* This sets the scrollbar visibility policy for the given gengrid * This sets the scrollbar visibility policy for the given gengrid
* scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is * scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made
* made visible if it is needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON * visible if it is needed, and otherwise kept
* turns it on all the time, and #ELM_SCROLLER_POLICY_OFF always keeps it off. * hidden. #ELM_SCROLLER_POLICY_ON turns it on all the time, and
* This applies respectively for the horizontal and vertical scrollbars. * #ELM_SCROLLER_POLICY_OFF always keeps it off. This applies
* Default is #ELM_SCROLLER_POLICY_AUTO * respectively for the horizontal and vertical scrollbars. Default
* is #ELM_SCROLLER_POLICY_AUTO.
*
* @deprecated Use elm_scroller_policy_set() instead.
*
* @see elm_scroller_policy_set()
* *
* @see elm_gengrid_scroller_policy_get() * @see elm_gengrid_scroller_policy_get()
* *
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v); EINA_DEPRECATED EAPI void elm_gengrid_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
/** /**
* Get the scrollbar policy * Get the scrollbar policy
@ -653,11 +675,15 @@ EAPI void elm_gengrid_scroller_policy_set(Evas_Object *
* @param policy_h Pointer to store the horizontal scrollbar policy. * @param policy_h Pointer to store the horizontal scrollbar policy.
* @param policy_v Pointer to store the vertical scrollbar policy. * @param policy_v Pointer to store the vertical scrollbar policy.
* *
* @deprecated Use elm_scroller_policy_get() instead.
*
* @see elm_scroller_policy_get()
*
* @see elm_gengrid_scroller_policy_set() * @see elm_gengrid_scroller_policy_set()
* *
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v); EINA_DEPRECATED EAPI void elm_gengrid_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
/** /**
* Get the @b next item in a gengrid widget's internal list of items, * Get the @b next item in a gengrid widget's internal list of items,
@ -1317,11 +1343,13 @@ EAPI Eina_Bool elm_gengrid_reorder_mode_get(const Evas_Objec
* values, too -- elm_gengrid_page_size_set(). Naturally, its use * values, too -- elm_gengrid_page_size_set(). Naturally, its use
* is mutually exclusive to this one. * is mutually exclusive to this one.
* *
* @see elm_gengrid_page_relative_get() * @deprecated Use elm_scroller_page_relative_set() instead.
*
* @see elm_scroller_page_relative_set()
* *
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel); EINA_DEPRECATED EAPI void elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel);
/** /**
* Get a given gengrid widget's scrolling page size, relative to * Get a given gengrid widget's scrolling page size, relative to
@ -1333,11 +1361,13 @@ EAPI void elm_gengrid_page_relative_set(Evas_Object *ob
* @param v_pagerel Pointer to a variable where to store the * @param v_pagerel Pointer to a variable where to store the
* vertical page (relative) size * vertical page (relative) size
* *
* @see elm_gengrid_page_relative_set() for more details * @deprecated Use elm_scroller_page_relative_get() instead.
*
* @see elm_scroller_page_relative_get()
* *
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel); EINA_DEPRECATED EAPI void elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel);
/** /**
* Set a given gengrid widget's scrolling page size * Set a given gengrid widget's scrolling page size
@ -1363,9 +1393,13 @@ EAPI void elm_gengrid_page_relative_get(const Evas_Obje
* values, too -- elm_gengrid_page_relative_set(). Naturally, its * values, too -- elm_gengrid_page_relative_set(). Naturally, its
* use is mutually exclusive to this one. * use is mutually exclusive to this one.
* *
* @deprecated Use elm_scroller_page_size_set() instead.
*
* @see elm_scroller_page_size_set()
*
* @ingroup Gengrid * @ingroup Gengrid
*/ */
EAPI void elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize); EINA_DEPRECATED EAPI void elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize);
/** /**
* @brief Get gengrid current page number. * @brief Get gengrid current page number.
@ -1379,11 +1413,15 @@ EAPI void elm_gengrid_page_size_set(Evas_Object *obj, E
* If there are two or more pages in the viewport, it returns the number of page * If there are two or more pages in the viewport, it returns the number of page
* which meet the top-left of the viewport. * which meet the top-left of the viewport.
* *
* @deprecated Use elm_scroller_current_page_set() instead.
*
* @see elm_scroller_current_page_set()
*
* @see elm_gengrid_last_page_get() * @see elm_gengrid_last_page_get()
* @see elm_gengrid_page_show() * @see elm_gengrid_page_show()
* @see elm_gengrid_page_bring_in() * @see elm_gengrid_page_bring_in()
*/ */
EAPI void elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber); EINA_DEPRECATED EAPI void elm_gengrid_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
/** /**
* @brief Get gengrid last page number. * @brief Get gengrid last page number.
@ -1395,11 +1433,15 @@ EAPI void elm_gengrid_current_page_get(const Evas_Objec
* The page number starts from 0. 0 is the first page. * The page number starts from 0. 0 is the first page.
* This returns the last page number among the pages. * This returns the last page number among the pages.
* *
* @deprecated Use elm_scroller_last_page_set() instead.
*
* @see elm_scroller_last_page_set()
*
* @see elm_gengrid_current_page_get() * @see elm_gengrid_current_page_get()
* @see elm_gengrid_page_show() * @see elm_gengrid_page_show()
* @see elm_gengrid_page_bring_in() * @see elm_gengrid_page_bring_in()
*/ */
EAPI void elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber); EINA_DEPRECATED EAPI void elm_gengrid_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber);
/** /**
* Show a specific virtual region within the gengrid content object by page number. * Show a specific virtual region within the gengrid content object by page number.
@ -1445,9 +1487,13 @@ EAPI void elm_gengrid_page_show(const Evas_Object *obj,
* elm_gengrid_page_bring_in(sc, h_page, v_page); * elm_gengrid_page_bring_in(sc, h_page, v_page);
* @endcode * @endcode
* *
* @deprecated Use elm_scroller_page_bring_in() instead.
*
* @see elm_scroller_page_bring_in()
*
* @see elm_gengrid_page_show() * @see elm_gengrid_page_show()
*/ */
EAPI void elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber); EINA_DEPRECATED EAPI void elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenumber);
/** /**
* Get a given gengrid item's position, relative to the whole * Get a given gengrid item's position, relative to the whole