summaryrefslogtreecommitdiff
path: root/legacy/elementary/src/bin/test_index.c
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2009-09-10 09:25:11 +0000
committerCarsten Haitzler <raster@rasterman.com>2009-09-10 09:25:11 +0000
commit51e1595773368c38534659bb6ef826d0cc50d8c6 (patch)
tree823a0220d1451fd6a3915758a98040f5da0f4c42 /legacy/elementary/src/bin/test_index.c
parentdb10fed1be6ac755813c067d6b794a607fad7562 (diff)
downloadefl-51e1595773368c38534659bb6ef826d0cc50d8c6.tar.gz
index all happy worky fun fun!
SVN revision: 42379
Diffstat (limited to 'legacy/elementary/src/bin/test_index.c')
-rw-r--r--legacy/elementary/src/bin/test_index.c45
1 files changed, 37 insertions, 8 deletions
diff --git a/legacy/elementary/src/bin/test_index.c b/legacy/elementary/src/bin/test_index.c
index 8fe91dc684..a3913d511d 100644
--- a/legacy/elementary/src/bin/test_index.c
+++ b/legacy/elementary/src/bin/test_index.c
@@ -4,11 +4,34 @@ static Elm_Genlist_Item_Class itci;
char *gli_label_get(const void *data, Evas_Object *obj, const char *part)
{
char buf[256];
- snprintf(buf, sizeof(buf), "Item # %i", (int)data);
+ int j = (int)data;
+ snprintf(buf, sizeof(buf), "%c%c",
+ 'A' + ((j >> 4) & 0xf),
+ 'a' + ((j ) & 0xf)
+ );
return strdup(buf);
}
-void gli_del(const void *data, Evas_Object *obj)
+
+void
+index_changed2(void *data, Evas_Object *obj, void *event_info)
+{
+ // called on a change but delayed in case multiple changes happen in a
+ // short timespan
+ elm_genlist_item_top_bring_in(event_info);
+}
+
+void
+index_changed(void *data, Evas_Object *obj, void *event_info)
{
+ // this is calld on every change, no matter how often
+ // elm_genlist_item_bring_in(event_info);
+}
+
+void
+index_selected(void *data, Evas_Object *obj, void *event_info)
+{
+ // called on final select
+ elm_genlist_item_top_bring_in(event_info);
}
void
@@ -16,7 +39,7 @@ test_index(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *win, *bg, *gl, *id;
Elm_Genlist_Item *it;
- int i;
+ int i, j;
win = elm_win_add(NULL, "index", ELM_WIN_BASIC);
elm_win_title_set(win, "Index");
@@ -35,28 +58,34 @@ test_index(void *data, Evas_Object *obj, void *event_info)
id = elm_index_add(win);
evas_object_size_hint_weight_set(id, 1.0, 1.0);
elm_win_resize_object_add(win, id);
+
evas_object_show(id);
itci.item_style = "default";
itci.func.label_get = gli_label_get;
itci.func.icon_get = NULL;
itci.func.state_get = NULL;
- itci.func.del = gli_del;
+ itci.func.del = NULL;
+ j = 0;
for (i = 0; i < 100; i++)
{
- // FIXME: add to index too
it = elm_genlist_item_append(gl, &itci,
- i/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, NULL/* func */,
+ (void *)j/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, NULL/* func */,
NULL/* func data */);
- if ((i % 10) == 0)
+ if ((j & 0xf) == 0)
{
char buf[32];
- snprintf(buf, sizeof(buf), "%i", i / 10);
+ snprintf(buf, sizeof(buf), "%c", 'A' + ((j >> 4) & 0xf));
elm_index_item_append(id, buf, it);
}
+ j += 2;
}
+ evas_object_smart_callback_add(id, "delay,changed", index_changed2, NULL);
+ evas_object_smart_callback_add(id, "changed", index_changed, NULL);
+ evas_object_smart_callback_add(id, "selected", index_selected, NULL);
+ elm_index_item_go(id, 0);
evas_object_resize(win, 320, 480);
evas_object_show(win);