hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=b04b7dde2852be9a526b187ffcdfa736e3812ebe
commit b04b7dde2852be9a526b187ffcdfa736e3812ebe Author: Hermet Park <her...@hermet.pe.kr> Date: Sun Apr 17 13:48:35 2016 +0900 setting: refactoring code. split preference setting code from general setting. --- src/bin/Makefile.am | 3 +- src/bin/build_setting.c | 6 +- src/bin/preference_setting.c | 325 +++++++++++++++++++++++++++++++++++++ src/bin/setting.c | 340 +++------------------------------------ src/bin/text_setting.c | 1 + src/include/Makefile.am | 3 +- src/include/build_setting.h | 8 +- src/include/common.h | 1 + src/include/preference_setting.h | 7 + 9 files changed, 367 insertions(+), 327 deletions(-) diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index f466da7..3616ae4 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -31,7 +31,8 @@ enventor_SOURCES = \ file_mgr.c \ edc_navigator.c \ file_browser.c \ - build_setting.c + build_setting.c \ + preference_setting.c enventor_LDADD = \ $(top_builddir)/src/lib/libenventor.la \ diff --git a/src/bin/build_setting.c b/src/bin/build_setting.c index 5d25d15..7749537 100644 --- a/src/bin/build_setting.c +++ b/src/bin/build_setting.c @@ -13,8 +13,6 @@ typedef struct build_setting_s } build_setting_data; -static build_setting_data *g_bsd = NULL; - /*****************************************************************************/ /* Internal method implementation */ /*****************************************************************************/ @@ -193,8 +191,6 @@ void build_setting_term(build_setting_data *bsd) { if (!bsd) return; - + evas_object_del(bsd->layout); free(bsd); - - g_bsd = NULL; } diff --git a/src/bin/preference_setting.c b/src/bin/preference_setting.c new file mode 100644 index 0000000..853b8db --- /dev/null +++ b/src/bin/preference_setting.c @@ -0,0 +1,325 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "common.h" + +typedef struct preference_setting_s +{ + Evas_Object *scroller; + Evas_Object *slider_view; + Evas_Object *view_size_w_entry; + Evas_Object *view_size_h_entry; + Evas_Object *toggle_highlight; + Evas_Object *toggle_swallow; + Evas_Object *toggle_stats; + Evas_Object *toggle_file_browser; + Evas_Object *toggle_edc_navigator; + Evas_Object *toggle_tools; + Evas_Object *toggle_console; + +} preference_setting_data; + +/*****************************************************************************/ +/* Internal method implementation */ +/*****************************************************************************/ +static Evas_Object * +label_create(Evas_Object *parent, const char *text) +{ + Evas_Object *label = elm_label_add(parent); + elm_object_text_set(label, text); + evas_object_show(label); + + return label; +} + +static Evas_Object * +toggle_create(Evas_Object *parent, const char *text, Eina_Bool state) +{ + Evas_Object *toggle = elm_check_add(parent); + elm_object_style_set(toggle, "toggle"); + elm_check_state_set(toggle, state); + evas_object_size_hint_weight_set(toggle, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(toggle, EVAS_HINT_FILL, 0); + elm_object_text_set(toggle, text); + evas_object_show(toggle); + + return toggle; +} + +static Evas_Object * +entry_create(Evas_Object *parent) +{ + Evas_Object *entry = elm_entry_add(parent); + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_scrollable_set(entry, EINA_TRUE); + evas_object_show(entry); + + return entry; +} + +/*****************************************************************************/ +/* Externally accessible calls */ +/*****************************************************************************/ +void +preference_setting_focus_set(preference_setting_data *psd) +{ + if (!psd) return; + elm_object_focus_set(psd->slider_view, EINA_TRUE); +} + +void +preference_setting_config_set(preference_setting_data *psd) +{ + if (!psd) return; + + config_view_scale_set(elm_slider_value_get(psd->slider_view)); + config_tools_set(elm_check_state_get(psd->toggle_tools)); + config_console_set(elm_check_state_get(psd->toggle_console)); + config_stats_bar_set(elm_check_state_get(psd->toggle_stats)); + config_part_highlight_set(elm_check_state_get(psd->toggle_highlight)); + config_dummy_parts_set(elm_check_state_get(psd->toggle_swallow)); + config_file_browser_set(elm_check_state_get(psd->toggle_file_browser)); + config_edc_navigator_set(elm_check_state_get(psd->toggle_edc_navigator)); + + Evas_Coord w = 0; + Evas_Coord h = 0; + const char *w_entry = elm_entry_entry_get(psd->view_size_w_entry); + if (w_entry) w = (Evas_Coord)atoi(w_entry); + const char *h_entry = elm_entry_entry_get(psd->view_size_h_entry); + if (h_entry) h = (Evas_Coord)atoi(h_entry); + config_view_size_set(w, h); +} + +void +preference_setting_reset(preference_setting_data *psd) +{ + if (!psd) return; + + elm_slider_value_set(psd->slider_view, (double) config_view_scale_get()); + elm_check_state_set(psd->toggle_console, config_console_get()); + elm_check_state_set(psd->toggle_tools, config_tools_get()); + elm_check_state_set(psd->toggle_stats, config_stats_bar_get()); + elm_check_state_set(psd->toggle_highlight, config_part_highlight_get()); + elm_check_state_set(psd->toggle_swallow, config_dummy_parts_get()); + elm_check_state_set(psd->toggle_file_browser, config_file_browser_get()); + elm_check_state_set(psd->toggle_edc_navigator, config_edc_navigator_get()); + + //Reset view scale + int view_size_w, view_size_h; + config_view_size_get(&view_size_w, &view_size_h); + char buf[10]; + snprintf(buf, sizeof(buf), "%d", view_size_w); + elm_entry_entry_set(psd->view_size_w_entry, buf); + snprintf(buf, sizeof(buf), "%d", view_size_h); + elm_entry_entry_set(psd->view_size_h_entry, buf); +} + +Evas_Object * +preference_setting_content_get(preference_setting_data *psd, Evas_Object *parent) +{ + if (!psd) return NULL; + if (psd->scroller) return psd->scroller; + + static Elm_Entry_Filter_Accept_Set digits_filter_data; + static Elm_Entry_Filter_Limit_Size limit_filter_data; + + //Preference + Evas_Object *scroller = elm_scroller_add(parent); + + //Box + Evas_Object *box = elm_box_add(scroller); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box); + + elm_object_content_set(scroller, box); + + Evas_Object *box2; + Evas_Object *layout_padding3; + + //Box for View Scale + box2 = elm_box_add(box); + elm_box_horizontal_set(box2, EINA_TRUE); + elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0); + evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0); + evas_object_show(box2); + + elm_box_pack_end(box, box2); + + /* This layout is intended to put the label aligned to left side + far from 3 pixels. */ + layout_padding3 = elm_layout_add(box2); + elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout"); + evas_object_show(layout_padding3); + + elm_box_pack_end(box2, layout_padding3); + + Evas_Object *label_view_scale = label_create(layout_padding3, + _("Live View Scale")); + elm_object_part_content_set(layout_padding3, "elm.swallow.content", + label_view_scale); + + //View Scale (Slider) + Evas_Object *slider_view = elm_slider_add(box); + evas_object_size_hint_weight_set(slider_view, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(slider_view, EVAS_HINT_FILL, 0); + elm_slider_span_size_set(slider_view, 190); + elm_slider_indicator_show_set(slider_view, EINA_FALSE); + elm_slider_unit_format_set(slider_view, "%1.2fx"); + double step = 0.01 / (double) (MAX_VIEW_SCALE - MIN_VIEW_SCALE); + elm_slider_step_set(slider_view, step); + elm_slider_min_max_set(slider_view, MIN_VIEW_SCALE, MAX_VIEW_SCALE); + elm_slider_value_set(slider_view, (double) config_view_scale_get()); + evas_object_show(slider_view); + + elm_box_pack_end(box2, slider_view); + + //View Size + + //Box for View Size + box2 = elm_box_add(box); + elm_box_horizontal_set(box2, EINA_TRUE); + elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0); + evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0); + evas_object_show(box2); + + elm_box_pack_end(box, box2); + + //Label (View Size) + + /* This layout is intended to put the label aligned to left side + far from 3 pixels. */ + layout_padding3 = elm_layout_add(box2); + elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout"); + evas_object_show(layout_padding3); + + elm_box_pack_end(box2, layout_padding3); + + Evas_Object *label_view_size = label_create(layout_padding3, + _("Live View Size")); + elm_object_part_content_set(layout_padding3, "elm.swallow.content", + label_view_size); + + //Spacer + Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(box2)); + evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(box2, rect); + + Evas_Coord w, h; + char w_str[5], h_str[5]; + config_view_size_get(&w, &h); + snprintf(w_str, sizeof(w_str), "%d", w); + snprintf(h_str, sizeof(h_str), "%d", h); + + //Entry (View Width) + Evas_Object *entry_view_size_w = entry_create(box2); + evas_object_size_hint_weight_set(entry_view_size_w, 0.15, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(entry_view_size_w, EVAS_HINT_FILL, EVAS_HINT_FILL); + + digits_filter_data.accepted = "0123456789"; + digits_filter_data.rejected = NULL; + elm_entry_markup_filter_append(entry_view_size_w, + elm_entry_filter_accept_set, + &digits_filter_data); + limit_filter_data.max_char_count = 4; + limit_filter_data.max_byte_count = 0; + elm_entry_markup_filter_append(entry_view_size_w, + elm_entry_filter_limit_size, + &limit_filter_data); + + elm_object_text_set(entry_view_size_w, w_str); + elm_box_pack_end(box2, entry_view_size_w); + + //Label (X) + Evas_Object *label_view_size_x = label_create(box2, "X"); + elm_box_pack_end(box2, label_view_size_x); + + //Entry (View Height) + Evas_Object *entry_view_size_h = entry_create(box2); + evas_object_size_hint_weight_set(entry_view_size_h, 0.15, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(entry_view_size_h, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_entry_markup_filter_append(entry_view_size_h, + elm_entry_filter_accept_set, + &digits_filter_data); + elm_entry_markup_filter_append(entry_view_size_h, + elm_entry_filter_limit_size, + &limit_filter_data); + + elm_object_text_set(entry_view_size_h, h_str); + elm_box_pack_end(box2, entry_view_size_h); + + //Toggle (Part Highlighting) + Evas_Object *toggle_highlight = toggle_create(box, _("Part Highlighting"), + config_part_highlight_get()); + elm_box_pack_end(box, toggle_highlight); + + //Toggle (Dummy Swallow) + Evas_Object *toggle_swallow = toggle_create(box, _("Dummy Parts"), + config_dummy_parts_get()); + elm_box_pack_end(box, toggle_swallow); + + //Toggle (Status) + Evas_Object *toggle_stats = toggle_create(box, _("Status"), + config_stats_bar_get()); + elm_box_pack_end(box, toggle_stats); + + //Toggle (File Browser) + Evas_Object *toggle_file_browser = toggle_create(box, _("File Browser"), + config_file_browser_get()); + elm_box_pack_end(box, toggle_file_browser); + + //Toggle (EDC Navigator) + Evas_Object *toggle_edc_navigator = toggle_create(box, _("EDC Navigator"), + config_edc_navigator_get()); + elm_box_pack_end(box, toggle_edc_navigator); + + //Toggle (Tools) + Evas_Object *toggle_tools = toggle_create(box, _("Tools"), + config_tools_get()); + elm_box_pack_end(box, toggle_tools); + + //Toggle (Console) + Evas_Object *toggle_console = toggle_create(box, _("Auto Hiding Console"), + config_console_get()); + evas_object_size_hint_weight_set(toggle_console, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(toggle_console, EVAS_HINT_FILL, 0); + elm_box_pack_end(box, toggle_console); + + psd->scroller = scroller; + psd->slider_view = slider_view; + psd->view_size_w_entry = entry_view_size_w; + psd->view_size_h_entry = entry_view_size_h; + psd->toggle_highlight = toggle_highlight; + psd->toggle_swallow = toggle_swallow; + psd->toggle_stats = toggle_stats; + psd->toggle_file_browser = toggle_file_browser; + psd->toggle_edc_navigator = toggle_edc_navigator; + psd->toggle_tools = toggle_tools; + psd->toggle_console = toggle_console; + + return scroller; +} + +preference_setting_data * +preference_setting_init(void) +{ + preference_setting_data *psd = calloc(1, sizeof(preference_setting_data)); + if (!psd) + { + EINA_LOG_ERR(_("Failed to allocate Memory!")); + return NULL; + } + return psd; +} + +void +preference_setting_term(preference_setting_data *psd) +{ + if (!psd) return; + evas_object_del(psd->scroller); + free(psd); +} diff --git a/src/bin/setting.c b/src/bin/setting.c index 6041812..00a6e43 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -16,9 +16,10 @@ typedef enum { typedef struct setting_s { - Evas_Object *setting_layout; + Evas_Object *layout; Evas_Object *toolbar; + preference_setting_data *psd; text_setting_data *tsd; build_setting_data *bsd; @@ -28,26 +29,10 @@ typedef struct setting_s Evas_Object *reset_btn; Evas_Object *cancel_btn; - //below: preference setting data - Evas_Object *preference; - Evas_Object *slider_view; - Evas_Object *view_size_w_entry; - Evas_Object *view_size_h_entry; - Evas_Object *toggle_highlight; - Evas_Object *toggle_swallow; - Evas_Object *toggle_stats; - Evas_Object *toggle_file_browser; - Evas_Object *toggle_edc_navigator; - Evas_Object *toggle_tools; - Evas_Object *toggle_console; - } setting_data; static setting_data *g_sd = NULL; -static void preference_setting_config_set(setting_data *sd); -static void preference_setting_reset(setting_data *sd); - /*****************************************************************************/ /* Internal method implementation */ @@ -63,8 +48,8 @@ setting_dismiss_done_cb(void *data, Evas_Object *obj EINA_UNUSED, text_setting_term(sd->tsd); build_setting_term(sd->bsd); - evas_object_del(sd->setting_layout); - sd->setting_layout = NULL; + evas_object_del(sd->layout); + sd->layout = NULL; menu_deactivate_request(); free(sd); @@ -77,7 +62,7 @@ setting_apply_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, { setting_data *sd = data; - preference_setting_config_set(sd); + preference_setting_config_set(sd->psd); build_setting_config_set(sd->bsd); text_setting_config_set(sd->tsd); @@ -99,7 +84,7 @@ setting_reset_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, { setting_data *sd = data; - preference_setting_reset(sd); + preference_setting_reset(sd->psd); text_setting_reset(sd->tsd); build_setting_reset(sd->bsd); } @@ -110,290 +95,11 @@ focus_custom_chain_set(setting_data *sd, Evas_Object *content) //Set a custom chain to set the focus order. Eina_List *custom_chain = NULL; custom_chain = eina_list_append(custom_chain, sd->toolbar); - custom_chain = eina_list_append(custom_chain, sd->preference); + custom_chain = eina_list_append(custom_chain, content); custom_chain = eina_list_append(custom_chain, sd->apply_btn); custom_chain = eina_list_append(custom_chain, sd->reset_btn); custom_chain = eina_list_append(custom_chain, sd->cancel_btn); - elm_object_focus_custom_chain_set(sd->setting_layout, custom_chain); -} - -static Evas_Object * -entry_create(Evas_Object *parent) -{ - Evas_Object *entry = elm_entry_add(parent); - elm_entry_single_line_set(entry, EINA_TRUE); - elm_entry_scrollable_set(entry, EINA_TRUE); - evas_object_show(entry); - - return entry; -} - -static Evas_Object * -label_create(Evas_Object *parent, const char *text) -{ - Evas_Object *label = elm_label_add(parent); - elm_object_text_set(label, text); - evas_object_show(label); - - return label; -} - -static Evas_Object * -toggle_create(Evas_Object *parent, const char *text, Eina_Bool state) -{ - Evas_Object *toggle = elm_check_add(parent); - elm_object_style_set(toggle, "toggle"); - elm_check_state_set(toggle, state); - evas_object_size_hint_weight_set(toggle, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(toggle, EVAS_HINT_FILL, 0); - elm_object_text_set(toggle, text); - evas_object_show(toggle); - - return toggle; -} - -static void -preference_setting_reset(setting_data *sd) -{ - elm_slider_value_set(sd->slider_view, (double) config_view_scale_get()); - elm_check_state_set(sd->toggle_console, config_console_get()); - elm_check_state_set(sd->toggle_tools, config_tools_get()); - elm_check_state_set(sd->toggle_stats, config_stats_bar_get()); - elm_check_state_set(sd->toggle_highlight, config_part_highlight_get()); - elm_check_state_set(sd->toggle_swallow, config_dummy_parts_get()); - elm_check_state_set(sd->toggle_file_browser, config_file_browser_get()); - elm_check_state_set(sd->toggle_edc_navigator, config_edc_navigator_get()); - - //Reset view scale - int view_size_w, view_size_h; - config_view_size_get(&view_size_w, &view_size_h); - char buf[10]; - snprintf(buf, sizeof(buf), "%d", view_size_w); - elm_entry_entry_set(sd->view_size_w_entry, buf); - snprintf(buf, sizeof(buf), "%d", view_size_h); - elm_entry_entry_set(sd->view_size_h_entry, buf); -} - -static void -preference_setting_config_set(setting_data *sd) -{ - config_view_scale_set(elm_slider_value_get(sd->slider_view)); - config_tools_set(elm_check_state_get(sd->toggle_tools)); - config_console_set(elm_check_state_get(sd->toggle_console)); - config_stats_bar_set(elm_check_state_get(sd->toggle_stats)); - config_part_highlight_set(elm_check_state_get(sd->toggle_highlight)); - config_dummy_parts_set(elm_check_state_get(sd->toggle_swallow)); - config_file_browser_set(elm_check_state_get(sd->toggle_file_browser)); - config_edc_navigator_set(elm_check_state_get(sd->toggle_edc_navigator)); - - Evas_Coord w = 0; - Evas_Coord h = 0; - const char *w_entry = elm_entry_entry_get(sd->view_size_w_entry); - if (w_entry) w = (Evas_Coord)atoi(w_entry); - const char *h_entry = elm_entry_entry_get(sd->view_size_h_entry); - if (h_entry) h = (Evas_Coord)atoi(h_entry); - config_view_size_set(w, h); -} - -static Evas_Object * -preference_create(setting_data *sd, Evas_Object *parent) -{ - static Elm_Entry_Filter_Accept_Set digits_filter_data; - static Elm_Entry_Filter_Limit_Size limit_filter_data; - - //Preference - Evas_Object *scroller = elm_scroller_add(parent); - - //Box - Evas_Object *box = elm_box_add(scroller); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(box); - - elm_object_content_set(scroller, box); - - Evas_Object *box2; - Evas_Object *layout_padding3; - - //Box for View Scale - box2 = elm_box_add(box); - elm_box_horizontal_set(box2, EINA_TRUE); - elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0); - evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0); - evas_object_show(box2); - - elm_box_pack_end(box, box2); - - /* This layout is intended to put the label aligned to left side - far from 3 pixels. */ - layout_padding3 = elm_layout_add(box2); - elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout"); - evas_object_show(layout_padding3); - - elm_box_pack_end(box2, layout_padding3); - - Evas_Object *label_view_scale = label_create(layout_padding3, - _("Live View Scale")); - elm_object_part_content_set(layout_padding3, "elm.swallow.content", - label_view_scale); - - //View Scale (Slider) - Evas_Object *slider_view = elm_slider_add(box); - evas_object_size_hint_weight_set(slider_view, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(slider_view, EVAS_HINT_FILL, 0); - elm_slider_span_size_set(slider_view, 190); - elm_slider_indicator_show_set(slider_view, EINA_FALSE); - elm_slider_unit_format_set(slider_view, "%1.2fx"); - double step = 0.01 / (double) (MAX_VIEW_SCALE - MIN_VIEW_SCALE); - elm_slider_step_set(slider_view, step); - elm_slider_min_max_set(slider_view, MIN_VIEW_SCALE, MAX_VIEW_SCALE); - elm_slider_value_set(slider_view, (double) config_view_scale_get()); - evas_object_show(slider_view); - - elm_box_pack_end(box2, slider_view); - - //View Size - - //Box for View Size - box2 = elm_box_add(box); - elm_box_horizontal_set(box2, EINA_TRUE); - elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0); - evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0); - evas_object_show(box2); - - elm_box_pack_end(box, box2); - - //Label (View Size) - - /* This layout is intended to put the label aligned to left side - far from 3 pixels. */ - layout_padding3 = elm_layout_add(box2); - elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout"); - evas_object_show(layout_padding3); - - elm_box_pack_end(box2, layout_padding3); - - Evas_Object *label_view_size = label_create(layout_padding3, - _("Live View Size")); - elm_object_part_content_set(layout_padding3, "elm.swallow.content", - label_view_size); - - //Spacer - Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(box2)); - evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(box2, rect); - - Evas_Coord w, h; - char w_str[5], h_str[5]; - config_view_size_get(&w, &h); - snprintf(w_str, sizeof(w_str), "%d", w); - snprintf(h_str, sizeof(h_str), "%d", h); - - //Entry (View Width) - Evas_Object *entry_view_size_w = entry_create(box2); - evas_object_size_hint_weight_set(entry_view_size_w, 0.15, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(entry_view_size_w, EVAS_HINT_FILL, EVAS_HINT_FILL); - - digits_filter_data.accepted = "0123456789"; - digits_filter_data.rejected = NULL; - elm_entry_markup_filter_append(entry_view_size_w, - elm_entry_filter_accept_set, - &digits_filter_data); - limit_filter_data.max_char_count = 4; - limit_filter_data.max_byte_count = 0; - elm_entry_markup_filter_append(entry_view_size_w, - elm_entry_filter_limit_size, - &limit_filter_data); - - elm_object_text_set(entry_view_size_w, w_str); - elm_box_pack_end(box2, entry_view_size_w); - - //Label (X) - Evas_Object *label_view_size_x = label_create(box2, "X"); - elm_box_pack_end(box2, label_view_size_x); - - //Entry (View Height) - Evas_Object *entry_view_size_h = entry_create(box2); - evas_object_size_hint_weight_set(entry_view_size_h, 0.15, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(entry_view_size_h, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_entry_markup_filter_append(entry_view_size_h, - elm_entry_filter_accept_set, - &digits_filter_data); - elm_entry_markup_filter_append(entry_view_size_h, - elm_entry_filter_limit_size, - &limit_filter_data); - - elm_object_text_set(entry_view_size_h, h_str); - elm_box_pack_end(box2, entry_view_size_h); - - //Toggle (Part Highlighting) - Evas_Object *toggle_highlight = toggle_create(box, _("Part Highlighting"), - config_part_highlight_get()); - elm_box_pack_end(box, toggle_highlight); - - //Toggle (Dummy Swallow) - Evas_Object *toggle_swallow = toggle_create(box, _("Dummy Parts"), - config_dummy_parts_get()); - elm_box_pack_end(box, toggle_swallow); - - //Toggle (Status) - Evas_Object *toggle_stats = toggle_create(box, _("Status"), - config_stats_bar_get()); - elm_box_pack_end(box, toggle_stats); - - //Toggle (File Browser) - Evas_Object *toggle_file_browser = toggle_create(box, _("File Browser"), - config_file_browser_get()); - elm_box_pack_end(box, toggle_file_browser); - - //Toggle (EDC Navigator) - Evas_Object *toggle_edc_navigator = toggle_create(box, _("EDC Navigator"), - config_edc_navigator_get()); - elm_box_pack_end(box, toggle_edc_navigator); - - //Toggle (Tools) - Evas_Object *toggle_tools = toggle_create(box, _("Tools"), - config_tools_get()); - elm_box_pack_end(box, toggle_tools); - - //Toggle (Console) - Evas_Object *toggle_console = toggle_create(box, _("Auto Hiding Console"), - config_console_get()); - evas_object_size_hint_weight_set(toggle_console, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(toggle_console, EVAS_HINT_FILL, 0); - elm_box_pack_end(box, toggle_console); - - sd->preference = scroller; - sd->slider_view = slider_view; - sd->view_size_w_entry = entry_view_size_w; - sd->view_size_h_entry = entry_view_size_h; - sd->toggle_highlight = toggle_highlight; - sd->toggle_swallow = toggle_swallow; - sd->toggle_stats = toggle_stats; - sd->toggle_file_browser = toggle_file_browser; - sd->toggle_edc_navigator = toggle_edc_navigator; - sd->toggle_tools = toggle_tools; - sd->toggle_console = toggle_console; - - return scroller; -} - -static void -preference_setting_focus_set(void) -{ - setting_data *sd = g_sd; - elm_object_focus_set(sd->slider_view, EINA_TRUE); -} - -static Evas_Object * -preference_setting_content_get(Evas_Object *parent EINA_UNUSED) -{ - setting_data *sd = g_sd; - return sd->preference; + elm_object_focus_custom_chain_set(sd->layout, custom_chain); } static void @@ -405,15 +111,15 @@ toolbar_preferene_cb(void *data, Evas_Object *obj EINA_UNUSED, if (sd->current_view == SETTING_VIEW_PREFERENCE) return; //Hide previous tab view - Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout, + Evas_Object *pcontent = elm_object_part_content_unset(sd->layout, "elm.swallow.content"); evas_object_hide(pcontent); - Evas_Object *content = preference_setting_content_get(obj); - elm_object_part_content_set(sd->setting_layout, "elm.swallow.content", + Evas_Object *content = preference_setting_content_get(sd->psd, obj); + elm_object_part_content_set(sd->layout, "elm.swallow.content", content); focus_custom_chain_set(sd, content); - preference_setting_focus_set(); + preference_setting_focus_set(sd->psd); sd->current_view = SETTING_VIEW_PREFERENCE; } @@ -428,12 +134,12 @@ toolbar_text_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (!sd->tsd) sd->tsd = text_setting_init(); //Hide previous tab view - Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout, + Evas_Object *pcontent = elm_object_part_content_unset(sd->layout, "elm.swallow.content"); evas_object_hide(pcontent); Evas_Object *content = text_setting_content_get(sd->tsd, obj); - elm_object_part_content_set(sd->setting_layout, "elm.swallow.content", + elm_object_part_content_set(sd->layout, "elm.swallow.content", content); focus_custom_chain_set(sd, content); text_setting_focus_set(sd->tsd); @@ -451,12 +157,12 @@ toolbar_build_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (!sd->bsd) sd->bsd = build_setting_init(); //Hide previous tab view - Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout, + Evas_Object *pcontent = elm_object_part_content_unset(sd->layout, "elm.swallow.content"); evas_object_hide(pcontent); Evas_Object *content = build_setting_content_get(sd->bsd, obj); - elm_object_part_content_set(sd->setting_layout, "elm.swallow.content", + elm_object_part_content_set(sd->layout, "elm.swallow.content", content); focus_custom_chain_set(sd, content); build_setting_focus_set(sd->bsd); @@ -513,10 +219,12 @@ setting_open(void) elm_object_part_content_set(layout, "elm.swallow.toolbar", toolbar); - //Preference layout - Evas_Object *preference = preference_create(sd, layout); - elm_object_part_content_set(layout, "elm.swallow.content", preference); - preference_setting_focus_set(); + //Preference Content as a default + sd->psd = preference_setting_init(); + Evas_Object *content = preference_setting_content_get(sd->psd, layout); + elm_object_part_content_set(layout, "elm.swallow.content", content); + preference_setting_focus_set(sd->psd); + sd->current_view = SETTING_VIEW_PREFERENCE; //Apply Button Evas_Object *apply_btn = elm_button_add(layout); @@ -539,7 +247,7 @@ setting_open(void) sd); elm_object_part_content_set(layout, "elm.swallow.cancel_btn", cancel_btn); - sd->setting_layout = layout; + sd->layout = layout; sd->toolbar = toolbar; sd->apply_btn = apply_btn; sd->reset_btn = reset_btn; @@ -553,7 +261,7 @@ setting_close() { setting_data *sd = g_sd; if (!sd) return; - elm_object_signal_emit(sd->setting_layout, "elm,state,dismiss", ""); + elm_object_signal_emit(sd->layout, "elm,state,dismiss", ""); } Eina_Bool diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c index 14dd4bb..038995b 100644 --- a/src/bin/text_setting.c +++ b/src/bin/text_setting.c @@ -1020,5 +1020,6 @@ text_setting_term(text_setting_data *tsd) free(tsd->syntax_template_str); eina_stringshare_del(tsd->font_name); eina_stringshare_del(tsd->font_style); + evas_object_del(tsd->layout); free(tsd); } diff --git a/src/include/Makefile.am b/src/include/Makefile.am index 89557dd..326d878 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -18,4 +18,5 @@ EXTRA_DIST = common.h \ file_mgr.h \ edc_navigator.h \ file_browser.h \ - build_setting.h + build_setting.h \ + preference_setting.h diff --git a/src/include/build_setting.h b/src/include/build_setting.h index f5330fa..4d40cea 100644 --- a/src/include/build_setting.h +++ b/src/include/build_setting.h @@ -1,7 +1,7 @@ typedef struct build_setting_s build_setting_data; -Evas_Object *build_setting_content_get(build_setting_data *tsd, Evas_Object *parent); -void build_setting_config_set(build_setting_data *tsd); -void build_setting_term(build_setting_data *tsd); +Evas_Object *build_setting_content_get(build_setting_data *bsd, Evas_Object *parent); +void build_setting_config_set(build_setting_data *bsd); +void build_setting_term(build_setting_data *bsd); build_setting_data *build_setting_init(void); -void build_setting_focus_set(build_setting_data *tsd); +void build_setting_focus_set(build_setting_data *bsd); diff --git a/src/include/common.h b/src/include/common.h index ccf5d91..5736664 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -80,6 +80,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" #include "console.h" #include "file_mgr.h" #include "build_setting.h" +#include "preference_setting.h" /* localization */ #ifdef HAVE_GETTEXT diff --git a/src/include/preference_setting.h b/src/include/preference_setting.h new file mode 100644 index 0000000..d350d4a --- /dev/null +++ b/src/include/preference_setting.h @@ -0,0 +1,7 @@ +typedef struct preference_setting_s preference_setting_data; + +Evas_Object *preference_setting_content_get(preference_setting_data *psd, Evas_Object *parent); +void preference_setting_config_set(preference_setting_data *psd); +void preference_setting_term(preference_setting_data *psd); +preference_setting_data *preference_setting_init(void); +void preference_setting_focus_set(preference_setting_data *psd); --