#define N_ITEMS 300
-static Elm_Genlist_Item_Class _itc;
-static Elm_Genlist_Item_Class _itc_group;
+static Elm_Genlist_Item_Class *_itc = NULL;
+static Elm_Genlist_Item_Class *_itc_group = NULL;
static int nitems = 0;
static char *
snprintf(buf, sizeof(buf), "Item # %i", i);
else
{
- int n;
- snprintf(buf, sizeof(buf), "realized at %s", ctime(&t));
- n = strlen(buf);
- buf[n - 1] = '\0';
+ int n;
+ snprintf(buf, sizeof(buf), "realized at %s", ctime(&t));
+ n = strlen(buf);
+ buf[n - 1] = '\0';
}
return strdup(buf);
_item_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n",
- data, obj, event_info);
+ data, obj, event_info);
}
static char *
{
Evas_Object *list = data;
- elm_genlist_item_append(list, &_itc,
- (void *)(long)nitems++, NULL,
- ELM_GENLIST_ITEM_NONE,
- _item_sel_cb, NULL);
+ elm_genlist_item_append(list, _itc,
+ (void *)(long)nitems++, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _item_sel_cb, NULL);
}
{
Evas_Object *list = data;
- elm_genlist_item_prepend(list, &_itc,
- (void *)(long)nitems++, NULL,
- ELM_GENLIST_ITEM_NONE,
- _item_sel_cb, NULL);
+ elm_genlist_item_prepend(list, _itc,
+ (void *)(long)nitems++, NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _item_sel_cb, NULL);
}
_insert_before_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *list = data;
- Elm_Genlist_Item *it = elm_genlist_selected_item_get(list);
+ Elm_Object_Item *glit = elm_genlist_selected_item_get(list);
- if (!it)
- return;
+ if (!glit) return;
- elm_genlist_item_insert_before(list, &_itc,
- (void *)(long)nitems++, NULL,
- it, ELM_GENLIST_ITEM_NONE,
- _item_sel_cb, NULL);
+ elm_genlist_item_insert_before(list, _itc,
+ (void *)(long)nitems++, NULL,
+ glit, ELM_GENLIST_ITEM_NONE,
+ _item_sel_cb, NULL);
}
_insert_after_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *list = data;
- Elm_Genlist_Item *it = elm_genlist_selected_item_get(list);
+ Elm_Object_Item *glit = elm_genlist_selected_item_get(list);
- if (!it)
- return;
+ if (!glit) return;
- elm_genlist_item_insert_after(list, &_itc,
- (void *)(long)nitems++, NULL,
- it, ELM_GENLIST_ITEM_NONE,
- _item_sel_cb, NULL);
+ elm_genlist_item_insert_after(list, _itc,
+ (void *)(long)nitems++, NULL,
+ glit, ELM_GENLIST_ITEM_NONE,
+ _item_sel_cb, NULL);
}
_next_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *list = data;
- Elm_Genlist_Item *it;
+ Elm_Object_Item *glit = elm_genlist_selected_item_get(list);
- it = elm_genlist_selected_item_get(list);
- if (it)
- it = elm_genlist_item_next_get(it);
+ if (glit) glit = elm_genlist_item_next_get(glit);
+ if (!glit) glit = elm_genlist_first_item_get(list);
- if (!it)
- it = elm_genlist_first_item_get(list);
-
- elm_genlist_item_selected_set(it, EINA_TRUE);
- elm_genlist_item_show(it);
+ elm_genlist_item_selected_set(glit, EINA_TRUE);
+ elm_genlist_item_show(glit, ELM_GENLIST_ITEM_SCROLLTO_IN);
}
static void
_prev_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *list = data;
- Elm_Genlist_Item *it;
-
- it = elm_genlist_selected_item_get(list);
- if (it)
- it = elm_genlist_item_prev_get(it);
+ Elm_Object_Item *glit = elm_genlist_selected_item_get(list);
- if (!it)
- it = elm_genlist_last_item_get(list);
+ if (glit) glit = elm_genlist_item_prev_get(glit);
+ if (!glit) glit = elm_genlist_last_item_get(list);
- elm_genlist_item_selected_set(it, EINA_TRUE);
- elm_genlist_item_show(it);
+ elm_genlist_item_selected_set(glit, EINA_TRUE);
+ elm_genlist_item_show(glit, ELM_GENLIST_ITEM_SCROLLTO_IN);
}
static void
_bring_in_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
- Elm_Genlist_Item *it = data;
+ Elm_Object_Item *glit = data;
+ if (!glit) return;
- if (!it)
- return;
-
- elm_genlist_item_bring_in(it);
+ elm_genlist_item_bring_in(glit, ELM_GENLIST_ITEM_SCROLLTO_IN);
}
static void
_show_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
- Elm_Genlist_Item *it = data;
-
- if (!it)
- return;
+ Elm_Object_Item *glit = data;
+ if (!glit) return;
- elm_genlist_item_show(it);
+ elm_genlist_item_show(glit, ELM_GENLIST_ITEM_SCROLLTO_IN);
}
static void
_middle_in_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
- Elm_Genlist_Item *it = data;
+ Elm_Object_Item *glit = data;
+ if (!glit) return;
- if (!it)
- return;
-
- elm_genlist_item_middle_bring_in(it);
+ elm_genlist_item_bring_in(glit, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
}
static void
_middle_show_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
- Elm_Genlist_Item *it = data;
-
- if (!it)
- return;
+ Elm_Object_Item *glit = data;
+ if (!glit) return;
- elm_genlist_item_middle_show(it);
+ elm_genlist_item_show(glit, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
}
static void
_top_in_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
- Elm_Genlist_Item *it = data;
-
- if (!it)
- return;
+ Elm_Object_Item *glit = data;
+ if (!glit) return;
- elm_genlist_item_top_bring_in(it);
+ elm_genlist_item_bring_in(glit, ELM_GENLIST_ITEM_SCROLLTO_TOP);
}
static void
_top_show_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
- Elm_Genlist_Item *it = data;
+ Elm_Object_Item *glit = data;
+ if (!glit) return;
- if (!it)
- return;
-
- elm_genlist_item_top_show(it);
+ elm_genlist_item_show(glit, ELM_GENLIST_ITEM_SCROLLTO_TOP);
}
static void
_realize_cb(void *data, Evas_Object *o __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *list = data;
- Elm_Genlist_Item *it = elm_genlist_selected_item_get(list);
-
- if (!it)
- return;
+ Elm_Object_Item *glit = elm_genlist_selected_item_get(list);
+ if (!glit) return;
- elm_genlist_item_update(it);
+ elm_genlist_item_update(glit);
}
static Evas_Object *
elm_win_resize_object_add(win, box);
evas_object_show(box);
- _itc.item_style = "double_label";
- _itc.func.label_get = _item_label_get;
- _itc.func.content_get = _item_icon_get;
- _itc.func.state_get = NULL;
- _itc.func.del = NULL;
-
- _itc_group.item_style = "group_index";
- _itc_group.func.label_get = _group_label_get;
- _itc_group.func.content_get = _group_icon_get;
- _itc_group.func.state_get = NULL;
- _itc_group.func.del = NULL;
+ if (!_itc)
+ {
+ _itc = elm_genlist_item_class_new();
+ _itc->item_style = "default";
+ _itc->func.text_get = _item_label_get;
+ _itc->func.content_get = _item_content_get;
+ _itc->func.state_get = NULL;
+ _itc->func.del = NULL;
+ }
+ if (!_itc_group)
+ {
+ _itc_group = elm_genlist_item_class_new();
+ _itc_group->item_style = "default";
+ _itc_group->func.text_get = _item_label_get;
+ _itc_group->func.content_get = _item_content_get;
+ _itc_group->func.state_get = NULL;
+ _itc_group->func.del = NULL;
+ }
+
list = elm_genlist_add(win);
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
fbox = elm_box_add(win);
elm_box_layout_set(fbox, evas_object_box_layout_flow_horizontal,
- NULL, NULL);
+ NULL, NULL);
evas_object_size_hint_weight_set(fbox, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(fbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box, fbox);
for (i = 0; i < N_ITEMS; i++)
{
- Elm_Genlist_Item *gli, *glg;
-
- if (i % 7 == 0)
- {
- glg = gli = elm_genlist_item_append(list, &_itc_group,
- (void *)(long)nitems++, NULL,
- ELM_GENLIST_ITEM_GROUP,
- _item_sel_cb, NULL);
- elm_genlist_item_display_only_set(glg, EINA_TRUE);
- }
- else
- {
- gli = elm_genlist_item_append(list, &_itc,
- (void *)(long)nitems++, glg,
- ELM_GENLIST_ITEM_NONE,
- _item_sel_cb, NULL);
- }
-
- switch (i)
- {
- case 3:
- elm_genlist_item_disabled_set(gli, EINA_TRUE);
- break;
- case 50:
- evas_object_smart_callback_add(
- bt_bring_in, "clicked", _bring_in_cb, gli);
- evas_object_smart_callback_add(
- bt_show, "clicked", _show_cb, gli);
- break;
- case 200:
- evas_object_smart_callback_add(
- bt_middle_in, "clicked", _middle_in_cb, gli);
- evas_object_smart_callback_add(
- bt_middle_show, "clicked", _middle_show_cb, gli);
- break;
- case 250:
- evas_object_smart_callback_add(
- bt_top_in, "clicked", _top_in_cb, gli);
- evas_object_smart_callback_add(
- bt_top_show, "clicked", _top_show_cb, gli);
- }
+ Elm_Object_Item *gli, *glg;
+
+ if (i % 7 == 0)
+ {
+ glg = gli = elm_genlist_item_append(list, _itc_group,
+ (void *)(long)nitems++, NULL,
+ ELM_GENLIST_ITEM_GROUP,
+ _item_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(git, ELM_OBJECT_DISPLAY_ONLY_SELECT);
+ }
+ else
+ {
+ gli = elm_genlist_item_append(list, _itc,
+ (void *)(long)nitems++, glg,
+ ELM_GENLIST_ITEM_NONE,
+ _item_sel_cb, NULL);
+ }
+
+ switch (i)
+ {
+ case 3:
+ elm_object_item_disabled_set(gli, EINA_TRUE);
+ break;
+ case 50:
+ evas_object_smart_callback_add(
+ bt_bring_in, "clicked", _bring_in_cb, gli);
+ evas_object_smart_callback_add(
+ bt_show, "clicked", _show_cb, gli);
+ break;
+ case 200:
+ evas_object_smart_callback_add(
+ bt_middle_in, "clicked", _middle_in_cb, gli);
+ evas_object_smart_callback_add(
+ bt_middle_show, "clicked", _middle_show_cb, gli);
+ break;
+ case 250:
+ evas_object_smart_callback_add(
+ bt_top_in, "clicked", _top_in_cb, gli);
+ evas_object_smart_callback_add(
+ bt_top_show, "clicked", _top_show_cb, gli);
+ }
}
evas_object_size_hint_min_set(bg, 160, 160);