struct _Widget_Data
{
Eina_Inlist_Sorted_State *state;
- Evas_Object *obj;
- Eina_List *selected;
- Eina_List *group_items;
+ Evas_Object *obj;
+ Evas_Object *scr; /* a smart scroller object which is used internally in genlist */
+ Evas_Object *pan_smart; /* "elm_genlist_pan" evas smart object. this is an extern pan of smart scroller(scr). */
+ Eina_List *selected;
+ Eina_List *group_items;
Eina_Inlist *items; /* inlist of all items */
Elm_Gen_Item *reorder_it; /* item currently being repositioned */
+ Elm_Gen_Item *last_selected_item;
+ Pan *pan; /* pan_smart object's smart data */
Ecore_Job *calc_job;
- int walking;
+ int walking;
+ Evas_Coord pan_x, pan_y;
Eina_Bool reorder_mode : 1;
Eina_Bool on_hold : 1;
Eina_Bool multi : 1;
return EINA_TRUE;
}
#endif
-
+/******************************************************************************/
void
elm_gen_item_unrealize(Elm_Gen_Item *it,
Eina_Bool calc,
elm_widget_item_text_get_hook_set(it, _item_label_hook);
return it;
}
+/******************************************************************************/
typedef struct Elm_Gen_Item_Type Elm_Gen_Item_Type;
typedef struct Elm_Gen_Item_Tooltip Elm_Gen_Item_Tooltip;
typedef struct _Widget_Data Widget_Data;
+typedef struct _Pan Pan;
struct Elm_Gen_Item_Tooltip
{
Eina_Bool free_size : 1;
};
+struct _Pan
+{
+ Evas_Object_Smart_Clipped_Data __clipped_data;
+ Widget_Data *wd;
+ Ecore_Job *resize_job;
+};
+
struct Elm_Gen_Item
{
ELM_WIDGET_ITEM;
* Handle non-homogeneous objects too.
*/
- typedef struct _Pan Pan;
-
#define PRELOAD 1
#define REORDER_EFFECT_TIME 0.5
{
Eina_Inlist_Sorted_State *state;
Evas_Object *obj; /* the gengrid object */
+ Evas_Object *scr; /* a smart scroller object which is used internally in genlist */
+ Evas_Object *pan_smart; /* "elm_genlist_pan" evas smart object. this is an extern pan of smart scroller(scr). */
Eina_List *selected;
Eina_List *group_items; /* list of groups index items */
Eina_Inlist *items; /* inlist of all items */
Elm_Gen_Item *reorder_it; /* item currently being repositioned */
+ Elm_Gen_Item *last_selected_item;
+ Pan *pan; /* pan_smart object's smart data */
Ecore_Job *calc_job;
int walking;
+ Evas_Coord pan_x, pan_y;
Eina_Bool reorder_mode : 1;
Eina_Bool on_hold : 1;
Eina_Bool multi : 1;
Eina_Bool wasselected : 1;
Eina_Bool always_select : 1;
////////////////////////////////////
- Evas_Object *scr;
- Evas_Object *pan_smart;
- Pan *pan;
- Elm_Gen_Item *last_selected_item;
double align_x, align_y;
- Evas_Coord pan_x, pan_y, old_pan_x, old_pan_y;
+ Evas_Coord old_pan_x, old_pan_y;
Evas_Coord item_width, item_height; /* Each it size */
Evas_Coord group_item_width, group_item_height; /* Each group it size */
Evas_Coord minw, minh; /* Total obj size */
#define ELM_GENGRID_ITEM_FROM_INLIST(it) \
((it) ? EINA_INLIST_CONTAINER_GET(it, Elm_Gen_Item) : NULL)
-struct _Pan
-{
- Evas_Object_Smart_Clipped_Data __clipped_data;
- Widget_Data *wd;
-};
-
static const char *widtype = NULL;
static void _item_highlight(Elm_Gen_Item *it);
static void _item_unrealize_cb(Elm_Gen_Item *it);
#define REORDER_EFFECT_TIME 0.5
typedef struct _Item_Block Item_Block;
-typedef struct _Pan Pan;
typedef struct _Item_Cache Item_Cache;
struct Elm_Gen_Item_Type
{
Eina_Inlist_Sorted_State *state;
Evas_Object *obj; /* the genlist object */
+ Evas_Object *scr; /* a smart scroller object which is used internally in genlist */
+ Evas_Object *pan_smart; /* "elm_genlist_pan" evas smart object. this is an extern pan of smart scroller(scr). */
Eina_List *selected;
Eina_List *group_items; /* list of groups index items */
Eina_Inlist *items; /* inlist of all items */
Elm_Gen_Item *reorder_it; /* item currently being repositioned */
+ Elm_Gen_Item *last_selected_item;
+ Pan *pan; /* pan_smart object's smart data */
Ecore_Job *calc_job;
int walking;
+ Evas_Coord pan_x, pan_y;
Eina_Bool reorder_mode : 1;
Eina_Bool on_hold : 1;
Eina_Bool multi : 1;
Eina_Bool wasselected : 1;
Eina_Bool always_select : 1;
////////////////////////////////////
- Evas_Object *scr; /* a smart scroller object which is used internally in genlist */
- Evas_Object *pan_smart; /* "elm_genlist_pan" evas smart object. this is an extern pan of smart scroller(scr). */
Eina_Inlist *blocks; /* inlist of all blocks. a block consists of a certain number of items. maximum number of items in a block is 'max_items_per_block'. */
- Pan *pan; /* pan_smart object's smart data */
- Evas_Coord pan_x, pan_y, reorder_old_pan_y, w, h, minw, minh, realminw, prev_viewport_w;
+ Evas_Coord reorder_old_pan_y, w, h, minw, minh, realminw, prev_viewport_w;
Ecore_Job *update_job;
Ecore_Idle_Enterer *queue_idle_enterer;
Ecore_Idler *must_recalc_idler;
Eina_List *queue;
Elm_Gen_Item *show_item, *anchor_item, *mode_item, *reorder_rel, *expanded_item;
- Elm_Gen_Item *last_selected_item; /* the last selected it. */
Eina_Inlist *item_cache; /* an inlist of edje object it cache. */
Evas_Coord anchor_y;
Evas_Coord reorder_start_y; /* reorder it's initial y coordinate in the pan. */
#define ELM_GENLIST_ITEM_FROM_INLIST(it) \
((it) ? EINA_INLIST_CONTAINER_GET(it, Elm_Gen_Item) : NULL)
-struct _Pan
-{
- Evas_Object_Smart_Clipped_Data __clipped_data;
- Widget_Data *wd;
- Ecore_Job *resize_job;
-};
-
static const char *widtype = NULL;
static void _item_cache_zero(Widget_Data *wd);
static void _del_hook(Evas_Object *obj);