containing ui setup steps in the profiling again.
[platform/upstream/expedite.git] / src / bin / ui.c
old mode 100755 (executable)
new mode 100644 (file)
index efd1d60..621c4de
@@ -12,7 +12,6 @@ static double t_start = 0.0;
 static double t_loop = 0.0;
 static int    f_start = 0;
 static int    f_loop = 0;
-static char   data_dir[4096];
 
 int async_render = 0;
 Eina_List *menu = NULL;
@@ -22,7 +21,6 @@ static Evas_Object *o_wallpaper = NULL;
 static Evas_Object *o_title = NULL;
 static Evas_Object *o_byline = NULL;
 static Evas_Object *o_menu_logo = NULL;
-static Evas_Object *o_menu_icon = NULL;
 static Evas_Object *o_menu_icon_sel = NULL;
 static Evas_Object *o_menu_icon_sel2 = NULL;
 static Evas_Object *o_menu_text_sel = NULL;
@@ -34,7 +32,7 @@ static double       menu_anim_sel = 0.0;
 
 static double       p_fps = 0.0;
 
-static void (*key_func) (char *key) = NULL;
+static void (*key_func) (const char *key) = NULL;
 static void (*loop_func) (double t, int f) = NULL;
 
 double weights[] =
@@ -153,7 +151,7 @@ double weights[] =
    5.000, // test 91
    1.000, // test 92 (line)
    10.000, // test 93 Image Blend Many Smooth Down Scaled
-   
+
    20.000, // MASK
    20.000, // MASK 2
    20.000, // MASK 3
@@ -220,15 +218,14 @@ static int test_item = -1;
 static void
 _ui_menu_show(Eina_Bool visibility)
 {
-   eo_do(o_menu_logo, efl_gfx_visible_set(visibility));
-   eo_do(o_menu_title, efl_gfx_visible_set(visibility));
-   eo_do(o_menu_icon, efl_gfx_visible_set(visibility));
-   eo_do(o_menu_icon_sel, efl_gfx_visible_set(visibility));
+   efl_gfx_entity_visible_set(o_menu_logo, visibility);
+   efl_gfx_entity_visible_set(o_menu_title, visibility);
+   efl_gfx_entity_visible_set(o_menu_icon_sel, visibility);
    /* FIXME: ask if it's ok o_menu_icon_sel2 == NULL */
-   eo_do(o_menu_icon_sel2, efl_gfx_visible_set(visibility));
-   eo_do(o_menu_text_sel, efl_gfx_visible_set(visibility));
-   eo_do(o_title, efl_gfx_visible_set(visibility));
-   eo_do(o_byline, efl_gfx_visible_set(visibility));
+   efl_gfx_entity_visible_set(o_menu_icon_sel2, visibility);
+   efl_gfx_entity_visible_set(o_menu_text_sel, visibility);
+   efl_gfx_entity_visible_set(o_title, visibility);
+   efl_gfx_entity_visible_set(o_byline, visibility);
 }
 
 static void
@@ -244,112 +241,122 @@ _ui_select(void)
         Menu_Item *mi;
 
         mi = l->data;
-        eo_do(mi->o_icon, efl_gfx_visible_set(EINA_FALSE));
+        efl_gfx_entity_visible_set(mi->o_icon, EINA_FALSE);
         if (i == menu_sel)
           func = mi->func;
      }
-   eo_do(o_title, efl_gfx_visible_set(EINA_FALSE));
-   eo_do(o_byline, efl_gfx_visible_set(EINA_FALSE));
+   efl_gfx_entity_visible_set(o_title, EINA_FALSE);
+   efl_gfx_entity_visible_set(o_byline, EINA_FALSE);
 
    menu_active = 0;
    if (func) func();
 }
 
