-#include <Elementary.h>
+#include <Elementary_Cursor.h>
+#include "test.h"
#ifdef HAVE_CONFIG_H
-# include "elementary_config.h"
+#include "elementary_config.h"
#endif
+#include <Elementary.h>
#ifndef ELM_LIB_QUICKLAUNCH
+struct _api_data
+{
+ unsigned int state; /* What state we are testing */
+ void *box; /* Use this to get box content */
+};
+typedef struct _api_data api_data;
+
+enum _api_state
+{
+ HORIZONTAL_SET,
+ NO_SELECT_MODE_SET,
+ COMPRESS_MODE_SET,
+ BOUNCE_SET,
+ HOMOGENEOUS_SET,
+ SCROLLER_POLICY_SET,
+ TOOLTIP_TEXT_SET,
+ ITEM_CURSOR_SET,
+ API_STATE_LAST
+};
+typedef enum _api_state api_state;
+
+static void
+set_api_state(api_data *api)
+{
+ const Eina_List *items = elm_box_children_get(api->box);
+ if (!eina_list_count(items))
+ return;
+
+ Evas_Object *gl = eina_list_nth(items, 0); /* Genlist is the first item */
+ /* use elm_box_children_get() to get list of children */
+ switch(api->state)
+ {/* Put all api-changes under switch */
+ case HORIZONTAL_SET: /* 0 */
+ elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
+ break;
+
+ case NO_SELECT_MODE_SET: /* 1 */
+ elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_genlist_mode_set(gl, ELM_LIST_SCROLL); /* Back to default */
+ break;
+
+ case COMPRESS_MODE_SET: /* 2 */
+ elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_DEFAULT);
+ elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
+ break;
+
+ case BOUNCE_SET: /* 3 */
+ elm_genlist_bounce_set(gl, EINA_FALSE, EINA_FALSE);
+ break;
+
+ case HOMOGENEOUS_SET: /* 4 */
+ elm_genlist_bounce_set(gl, EINA_TRUE, EINA_TRUE); /* Back to default */
+ elm_genlist_homogeneous_set(gl, EINA_TRUE);
+ break;
+
+ case SCROLLER_POLICY_SET: /* 5 */
+ elm_genlist_homogeneous_set(gl, EINA_FALSE); /* Back to default */
+ elm_genlist_scroller_policy_set(gl, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
+ break;
+
+ case TOOLTIP_TEXT_SET: /* 6 */
+ {
+ elm_genlist_item_tooltip_text_set(elm_genlist_first_item_get(gl), "Tooltip text from API");
+ elm_genlist_item_bring_in(elm_genlist_first_item_get(gl),
+ ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
+ break;
+
+ case ITEM_CURSOR_SET: /* 7 */
+ elm_genlist_item_cursor_set(elm_genlist_first_item_get(gl), ELM_CURSOR_HAND2);
+ break;
+
+ default:
+ return;
+ }
+}
+static void
+_api_bt_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__)
+{ /* Will add here a SWITCH command containing code to modify test-object */
+ /* in accordance a->state value. */
+ api_data *a = data;
+ char str[128];
+
+ printf("clicked event on API Button: api_state=<%d>\n", a->state);
+ set_api_state(a);
+ a->state++;
+ sprintf(str, "Next API function (%u)", a->state);
+ elm_object_text_set(obj, str);
+ elm_object_disabled_set(obj, a->state == API_STATE_LAST);
+}
/* Hint:
* In this example some calls to elm_genlist_item_append() are used which give the
* value of an int as 'item data' and 'func data' after casting into (void*). For
typedef struct _Testitem
{
- Elm_Genlist_Item *item;
+ Elm_Object_Item *item;
int mode;
int onoff;
+ Eina_Bool checked;
} Testitem;
-
-static Elm_Genlist_Item_Class itc1;
-char *gl_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+static Elm_Genlist_Item_Class *itc1;
+char *gl_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
char buf[256];
snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data);
return strdup(buf);
}
-Evas_Object *gl_icon_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
+Evas_Object *gl_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
{
char buf[PATH_MAX];
Evas_Object *ic = elm_icon_add(obj);
if (!strcmp(part, "elm.swallow.end"))
- snprintf(buf, sizeof(buf), "%s/images/bubble.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
else
- snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
elm_icon_file_set(ic, buf, NULL);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
return ic;
}
+
Eina_Bool gl_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
return EINA_FALSE;
}
-void gl_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
-{
-}
static void
gl_sel(void *data, Evas_Object *obj, void *event_info)
Evas_Object *gl = data;
Evas_Event_Mouse_Move *ev = event_info;
int where = 0;
- Elm_Genlist_Item *gli;
+ Elm_Object_Item *gli;
gli = elm_genlist_at_xy_item_get(gl, ev->cur.canvas.x, ev->cur.canvas.y, &where);
if (gli)
- printf("over %p, where %i\n", elm_genlist_item_data_get(gli), where);
+ printf("over %p, where %i\n", elm_object_item_data_get(gli), where);
else
- printf("over none, where %i\n", where);
+ printf("over none, where %i\n", where);
}
static void
_bt50_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- elm_genlist_item_bring_in(data);
+ elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_IN);
}
static void
_bt1500_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- elm_genlist_item_middle_bring_in(data);
+ elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
}
static void
printf("longpress %p\n", event_info);
}
+static void
+_cleanup_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ free(data);
+}
+
void
test_genlist(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bt_50, *bt_1500, *bx;
+ Evas_Object *win, *gl, *bt_50, *bt_1500, *bx, *bxx, *bt;
Evas_Object *over;
- Elm_Genlist_Item *gli;
+ Elm_Object_Item *gli;
int i;
+ api_data *api = calloc(1, sizeof(api_data));
- win = elm_win_add(NULL, "genlist", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist");
- elm_win_autodel_set(win, 1);
+ win = elm_win_util_standard_add("genlist", "Genlist");
+ elm_win_autodel_set(win, EINA_TRUE);
+ evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ bxx = elm_box_add(win);
+ elm_win_resize_object_add(win, bxx);
+ evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(bxx);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(win, bx);
+ evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ api->box = bx;
evas_object_show(bx);
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Next API function");
+ evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api);
+ elm_box_pack_end(bxx, bt);
+ elm_object_disabled_set(bt, api->state == API_STATE_LAST);
+ evas_object_show(bt);
+
+ elm_box_pack_end(bxx, bx);
+
gl = elm_genlist_add(win);
evas_object_smart_callback_add(gl, "selected", _gl_selected, NULL);
evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
// FIXME: This causes genlist to resize the horiz axis very slowly :(
// Reenable this and resize the window horizontally, then try to resize it back
- //elm_genlist_horizontal_mode_set(gl, ELM_LIST_LIMIT);
+ //elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(bx, gl);
evas_object_size_hint_weight_set(over, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, over);
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1 = elm_genlist_item_class_new();
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
bt_50 = elm_button_add(win);
- elm_button_label_set(bt_50, "Go to 50");
+ elm_object_text_set(bt_50, "Go to 50");
evas_object_show(bt_50);
elm_box_pack_end(bx, bt_50);
bt_1500 = elm_button_add(win);
- elm_button_label_set(bt_1500, "Go to 1500");
+ elm_object_text_set(bt_1500, "Go to 1500");
evas_object_show(bt_1500);
elm_box_pack_end(bx, bt_1500);
- for (i = 0; i < 200000; i++)
+ for (i = 0; i < 2000; i++)
{
- gli = elm_genlist_item_append(gl, &itc1,
+ gli = elm_genlist_item_append(gl, itc1,
(void *)(long)i/* item data */,
NULL/* parent */,
ELM_GENLIST_ITEM_NONE,
gl_sel/* func */,
(void *)(long)(i * 10)/* func data */);
if (i == 50)
- evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
+ evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
else if (i == 1500)
- evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
+ evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
}
+ elm_genlist_item_class_free(itc1);
+
evas_object_resize(win, 480, 800);
evas_object_show(win);
}
Evas_Object *gl = data;
static int i = 0;
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
- elm_genlist_item_append(gl, &itc1,
+ elm_genlist_item_append(gl, itc1,
(void *)(long)i/* item data */,
NULL/* parent */,
ELM_GENLIST_ITEM_NONE,
{
Evas_Object *gl = data;
static int i = 0;
- Elm_Genlist_Item *gli_selected;
+ Elm_Object_Item *gli_selected;
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
gli_selected = elm_genlist_selected_item_get(gl);
- if(!gli_selected)
+ if (!gli_selected)
{
printf("no item selected\n");
return ;
}
- elm_genlist_item_insert_before(gl, &itc1,
+ elm_genlist_item_insert_before(gl, itc1,
(void *)(long)i/* item data */,
NULL/* parent */,
gli_selected /* item before */,
{
Evas_Object *gl = data;
static int i = 0;
- Elm_Genlist_Item *gli_selected;
+ Elm_Object_Item *gli_selected;
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
gli_selected = elm_genlist_selected_item_get(gl);
- if(!gli_selected)
+ if (!gli_selected)
{
printf("no item selected\n");
return ;
}
- elm_genlist_item_insert_after(gl, &itc1,
+ elm_genlist_item_insert_after(gl, itc1,
(void *)(long)i/* item data */,
NULL/* parent */,
gli_selected /* item after */,
my_gl_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *gl = data;
- Elm_Genlist_Item *gli = elm_genlist_selected_item_get(gl);
+ Elm_Object_Item *gli = elm_genlist_selected_item_get(gl);
if (!gli)
{
printf("no item selected\n");
return;
}
- elm_genlist_item_del(gli);
+ elm_object_item_del(gli);
}
static void
my_gl_disable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *gl = data;
- Elm_Genlist_Item *gli = elm_genlist_selected_item_get(gl);
+ Elm_Object_Item *gli = elm_genlist_selected_item_get(gl);
if (!gli)
{
printf("no item selected\n");
return;
}
- elm_genlist_item_disabled_set(gli, 1);
- elm_genlist_item_selected_set(gli, 0);
+ elm_object_item_disabled_set(gli, EINA_TRUE);
+ elm_genlist_item_selected_set(gli, EINA_FALSE);
elm_genlist_item_update(gli);
}
{
Evas_Object *gl = data;
int i = 0;
- Elm_Genlist_Item *it = elm_genlist_first_item_get(gl);
+ Elm_Object_Item *it = elm_genlist_first_item_get(gl);
while (it)
{
elm_genlist_item_update(it);
my_gl_first(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *gl = data;
- Elm_Genlist_Item *gli = elm_genlist_first_item_get(gl);
+ Elm_Object_Item *gli = elm_genlist_first_item_get(gl);
if (!gli) return;
- elm_genlist_item_show(gli);
+ elm_genlist_item_show(gli, ELM_GENLIST_ITEM_SCROLLTO_IN);
elm_genlist_item_selected_set(gli, 1);
}
my_gl_last(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *gl = data;
- Elm_Genlist_Item *gli = elm_genlist_last_item_get(gl);
+ Elm_Object_Item *gli = elm_genlist_last_item_get(gl);
if (!gli) return;
- elm_genlist_item_show(gli);
+ elm_genlist_item_show(gli, ELM_GENLIST_ITEM_SCROLLTO_IN);
elm_genlist_item_selected_set(gli, 1);
}
static Eina_Bool
my_gl_flush_delay(void *data __UNUSED__)
{
- elm_all_flush();
+ elm_cache_all_flush();
return ECORE_CALLBACK_CANCEL;
}
test_genlist2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *win, *bg, *gl, *bx, *bx2, *bx3, *bt;
- Elm_Genlist_Item *gli[10];
+ Elm_Object_Item *gli[10];
char buf[PATH_MAX];
win = elm_win_add(NULL, "genlist2", ELM_WIN_BASIC);
elm_win_title_set(win, "Genlist 2");
- elm_win_autodel_set(win, 1);
+ elm_win_autodel_set(win, EINA_TRUE);
bg = elm_bg_add(win);
- snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
elm_bg_file_set(bg, buf, NULL);
elm_win_resize_object_add(win, bg);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gl);
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1 = elm_genlist_item_class_new();
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
- gli[0] = elm_genlist_item_append(gl, &itc1,
+ gli[0] = elm_genlist_item_append(gl, itc1,
(void *)1001/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
(void *)1001/* func data */);
- gli[1] = elm_genlist_item_append(gl, &itc1,
+ gli[1] = elm_genlist_item_append(gl, itc1,
(void *)1002/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
(void *)1002/* func data */);
- gli[2] = elm_genlist_item_append(gl, &itc1,
+ gli[2] = elm_genlist_item_append(gl, itc1,
(void *)1003/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
(void *)1003/* func data */);
- gli[3] = elm_genlist_item_prepend(gl, &itc1,
+ gli[3] = elm_genlist_item_prepend(gl, itc1,
(void *)1004/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
(void *)1004/* func data */);
- gli[4] = elm_genlist_item_prepend(gl, &itc1,
+ gli[4] = elm_genlist_item_prepend(gl, itc1,
(void *)1005/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
(void *)1005/* func data */);
- gli[5] = elm_genlist_item_insert_before(gl, &itc1,
+ gli[5] = elm_genlist_item_insert_before(gl, itc1,
(void *)1006/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
gl_sel/* func */, (void *)1006/* func data */);
- gli[6] = elm_genlist_item_insert_after(gl, &itc1,
+ gli[6] = elm_genlist_item_insert_after(gl, itc1,
(void *)1007/* item data */, NULL/* parent */, gli[2]/* rel */, ELM_GENLIST_ITEM_NONE,
gl_sel/* func */, (void *)1007/* func data */);
-
elm_box_pack_end(bx, gl);
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "/\\");
+ elm_object_text_set(bt, "/\\");
evas_object_smart_callback_add(bt, "clicked", my_gl_first, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "\\/");
+ elm_object_text_set(bt, "\\/");
evas_object_smart_callback_add(bt, "clicked", my_gl_last, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "#");
+ elm_object_text_set(bt, "#");
evas_object_smart_callback_add(bt, "clicked", my_gl_disable, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "U");
+ elm_object_text_set(bt, "U");
evas_object_smart_callback_add(bt, "clicked", my_gl_update_all, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "X");
+ elm_object_text_set(bt, "X");
evas_object_smart_callback_add(bt, "clicked", my_gl_clear, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "+");
+ elm_object_text_set(bt, "+");
evas_object_smart_callback_add(bt, "clicked", my_gl_add, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "-");
+ elm_object_text_set(bt, "-");
evas_object_smart_callback_add(bt, "clicked", my_gl_del, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
bx3 = elm_box_add(win);
elm_box_horizontal_set(bx3, EINA_TRUE);
- elm_box_homogenous_set(bx3, EINA_TRUE);
+ elm_box_homogeneous_set(bx3, EINA_TRUE);
evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "+ before");
+ elm_object_text_set(bt, "+ before");
evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "+ after");
+ elm_object_text_set(bt, "+ after");
evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "Flush");
+ elm_object_text_set(bt, "Flush");
evas_object_smart_callback_add(bt, "clicked", my_gl_flush, gl);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
elm_box_pack_end(bx, bx3);
evas_object_show(bx3);
+ /* item_class_ref is needed for itc1. some items can be added in callbacks */
+ elm_genlist_item_class_ref(itc1);
+ elm_genlist_item_class_free(itc1);
evas_object_resize(win, 320, 320);
evas_object_show(win);
/*************/
static Elm_Genlist_Item_Class itc2;
-char *gl2_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+
+char *gl2_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
const Testitem *tit = data;
char buf[256];
snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
return strdup(buf);
}
-Evas_Object *gl2_icon_get(void *data, Evas_Object *obj, const char *part)
+
+Evas_Object *gl2_content_get(void *data, Evas_Object *obj, const char *part)
{
const Testitem *tit = data;
char buf[PATH_MAX];
if (!strcmp(part, "elm.swallow.icon"))
{
if (!(tit->mode & 0x3))
- snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
else if ((tit->mode & 0x3) == 1)
- snprintf(buf, sizeof(buf), "%s/images/logo.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
else if ((tit->mode & 0x3) == 2)
- snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", elm_app_data_dir_get());
else if ((tit->mode & 0x3) == 3)
- snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
elm_icon_file_set(ic, buf, NULL);
}
else if (!strcmp(part, "elm.swallow.end"))
{
if (!(tit->mode & 0x3))
- snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
else if ((tit->mode & 0x3) == 1)
- snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
else if ((tit->mode & 0x3) == 2)
- snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
else if ((tit->mode & 0x3) == 3)
- snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
elm_icon_file_set(ic, buf, NULL);
}
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
return ic;
}
+
Eina_Bool gl2_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
return EINA_FALSE;
}
-void gl2_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
-{
-}
static void
my_gl_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
elm_genlist_item_update(tit->item);
}
+static void
+my_gl_labels_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Testitem *tit = data;
+ tit->mode++;
+ elm_genlist_item_fields_update(tit->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
+}
+
+static void
+my_gl_contents_update(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Testitem *tit = data;
+ tit->mode++;
+ elm_genlist_item_fields_update(tit->item, "*", ELM_GENLIST_ITEM_FIELD_CONTENT);
+}
+
void
test_genlist3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
+ Evas_Object *win, *gl, *bx, *bx2, *bt;
static Testitem tit[3];
- win = elm_win_add(NULL, "genlist3", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist 3");
- elm_win_autodel_set(win, 1);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist3", "Genlist 3");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gl);
itc2.item_style = "default";
- itc2.func.label_get = gl2_label_get;
- itc2.func.icon_get = gl2_icon_get;
+ itc2.func.text_get = gl2_text_get;
+ itc2.func.content_get = gl2_content_get;
itc2.func.state_get = gl2_state_get;
- itc2.func.del = gl2_del;
+ itc2.func.del = NULL;
tit[0].mode = 0;
tit[0].item = elm_genlist_item_append(gl, &itc2,
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[1]");
+ elm_object_text_set(bt, "[1]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[2]");
- evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
+ elm_object_text_set(bt, "labels");
+ evas_object_smart_callback_add(bt, "clicked", my_gl_labels_update, &(tit[1]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
elm_box_pack_end(bx2, bt);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[3]");
- evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
+ elm_object_text_set(bt, "contents");
+ evas_object_smart_callback_add(bt, "clicked", my_gl_contents_update, &(tit[2]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
elm_box_pack_end(bx2, bt);
}
static Elm_Genlist_Item_Class itc3;
-char *gl3_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+
+char *gl3_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
const Testitem *tit = data;
char buf[256];
snprintf(buf, sizeof(buf), "Item mode %i", tit->mode);
return strdup(buf);
}
-Evas_Object *gl3_icon_get(void *data, Evas_Object *obj, const char *part)
+
+Evas_Object *gl3_content_get(void *data, Evas_Object *obj, const char *part)
{
const Testitem *tit = data;
if (!strcmp(part, "elm.swallow.icon"))
Evas_Object *lb;
lb = elm_label_add(obj);
- elm_label_line_wrap_set(lb, 1);
+ elm_label_line_wrap_set(lb, ELM_WRAP_CHAR);
elm_label_wrap_width_set(lb, 201);
- elm_label_label_set(lb, "ashj ascjscjh n asjkl hcjlh ls hzshnn zjh sh zxjcjsnd h dfw sdv edev efe fwefvv vsd cvs ws wf fvwf wd fwe f we wef we wfe rfwewef wfv wswf wefg sdfws w wsdcfwcf wsc vdv sdsd sdcd cv wsc sdcv wsc d sdcdcsd sdcdsc wdvd sdcsd wscxcv wssvd sd");
- evas_object_show(lb);
+ elm_object_text_set(lb, "ashj ascjscjh n asjkl hcjlh ls hzshnn zjh sh zxjcjsnd h dfw sdv edev efe fwefvv vsd cvs ws wf fvwf wd fwe f we wef we wfe rfwewef wfv wswf wefg sdfws w wsdcfwcf wsc vdv sdsd sdcd cv wsc sdcv wsc d sdcdcsd sdcdsc wdvd sdcsd wscxcv wssvd sd");
return lb;
}
else if (!strcmp(part, "elm.swallow.end"))
{
Evas_Object *ck;
ck = elm_check_add(obj);
- evas_object_propagate_events_set(ck, 0);
+ evas_object_propagate_events_set(ck, EINA_FALSE);
elm_check_state_set(ck, tit->onoff);
evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed, data);
- evas_object_show(ck);
return ck;
}
return NULL;
}
+
Eina_Bool gl3_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
return EINA_FALSE;
}
-void gl3_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
-{
-}
void
test_genlist4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
+ Evas_Object *win, *gl, *bx, *bx2, *bt;
static Testitem tit[3];
- win = elm_win_add(NULL, "genlist4", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist 4");
- elm_win_autodel_set(win, 1);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist4", "Genlist 4");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(bx);
gl = elm_genlist_add(win);
+ elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
elm_genlist_multi_select_set(gl, 1);
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gl);
itc3.item_style = "default";
- itc3.func.label_get = gl3_label_get;
- itc3.func.icon_get = gl3_icon_get;
+ itc3.func.text_get = gl3_text_get;
+ itc3.func.content_get = gl3_content_get;
itc3.func.state_get = gl3_state_get;
- itc3.func.del = gl3_del;
+ itc3.func.del = NULL;
tit[0].mode = 0;
tit[0].item = elm_genlist_item_append(gl, &itc3,
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[1]");
+ elm_object_text_set(bt, "[1]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[2]");
+ elm_object_text_set(bt, "[2]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[3]");
+ elm_object_text_set(bt, "[3]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
}
static Elm_Genlist_Item_Class itc5;
-char *gl5_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
+
+char *gl5_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
{
const Testitem *tit = data;
char buf[256];
}
return strdup(buf);
}
-Evas_Object *gl5_icon_get(void *data, Evas_Object *obj, const char *part)
+
+Evas_Object *gl5_content_get(void *data, Evas_Object *obj, const char *part)
{
const Testitem *tit = data;
char buf[PATH_MAX];
Evas_Object *ic;
elm_box_horizontal_set(bx, EINA_TRUE);
ic = elm_icon_add(obj);
- snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
elm_icon_file_set(ic, buf, NULL);
- elm_icon_scale_set(ic, 0, 0);
+ elm_icon_resizable_set(ic, 0, 0);
evas_object_show(ic);
elm_box_pack_end(bx, ic);
ic = elm_icon_add(obj);
elm_icon_file_set(ic, buf, NULL);
- elm_icon_scale_set(ic, 0, 0);
+ elm_icon_resizable_set(ic, 0, 0);
evas_object_show(ic);
elm_box_pack_end(bx, ic);
elm_box_horizontal_set(bx, EINA_TRUE);
{
Evas_Object *ck;
ck = elm_check_add(obj);
- evas_object_propagate_events_set(ck, 0);
+ evas_object_propagate_events_set(ck, EINA_FALSE);
elm_check_state_set(ck, tit->onoff);
evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed2, data);
evas_object_show(ck);
}
return NULL;
}
+
Eina_Bool gl5_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
return EINA_FALSE;
}
-void gl5_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
-{
-}
static void
item_drag_up(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
void
test_genlist5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
+ Evas_Object *win, *gl, *bx, *bx2, *bt;
static Testitem tit[3];
- win = elm_win_add(NULL, "genlist5", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist 5");
- elm_win_autodel_set(win, 1);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist5", "Genlist 5");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(bx);
gl = elm_genlist_add(win);
- elm_genlist_always_select_mode_set(gl, 1);
+ elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS);
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gl);
itc5.item_style = "double_label";
- itc5.func.label_get = gl5_label_get;
- itc5.func.icon_get = gl5_icon_get;
+ itc5.func.text_get = gl5_text_get;
+ itc5.func.content_get = gl5_content_get;
itc5.func.state_get = gl5_state_get;
- itc5.func.del = gl5_del;
+ itc5.func.del = NULL;
tit[0].mode = 0;
tit[0].item = elm_genlist_item_append(gl, &itc5,
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[1]");
+ elm_object_text_set(bt, "[1]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[2]");
+ elm_object_text_set(bt, "[2]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[3]");
+ elm_object_text_set(bt, "[3]");
evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
/*************/
-static Elm_Genlist_Item_Class itc4;
+static Elm_Genlist_Item_Class *itc4;
static void
gl4_sel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = (Elm_Genlist_Item *)event_info;
- int depth = 0;
-
- depth = elm_genlist_item_expanded_depth_get(it);
+ Elm_Object_Item *glit = event_info;
+ int depth = elm_genlist_item_expanded_depth_get(glit);
printf("expanded depth for selected item is %d\n", depth);
-
}
+
static void
gl4_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- Evas_Object *gl = elm_genlist_item_genlist_get(it);
- int val = (int)(long)elm_genlist_item_data_get(it);
+ Elm_Object_Item *glit = event_info;
+ Evas_Object *gl = elm_object_item_widget_get(glit);
+ int val = (int)(long) elm_object_item_data_get(glit);
val *= 10;
- elm_genlist_item_append(gl, &itc4,
- (void *)(long)(val + 1)/* item data */, it/* parent */,
- ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc4,
+ (void *)(long) (val + 1)/* item data */,
+ glit/* parent */, ELM_GENLIST_ITEM_NONE,
+ gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc4,
- (void *)(long)(val + 2)/* item data */, it/* parent */,
- ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc4,
+ (void *)(long) (val + 2)/* item data */,
+ glit/* parent */, ELM_GENLIST_ITEM_NONE,
+ gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc4,
- (void *)(long)(val + 3)/* item data */, it/* parent */,
- ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc4,
+ (void *)(long) (val + 3)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
}
static void
gl4_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- elm_genlist_item_subitems_clear(it);
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_subitems_clear(glit);
}
static void
gl4_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- elm_genlist_item_expanded_set(it, 1);
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_expanded_set(glit, EINA_TRUE);
}
+
static void
gl4_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- elm_genlist_item_expanded_set(it, 0);
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_expanded_set(glit, EINA_FALSE);
}
-char *gl4_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+char *gl4_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
char buf[256];
snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
return strdup(buf);
}
-Evas_Object *gl4_icon_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
+
+Evas_Object *gl4_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
{
char buf[PATH_MAX];
if (!strcmp(part, "elm.swallow.icon"))
{
Evas_Object *ic = elm_icon_add(obj);
- snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
elm_icon_file_set(ic, buf, NULL);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
evas_object_show(ic);
{
Evas_Object *ck;
ck = elm_check_add(obj);
+ evas_object_propagate_events_set(ck, EINA_FALSE);
evas_object_show(ck);
return ck;
}
return NULL;
}
+
Eina_Bool gl4_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
return EINA_FALSE;
}
+
void gl4_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
{
+ printf("item deleted.\n");
}
void
test_genlist6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
+ Evas_Object *win, *gl, *bx, *bx2, *bt;
- win = elm_win_add(NULL, "genlist-tree", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist Tree");
- elm_win_autodel_set(win, 1);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist-tree", "Genlist Tree");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gl);
- itc4.item_style = "default";
- itc4.func.label_get = gl4_label_get;
- itc4.func.icon_get = gl4_icon_get;
- itc4.func.state_get = gl4_state_get;
- itc4.func.del = gl4_del;
+ itc4 = elm_genlist_item_class_new();
+ itc4->item_style = "default";
+ itc4->func.text_get = gl4_text_get;
+ itc4->func.content_get = gl4_content_get;
+ itc4->func.state_get = gl4_state_get;
+ itc4->func.del = gl4_del;
- elm_genlist_item_append(gl, &itc4,
- (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc4,
+ (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc4,
- (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc4,
+ (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc4,
+ elm_genlist_item_append(gl, itc4,
(void *)3/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
NULL/* func data */);
-
+ elm_genlist_item_class_free(itc4);
evas_object_smart_callback_add(gl, "expand,request", gl4_exp_req, gl);
evas_object_smart_callback_add(gl, "contract,request", gl4_con_req, gl);
evas_object_smart_callback_add(gl, "expanded", gl4_exp, gl);
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[1]");
+ elm_object_text_set(bt, "[1]");
// evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[2]");
+ elm_object_text_set(bt, "[2]");
// evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt);
bt = elm_button_add(win);
- elm_button_label_set(bt, "[3]");
+ elm_object_text_set(bt, "[3]");
// evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2]));
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
struct genlist7_data
{
- Evas_Object *win, *pager;
+ Evas_Object *win, *naviframe;
};
static Elm_Genlist_Item_Class itc7;
+
static void
gl_sel7(void *data, Evas_Object *obj, void *event_info)
{
struct genlist7_data *info = data;
if (!info) return;
- elm_pager_content_pop(info->pager);
+ elm_naviframe_item_pop(info->naviframe);
}
static void
if ((!event_info) || (!data)) return;
box = elm_box_add(info->win);
- elm_box_homogenous_set(box, EINA_FALSE);
+ elm_box_homogeneous_set(box, EINA_FALSE);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
- entry = elm_scrolled_entry_add(info->win);
- elm_scrolled_entry_editable_set(entry, EINA_FALSE);
- elm_scrolled_entry_entry_set(entry, item_data);
+ entry = elm_entry_add(info->win);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_entry_editable_set(entry, EINA_FALSE);
+ elm_object_text_set(entry, item_data);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(entry);
button = elm_button_add(info->win);
- elm_button_label_set(button, "back");
+ elm_object_text_set(button, "back");
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0);
evas_object_smart_callback_add(button, "clicked", test_genlist7_back_cb,
elm_box_pack_start(box, entry);
elm_box_pack_end(box, button);
- elm_pager_content_push(info->pager, box);
+ elm_naviframe_item_simple_push(info->naviframe, box);
}
void
test_genlist7(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *pager;
+ Evas_Object *win, *gl, *naviframe;
static struct genlist7_data info;
static Testitem tit[3];
- win = elm_win_add(NULL, "genlist7", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist 7");
- elm_win_autodel_set(win, 1);
+ win = elm_win_util_standard_add("genlist7", "Genlist 7");
+ elm_win_autodel_set(win, EINA_TRUE);
info.win = win;
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
-
- pager = elm_pager_add(win);
- elm_win_resize_object_add(win, pager);
- evas_object_size_hint_weight_set(pager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(pager, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(pager);
- info.pager = pager;
+ naviframe = elm_naviframe_add(win);
+ elm_win_resize_object_add(win, naviframe);
+ evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(naviframe);
+ info.naviframe = naviframe;
gl = elm_genlist_add(win);
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_smart_callback_add(gl, "swipe", test_genlist7_swipe, &info);
evas_object_show(gl);
- elm_pager_content_push(pager, gl);
+ elm_naviframe_item_simple_push(naviframe, gl);
itc2.item_style = "default";
- itc2.func.label_get = gl2_label_get;
- itc2.func.icon_get = gl2_icon_get;
+ itc2.func.text_get = gl2_text_get;
+ itc2.func.content_get = gl2_content_get;
itc2.func.state_get = gl2_state_get;
- itc2.func.del = gl2_del;
+ itc2.func.del = NULL;
itc7.item_style = "double_label";
- itc7.func.label_get = gl5_label_get;
- itc7.func.icon_get = gl5_icon_get;
+ itc7.func.text_get = gl5_text_get;
+ itc7.func.content_get = gl5_content_get;
itc7.func.state_get = gl5_state_get;
- itc7.func.del = gl5_del;
+ itc7.func.del = NULL;
tit[0].mode = 0;
tit[0].item = elm_genlist_item_append(gl, &itc2,
/*************/
static Elm_Genlist_Item_Class itc_group;
-char *gl8_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+
+char *gl8_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{
char buf[256];
snprintf(buf, sizeof(buf), "Group Index # %i (Item # %i)", (int)((long)data / 10), (int)(long)data);
static void
_bt_show_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- elm_genlist_item_top_show(data);
- //elm_genlist_item_show(data);
- //elm_genlist_item_middle_show(data);
+ elm_genlist_item_show(data, ELM_GENLIST_ITEM_SCROLLTO_TOP);
}
+
static void
_bt_bring_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- elm_genlist_item_top_bring_in(data);
- //elm_genlist_item_bring_in(data);
- //elm_genlist_item_middle_bring_in(data);
+ elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_TOP);
}
void
test_genlist8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bt[8], *bx, *bx2, *bx3;
- Elm_Genlist_Item *gli = NULL, *git = NULL;
- int i, bt_count, bt_num;
+ Evas_Object *win, *gl, *bt[8], *bx, *bx2, *bx3;
+ Elm_Object_Item *gli = NULL, *git = NULL;
+ int i, bt_num;
- win = elm_win_add(NULL, "genlist-group", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist Group");
- elm_win_autodel_set(win, 1);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist-group", "Genlist Group");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_box_pack_end(bx, gl);
evas_object_show(gl);
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1 = elm_genlist_item_class_new();
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
itc_group.item_style = "group_index";
- itc_group.func.label_get = gl8_label_get;
- itc_group.func.icon_get = NULL;
+ itc_group.func.text_get = gl8_text_get;
+ itc_group.func.content_get = NULL;
itc_group.func.state_get = NULL;
- itc_group.func.del = gl_del;
+ itc_group.func.del = NULL;
bx2 = elm_box_add(win);
elm_box_horizontal_set(bx2, EINA_TRUE);
- elm_box_homogenous_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt_num = 0;
bt[bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Show 0");
+ elm_object_text_set(bt[bt_num], "Show 0");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx2, bt[bt_num]);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Show 26");
+ elm_object_text_set(bt[bt_num], "Show 26");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx2, bt[bt_num]);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Show 101");
+ elm_object_text_set(bt[bt_num], "Show 101");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx2, bt[bt_num]);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Show 480");
+ elm_object_text_set(bt[bt_num], "Show 480");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
bx3 = elm_box_add(win);
elm_box_horizontal_set(bx3, EINA_TRUE);
- elm_box_homogenous_set(bx3, EINA_TRUE);
+ elm_box_homogeneous_set(bx3, EINA_TRUE);
evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Bring top 0");
+ elm_object_text_set(bt[bt_num], "Bring top 0");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx3, bt[bt_num]);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Bring top 31");
+ elm_object_text_set(bt[bt_num], "Bring top 31");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx3, bt[bt_num]);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Bring top 239");
+ elm_object_text_set(bt[bt_num], "Bring top 239");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx3, bt[bt_num]);
bt[++bt_num] = elm_button_add(win);
- elm_button_label_set(bt[bt_num], "Bring top 477");
+ elm_object_text_set(bt[bt_num], "Bring top 477");
evas_object_size_hint_align_set(bt[bt_num], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(bt[bt_num], EVAS_HINT_EXPAND, 0.0);
evas_object_show(bt[bt_num]);
elm_box_pack_end(bx, bx3);
evas_object_show(bx3);
- bt_count = 0;
for (i = 0; i < 500; i++)
{
if (!(i % 10))
ELM_GENLIST_ITEM_GROUP,
gl_sel/* func */,
(void *)(long)(i * 10)/* func data */);
- elm_genlist_item_display_only_set(git, EINA_TRUE);
+ elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
else if (git)
{
- gli = elm_genlist_item_append(gl, &itc1,
+ gli = elm_genlist_item_append(gl, itc1,
(void *)(long)i/* item data */,
git/* parent */,
ELM_GENLIST_ITEM_NONE,
break;
}
}
+ elm_genlist_item_class_free(itc1);
evas_object_resize(win, 480, 800);
evas_object_show(win);
static void
gl9_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- Evas_Object *gl = elm_genlist_item_genlist_get(it);
- int val = (int)(long)elm_genlist_item_data_get(it);
+ Elm_Object_Item *glit = event_info;
+ Evas_Object *gl = elm_object_item_widget_get(glit);
+ int val = (int)(long) elm_object_item_data_get(glit);
val *= 10;
- elm_genlist_item_append(gl, &itc1,
- (void *)(long)(val + 1)/* item data */, it/* parent */,
+ elm_genlist_item_append(gl, itc1,
+ (void *)(long) (val + 1)/* item data */,
+ glit/* parent */,
ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc1,
- (void *)(long)(val + 2)/* item data */, it/* parent */,
+ elm_genlist_item_append(gl, itc1,
+ (void *)(long) (val + 2)/* item data */,
+ glit/* parent */,
ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc1,
- (void *)(long)(val + 3)/* item data */, it/* parent */,
- ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc1,
+ (void *)(long) (val + 3)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
}
+
static void
gl9_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- elm_genlist_item_subitems_clear(it);
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_subitems_clear(glit);
}
static void
gl9_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- elm_genlist_item_expanded_set(it, EINA_TRUE);
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_expanded_set(glit, EINA_TRUE);
}
+
static void
gl9_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
- Elm_Genlist_Item *it = event_info;
- elm_genlist_item_expanded_set(it, EINA_FALSE);
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_expanded_set(glit, EINA_FALSE);
}
void
test_genlist9(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *gl, *bx;
- Elm_Genlist_Item *git;
-
- win = elm_win_add(NULL, "genlist-group-tree", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist Group Tree");
- elm_win_autodel_set(win, 1);
+ Evas_Object *win, *gl, *bx;
+ Elm_Object_Item *git;
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist-group-tree", "Genlist Group Tree");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_box_pack_end(bx, gl);
evas_object_show(gl);
- itc1.item_style = "default";
- itc1.func.label_get = gl_label_get;
- itc1.func.icon_get = gl_icon_get;
- itc1.func.state_get = gl_state_get;
- itc1.func.del = gl_del;
+ itc1 = elm_genlist_item_class_new();
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
itc_group.item_style = "group_index";
- itc_group.func.label_get = gl8_label_get;
- itc_group.func.icon_get = NULL;
+ itc_group.func.text_get = gl8_text_get;
+ itc_group.func.content_get = NULL;
itc_group.func.state_get = NULL;
- itc_group.func.del = gl_del;
+ itc_group.func.del = NULL;
git = elm_genlist_item_append(gl, &itc_group,
(void *)0/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_GROUP, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_display_only_set(git, EINA_TRUE);
- elm_genlist_item_append(gl, &itc1,
- (void *)1/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ elm_genlist_item_append(gl, itc1,
+ (void *)1/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc1,
+ elm_genlist_item_append(gl, itc1,
(void *)2/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc1,
- (void *)3/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc1,
+ (void *)3/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
git = elm_genlist_item_append(gl, &itc_group,
(void *)4/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_GROUP, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_display_only_set(git, EINA_TRUE);
- elm_genlist_item_append(gl, &itc1,
- (void *)5/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ elm_genlist_item_append(gl, itc1,
+ (void *)5/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc1,
+ elm_genlist_item_append(gl, itc1,
(void *)6/* item data */, git/* parent */, ELM_GENLIST_ITEM_NONE, gl4_sel/* func */,
NULL/* func data */);
- elm_genlist_item_append(gl, &itc1,
- (void *)7/* item data */, git/* parent */, ELM_GENLIST_ITEM_SUBITEMS, gl4_sel/* func */,
+ elm_genlist_item_append(gl, itc1,
+ (void *)7/* item data */, git/* parent */, ELM_GENLIST_ITEM_TREE, gl4_sel/* func */,
NULL/* func data */);
+ elm_genlist_item_class_free(itc1);
evas_object_smart_callback_add(gl, "expand,request", gl9_exp_req, gl);
evas_object_smart_callback_add(gl, "contract,request", gl9_con_req, gl);
static Elm_Genlist_Item_Class itc10;
static char *mode_type[] = { "slide", "rotate" };
-char *gl10_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
+
+char *gl10_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
{
char buf[256];
if (!strcmp(part, "elm.text.mode"))
return strdup(buf);
}
-Evas_Object *gl10_icon_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
+Evas_Object *gl10_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
{
char buf[PATH_MAX];
Evas_Object *ic = elm_icon_add(obj);
if (!strcmp(part, "elm.swallow.end"))
- snprintf(buf, sizeof(buf), "%s/images/bubble.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/bubble.png", elm_app_data_dir_get());
else
- snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
elm_icon_file_set(ic, buf, NULL);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
return ic;
}
+
static void
_gl_sel10(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
if (!data) return;
int v = elm_radio_value_get(data);
if (v == 1)
- elm_genlist_item_mode_set(event_info, mode_type[v], EINA_TRUE);
+ elm_genlist_item_decorate_mode_set(event_info, mode_type[v], EINA_TRUE);
}
static void
if (!data) return;
int v = elm_radio_value_get(data);
if (v == 0)
- elm_genlist_item_mode_set(event_info, mode_type[v], EINA_TRUE);
+ elm_genlist_item_decorate_mode_set(event_info, mode_type[v], EINA_TRUE);
}
static void
if (!data) return;
int v = elm_radio_value_get(data);
if (v == 0)
- elm_genlist_item_mode_set(event_info, mode_type[v], EINA_FALSE);
+ elm_genlist_item_decorate_mode_set(event_info, mode_type[v], EINA_FALSE);
}
static void
fprintf(stderr, "drag\n");
if (!data) return;
int v = elm_radio_value_get(data);
- Elm_Genlist_Item *it = (Elm_Genlist_Item *)elm_genlist_mode_item_get(obj);
- if (it)
- elm_genlist_item_mode_set(it, mode_type[v], EINA_FALSE);
+ Elm_Object_Item *glit = (Elm_Object_Item *) elm_genlist_decorated_item_get(obj);
+ if (glit) elm_genlist_item_decorate_mode_set(glit, mode_type[v], EINA_FALSE);
}
void
test_genlist10(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *fr, *lb, *bx, *bx2, *bx3, *rd, *rdg, *gl;
+ Evas_Object *win, *fr, *bx, *bx2, *rd, *rdg, *gl;
int i;
- win = elm_win_add(NULL, "genlist10", ELM_WIN_BASIC);
- elm_win_title_set(win, "Genlist Mode");
- elm_win_autodel_set(win, 1);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(bg);
+ win = elm_win_util_standard_add("genlist-decorate-item-mode", "Genlist Decorate Item Mode");
+ elm_win_autodel_set(win, EINA_TRUE);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(bx);
fr = elm_frame_add(win);
- elm_frame_label_set(fr, "Mode Type");
+ elm_object_text_set(fr, "Decorate Mode Type");
elm_box_pack_end(bx, fr);
evas_object_show(fr);
bx2 = elm_box_add(win);
- elm_frame_content_set(fr, bx2);
+ elm_object_content_set(fr, bx2);
evas_object_show(bx2);
- lb = elm_label_add(win);
- elm_label_label_set(lb,
- "Sweep genlist items to the right.<br>"
- "Test this by changing Mode Type to Slide or Rotate.");
- elm_box_pack_end(bx2, lb);
- evas_object_show(lb);
-
- bx3 = elm_box_add(win);
- elm_box_horizontal_set(bx3, EINA_TRUE);
- elm_box_pack_end(bx2, bx3);
- evas_object_show(bx3);
-
rd = elm_radio_add(win);
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_radio_state_value_set(rd, 0);
- elm_radio_label_set(rd, "Slide ");
+ elm_object_text_set(rd, "Slide : Sweep genlist items to the right.");
evas_object_show(rd);
- elm_box_pack_end(bx3, rd);
+ elm_box_pack_end(bx2, rd);
rdg = rd;
rd = elm_radio_add(win);
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_radio_state_value_set(rd, 1);
- elm_radio_label_set(rd, "Rotate");
+ elm_object_text_set(rd, "Rotate : Click each item.");
elm_radio_group_add(rd, rdg);
evas_object_show(rd);
- elm_box_pack_end(bx3, rd);
+ elm_box_pack_end(bx2, rd);
gl = elm_genlist_add(win);
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(gl);
itc10.item_style = "default";
- itc10.func.label_get = gl10_label_get;
- itc10.func.icon_get = gl10_icon_get;
+ itc10.decorate_item_style = "mode";
+ itc10.func.text_get = gl10_text_get;
+ itc10.func.content_get = gl10_content_get;
itc10.func.state_get = gl_state_get;
- itc10.func.del = gl_del;
- itc10.mode_item_style = "mode";
+ itc10.func.del = NULL;
for (i = 0; i < 50; i++)
elm_genlist_item_append(gl,
&itc10,
- (void *)(1000 + i)/* item data */,
+ (void *)(long)(1000 + i)/* item data */,
NULL/* parent */,
ELM_GENLIST_ITEM_NONE/* flags */,
_gl_sel10/* func */,
evas_object_resize(win, 520, 520);
evas_object_show(win);
}
+
+/*************/
+
+static void
+_reorder_tg_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
+{
+ elm_genlist_reorder_mode_set(data, elm_check_state_get(obj));
+}
+
+/**
+ * gl_moved is called after an item was reordered.
+ * This is only called when reorder mode is enabled.
+ *
+ * @param data : the genlist object passed as data.
+ * @param obj : the genlist object.
+ * @param item : the moved item.
+ *
+ * the item(*item) had been moved
+ *
+ */
+static void gl_moved(Evas_Object *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Object_Item *item __UNUSED__)
+{
+ // if needed, add application logic.
+}
+
+/**
+ * gl_moved_after is called after an item was reordered.
+ * This is only called when reorder mode is enabled.
+ *
+ * @param data : the genlist object passed as data.
+ * @param obj : the genlist object.
+ * @param item : the moved item.
+ *
+ * the item(*item) had been moved after the given relative item(*rel_item) in list.
+ *
+ */
+static void gl_moved_after(Evas_Object *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Object_Item *item __UNUSED__)
+{
+ // if needed, add application logic.
+ Elm_Object_Item *it;
+ it = elm_genlist_item_prev_get(item);
+ printf("it=%p, prev_it=%p\n",item,it);
+}
+
+/**
+ * gl_moved_before is called after an item was reordered.
+ * This is only called when reorder mode is enabled.
+ *
+ * @param data : the genlist object passed as data.
+ * @param obj : the genlist object.
+ * @param item : the moved item.
+ *
+ * the item(*item) had been moved before the given relative item(*rel_item) in list.
+ *
+ */
+static void gl_moved_before(Evas_Object *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Object_Item *item __UNUSED__)
+{
+ // if needed, add application logic.
+ Elm_Object_Item *it;
+ it = elm_genlist_item_next_get(item);
+ printf("it=%p, next_it=%p\n",item,it);
+}
+
+void
+test_genlist11(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *win, *fr, *lb, *bx, *tg, *gl;
+ int i;
+
+ win = elm_win_util_standard_add("genlist-reorder-mode", "Genlist Reorder Mode");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ fr = elm_frame_add(win);
+
+ elm_object_text_set(fr, "Reorder Mode");
+ elm_box_pack_end(bx, fr);
+ evas_object_show(fr);
+
+ lb = elm_label_add(win);
+ elm_object_text_set(lb,
+ "Enable reorder mode if you want to move item.<br/>"
+ "Then long press and drag item.");
+ elm_object_content_set(fr, lb);
+ evas_object_show(lb);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(gl);
+
+ tg = elm_check_add(win);
+ elm_object_style_set(tg, "toggle");
+ elm_object_text_set(tg, "Reorder Mode:");
+ elm_check_state_set(tg, elm_config_mirrored_get());
+ evas_object_smart_callback_add(tg, "changed", _reorder_tg_changed_cb, gl);
+ elm_box_pack_end(bx, tg);
+ evas_object_show(tg);
+
+ itc1 = elm_genlist_item_class_new();
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
+ evas_object_smart_callback_add(gl, "moved", (Evas_Smart_Cb)gl_moved, gl);
+ evas_object_smart_callback_add(gl, "moved,after", (Evas_Smart_Cb)gl_moved_after, gl);
+ evas_object_smart_callback_add(gl, "moved,before", (Evas_Smart_Cb)gl_moved_before, gl);
+
+ for (i = 0; i < 50; i++)
+ elm_genlist_item_append(gl,
+ itc1,
+ (void *)(long)(1 + i)/* item data */,
+ NULL/* parent */,
+ ELM_GENLIST_ITEM_NONE/* flags */,
+ NULL/* func */,
+ NULL/* func data */);
+
+ elm_genlist_item_class_free(itc1);
+
+ elm_box_pack_end(bx, gl);
+
+ evas_object_resize(win, 400, 500);
+ evas_object_show(win);
+}
+
+char *gl12_text_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+{
+ return strdup("Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager. It covers uses from small mobile devices like phones all the way to powerful multi-core desktops (which are the primary development environment).");
+}
+
+void
+test_genlist12(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *win, *bx, *gl;
+ int i;
+
+ win = elm_win_util_standard_add("genlist-textblock", "Genlist Textblock");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ gl = elm_genlist_add(win);
+ elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_box_pack_end(bx, gl);
+ evas_object_show(gl);
+
+ itc1 = elm_genlist_item_class_new();
+ itc1->item_style = "message";
+ itc1->func.text_get = gl12_text_get;
+ itc1->func.content_get = gl_content_get;
+ itc1->func.state_get = gl_state_get;
+ itc1->func.del = NULL;
+
+ for (i = 0; i < 1000; i++)
+ {
+ elm_genlist_item_append(gl, itc1,
+ (void *)(long)i/* item data */,
+ NULL/* parent */,
+ ELM_GENLIST_ITEM_NONE,
+ gl_sel/* func */,
+ (void *)(long)(i * 10)/* func data */);
+ }
+ elm_genlist_item_class_free(itc1);
+
+ evas_object_resize(win, 400, 500);
+ evas_object_show(win);
+}
+
+static int
+gl13_cmp(const void *pa, const void *pb)
+{
+ const Elm_Object_Item *ia = pa, *ib = pb;
+ int a = (int)(long) elm_object_item_data_get(ia);
+ int b = (int)(long) elm_object_item_data_get(ib);
+ return a - b;
+}
+
+void
+test_genlist13(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Elm_Object_Item *pi[6];
+ Evas_Object *win, *bx, *gl; int i, base, idx[3] = {1, 10, 15};
+
+ win = elm_win_util_standard_add("genlist-tree-insert-sorted", "Genlist Tree, Insert Sorted");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(gl);
+
+ itc4 = elm_genlist_item_class_new();
+ itc4->item_style = "default";
+ itc4->func.text_get = gl4_text_get;
+ itc4->func.content_get = NULL;
+ itc4->func.state_get = NULL;
+ itc4->func.del = NULL;
+
+ /* mixed order to test insert sorted */
+
+ for (i = 0; i < 3; i++)
+ {
+ pi[i] = elm_genlist_item_sorted_insert
+ (gl, itc4, (void *)(long)idx[i]/* item data */, NULL/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl13_cmp/* cmp */,
+ NULL/* func */, NULL/* func data */);
+ }
+
+ for (i = 0, base = 100; i < 3; i++, base += 100)
+ {
+ int j;
+ for (j = 0; j < 3; j++)
+ {
+ elm_genlist_item_sorted_insert
+ (gl, itc4, (void *)(long)(idx[j] + base)/* item data */,
+ pi[i]/* parent */, ELM_GENLIST_ITEM_NONE,
+ gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
+ }
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ pi[i + 3] = elm_genlist_item_sorted_insert
+ (gl, itc4, (void *)(long)(idx[i] * 2)/* item data */, NULL/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl13_cmp/* cmp */, NULL/* func */,
+ NULL/* func data */);
+ }
+
+
+ for (i = 0, base = 10000; i < 3; i++, base += 10000)
+ {
+ int j;
+ for (j = 0; j < 3; j++)
+ {
+ elm_genlist_item_sorted_insert
+ (gl, itc4, (void *)(long)(idx[j] + base)/* item data */,
+ pi[i + 3]/* parent */, ELM_GENLIST_ITEM_NONE,
+ gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
+ }
+ }
+ elm_genlist_item_class_free(itc4);
+ elm_box_pack_end(bx, gl);
+ evas_object_show(bx);
+
+ evas_object_resize(win, 320, 320);
+ evas_object_show(win);
+}
+
+static void
+my_gl_insert_before_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *gl = data;
+ static int i = 1000;
+ Elm_Object_Item *gli_selected;
+
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = NULL;
+ itc1->func.state_get = NULL;
+ itc1->func.del = NULL;
+
+ gli_selected = elm_genlist_selected_item_get(gl);
+ if (!gli_selected)
+ {
+ printf("no item selected\n");
+ return;
+ }
+
+ elm_genlist_item_insert_before(gl, itc1,
+ (void *)(long)i/* item data */,
+ elm_genlist_item_parent_get(gli_selected),
+ gli_selected/* item before */,
+ ELM_GENLIST_ITEM_NONE,
+ NULL/* func */, NULL/* func data */);
+ i++;
+}
+
+static void
+my_gl_insert_after_rel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *gl = data;
+ static int i = 0;
+ Elm_Object_Item *gli_selected;
+
+ itc1->item_style = "default";
+ itc1->func.text_get = gl_text_get;
+ itc1->func.content_get = NULL;
+ itc1->func.state_get = NULL;
+ itc1->func.del = NULL;
+
+ gli_selected = elm_genlist_selected_item_get(gl);
+ if (!gli_selected)
+ {
+ printf("no item selected\n");
+ return;
+ }
+
+ elm_genlist_item_insert_after(gl, itc1,
+ (void *)(long)i/* item data */,
+ elm_genlist_item_parent_get(gli_selected),
+ gli_selected/* item after */,
+ ELM_GENLIST_ITEM_NONE,
+ NULL/* func */, NULL/* func data */);
+ i++;
+}
+
+void
+test_genlist14(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Elm_Object_Item *pi[6];
+ Evas_Object *win, *bx, *bx2, *bt, *gl;
+ int i, base;
+ /* index: 0, 1, 2, 3, 4, 5
+ * items: 1, 15, 11, 2, 33, 21
+ * final: 1, 2, 11, 15, 21, 33
+ */
+ const int idx[6] = {1, 15, 11, 2, 33, 21};
+ const int relative[6] = {
+ 0, /* item '1' - not used */
+ 0, /* item '15' - insert after pi[0], item '1' */
+ -1, /* item '11' - insert before pi[1], item '15' */
+ -2, /* item '2' - insert before pi[2], item '11' */
+ 1, /* item '33' - insert after pi[1], item '15' */
+ -4 /* item '21' - insert before pi[4], item '33' */
+ };
+
+ win = elm_win_util_standard_add("genlist-tree-insert-relative", "Genlist Tree, Insert Relative");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(gl);
+
+ itc4 = elm_genlist_item_class_new();
+ itc4->item_style = "default";
+ itc4->func.text_get = gl4_text_get;
+ itc4->func.content_get = NULL;
+ itc4->func.state_get = NULL;
+ itc4->func.del = NULL;
+
+ /* mixed order to test insert sorted */
+
+ // BUG1: should be able to insert before=NULL, prepend
+ // BUG2: should be able to insert after=NULL, append
+
+ pi[0] = elm_genlist_item_append
+ (gl, itc4, (void *)(long)idx[0]/* item data */,
+ NULL/* parent */,
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+
+ for (i = 1; i < 3; i++)
+ {
+ if (relative[i] < 0)
+ pi[i] = elm_genlist_item_insert_before
+ (gl, itc4, (void *)(long)idx[i]/* item data */,
+ NULL/* parent */, pi[-relative[i]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ else
+ pi[i] = elm_genlist_item_insert_after
+ (gl, itc4, (void *)(long)idx[i]/* item data */,
+ NULL/* parent */, pi[relative[i]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ Elm_Object_Item *sub_glit[6];
+ int j;
+
+ base = 1000 * (int)(long) elm_object_item_data_get(pi[i]);
+
+ sub_glit[0] = elm_genlist_item_append
+ (gl, itc4, (void *)(long) (idx[0] + base)/* item data */, pi[i]/* parent */,
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+
+ for (j = 1; j < 6; j++) {
+ if (relative[j] < 0)
+ sub_glit[j] = elm_genlist_item_insert_before
+ (gl, itc4, (void *)(long) (idx[j] + base)/* item data */,
+ pi[i]/* parent */, sub_glit[-relative[j]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ else
+ sub_glit[j] = elm_genlist_item_insert_after
+ (gl, itc4, (void *)(long) (idx[j] + base)/* item data */,
+ pi[i]/* parent */, sub_glit[relative[j]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ }
+ }
+
+ for (i = 3; i < 6; i++)
+ {
+ if (relative[i] < 0)
+ pi[i] = elm_genlist_item_insert_before
+ (gl, itc4, (void *)(long) idx[i]/* item data */,
+ NULL/* parent */, pi[-relative[i]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ else
+ pi[i] = elm_genlist_item_insert_after
+ (gl, itc4, (void *)(long) idx[i]/* item data */,
+ NULL/* parent */, pi[relative[i]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ }
+
+ for (i = 3; i < 6; i++)
+ {
+ Elm_Object_Item *sub_glit[6];
+ int j;
+
+ base = 1000 * (int)(long) elm_object_item_data_get(pi[i]);
+
+ sub_glit[0] = elm_genlist_item_append
+ (gl, itc4, (void *)(long) (idx[0] + base)/* item data */, pi[i]/* parent */,
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+
+ for (j = 1; j < 6; j++) {
+ if (relative[j] < 0)
+ sub_glit[j] = elm_genlist_item_insert_before
+ (gl, itc4, (void *)(long) (idx[j] + base)/* item data */,
+ pi[i]/* parent */, sub_glit[-relative[j]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ else
+ sub_glit[j] = elm_genlist_item_insert_after
+ (gl, itc4, (void *)(long) (idx[j] + base)/* item data */,
+ pi[i]/* parent */, sub_glit[relative[j]],
+ ELM_GENLIST_ITEM_TREE, NULL/* func */, NULL/* func data */);
+ }
+ }
+
+ elm_box_pack_end(bx, gl);
+ evas_object_show(bx);
+
+ bx2 = elm_box_add(win);
+ elm_box_horizontal_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
+ evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "+ before");
+ evas_object_smart_callback_add(bt, "clicked", my_gl_insert_before_rel, gl);
+ evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+ elm_box_pack_end(bx2, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "+ after");
+ evas_object_smart_callback_add(bt, "clicked", my_gl_insert_after_rel, gl);
+ evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+ elm_box_pack_end(bx2, bt);
+ evas_object_show(bt);
+
+ elm_box_pack_end(bx, bx2);
+ evas_object_show(bx2);
+
+ /* item_class_ref is needed for itc4. some items can be added in callbacks */
+ elm_genlist_item_class_ref(itc4);
+ elm_genlist_item_class_free(itc4);
+
+ evas_object_resize(win, 320, 320);
+ evas_object_show(win);
+}
+
+static void _edit_icon_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)data;
+ elm_object_item_del(item);
+}
+
+char *gl15_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+{
+ const Testitem *tit = data;
+ char buf[256];
+ snprintf(buf, sizeof(buf), "Item #%i", tit->mode);
+ return strdup(buf);
+}
+
+Evas_Object *gl15_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ Testitem *tit = data;
+ char buf[PATH_MAX];
+
+ // "edit_default" EDC layout is like below. each part is swallow part.
+ // the existing item is swllowed to elm.swallow.edit.content part.
+ // --------------------------------------------------------------------
+ // | elm.edit.icon.1 | elm.swallow.decorate.content | elm.edit.icon,2 |
+ // --------------------------------------------------------------------
+
+ if (!strcmp(part, "elm.swallow.end"))
+ {
+ Evas_Object *ic = elm_icon_add(obj);
+ snprintf(buf, sizeof(buf), "%s/images/bubble.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(ic, buf, NULL);
+ evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ return ic;
+ }
+ else if (!strcmp(part, "elm.edit.icon.1"))
+ {
+ Evas_Object *ck;
+ ck = elm_check_add(obj);
+ elm_check_state_pointer_set(ck, &tit->checked);
+ evas_object_propagate_events_set(ck, EINA_FALSE);
+ evas_object_show(ck);
+ return ck;
+ }
+ else if (!strcmp(part, "elm.edit.icon.2"))
+ {
+ Evas_Object *icn = elm_icon_add(obj);
+ snprintf(buf, sizeof(buf), "%s/images/icon_06.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(icn, buf, NULL);
+ evas_object_propagate_events_set(icn, EINA_FALSE);
+ evas_object_size_hint_aspect_set(icn, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ evas_object_smart_callback_add(icn, "clicked", _edit_icon_clicked_cb, (void *)tit->item);
+ return icn;
+ }
+ else return NULL;
+}
+
+static void
+gl15_sel(void *data, Evas_Object *obj, void *event_info __UNUSED__)
+{
+ Testitem *tit = data;
+ if (elm_genlist_decorate_mode_get(obj))
+ {
+ if (!tit->checked) tit->checked = EINA_TRUE;
+ else tit->checked = EINA_FALSE;
+ }
+ elm_genlist_item_update(tit->item);
+}
+
+static void
+gl15_deco_all_mode(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ elm_genlist_decorate_mode_set(data, EINA_TRUE);
+ elm_genlist_select_mode_set(data, ELM_OBJECT_SELECT_MODE_ALWAYS);
+}
+
+static void
+gl15_normal_mode(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ elm_genlist_decorate_mode_set(data, EINA_FALSE);
+ elm_genlist_select_mode_set(data, ELM_OBJECT_SELECT_MODE_DEFAULT);
+}
+
+void gl15_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
+{
+ printf("item deleted.\n");
+}
+
+static Elm_Genlist_Item_Class *itc15;
+void
+test_genlist15(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *win, *bx, *bx2, *bt, *gl;
+ int i;
+ static Testitem tit[100];
+
+ win = elm_win_util_standard_add("genlist-decorate-all-mode", "Genlist Decorate All Mode");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(gl);
+
+ itc15 = elm_genlist_item_class_new();
+ itc15->item_style = "default";
+ itc15->func.text_get = gl15_text_get;
+ itc15->func.content_get = gl15_content_get;
+ itc15->func.state_get = gl_state_get;
+ itc15->func.del = gl15_del;
+ itc15->decorate_all_item_style = "edit";
+
+ for (i = 0; i < 100; i++)
+ {
+ tit[i].mode = i;
+ tit[i].item = elm_genlist_item_append(gl, itc15,
+ &(tit[i])/* item data */,
+ NULL/* parent */,
+ ELM_GENLIST_ITEM_NONE/* flags */,
+ gl15_sel/* func */,
+ (void *)(long)&(tit[i])/* func data */);
+ }
+ elm_genlist_item_class_free(itc15);
+ elm_box_pack_end(bx, gl);
+ evas_object_show(bx);
+
+ bx2 = elm_box_add(win);
+ elm_box_horizontal_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
+ evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Decorate All mode");
+ evas_object_smart_callback_add(bt, "clicked", gl15_deco_all_mode, gl);
+ evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+ elm_box_pack_end(bx2, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Normal mode");
+ evas_object_smart_callback_add(bt, "clicked", gl15_normal_mode,gl);
+ evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+ elm_box_pack_end(bx2, bt);
+ evas_object_show(bt);
+
+ elm_box_pack_end(bx, bx2);
+ evas_object_show(bx2);
+
+ evas_object_resize(win, 520, 520);
+ evas_object_show(win);
+}
+
+static void _flip_icon_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ const Testitem *tit = data;
+
+ if (elm_genlist_item_flip_get(tit->item))
+ elm_genlist_item_flip_set(tit->item, EINA_FALSE);
+ else
+ elm_genlist_item_flip_set(tit->item, EINA_TRUE);
+}
+
+char *gl16_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+{
+ const Testitem *tit = data;
+ char buf[256];
+ snprintf(buf, sizeof(buf), "Item #%i", tit->mode);
+ return strdup(buf);
+}
+
+Evas_Object *gl16_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ Testitem *tit = data;
+ char buf[PATH_MAX];
+
+ if (!strcmp(part, "elm.text.flip"))
+ {
+ Evas_Object *btn = elm_button_add(obj);
+ elm_object_text_set(btn, "flipped content placement");
+ evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
+ evas_object_smart_callback_add(btn, "clicked", _flip_icon_clicked_cb, (void *)tit);
+ evas_object_show(btn);
+ return btn;
+ }
+ else if (!strcmp(part, "elm.edit.icon.1"))
+ {
+ Evas_Object *icn = elm_icon_add(obj);
+ snprintf(buf, sizeof(buf), "%s/images/icon_04.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(icn, buf, NULL);
+ evas_object_propagate_events_set(icn, EINA_FALSE);
+ evas_object_size_hint_aspect_set(icn, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ return icn;
+ }
+ else if (!strcmp(part, "elm.edit.icon.2"))
+ {
+ Evas_Object *icn = elm_icon_add(obj);
+ snprintf(buf, sizeof(buf), "%s/images/icon_09.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(icn, buf, NULL);
+ evas_object_propagate_events_set(icn, EINA_FALSE);
+ evas_object_size_hint_aspect_set(icn, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ evas_object_smart_callback_add(icn, "clicked", _flip_icon_clicked_cb, (void *)tit);
+ return icn;
+ }
+ else return NULL;
+}
+
+void
+test_genlist16(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *win, *bx, *gl;
+ int i;
+ static Testitem tit[100];
+
+ win = elm_win_util_standard_add("genlist-flip-mode", "Genlist Flip Mode");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(gl);
+
+ /* note: flip mode can be used with/without edit mode */
+ elm_genlist_decorate_mode_set(gl, EINA_TRUE);
+ elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+ itc15 = elm_genlist_item_class_new();
+ itc15->item_style = "default";
+ itc15->func.text_get = gl16_text_get;
+ itc15->func.content_get = gl16_content_get;
+ itc15->func.state_get = gl_state_get;
+ itc15->func.del = NULL;
+ itc15->decorate_all_item_style = "edit";
+
+ for (i = 0; i < 100; i++)
+ {
+ tit[i].mode = i;
+ tit[i].item = elm_genlist_item_append(gl, itc15,
+ &(tit[i])/* item data */,
+ NULL/* parent */,
+ ELM_GENLIST_ITEM_NONE/* flags */,
+ gl_sel/* func */,
+ (void *)(long)&(tit[i])/* func data */);
+ }
+ elm_genlist_item_class_free(itc15);
+ elm_box_pack_end(bx, gl);
+ evas_object_show(bx);
+
+ evas_object_resize(win, 520, 520);
+ evas_object_show(win);
+}
+
+static Elm_Genlist_Item_Class itc17;
+
+static void
+gl17_sel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Elm_Object_Item *glit = event_info;
+ int depth = elm_genlist_item_expanded_depth_get(glit);
+ printf("expanded depth for selected item is %d\n", depth);
+}
+
+static void
+gl17_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Elm_Object_Item *glit = event_info;
+ Evas_Object *gl = elm_object_item_widget_get(glit);
+ int val = (int)(long) elm_object_item_data_get(glit);
+ val *= 10;
+ elm_genlist_item_append(gl, &itc17,
+ (void *)(long) (val + 1)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)(long) (val + 2)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)(long) (val + 3)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)(long) (val + 4)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)(long) (val + 5)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)(long) (val + 6)/* item data */,
+ glit/* parent */,
+ ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+}
+
+static void
+gl17_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_subitems_clear(glit);
+}
+
+static void
+gl17_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_expanded_set(glit, EINA_TRUE);
+}
+
+static void
+gl17_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Elm_Object_Item *glit = event_info;
+ elm_genlist_item_expanded_set(glit, EINA_FALSE);
+}
+
+char *gl17_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+{
+ char buf[256];
+ snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
+ return strdup(buf);
+}
+
+Evas_Object *gl17_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
+{
+ char buf[PATH_MAX];
+ if (!strcmp(part, "elm.swallow.icon"))
+ {
+ Evas_Object *ic = elm_icon_add(obj);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
+ elm_icon_file_set(ic, buf, NULL);
+ evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ evas_object_show(ic);
+ return ic;
+ }
+ else if (!strcmp(part, "elm.swallow.end"))
+ {
+ Evas_Object *ck;
+ ck = elm_check_add(obj);
+ evas_object_propagate_events_set(ck, EINA_FALSE);
+ evas_object_show(ck);
+ return ck;
+ }
+ return NULL;
+}
+
+Eina_Bool gl17_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
+{
+ return EINA_FALSE;
+}
+
+void gl17_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
+{
+ printf("item deleted.\n");
+}
+
+static void
+gl17_enabled_set(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ elm_genlist_tree_effect_enabled_set(data, EINA_TRUE);
+}
+
+static void
+gl17_disabled_set(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ elm_genlist_tree_effect_enabled_set(data, EINA_FALSE);
+}
+
+void
+test_genlist17(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *win, *gl, *bx, *bx2, *bt;
+
+ win = elm_win_util_standard_add("genlist17", "Genlist Tree Effect");
+ elm_win_autodel_set(win, EINA_TRUE);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bx);
+ evas_object_show(bx);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(gl);
+
+ elm_genlist_tree_effect_enabled_set(gl,EINA_TRUE);
+
+ itc17.item_style = "tree_effect";
+ itc17.func.text_get = gl17_text_get;
+ itc17.func.content_get = gl17_content_get;
+ itc17.func.state_get = gl17_state_get;
+ itc17.func.del = gl17_del;
+
+ elm_genlist_item_append(gl, &itc17,
+ (void *)1/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)2/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+ elm_genlist_item_append(gl, &itc17,
+ (void *)3/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_TREE, gl17_sel/* func */,
+ NULL/* func data */);
+
+ evas_object_smart_callback_add(gl, "expand,request", gl17_exp_req, gl);
+ evas_object_smart_callback_add(gl, "contract,request", gl17_con_req, gl);
+ evas_object_smart_callback_add(gl, "expanded", gl17_exp, gl);
+ evas_object_smart_callback_add(gl, "contracted", gl17_con, gl);
+
+ elm_box_pack_end(bx, gl);
+ evas_object_show(bx);
+
+ bx2 = elm_box_add(win);
+ elm_box_horizontal_set(bx2, EINA_TRUE);
+ elm_box_homogeneous_set(bx2, EINA_TRUE);
+ evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Enable");
+ evas_object_smart_callback_add(bt, "clicked", gl17_enabled_set, gl);
+ evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+ elm_box_pack_end(bx2, bt);
+ evas_object_show(bt);
+
+ bt = elm_button_add(win);
+ elm_object_text_set(bt, "Disable");
+ evas_object_smart_callback_add(bt, "clicked", gl17_disabled_set, gl);
+ evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+ elm_box_pack_end(bx2, bt);
+ evas_object_show(bt);
+
+ elm_box_pack_end(bx, bx2);
+ evas_object_show(bx2);
+
+ evas_object_resize(win, 320, 320);
+ evas_object_show(win);
+}
#endif