From bb9325e14653f5ddb584110c0a2eda8be44bac02 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Thu, 17 Oct 2013 15:37:34 +0900 Subject: [PATCH] test_fileselector.c: Internal refactoring. - Splitted one big function into three small functions. - Used frame to look nicer. - Used radio for mode change. --- legacy/elementary/src/bin/test_fileselector.c | 209 +++++++++++++++++--------- 1 file changed, 138 insertions(+), 71 deletions(-) diff --git a/legacy/elementary/src/bin/test_fileselector.c b/legacy/elementary/src/bin/test_fileselector.c index fa01be8..f6ee2bc 100644 --- a/legacy/elementary/src/bin/test_fileselector.c +++ b/legacy/elementary/src/bin/test_fileselector.c @@ -173,18 +173,145 @@ _path_get_clicked(void *data, printf("Get Path: %s\n", elm_fileselector_path_get(fs)); } +static Evas_Object * +_option_create(Evas_Object *parent, Evas_Object *fs) +{ + Evas_Object *frame = NULL, *hbox = NULL, *bt = NULL; + + frame = elm_frame_add(parent); + evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, 0); + elm_object_text_set(frame, "Options"); + evas_object_show(frame); + + hbox = elm_box_add(frame); + elm_box_horizontal_set(hbox, EINA_TRUE); + elm_object_content_set(frame, hbox); + evas_object_show(hbox); + + bt = elm_check_add(hbox); + elm_object_text_set(bt, "is save"); + elm_check_state_set(bt, elm_fileselector_is_save_get(fs)); + evas_object_smart_callback_add(bt, "changed", _is_save_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + bt = elm_check_add(hbox); + elm_object_text_set(bt, "folder only"); + elm_check_state_set(bt, elm_fileselector_folder_only_get(fs)); + evas_object_smart_callback_add(bt, "changed", _folder_only_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + bt = elm_check_add(hbox); + elm_object_text_set(bt, "expandable"); + elm_check_state_set(bt, elm_fileselector_expandable_get(fs)); + evas_object_smart_callback_add(bt, "changed", _expandable_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + bt = elm_check_add(hbox); + elm_object_text_set(bt, "multiple selection"); + elm_check_state_set(bt, elm_fileselector_multi_select_get(fs)); + evas_object_smart_callback_add(bt, "changed", _multi_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + bt = elm_check_add(hbox); + elm_object_text_set(bt, "buttons"); + elm_check_state_set(bt, elm_fileselector_buttons_ok_cancel_get(fs)); + evas_object_smart_callback_add(bt, "changed", _buttons_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + return frame; +} + +static Evas_Object * +_getter_option_create(Evas_Object *parent, Evas_Object *fs) +{ + Evas_Object *frame = NULL, *hbox = NULL, *bt = NULL; + + frame = elm_frame_add(parent); + elm_object_text_set(frame, "Getter Options"); + evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, 0); + evas_object_show(frame); + + hbox = elm_box_add(frame); + elm_box_horizontal_set(hbox, EINA_TRUE); + elm_object_content_set(frame, hbox); + evas_object_show(hbox); + + bt = elm_button_add(hbox); + elm_object_text_set(bt, "selected get"); + evas_object_smart_callback_add(bt, "clicked", _sel_get_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + bt = elm_button_add(hbox); + elm_object_text_set(bt, "path get"); + evas_object_smart_callback_add(bt, "clicked", _path_get_clicked, fs); + elm_box_pack_end(hbox, bt); + evas_object_show(bt); + + return frame; +} + static void -_mode_cycle_clicked(void *data, - Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) +_mode_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *fs = data; Elm_Fileselector_Mode mode; mode = (elm_fileselector_mode_get(fs) + 1) % ELM_FILESELECTOR_LAST; - elm_fileselector_mode_set(fs, mode); + switch (mode) + { + case ELM_FILESELECTOR_LIST: + printf("Setting mode to: List\n"); + break; + case ELM_FILESELECTOR_GRID: + default: + printf("Setting mode to: Grid\n"); + break; + } - printf("Setting mode to: %d\n", mode); + elm_radio_value_set(obj, mode); + elm_fileselector_mode_set(data, mode); +} + +static Evas_Object * +_mode_option_create(Evas_Object *parent, Evas_Object *fs) +{ + Evas_Object *frame = NULL, *hbox = NULL, *rd = NULL, *rdg = NULL; + + frame = elm_frame_add(parent); + evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, 0); + elm_object_text_set(frame, "Mode Option"); + evas_object_show(frame); + + hbox = elm_box_add(frame); + elm_box_horizontal_set(hbox, EINA_TRUE); + elm_object_content_set(frame, hbox); + evas_object_show(hbox); + + rdg = rd = elm_radio_add(hbox); + elm_radio_state_value_set(rd, ELM_FILESELECTOR_LIST); + elm_object_text_set(rd, "List"); + elm_box_pack_end(hbox, rd); + evas_object_show(rd); + evas_object_smart_callback_add(rd, "changed", _mode_changed_cb, fs); + + rd = elm_radio_add(hbox); + elm_radio_group_add(rd, rdg); + elm_radio_state_value_set(rd, ELM_FILESELECTOR_GRID); + elm_object_text_set(rd, "Grid"); + elm_box_pack_end(hbox, rd); + evas_object_show(rd); + evas_object_smart_callback_add(rd, "changed", _mode_changed_cb, fs); + + return frame; } void @@ -192,7 +319,7 @@ test_fileselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *fs, *vbox, *hbox, *bt, *sep; + Evas_Object *win, *fs, *vbox, *sep; /* Set the locale according to the system pref. * If you dont do so the file selector will order the files list in @@ -205,6 +332,8 @@ test_fileselector(void *data EINA_UNUSED, win = elm_win_util_standard_add("fileselector", "File Selector"); elm_win_autodel_set(win, EINA_TRUE); + evas_object_resize(win, 320, 700); + evas_object_show(win); vbox = elm_box_add(win); evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -243,71 +372,9 @@ test_fileselector(void *data EINA_UNUSED, elm_box_pack_end(vbox, sep); evas_object_show(sep); - hbox = elm_box_add(win); - elm_box_horizontal_set(hbox, EINA_TRUE); - elm_box_pack_end(vbox, hbox); - evas_object_show(hbox); - - bt = elm_check_add(win); - elm_object_text_set(bt, "is save"); - elm_check_state_set(bt, elm_fileselector_is_save_get(fs)); - evas_object_smart_callback_add(bt, "changed", _is_save_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - bt = elm_check_add(win); - elm_object_text_set(bt, "folder only"); - elm_check_state_set(bt, elm_fileselector_folder_only_get(fs)); - evas_object_smart_callback_add(bt, "changed", _folder_only_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - bt = elm_check_add(win); - elm_object_text_set(bt, "expandable"); - elm_check_state_set(bt, elm_fileselector_expandable_get(fs)); - evas_object_smart_callback_add(bt, "changed", _expandable_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - bt = elm_check_add(win); - elm_object_text_set(bt, "multiple selection"); - elm_check_state_set(bt, elm_fileselector_multi_select_get(fs)); - evas_object_smart_callback_add(bt, "changed", _multi_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - bt = elm_check_add(win); - elm_object_text_set(bt, "buttons"); - elm_check_state_set(bt, elm_fileselector_buttons_ok_cancel_get(fs)); - evas_object_smart_callback_add(bt, "changed", _buttons_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - hbox = elm_box_add(win); - elm_box_horizontal_set(hbox, EINA_TRUE); - elm_box_pack_end(vbox, hbox); - evas_object_show(hbox); - - bt = elm_button_add(win); - elm_object_text_set(bt, "selected get"); - evas_object_smart_callback_add(bt, "clicked", _sel_get_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - bt = elm_button_add(win); - elm_object_text_set(bt, "path get"); - evas_object_smart_callback_add(bt, "clicked", _path_get_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - bt = elm_button_add(win); - elm_object_text_set(bt, "mode cycle"); - evas_object_smart_callback_add(bt, "clicked", _mode_cycle_clicked, fs); - elm_box_pack_end(hbox, bt); - evas_object_show(bt); - - evas_object_resize(win, 320, 500); - evas_object_show(win); + elm_box_pack_end(vbox, _option_create(vbox, fs)); + elm_box_pack_end(vbox, _getter_option_create(vbox, fs)); + elm_box_pack_end(vbox, _mode_option_create(vbox, fs)); } #endif -- 2.7.4