-static Eina_Bool
-_ui_key(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
-        const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
+static void
+_ui_key(void *data EINA_UNUSED, const Efl_Event *event)
 {
-   Evas_Event_Key_Down *ev = event_info;
+   Efl_Input_Key *ev = event->info;
+   const char *keyname = efl_input_key_name_get(ev);
+
+   if (!keyname) return;
 
    if (key_func)
      {
-        key_func(ev->keyname);
-        return EINA_TRUE;
+        key_func(keyname);
+        return;
      }
 
-   if ((!strcmp(ev->keyname, "Escape")) ||
-       (!strcmp(ev->keyname, "q")) ||
-       (!strcmp(ev->keyname, "Q")))
+   if ((!strcmp(keyname, "Escape")) ||
+       (!strcmp(keyname, "q")) ||
+       (!strcmp(keyname, "Q")))
      {
         _ui_exit();
+        return;
      }
+
    if (menu_active)
      {
-        if (!strcmp(ev->keyname, "Left")) menu_sel++;
-        if (!strcmp(ev->keyname, "Right")) menu_sel--;
+        if (!strcmp(keyname, "Left")) menu_sel++;
+        else if (!strcmp(keyname, "Right")) menu_sel--;
+        else if (!strcmp(keyname, "Up")) menu_sel++;
+        else if (!strcmp(keyname, "Down")) menu_sel--;
+        else if (!strcmp(keyname, "Home")) menu_sel = eina_list_count(menu) - 1;
+        else if (!strcmp(keyname, "End")) menu_sel = 0;
+        else if (!strcmp(keyname, "Next")) menu_sel -= 10;
+        else if (!strcmp(keyname, "Prior")) menu_sel += 10;
         if (menu_sel < 0) menu_sel = 0;
         else if ((unsigned int)menu_sel >= eina_list_count(menu)) menu_sel = eina_list_count(menu) - 1;
         menu_anim_sel = menu_sel;
-        if (!strcmp(ev->keyname, "Return")) _ui_select();
+        if (!strcmp(keyname, "Return")) _ui_select();
      }
-
-   return EINA_TRUE;
 }
 
-static Evas_Coord down_x, down_y;
+static Eina_Position2D down;
 static int down_menu_sel = 0;
 
-static Eina_Bool
-_ui_mouse_down(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
-               const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
+//FIXME: efl_input_pointer_button_get() doesn't work!
+static Eina_Bool mdown = EINA_FALSE;
+
+static void
+_ui_mouse_down(void *data EINA_UNUSED, const Efl_Event *event)
 {
-   Evas_Event_Mouse_Down *ev = event_info;
+   Efl_Input_Pointer *ev = event->info;
 
-   if (ev->button != 1) return EINA_TRUE;
+   if (efl_input_pointer_button_get(ev) != 1) return;
    if (menu_active)
      {
-        down_x = ev->canvas.x;
-        down_y = ev->canvas.y;
+        down = efl_input_pointer_position_get(ev);
         down_menu_sel = menu_sel;
+        mdown = EINA_TRUE;
      }
-
-   return EINA_TRUE;
 }
 
-static Eina_Bool
-_ui_mouse_up(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
-             const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
+static void
+_ui_mouse_up(void *data EINA_UNUSED, const Efl_Event *event)
 {
-   Evas_Event_Mouse_Up *ev = event_info;
+   Efl_Input_Pointer *ev = event->info;
 
-   if (ev->button != 1) return EINA_TRUE;
+   if (efl_input_pointer_button_get(ev) != 1) return;
    if (menu_active)
      {
-        Evas_Coord dx, dy;
+        Evas_Coord dx, dy, x, y;
 
-        dx = ev->canvas.x - down_x;
-        dy = ev->canvas.y - down_y;
+        exp_input_pointer_pos_get(ev, &x, &y);
+        dx = x - down.x;
+        dy = y - down.y;
         if ((((dx * dx) + (dy * dy)) < (20 * 20)) &&
             (menu_sel == down_menu_sel))
           _ui_select();
+        mdown = EINA_FALSE;
      }
    else
      {
         evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
         evas_event_feed_key_up(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
      }
-
-   return EINA_TRUE;
 }
 
-static Eina_Bool
-_ui_mouse_move(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
-               const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
+static void
+_ui_mouse_move(void *data EINA_UNUSED, const Efl_Event *event)
 {
-   Evas_Event_Mouse_Move *ev = event_info;
+   Efl_Input_Pointer *ev = event->info;
+
+   /* FIXME: This mdown should be replace with the original call
+      if (efl_input_pointer_button_get(ev) != 1) return; */
+   if (!mdown) return;
 
-   if (ev->buttons != 1) return EINA_TRUE;
    if (menu_active)
      {
-        menu_sel = down_menu_sel + ((ev->cur.canvas.x - down_x) / 25);
+        Evas_Coord x;
+
+        exp_input_pointer_pos_get(ev, &x, NULL);
+        menu_sel = down_menu_sel + ((x - down.x) / 25);
         /* scroll */
         if (menu_sel < 0) menu_sel = 0;
         else if ((unsigned int)menu_sel >= eina_list_count(menu))
           menu_sel = eina_list_count(menu) - 1;
         menu_anim_sel = menu_sel;
      }
-
-   return EINA_TRUE;
 }
 
 static void
@@ -360,25 +367,25 @@ _ui_menu_item_full_add(Eina_Bool test,
    Menu_Item *mi;
 
    mi = malloc(sizeof(Menu_Item));
-   mi->o_icon = eo_add(EVAS_IMAGE_CLASS, evas);
-   eo_do(mi->o_icon, efl_file_set(build_path(icon), NULL),
-         efl_gfx_size_set(32, 32),
-         efl_gfx_fill_set(0, 0, 32, 32));
+   mi->o_icon = efl_add(EFL_CANVAS_IMAGE_CLASS, evas);
+   efl_file_simple_load(mi->o_icon, build_path(icon), NULL);
+   efl_gfx_entity_size_set(mi->o_icon, EINA_SIZE2D(32, 32));
+   efl_gfx_fill_set(mi->o_icon, EINA_RECT(0, 0, 32, 32));
    mi->test = test;
    mi->icon = strdup(icon);
    mi->text = strdup(text);
    mi->func = func;
    menu = eina_list_append(menu, mi);
-   eo_do(o_menu_icon_sel2, efl_gfx_stack_raise());
+   efl_gfx_stack_raise_to_top(o_menu_icon_sel2);
 }
 
 #define _ui_menu_item_add(Icon, Text, Func) _ui_menu_item_full_add(EINA_TRUE, Icon, Text, Func)
 
-EO_CALLBACKS_ARRAY_DEFINE(ui_callbacks,
-                          { EVAS_OBJECT_EVENT_KEY_DOWN, _ui_key },
-                          { EVAS_OBJECT_EVENT_MOUSE_DOWN, _ui_mouse_down },
-                          { EVAS_OBJECT_EVENT_MOUSE_UP, _ui_mouse_up },
-                          { EVAS_OBJECT_EVENT_MOUSE_MOVE, _ui_mouse_move });
+EFL_CALLBACKS_ARRAY_DEFINE(ui_callbacks,
+                           { EFL_EVENT_KEY_DOWN, _ui_key },
+                           { EFL_EVENT_POINTER_DOWN, _ui_mouse_down },
+                           { EFL_EVENT_POINTER_UP, _ui_mouse_up },
+                           { EFL_EVENT_POINTER_MOVE, _ui_mouse_move });
 
 void
 ui_setup(unsigned int ui_w, unsigned int ui_h)
@@ -389,91 +396,102 @@ ui_setup(unsigned int ui_w, unsigned int ui_h)
    win_w = ui_w;
    win_h = ui_h;
 
-   o = eo_add(EVAS_RECTANGLE_CLASS, evas);
-   eo_do(o, efl_gfx_position_set(0, 0),
-         efl_gfx_size_set(win_w, win_h),
-         efl_gfx_color_set(0, 0, 0, 0),
-         efl_gfx_stack_layer_set(1000),
-         evas_obj_focus_set(1),
-         efl_gfx_visible_set(EINA_TRUE),
-         eo_event_callback_array_add(ui_callbacks(), NULL));
+   o = efl_add(EFL_CANVAS_RECTANGLE_CLASS, evas);
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(0, 0));
+   efl_gfx_entity_size_set(o, EINA_SIZE2D(win_w, win_h));
+   efl_gfx_color_set(o, 0, 0, 0, 0);
+   efl_gfx_stack_layer_set(o, 1000);
+   evas_object_focus_set(o, 1);
+   efl_gfx_entity_visible_set(o, EINA_TRUE);
+   efl_event_callback_array_add(o, ui_callbacks(), NULL);
    o_bg = o;
 
-   o = eo_add(EVAS_RECTANGLE_CLASS, evas);
-   eo_do(o, efl_gfx_position_set(0, 0),
-         efl_gfx_size_set(win_w, win_h),
-         efl_gfx_color_set(255, 255, 255, 255),
-         efl_gfx_stack_layer_set(-99),
-         efl_gfx_visible_set(EINA_TRUE));
+   o = efl_add(EFL_CANVAS_RECTANGLE_CLASS, evas);
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(0, 0));
+   efl_gfx_entity_size_set(o, EINA_SIZE2D(win_w, win_h));
+   efl_gfx_color_set(o, 255, 255, 255, 255);
+   efl_gfx_stack_layer_set(o, -99);
+   efl_gfx_entity_visible_set(o, EINA_TRUE);
    o_wallpaper = o;
 
-   o = eo_add(EVAS_TEXT_CLASS, evas);
-   eo_do(o, efl_text_properties_font_set("Vera-Bold", 10),
-         efl_text_set("EXPEDITE"),
-         efl_gfx_stack_layer_set(100),
-         efl_gfx_color_set(0, 0, 0, 100),
-         evas_obj_pass_events_set(1),
-         efl_gfx_size_get(&w, &h));
+   o = evas_object_text_add(evas);
+#if 0
+   efl_text_font_family_set(o, "Vera-Bold");
+   efl_text_font_size_set(o, 10);
+   efl_text_set(o, "EXPEDITE");
+#else
+   evas_object_text_font_set(o, "Vera-Bold", 10);
+   evas_object_text_text_set(o, "EXPEDITE");
+#endif
+   efl_gfx_stack_layer_set(o, 100);
+   efl_gfx_color_set(o, 0, 0, 0, 100);
+   evas_object_pass_events_set(o, 1);
+   exp_size_get(o, &w, &h);
    x = (win_w - w) / 2;
    y = 0;
-   eo_do(o, efl_gfx_position_set(x, y),
-         efl_gfx_visible_set(EINA_TRUE));
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
+   efl_gfx_entity_visible_set(o, EINA_TRUE);
    o_title = o;
 
-   o = eo_add(EVAS_TEXT_CLASS, evas);
-   eo_do(o, efl_text_properties_font_set("Vera", 9),
-         efl_text_set("LEFT/RIGHT - select, ENTER - select, ESCAPE - exit."),
-         efl_gfx_stack_layer_set(100),
-         efl_gfx_color_set(0, 0, 0, 60),
-         evas_obj_pass_events_set(1),
-         efl_gfx_size_get(&w, NULL));
+   o = evas_object_text_add(evas);
+#if 0
+   efl_text_font_family_set(o, "Vera");
+   efl_text_font_size_set(o, 9);
+   efl_text_set(o, "LEFT/RIGHT - select, ENTER - select, ESCAPE - exit.");
+#else
+   evas_object_text_font_set(o, "Vera", 9);
+   evas_object_text_text_set(o, "LEFT/RIGHT - select, ENTER - select, ESCAPE - exit.");
+#endif
+   efl_gfx_stack_layer_set(o, 100);
+   efl_gfx_color_set(o, 0, 0, 0, 60);
+   evas_object_pass_events_set(o, 1);
+   exp_size_get(o, &w, NULL);
    x = (win_w - w) / 2;
    y = h + 2;
-   eo_do(o, efl_gfx_position_set(x, y),
-         efl_gfx_visible_set(EINA_TRUE));
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
+   efl_gfx_entity_visible_set(o, EINA_TRUE);
    o_byline = o;
 
-   o = eo_add(EVAS_IMAGE_CLASS, evas);
-   eo_do(o, efl_gfx_position_set((win_w - 120) / 2, ((win_h - 160) / 2)),
-         efl_file_set(build_path("e-logo.png"), NULL),
-         efl_gfx_fill_set(0, 0, 120, 160),
-         efl_gfx_size_set(120, 160),
-         efl_gfx_stack_layer_set(-98),
-         efl_gfx_color_set(255, 255, 255, 255),
-         efl_gfx_visible_set(EINA_TRUE));
+   o = efl_add(EFL_CANVAS_IMAGE_CLASS, evas);
+   efl_gfx_entity_position_set(o, EINA_POSITION2D((win_w - 120) / 2, ((win_h - 160) / 2)));
+   efl_file_simple_load(o, build_path("e-logo.png"), NULL);
+   efl_gfx_fill_set(o, EINA_RECT(0, 0, 120, 160));
+   efl_gfx_entity_size_set(o, EINA_SIZE2D(120, 160));
+   efl_gfx_stack_layer_set(o, -98);
+   efl_gfx_color_set(o, 255, 255, 255, 255);
+   efl_gfx_entity_visible_set(o, EINA_TRUE);
    o_menu_logo = o;
 
-   o = eo_add(EVAS_IMAGE_CLASS, evas);
-   eo_do(o, efl_gfx_position_set(win_w - 128, - 128),
-         efl_gfx_fill_set(0, 0, 256, 256),
-         efl_gfx_size_set(256, 256),
-         efl_gfx_visible_set(EINA_TRUE));
-   o_menu_icon = o;
-
-   o = eo_add(EVAS_IMAGE_CLASS, evas);
-   eo_do(o, efl_gfx_position_set(0, 0),
-         efl_file_set(build_path("icon_sel.png"), NULL),
-         efl_gfx_size_set(48, 48),
-         efl_gfx_fill_set(0, 0, 48, 48));
+   o = efl_add(EFL_CANVAS_IMAGE_CLASS, evas);
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(0, 0));
+   efl_file_simple_load(o, build_path("icon_sel.png"), NULL);
+   efl_gfx_entity_size_set(o, EINA_SIZE2D(48, 48));
+   efl_gfx_fill_set(o, EINA_RECT(0, 0, 48, 48));
    o_menu_icon_sel = o;
 
-   o = eo_add(EVAS_IMAGE_CLASS, evas);
-   eo_do(o, efl_gfx_position_set(0, 0),
-         efl_file_set(build_path("text_sel.png"), NULL),
-         efl_gfx_size_set(96, 32),
-         efl_gfx_fill_set(0, 0, 96, 32),
-         evas_obj_image_border_set(7, 7, 7, 7));
+   o = efl_add(EFL_CANVAS_IMAGE_CLASS, evas);
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(0, 0));
+   efl_file_simple_load(o, build_path("text_sel.png"), NULL);
+   efl_gfx_entity_size_set(o, EINA_SIZE2D(96, 32));
+   efl_gfx_fill_set(o, EINA_RECT(0, 0, 96, 32));
+   efl_gfx_image_border_insets_set(o, 7, 7, 7, 7);
    o_menu_text_sel = o;
 
-   o = eo_add(EVAS_TEXT_CLASS, evas);
-   eo_do(o, efl_text_properties_font_set("Vera", 10),
-         efl_text_set(""),
-         efl_gfx_color_set(0, 0, 0, 100),
-         evas_obj_pass_events_set(1),
-         efl_gfx_size_get(&w, &h));
+   o = evas_object_text_add(evas);
+#if 0
+   efl_text_font_family_set(o, "Vera");
+   efl_text_font_size_set(o, 10);
+   efl_text_set(o, "");
+#else
+   evas_object_text_font_set(o, "Vera", 10);
+   evas_object_text_text_set(o, "");
+#endif
+   efl_gfx_color_set(o, 0, 0, 0, 100);
+   evas_object_pass_events_set(o, 1);
+   exp_size_get(o, &w, &h);
    x = (win_w - w) / 2;
    y = (win_h - h) / 2;
-   eo_do(o, efl_gfx_position_set(x, y));
+   efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
    o_menu_title = o;
 
    _ui_menu_item_full_add(EINA_FALSE, "e.png", "About", about_start);
@@ -489,6 +507,16 @@ ui_setup(unsigned int ui_w, unsigned int ui_h)
    sync();
    sync();
 #endif
+   
+   printf("\n#####Test Start#####\n"
+          "profile: %s\n"
+          "window size: %i, %i\n"
+          "loop count: %i\n"
+          "engine: %s\n",
+          profile,
+          win_w, win_h,
+          loops,
+          choosen_engine);
 
    menu_active = 1;
 }
