diff options
Diffstat (limited to 'src/bin/elementary/test_efl_ui_text.c')
-rw-r--r-- | src/bin/elementary/test_efl_ui_text.c | 205 |
1 files changed, 195 insertions, 10 deletions
diff --git a/src/bin/elementary/test_efl_ui_text.c b/src/bin/elementary/test_efl_ui_text.c index b53c427b9a..9ad0e9a50a 100644 --- a/src/bin/elementary/test_efl_ui_text.c +++ b/src/bin/elementary/test_efl_ui_text.c @@ -29,7 +29,7 @@ _create_label(Eo *win, Eo *bx) Eo *en; en = efl_add(EFL_UI_TEXT_CLASS, win); printf("Added Efl.Ui.Text object\n"); - efl_ui_text_interactive_editable_set(en, EINA_FALSE); + efl_text_interactive_editable_set(en, EINA_FALSE); elm_box_pack_end(bx, en); return en; } @@ -72,7 +72,7 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi en = _create_label(win, bx); efl_text_set(en, "You can input text here."); efl_text_font_set(en, "Sans", 14); - efl_ui_text_interactive_editable_set(en, EINA_TRUE); + efl_text_interactive_editable_set(en, EINA_TRUE); efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD); efl_ui_text_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.5); @@ -80,7 +80,7 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi en = _create_label(win, bx); efl_text_set(en, "Input multiline here."); efl_text_font_set(en, "Sans", 14); - efl_ui_text_interactive_editable_set(en, EINA_TRUE); + efl_text_interactive_editable_set(en, EINA_TRUE); efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD); efl_text_multiline_set(en, EINA_TRUE); efl_ui_text_scrollable_set(en, EINA_TRUE); @@ -130,7 +130,7 @@ my_efl_ui_text_bt_3(void *data, Evas_Object *obj EINA_UNUSED, void *event_info E { Efl_Text_Cursor_Cursor *sel_start, *sel_end; - efl_ui_text_interactive_selection_cursors_get(data, &sel_start, &sel_end); + efl_text_interactive_selection_cursors_get(data, &sel_start, &sel_end); const char *s = efl_canvas_text_range_text_get(data, sel_start, sel_end); printf("SELECTION REGION: %d - %d\n", @@ -144,8 +144,8 @@ static void my_efl_ui_text_bt_4(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; - efl_text_cursor_object_item_insert(en, efl_text_cursor_get(en, EFL_TEXT_CURSOR_GET_MAIN), - "size=32x32 href=emoticon/evil-laugh"); + efl_text_cursor_item_insert(en, efl_text_cursor_get(en, EFL_TEXT_CURSOR_GET_MAIN), + "emoticon/evil-laugh", "size=32x32"); } static void @@ -187,6 +187,7 @@ test_efl_ui_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve { Evas_Object *win, *bx, *bx2, *bx3, *bt, *en; Efl_Text_Cursor_Cursor *main_cur, *cur; + char buf[128]; win = elm_win_util_standard_add("entry", "Entry"); elm_win_autodel_set(win, EINA_TRUE); @@ -215,16 +216,17 @@ test_efl_ui_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve cur = efl_text_cursor_new(en); efl_text_cursor_position_set(en, cur, 2); - efl_text_cursor_object_item_insert(en, cur, "size=32x32 href=emoticon"); + efl_text_cursor_item_insert(en, cur, "emoticon/happy", "size=32x32"); efl_text_cursor_position_set(en, cur, 50); - efl_text_cursor_object_item_insert(en, cur, "size=32x32 href=emoticon"); + sprintf(buf, "file://%s/images/sky_01.jpg", elm_app_data_dir_get()); + efl_text_cursor_item_insert(en, cur, buf, "size=32x32"); efl_text_cursor_position_set(en, main_cur, 5); efl_text_cursor_position_set(en, cur, 20); efl_text_annotation_insert(en, main_cur, cur, "a href=#hello"); - efl_ui_text_interactive_editable_set(en, EINA_TRUE); + efl_text_interactive_editable_set(en, EINA_TRUE); efl_ui_text_scrollable_set(en, EINA_TRUE); elm_box_pack_end(bx, en); elm_object_focus_set(en, EINA_TRUE); @@ -297,7 +299,7 @@ test_efl_ui_text_async(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi elm_win_resize_object_add(win, bx); evas_object_show(bx); - en = efl_add(EFL_UI_TEXT_ASYNC_CLASS, win, + en = efl_add(EFL_UI_TEXT_CLASS, win, efl_text_wrap_set(efl_added, EFL_TEXT_FORMAT_WRAP_WORD), efl_text_multiline_set(efl_added, EINA_TRUE) ); @@ -332,3 +334,186 @@ test_efl_ui_text_async(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi evas_object_resize(win, 480, 320); evas_object_show(win); } + +#define IMAGES_SZ 5 + +static const char *images[IMAGES_SZ] = { + "sky", "logo", "dog", "eet_rock", "eet_plant" }; + +static void +my_efl_ui_text_item_factory_bt_image(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *en = data; + static int image_idx = 0; + + image_idx = (image_idx + 1) % IMAGES_SZ; + efl_text_cursor_item_insert(en, + efl_text_cursor_get(en, EFL_TEXT_CURSOR_GET_MAIN), + images[image_idx], "size=32x32"); + printf("Inserted image: key = %s\n", images[image_idx]); +} + +static void +my_efl_ui_text_item_factory_bt_emoticon(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *en = data; + efl_text_cursor_item_insert(en, efl_text_cursor_get(en, EFL_TEXT_CURSOR_GET_MAIN), + "emoticon/evil-laugh", "size=32x32"); +} + +static struct +{ + const char *name; + Eo *item_factory; +} factories[3]; + +static void +my_efl_ui_text_item_factory_bt_change(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *en = data; + static int item_factory_idx = 0; + + item_factory_idx = (item_factory_idx + 1) % 3; + efl_ui_text_item_factory_set(en, factories[item_factory_idx].item_factory); + printf("Factory set to: %s\n", factories[item_factory_idx].name); +} + +#define FACTORY_NONE 0 +#define FACTORY_IMAGE 1 +#define FACTORY_EMOTICON 2 + +void +test_ui_text_item_factory(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *bx, *bx2, *bx3, *bt, *en; + Efl_Text_Cursor_Cursor *main_cur, *cur; + char buf[128]; + Eina_File *f; + + win = elm_win_util_standard_add("entry", "Entry"); + elm_win_autodel_set(win, EINA_TRUE); + + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, bx); + evas_object_show(bx); + + en = efl_add(EFL_UI_TEXT_CLASS, win, + efl_text_multiline_set(efl_added, EINA_TRUE)); + + factories[FACTORY_NONE].name = "None (Fallback)"; + factories[FACTORY_NONE].item_factory = NULL; + + factories[FACTORY_IMAGE].name = "Image Factory"; + factories[FACTORY_IMAGE].item_factory = + efl_add(EFL_UI_TEXT_FACTORY_IMAGES_CLASS, en); + + factories[FACTORY_EMOTICON].name = "Emoticon Factory"; + factories[FACTORY_EMOTICON].item_factory = + efl_add(EFL_UI_TEXT_FACTORY_EMOTICONS_CLASS, en); + + // Test assigning file path source + sprintf(buf, "%s/images/sky_01.jpg", elm_app_data_dir_get()); + efl_ui_text_factory_images_matches_add(factories[FACTORY_IMAGE].item_factory, + images[0], buf, NULL); + sprintf(buf, "%s/images/logo.png", elm_app_data_dir_get()); + efl_ui_text_factory_images_matches_add(factories[FACTORY_IMAGE].item_factory, + images[1], buf, NULL); + sprintf(buf, "%s/images/mystrale.jpg", elm_app_data_dir_get()); + efl_ui_text_factory_images_matches_add(factories[FACTORY_IMAGE].item_factory, + images[2], buf, NULL); + + // Open EET source w/ key + sprintf(buf, "%s/images/image_items.eet", elm_app_data_dir_get()); + f = eina_file_open(buf, EINA_FALSE); + if (f) + { + efl_ui_text_factory_images_matches_mmap_add( + factories[FACTORY_IMAGE].item_factory, + "eet_rock", f, "rock"); + efl_ui_text_factory_images_matches_mmap_add( + factories[FACTORY_IMAGE].item_factory, + "eet_plant", f, "plant"); + eina_file_close(f); + } + else + { + printf("Error loading test file. Please review test."); + } + + + printf("Added Efl.Ui.Text object\n"); + efl_text_set(en, "Hello world! Goodbye world! This is a test text for the" + " new UI Text widget.\xE2\x80\xA9This is the next paragraph.\nThis" + " is the next line.\nThis is Yet another line! Line and paragraph" + " separators are actually different!"); + efl_text_font_set(en, "Sans", 14); + efl_text_normal_color_set(en, 255, 255, 255, 255); + + main_cur = efl_text_cursor_get(en, EFL_TEXT_CURSOR_GET_MAIN); + cur = efl_text_cursor_new(en); + + efl_text_cursor_position_set(en, cur, 2); + efl_text_cursor_item_insert(en, cur, "emoticon/happy", "size=32x32"); + efl_text_cursor_position_set(en, cur, 50); + + sprintf(buf, "file://%s/images/sky_01.jpg", elm_app_data_dir_get()); + efl_text_cursor_item_insert(en, cur, buf, "size=32x32"); + efl_text_cursor_position_set(en, main_cur, 5); + + efl_text_interactive_editable_set(en, EINA_TRUE); + efl_ui_text_scrollable_set(en, EINA_TRUE); + elm_box_pack_end(bx, en); + elm_object_focus_set(en, EINA_TRUE); + + bx2 = elm_box_add(win); + elm_box_horizontal_set(bx2, EINA_TRUE); + evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); + + bt = elm_button_add(win); + elm_object_text_set(bt, "Image"); + evas_object_smart_callback_add(bt, "clicked", + my_efl_ui_text_item_factory_bt_image, en); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); + elm_box_pack_end(bx2, bt); + elm_object_focus_allow_set(bt, EINA_FALSE); + evas_object_show(bt); + + bt = elm_button_add(win); + elm_object_text_set(bt, "Emoticon"); + evas_object_smart_callback_add(bt, "clicked", + my_efl_ui_text_item_factory_bt_emoticon, en); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); + elm_box_pack_end(bx2, bt); + elm_object_focus_allow_set(bt, EINA_FALSE); + evas_object_show(bt); + + bt = elm_button_add(win); + elm_object_text_set(bt, "Factory"); + evas_object_smart_callback_add(bt, "clicked", + my_efl_ui_text_item_factory_bt_change, en); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); + elm_box_pack_end(bx2, bt); + elm_object_focus_allow_set(bt, EINA_FALSE); + evas_object_show(bt); + + bx3 = elm_box_add(win); + elm_box_horizontal_set(bx3, EINA_TRUE); + evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_box_pack_end(bx, bx3); + elm_box_pack_end(bx, bx2); + evas_object_show(bx3); + evas_object_show(bx2); + + evas_object_resize(win, 480, 320); + evas_object_show(win); +} |