#include <Elementary.h>
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
#ifndef ELM_LIB_QUICKLAUNCH
/* Hint:
}
static void
+scroll_top(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Top edge!\n");
+}
+
+static void
+scroll_bottom(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Bottom edge!\n");
+}
+
+static void
+scroll_left(void *data, Evas_Object *obj, void *event_info)
+{
+ printf("Left edge!\n");
+}
+
+static void
+scroll_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ printf("Right edge!\n");
+}
+
+static void
item_drag(void *data, Evas_Object *obj, void *event_info)
{
printf("drag\n");
test_genlist5(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *win, *bg, *gl, *bx, *bx2, *bt;
- static Testitem tit[3];
+ static Testitem tit[5];
win = elm_win_add(NULL, "genlist-5", ELM_WIN_BASIC);
elm_win_title_set(win, "Genlist 5");
tit[2].item = elm_genlist_item_append(gl, &itc5,
&(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
NULL/* func data */);
+ tit[3].mode = 3;
+ tit[3].item = elm_genlist_item_append(gl, &itc5,
+ &(tit[3])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
+ NULL/* func data */);
+ tit[4].mode = 4;
+ tit[4].item = elm_genlist_item_append(gl, &itc5,
+ &(tit[4])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */,
+ NULL/* func data */);
elm_box_pack_end(bx, gl);
evas_object_show(bx);
evas_object_smart_callback_add(gl, "drag,start,down", item_drag_down, NULL);
evas_object_smart_callback_add(gl, "drag,start,left", item_drag_left, NULL);
evas_object_smart_callback_add(gl, "drag,start,right", item_drag_right, NULL);
+ evas_object_smart_callback_add(gl, "scroll,edge,top", scroll_top, NULL);
+ evas_object_smart_callback_add(gl, "scroll,edge,bottom", scroll_bottom, NULL);
+ evas_object_smart_callback_add(gl, "scroll,edge,left", scroll_left, NULL);
+ evas_object_smart_callback_add(gl, "scroll,edge,right", scroll_right, NULL);
evas_object_smart_callback_add(gl, "drag", item_drag, NULL);
evas_object_smart_callback_add(gl, "drag,stop", item_drag_stop, NULL);
evas_object_smart_callback_add(gl, "longpressed", item_longpress, NULL);
* longpressed - This is called when the item is pressed for a certain amount
* of time. By default it's 1 second.
*
+ * scroll,edge,top - This is called when the genlist is scrolled until the top
+ * edge.
+ *
+ * scroll,edge,bottom - This is called when the genlist is scrolled until the
+ * bottom edge.
+ *
+ * scroll,edge,left - This is called when the genlist is scrolled until the
+ * left edge.
+ *
+ * scroll,edge,right - This is called when the genlist is scrolled until the
+ * right edge.
+ *
* Genlist has a fairly large API, mostly because it's relatively complex,
* trying to be both expansive, powerful and efficient. First we will begin
* an overview o the theory behind genlist.
elm_smart_scroller_freeze_set(wd->scr, 0);
}
+static void
+_scroll_edge_left(void *data, Evas_Object *scr __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *obj = data;
+ evas_object_smart_callback_call(obj, "scroll,edge,left", NULL);
+}
+
+static void
+_scroll_edge_right(void *data, Evas_Object *scr __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *obj = data;
+ evas_object_smart_callback_call(obj, "scroll,edge,right", NULL);
+}
+
+static void
+_scroll_edge_top(void *data, Evas_Object *scr __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *obj = data;
+ evas_object_smart_callback_call(obj, "scroll,edge,top", NULL);
+}
+
+static void
+_scroll_edge_bottom(void *data, Evas_Object *scr __UNUSED__, void *event_info __UNUSED__)
+{
+ Evas_Object *obj = data;
+ evas_object_smart_callback_call(obj, "scroll,edge,bottom", NULL);
+}
+
/**
* Add a new Genlist object
*
elm_smart_scroller_bounce_allow_set(wd->scr, EINA_FALSE, EINA_TRUE);
+ evas_object_smart_callback_add(wd->scr, "edge,left", _scroll_edge_left, obj);
+ evas_object_smart_callback_add(wd->scr, "edge,right", _scroll_edge_right, obj);
+ evas_object_smart_callback_add(wd->scr, "edge,top", _scroll_edge_top, obj);
+ evas_object_smart_callback_add(wd->scr, "edge,bottom", _scroll_edge_bottom, obj);
+
wd->obj = obj;
wd->mode = ELM_LIST_SCROLL;
wd->max_items_per_block = 32;