@@ -516,8 +544,8 @@ ui_loop(void *data EINA_UNUSED)
    static double pt = 0.0;
    double t, t2;
 
-   eo_do(o_bg, efl_gfx_size_set(win_w, win_h));
-   eo_do(o_wallpaper, efl_gfx_size_set(win_w, win_h));
+   efl_gfx_entity_size_set(o_bg, EINA_SIZE2D(win_w, win_h));
+   efl_gfx_entity_size_set(o_wallpaper, EINA_SIZE2D(win_w, win_h));
 
    if (loop_func)
      {
@@ -566,66 +594,64 @@ ui_loop(void *data EINA_UNUSED)
         tr = tt;
         EINA_LIST_FOREACH(menu, l, mi)
           {
-             char buf[4096];
              Evas_Coord x, y, w, h, tw, th;
              Evas_Coord len;
              double a;
              Evas_Object *o;
 
              o = mi->o_icon;
-             eo_do(o_menu_logo, efl_gfx_size_get(&w, &h));
+             exp_size_get(o_menu_logo, &w, &h);
              len = ((w * 3) + 10) / 4;
-             eo_do(o, efl_gfx_size_get(&w, &h));
+             exp_size_get(o, &w, &h);
              x = (win_w / 2)
                 + (sin((menu_anim - (double)i) * 0.33) * len)
                 - (w / 2);
              y = (win_h / 2)
                 + (cos((menu_anim - (double)i) * 0.33) * len)
                 - (h / 2);
-             eo_do(o, efl_gfx_position_set(x, y));
+             efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
              a = menu_anim - (double)i;
              if (a < 0) a = -a;
              a = 255 - (30 * a);
-             eo_do(o, efl_gfx_color_set(a, a, a, a),
-                   efl_gfx_visible_set(EINA_TRUE));
+             if (a < 0) a = 0;
+             if (a > 255) a = 255;
+             efl_gfx_color_set(o, a, a, a, a);
+             efl_gfx_entity_visible_set(o, EINA_TRUE);
 
              if (i == menu_sel)
                {
                   a = menu_anim - (double)i;
                   if (a < 0) a = -a;
                   a = 255 - (255 * a);
+                  if (a < 0) a = 0;
+                  if (a > 255) a = 255;
 
                   o = o_menu_icon_sel;
-                  eo_do(o, efl_gfx_position_set(x - ((48 - w) / 2), y - ((48 - h) / 2)),
-                        efl_gfx_color_set(a, a, a, a));
+                  efl_gfx_entity_position_set(o, EINA_POSITION2D(x - ((48 - w) / 2), y - ((48 - h) / 2)));
+                  efl_gfx_color_set(o, a, a, a, a);
 
                   o = o_menu_title;
-                  eo_do(o, efl_gfx_color_set(a, a, a, a),
-                        efl_text_set(mi->text),
-                        efl_gfx_size_get(&tw, &th));
+                  efl_gfx_color_set(o, a, a, a, a);
+                  efl_text_set(o, mi->text);
+                  exp_size_get(o, &tw, &th);
                   x = (win_w - tw) / 2;
                   y = (win_h / 2) + len + 48;
-                  eo_do(o, efl_gfx_position_set(x, y));
+                  efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
 
                   o = o_menu_text_sel;
                   w = tw + 24;
                   h = 28;
                   x = x - 12;
                   y = y + ((th - h) / 2);
-                  eo_do(o, efl_gfx_position_set(x, y),
-                        efl_gfx_size_set(w, h),
-                        efl_gfx_fill_set(0, 0, w, h),
-                        efl_gfx_color_set(a, a, a, a));
-
-                  o = o_menu_icon;
-                  snprintf(buf, 4096, "%s%s", data_dir, mi->icon);
-                  eo_do(o, efl_file_set(buf, NULL),
-                        efl_gfx_color_set(a / 2, a / 2, a / 2, a / 2));
+                  efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
+                  efl_gfx_entity_size_set(o, EINA_SIZE2D(w, h));
+                  efl_gfx_fill_set(o, EINA_RECT(0, 0, w, h));
+                  efl_gfx_color_set(o, a, a, a, a);
                }
              i++;
           }
-        eo_do(o_menu_logo, efl_gfx_position_set((win_w - 120) / 2, ((win_h - 160) / 2)),
-              efl_gfx_visible_set(EINA_TRUE));
+        efl_gfx_entity_position_set(o_menu_logo, EINA_POSITION2D((win_w - 120) / 2, ((win_h - 160) / 2)));
+        efl_gfx_entity_visible_set(o_menu_logo, EINA_TRUE);
         _ui_menu_show(EINA_TRUE);
      }
    else
