From: shilpa singh Date: Fri, 8 Oct 2010 13:23:44 +0000 (+0900) Subject: [svn 51733]test_launcher.c X-Git-Tag: origin~49 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9b9eee0caad30fea5ed026702b8152ec96f7bba4;p=framework%2Fuifw%2Felementary.git [svn 51733]test_launcher.c --- diff --git a/src/bin/test_launcher.c b/src/bin/test_launcher.c index d184dc2..2dacfeb 100644 --- a/src/bin/test_launcher.c +++ b/src/bin/test_launcher.c @@ -59,22 +59,140 @@ close_cb(void *data, Evas_Object *obj, void *event_info) evas_object_del(data); } +static Eina_Bool +tim_cb(void *data) +{ + Evas_Object *tb, *sc, *mb; + Eina_List *list, *l; + + printf("timeout!\n"); + evas_object_data_del(data, "timer"); + tb = evas_object_data_get(data, "tb"); + sc = evas_object_data_get(data, "sc"); + mb = evas_object_data_get(data, "mb"); + elm_object_scroll_freeze_push(sc); + evas_object_data_set(data, "dragging", (void *)(1)); + evas_object_color_set(data, 255, 255, 255, 255); + list = (Eina_List *)evas_object_data_get + (elm_object_top_widget_get(data), "mbs"); + EINA_LIST_FOREACH(list, l, mb) + evas_object_color_set(mb, 128, 128, 128, 128); + elm_table_unpack(tb, data); + return EINA_FALSE; +} + +static void +ic_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Ecore_Timer *tim; + + tim = evas_object_data_get(obj, "timer"); + if (tim) + { + printf("nmotim\n"); + evas_object_data_del(obj, "timer"); + ecore_timer_del(tim); + } +} + static void ic_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { + Evas_Event_Mouse_Down *ev = event_info; + Ecore_Timer *tim; + Evas_Coord x, y, w, h; + evas_object_color_set(data, 128, 0, 0, 128); + + tim = evas_object_data_get(obj, "timer"); + if (tim) evas_object_data_del(obj, "timer"); + tim = ecore_timer_add(1.0, tim_cb, obj); + evas_object_data_set(obj, "timer", tim); + + evas_object_geometry_get(data, &x, &y, &w, &h); + evas_object_data_set(obj, "x", (void *)(ev->canvas.x)); + evas_object_data_set(obj, "y", (void *)(ev->canvas.y)); + evas_object_data_set(obj, "px", (void *)(x)); + evas_object_data_set(obj, "py", (void *)(y)); + + if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK) + { + printf("double click %p\n", obj); + } } static void ic_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { + Evas_Event_Mouse_Up *ev = event_info; + Ecore_Timer *tim; + + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; evas_object_color_set(data, 255, 255, 255, 255); + tim = evas_object_data_get(obj, "timer"); + if (tim) + { + printf("nmotim2\n"); + evas_object_data_del(obj, "timer"); + ecore_timer_del(tim); + } + if (evas_object_data_get(obj, "dragging")) + { + Evas_Object *tb, *sc, *mb; + Eina_List *list, *l; + int tbx, tby; + + evas_object_data_del(obj, "dragging"); + tb = evas_object_data_get(obj, "tb"); + sc = evas_object_data_get(obj, "sc"); + mb = evas_object_data_get(data, "mb"); + elm_object_scroll_freeze_pop(sc); + tbx = (int)evas_object_data_get(obj, "tbx"); + tby = (int)evas_object_data_get(obj, "tby"); + elm_table_pack(tb, obj, tbx, tby, 1, 1); + list = (Eina_List *)evas_object_data_get + (elm_object_top_widget_get(obj), "mbs"); + EINA_LIST_FOREACH(list, l, mb) + evas_object_color_set(mb, 255, 255, 255, 255); + } +} + +static void +ic_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Move *ev = event_info; + if (evas_object_data_get(obj, "dragging")) + { + Evas_Coord x, y, px, py; + + x = (Evas_Coord)evas_object_data_get(obj, "x"); + y = (Evas_Coord)evas_object_data_get(obj, "y"); + px = (Evas_Coord)evas_object_data_get(obj, "px"); + py = (Evas_Coord)evas_object_data_get(obj, "py"); + evas_object_move(obj, + px + ev->cur.canvas.x - x, + py + ev->cur.canvas.y - y); + } + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) + { + Ecore_Timer *tim; + + tim = evas_object_data_get(obj, "timer"); + if (tim) + { + printf("nmotim3\n"); + evas_object_data_del(obj, "timer"); + ecore_timer_del(tim); + } + evas_object_color_set(data, 255, 255, 255, 255); + return; + } } void test_launcher(void *data, Evas_Object *obj, void *event_info) { - Evas_Object *win, *bg, *sc, *tb, *pad, *bt, *ic, *lb, *tb2, *mb, *ck, *bx, *rc; + Evas_Object *win, *bg, *sc, *tb, *pad, *bt, *ic, *lb, *tb2, *mb, *ck, *bx, *bx2; int i, j, k, n, m; char buf[PATH_MAX]; const char *names[] = @@ -101,6 +219,12 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) elm_box_homogenous_set(bx, 1); elm_box_horizontal_set(bx, 1); + sc = elm_scroller_add(win); + elm_scroller_bounce_set(sc, 1, 0); + elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL); + n = 0; m = 0; for (k = 0 ; k < 8; k++) { @@ -132,6 +256,10 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_table_pack(tb, pad, 6, 1, 1, 10); + mb = elm_mapbuf_add(win); + elm_mapbuf_content_set(mb, tb); + evas_object_show(tb); + for (j = 0; j < 5; j++) { for (i = 0; i < 5; i++) @@ -154,26 +282,24 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) elm_table_pack(tb, lb, 1 + i, 1 + (j * 2) + 1, 1, 1); evas_object_show(lb); - rc = evas_object_rectangle_add(evas_object_evas_get(win)); - evas_object_color_set(rc, 0, 0, 0, 0); - evas_object_size_hint_weight_set(rc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(rc, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_table_pack(tb, rc, 1 + i, 1 + (j * 2), 1, 2); - evas_object_show(rc); + evas_object_event_callback_add(ic, EVAS_CALLBACK_DEL, ic_del_cb, ic); - evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_DOWN, ic_down_cb, lb); - evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_UP, ic_up_cb, lb); + evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_DOWN, ic_down_cb, ic); + evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_UP, ic_up_cb, ic); + evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_MOVE, ic_move_cb, ic); - evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_DOWN, ic_down_cb, ic); - evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_UP, ic_up_cb, ic); + evas_object_data_set(ic, "lb", lb); + evas_object_data_set(ic, "tb", tb); + evas_object_data_set(ic, "sc", sc); + evas_object_data_set(ic, "bx", bx); + evas_object_data_set(ic, "mb", mb); + evas_object_data_set(ic, "tbx", (void *)(1 + i)); + evas_object_data_set(ic, "tby", (void *)(1 + (j * 2))); n++; if (n > 23) n = 0; m++; if (m > 15) m = 0; } } - mb = elm_mapbuf_add(win); - elm_mapbuf_content_set(mb, tb); - evas_object_show(tb); elm_box_pack_end(bx, mb); evas_object_show(mb); @@ -184,11 +310,11 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) // fixme: free mbs evas_object_data_set(win, "mbs", mbs); - sc = elm_scroller_add(win); - elm_scroller_bounce_set(sc, 1, 0); - elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(win, sc); + bx2 = elm_box_add(win); + evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_box_horizontal_set(bx2, 0); + elm_win_resize_object_add(win, bx2); + evas_object_show(bx2); elm_scroller_content_set(sc, bx); evas_object_show(bx); @@ -197,8 +323,11 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) evas_object_show(sc); tb2 = elm_table_add(win); - evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(win, tb2); + evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_fill_set(tb2, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx2, tb2); + + elm_box_pack_end(bx2, sc); ck = elm_check_add(win); elm_check_label_set(ck, "Map");