jayji pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9622146c3d5ae6cc8f7810136f569575c17c4ec0

commit 9622146c3d5ae6cc8f7810136f569575c17c4ec0
Author: Jean Guyomarc'h <[email protected]>
Date:   Sun Jul 3 12:00:33 2016 +0200

    elementary: add test for edje external combobox
---
 data/elementary/objects/test_external.edc | 36 +++++++++++++++
 src/bin/elementary/test.c                 |  2 +
 src/bin/elementary/test_external.c        | 75 +++++++++++++++++++++++++++++++
 3 files changed, 113 insertions(+)

diff --git a/data/elementary/objects/test_external.edc 
b/data/elementary/objects/test_external.edc
index 27802f4..3a77ef0 100644
--- a/data/elementary/objects/test_external.edc
+++ b/data/elementary/objects/test_external.edc
@@ -1177,4 +1177,40 @@ embryo script and from C code.";
 
       }
    }
+
+   group { name: "external/combobox";
+      parts {
+         COMMON_EXTERNAL_UNDER
+         part { name: "combobox"; type: EXTERNAL;
+            source: "elm/combobox";
+            clip_to: "clip";
+            description { state: "default" 0.0;
+               rel2.relative: 1.0 0.0;
+               align: 0.5 0.0;
+               params {
+                  string: "guide" "Widgets";
+               }
+            }
+         }
+         part { name: "info"; type: TEXT;
+            clip_to: "clip";
+            description { state: "default" 0.;
+               rel1 {
+                  to: "combobox";
+                  relative: 0.0 1.0;
+               }
+               text {
+                  text: "";
+                  font: "Sans";
+                  size: 24;
+                  align: 0.5 1.0;
+               }
+            }
+         }
+         COMMON_EXTERNAL_OVER
+      }
+      programs {
+         COMMON_EXTERNAL_PROGRAM
+      }
+   }
 }
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c
index f40de25..b884129 100644
--- a/src/bin/elementary/test.c
+++ b/src/bin/elementary/test.c
@@ -264,6 +264,7 @@ void test_external_scroller(void *data, Evas_Object *obj, 
void *event_info);
 void test_external_pbar(void *data, Evas_Object *obj, void *event_info);
 void test_external_video(void *data, Evas_Object *obj, void *event_info);
 void test_external_icon(void *data, Evas_Object *obj, void *event_info);
+void test_external_combobox(void *data, Evas_Object *obj, void *event_info);
 void test_config(void *data, Evas_Object *obj, void *event_info);
 void test_video(void *data, Evas_Object *obj, void *event_info);
 void test_eio(void *data, Evas_Object *obj, void *event_info);
@@ -680,6 +681,7 @@ add_tests:
    ADD_TEST(NULL, "Edje External", "ExtSlider", test_external_slider);
    ADD_TEST(NULL, "Edje External", "ExtVideo", test_external_video);
    ADD_TEST(NULL, "Edje External", "ExtIcon", test_external_icon);
+   ADD_TEST(NULL, "Edje External", "ExtCombobox", test_external_combobox);
 
    //------------------------------//
    ADD_TEST(NULL, "Toolbars", "Toolbar", test_toolbar);
diff --git a/src/bin/elementary/test_external.c 
b/src/bin/elementary/test_external.c
index 902458c..cbd0c07 100644
--- a/src/bin/elementary/test_external.c
+++ b/src/bin/elementary/test_external.c
@@ -202,3 +202,78 @@ test_external_icon(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *e
    evas_object_resize(win, 320, 400);
    evas_object_show(win);
 }
+
+static char *
+text_get_cb(void        *data,
+            Evas_Object *obj  EINA_UNUSED,
+            const char  *part EINA_UNUSED)
+{
+   return strdup(data);
+}
+
+static void
+action_cb(void        *data,
+          Evas_Object *obj  EINA_UNUSED,
+          void        *info)
+{
+   Evas_Object *const lay = data;
+   Elm_Object_Item *const item = info;
+
+   elm_layout_text_set(lay, "info", elm_object_item_data_get(item));
+}
+
+static void
+_cb_pressed_cb(void        *data EINA_UNUSED,
+               Evas_Object *obj,
+               void        *info)
+{
+   const char *txt;
+
+   txt = elm_object_item_text_get(info);
+   elm_object_text_set(obj, txt);
+   elm_combobox_hover_end(obj);
+   elm_entry_cursor_end_set(obj);
+}
+
+void
+test_external_combobox(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, 
void *event_info EINA_UNUSED)
+{
+   Evas_Object *win, *ly, *cb, *edj;
+   char buf[PATH_MAX];
+   Elm_Genlist_Item_Class *itc;
+   const char *info[] = {
+      "Label", "Button", "Combobox", "Icon", "Scroller", "Layout",
+      "Naviframe", "Bubble"
+   };
+   const unsigned int size = EINA_C_ARRAY_LENGTH(info);
+   unsigned int i;
+
+   win = elm_win_util_standard_add("ext_combobox", "Edje External Combobox");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   ly = elm_layout_add(win);
+   snprintf(buf, sizeof(buf), "%s/objects/test_external.edj", 
elm_app_data_dir_get());
+   elm_layout_file_set(ly, buf, "external/combobox");
+   evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, ly);
+   evas_object_show(ly);
+
+   itc = elm_genlist_item_class_new();
+   itc->item_style = "default";
+   itc->func.text_get = text_get_cb;
+
+   edj = elm_layout_edje_get(ly);
+   cb = edje_object_part_external_object_get(edj, "combobox");
+   evas_object_smart_callback_add(cb, "item,pressed", _cb_pressed_cb, NULL);
+
+   for (i = 0; i < size; i++)
+     {
+        elm_genlist_item_append(cb, itc, info[i], NULL,
+                                ELM_GENLIST_ITEM_NONE, action_cb, ly);
+     }
+
+   elm_genlist_item_class_free(itc);
+
+   evas_object_resize(win, 320, 400);
+   evas_object_show(win);
+}

-- 


Reply via email to