@@ -638,10 +664,10 @@ ui_loop(void *data EINA_UNUSED)
 void
 ui_menu(void)
 {
-   eo_do(o_title, efl_gfx_visible_set(EINA_TRUE));
-   eo_do(o_byline, efl_gfx_visible_set(EINA_TRUE),
-         efl_text_set
-         ("LEFT/RIGHT - select, ENTER - select, ESCAPE - exit."));
+   efl_gfx_entity_visible_set(o_title, EINA_TRUE);
+   efl_gfx_entity_visible_set(o_byline, EINA_TRUE);
+   efl_text_set
+         (o_byline, "LEFT/RIGHT - select, ENTER - select, ESCAPE - exit.");
    menu_active = 1;
    key_func = NULL;
    loop_func = NULL;
@@ -650,7 +676,7 @@ ui_menu(void)
 }
 
 void
-ui_func_set(void (*kfunc) (char *key), void (*lfunc) (double t, int f))
+ui_func_set(void (*kfunc) (const char *key), void (*lfunc) (double t, int f), void (*lsetup) (void))
 {
    key_func = kfunc;
    loop_func = lfunc;
@@ -658,11 +684,13 @@ ui_func_set(void (*kfunc) (char *key), void (*lfunc) (double t, int f))
    f_loop = f_start = 0;
    ui_fps(0.0);
 
-   // TIZEN_ONLY : 2016-02-18
-   // @FIXME - current custom tick does't work in tizen_3.0 device
-   //ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
-   //ecore_animator_custom_tick();
+   lsetup();
 
+   if (tick)
+     {
+        ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
+        ecore_animator_custom_tick();
+     }
 }
 
 void
@@ -702,7 +730,7 @@ ui_all(void)
 void
 ui_fps(double fps)
 {
-   p_fps = fps;
+   p_fps += fps;
    if (fps > 0.0 && test_item > 0)
      {
         Menu_Item *mi;
@@ -772,7 +800,7 @@ ui_fps(double fps)
                       "loop count: %i\n"
                       "engine: %s\n"
                       "full screen: %i\n",
-                      (fps / t_count),
+                      (p_fps / t_count),
                       (wfps / avgw) / t_count,
                       t_count,
                       datestr,