hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=8f91d45ff101f8936fde0e3bb9f72ff45b559c7e
commit 8f91d45ff101f8936fde0e3bb9f72ff45b559c7e Author: Hermet Park <her...@hermet.pe.kr> Date: Sun Apr 17 13:31:27 2016 +0900 setting: reorganize setting view. --- data/themes/default/images/Makefile.am | 1 - data/themes/default/images/preference.png | Bin 1050 -> 0 bytes data/themes/default/layout_setting.edc | 145 ++++--------- src/bin/Makefile.am | 3 +- src/bin/build_setting.c | 200 +++++++++++++++++ src/bin/setting.c | 349 ++++++++++++------------------ src/bin/text_setting.c | 215 +++++++++--------- src/include/Makefile.am | 3 +- src/include/build_setting.h | 7 + src/include/common.h | 2 +- src/include/text_setting.h | 20 +- 11 files changed, 492 insertions(+), 453 deletions(-) diff --git a/data/themes/default/images/Makefile.am b/data/themes/default/images/Makefile.am index 9db2492..77bcd3b 100644 --- a/data/themes/default/images/Makefile.am +++ b/data/themes/default/images/Makefile.am @@ -22,7 +22,6 @@ EXTRA_DIST = \ full_logo.png \ frame_bg.png \ part_highlight.png \ - preference.png \ runner_glow_horiz.png \ runner_glow_vert.png \ runner_horiz.png \ diff --git a/data/themes/default/images/preference.png b/data/themes/default/images/preference.png deleted file mode 100644 index 2d68444..0000000 Binary files a/data/themes/default/images/preference.png and /dev/null differ diff --git a/data/themes/default/layout_setting.edc b/data/themes/default/layout_setting.edc index 64b1777..b4940bd 100644 --- a/data/themes/default/layout_setting.edc +++ b/data/themes/default/layout_setting.edc @@ -2,7 +2,6 @@ images { image: "frame_bg.png" COMP; image: "setting_icon.png" COMP; image: "folder.png" COMP; - image: "preference.png" COMP; } group { name: "setting_layout"; @@ -225,31 +224,20 @@ group { name: "setting_layout"; } } -group { name: "general_layout"; +group { "build_setting_layout"; parts { - part { name: "base_frame"; - type: SPACER; - scale: 1; - description { - min: 580 265; - max: 580 265; - fixed: 1 1; - } - } - part { name: "img_path_frame"; - type: SPACER; - description { - rel1 {to: "base_frame"; relative: 0 0;} - rel2 {to: "base_frame"; relative: 1 0;} + spacer { "img_path_frame"; + desc { + rel1 { relative: 0 0;} + rel2 { relative: 1 0;} align: 0.5 0; min: 0 30; fixed: 0 1; } } - part { name: "snd_path_frame"; - type: SPACER; + spacer { "snd_path_frame"; scale: 1; - description { + desc { rel1 {to: "img_path_frame"; relative: 0 1;} rel2 {to: "img_path_frame"; relative: 1 1;} align: 0.5 0; @@ -257,10 +245,9 @@ group { name: "general_layout"; fixed: 0 1; } } - part { name: "fnt_path_frame"; - type: SPACER; + spacer { "fnt_path_frame"; scale: 1; - description { + desc { rel1 {to: "snd_path_frame"; relative: 0 1;} rel2 {to: "snd_path_frame"; relative: 1 1;} align: 0.5 0; @@ -268,10 +255,9 @@ group { name: "general_layout"; fixed: 0 1; } } - part { name: "dat_path_frame"; - type: SPACER; + spacer { "dat_path_frame"; scale: 1; - description { + desc { rel1 {to: "fnt_path_frame"; relative: 0 1;} rel2 {to: "fnt_path_frame"; relative: 1 1;} align: 0.5 0; @@ -279,10 +265,9 @@ group { name: "general_layout"; fixed: 0 1; } } - part { name: "preference_frame"; - type: SPACER; + spacer { "preference_frame"; scale: 1; - description { + desc { rel1 {to: "dat_path_frame"; relative: 0 1; offset: 0 5;} rel2 {to: "dat_path_frame"; relative: 1 1;} align: 0.5 0; @@ -290,10 +275,9 @@ group { name: "general_layout"; fixed: 0 1; } } - part { name: "img_path_icon"; - type: IMAGE; + image { "img_path_icon"; scale: 1; - description { + desc { align: 0 0.5; min: 20 20; max: 20 20; @@ -303,11 +287,10 @@ group { name: "general_layout"; image.normal: "folder.png"; } } - part { name: "img_path_guide"; - type: TEXT; + text { "img_path_guide"; scale: 1; effect: SHADOW BOTTOM; - description { + desc { rel1 {to: "img_path_icon"; relative: 1 0; offset: 5 1;} rel2 {to: "img_path_icon"; relative: 1 1;} color: COL_NM; @@ -323,10 +306,9 @@ group { name: "general_layout"; } } } - part { name: "elm.swallow.img_path_entry"; - type: SWALLOW; + swallow { "elm.swallow.img_path_entry"; scale: 1; - description { + desc { align: 0 0; fixed: 1 1; rel1.to_x: "img_path_guide"; @@ -336,10 +318,9 @@ group { name: "general_layout"; rel2.to: "img_path_frame"; } } - part { name: "snd_path_icon"; - type: IMAGE; + image { "snd_path_icon"; scale: 1; - description { + desc { align: 0 0.5; min: 20 20; max: 20 20; @@ -349,11 +330,10 @@ group { name: "general_layout"; image.normal: "folder.png"; } } - part { name: "snd_path_guide"; - type: TEXT; + text { "snd_path_guide"; effect: SHADOW BOTTOM; scale: 1; - description { + desc { rel1 {to: "snd_path_icon"; relative: 1 0; offset: 5 1;} rel2 {to: "snd_path_icon"; relative: 1 1;} color: COL_NM; @@ -369,10 +349,9 @@ group { name: "general_layout"; } } } - part { name: "elm.swallow.snd_path_entry"; - type: SWALLOW; + swallow { "elm.swallow.snd_path_entry"; scale: 1; - description { + desc { align: 0 0; fixed: 1 1; rel1.to_x: "snd_path_guide"; @@ -382,10 +361,9 @@ group { name: "general_layout"; rel2.to: "snd_path_frame"; } } - part { name: "fnt_path_icon"; - type: IMAGE; + image { "fnt_path_icon"; scale: 1; - description { + desc { align: 0 0.5; min: 20 20; max: 20 20; @@ -395,11 +373,10 @@ group { name: "general_layout"; image.normal: "folder.png"; } } - part { name: "fnt_path_guide"; - type: TEXT; + text { "fnt_path_guide"; effect: SHADOW BOTTOM; scale: 1; - description { + desc { rel1 {to: "fnt_path_icon"; relative: 1 0; offset: 5 1;} rel2 {to: "fnt_path_icon"; relative: 1 1;} color: COL_NM; @@ -415,10 +392,9 @@ group { name: "general_layout"; } } } - part { name: "elm.swallow.fnt_path_entry"; - type: SWALLOW; + swallow { "elm.swallow.fnt_path_entry"; scale: 1; - description { + desc { align: 0 0; fixed: 1 1; rel1.to_x: "fnt_path_guide"; @@ -428,10 +404,9 @@ group { name: "general_layout"; rel2.to: "fnt_path_frame"; } } - part { name: "dat_path_icon"; - type: IMAGE; + image { "dat_path_icon"; scale: 1; - description { + desc { align: 0 0.5; min: 20 20; max: 20 20; @@ -441,11 +416,10 @@ group { name: "general_layout"; image.normal: "folder.png"; } } - part { name: "dat_path_guide"; - type: TEXT; + text { "dat_path_guide"; effect: SHADOW BOTTOM; scale: 1; - description { + desc { rel1 {to: "dat_path_icon"; relative: 1 0; offset: 5 1;} rel2 {to: "dat_path_icon"; relative: 1 1;} color: COL_NM; @@ -461,10 +435,9 @@ group { name: "general_layout"; } } } - part { name: "elm.swallow.dat_path_entry"; - type: SWALLOW; + swallow { "elm.swallow.dat_path_entry"; scale: 1; - description { + desc { align: 0 0; fixed: 1 1; rel1.to_x: "dat_path_guide"; @@ -474,50 +447,6 @@ group { name: "general_layout"; rel2.to: "dat_path_frame"; } } - part { name: "preference_icon"; - type: IMAGE; - scale: 1; - description { - align: 0 0; - min: 20 20; - max: 20 20; - fixed: 1 1; - rel1.to: "preference_frame"; - rel2.to: "preference_frame"; - image.normal: "preference.png"; - } - } - part { name: "preference_guide"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - description { - rel1 {to: "preference_icon"; relative: 1 0; offset: 5 1;} - rel2 {to: "preference_icon"; relative: 1 1;} - color: COL_NM; - align: 0 0; - fixed: 1 1; - text { - font: FN; - text: "Preferences:"; - size: 11; - align: 0 0; - min: 1 0; - ellipsis: -1; - } - } - } - part { name: "elm.swallow.preference"; - type: SWALLOW; - scale: 1; - description { - rel1.to_x: "preference_guide"; - rel1.to_y: "preference_guide"; - rel1.offset: 0 5; - rel1.relative: 0 1; - rel2.to: "preference_frame"; - } - } } } diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 8ba9f3f..f466da7 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -30,7 +30,8 @@ enventor_SOURCES = \ console.c \ file_mgr.c \ edc_navigator.c \ - file_browser.c + file_browser.c \ + build_setting.c enventor_LDADD = \ $(top_builddir)/src/lib/libenventor.la \ diff --git a/src/bin/build_setting.c b/src/bin/build_setting.c new file mode 100644 index 0000000..5d25d15 --- /dev/null +++ b/src/bin/build_setting.c @@ -0,0 +1,200 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "common.h" + +typedef struct build_setting_s +{ + Evas_Object *layout; + Evas_Object *img_path_entry; + Evas_Object *snd_path_entry; + Evas_Object *fnt_path_entry; + Evas_Object *dat_path_entry; + +} build_setting_data; + +static build_setting_data *g_bsd = NULL; + +/*****************************************************************************/ +/* Internal method implementation */ +/*****************************************************************************/ + +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 void +img_path_entry_update(Evas_Object *entry, Eina_List *edc_img_paths) +{ + elm_entry_entry_set(entry, NULL); + + Eina_List *l; + char *edc_img_path; + EINA_LIST_FOREACH(edc_img_paths, l, edc_img_path) + { + elm_entry_entry_append(entry, edc_img_path); + elm_entry_entry_append(entry, ";"); + } +} + +static void +fnt_path_entry_update(Evas_Object *entry, Eina_List *edc_fnt_paths) +{ + elm_entry_entry_set(entry, NULL); + + Eina_List *l; + char *edc_fnt_path; + EINA_LIST_FOREACH(edc_fnt_paths, l, edc_fnt_path) + { + elm_entry_entry_append(entry, edc_fnt_path); + elm_entry_entry_append(entry, ";"); + } +} + +static void +dat_path_entry_update(Evas_Object *entry, Eina_List *edc_dat_paths) +{ + elm_entry_entry_set(entry, NULL); + + Eina_List *l; + char *edc_dat_path; + EINA_LIST_FOREACH(edc_dat_paths, l, edc_dat_path) + { + elm_entry_entry_append(entry, edc_dat_path); + elm_entry_entry_append(entry, ";"); + } +} + +static void +snd_path_entry_update(Evas_Object *entry, Eina_List *edc_snd_paths) +{ + elm_entry_entry_set(entry, NULL); + + Eina_List *l; + char *edc_snd_path; + EINA_LIST_FOREACH(edc_snd_paths, l, edc_snd_path) + { + elm_entry_entry_append(entry, edc_snd_path); + elm_entry_entry_append(entry, ";"); + } +} + + +/*****************************************************************************/ +/* Externally accessible calls */ +/*****************************************************************************/ +void +build_setting_focus_set(build_setting_data *bsd) +{ + if (!bsd) return; + elm_object_focus_set(bsd->img_path_entry, EINA_TRUE); +} + +void +build_setting_config_set(build_setting_data *bsd) +{ + if (!bsd) return; + + config_img_path_set(elm_object_text_get(bsd->img_path_entry)); + config_snd_path_set(elm_object_text_get(bsd->snd_path_entry)); + config_fnt_path_set(elm_object_text_get(bsd->fnt_path_entry)); + config_dat_path_set(elm_object_text_get(bsd->dat_path_entry)); +} + +void +build_setting_reset(build_setting_data *bsd) +{ + if (!bsd) return; + + img_path_entry_update(bsd->img_path_entry, + (Eina_List *)config_img_path_list_get()); + snd_path_entry_update(bsd->snd_path_entry, + (Eina_List *)config_snd_path_list_get()); + fnt_path_entry_update(bsd->fnt_path_entry, + (Eina_List *)config_fnt_path_list_get()); + dat_path_entry_update(bsd->dat_path_entry, + (Eina_List *)config_dat_path_list_get()); +} + +Evas_Object * +build_setting_content_get(build_setting_data *bsd, Evas_Object *parent) +{ + if (!bsd) return NULL; + if (bsd->layout) return bsd->layout; + + //Layout + Evas_Object *layout = elm_layout_add(parent); + elm_layout_file_set(layout, EDJE_PATH, "build_setting_layout"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(layout); + + //Image Path Entry + Evas_Object *img_path_entry = entry_create(layout); + img_path_entry_update(img_path_entry, + (Eina_List *)config_img_path_list_get()); + elm_object_focus_set(img_path_entry, EINA_TRUE); + elm_object_part_content_set(layout, "elm.swallow.img_path_entry", + img_path_entry); + elm_layout_text_set(layout, "img_path_guide", _("Image Paths:")); + + //Sound Path Entry + Evas_Object *snd_path_entry = entry_create(layout); + snd_path_entry_update(snd_path_entry, + (Eina_List *)config_snd_path_list_get()); + elm_object_part_content_set(layout, "elm.swallow.snd_path_entry", + snd_path_entry); + elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:")); + + //Font Path Entry + Evas_Object *fnt_path_entry = entry_create(layout); + fnt_path_entry_update(fnt_path_entry, + (Eina_List *)config_fnt_path_list_get()); + elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry", + fnt_path_entry); + elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:")); + + //Data Path Entry + Evas_Object *dat_path_entry = entry_create(layout); + dat_path_entry_update(dat_path_entry, + (Eina_List *)config_dat_path_list_get()); + elm_object_part_content_set(layout, "elm.swallow.dat_path_entry", + dat_path_entry); + elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:")); + + bsd->layout = layout; + bsd->img_path_entry = img_path_entry; + bsd->snd_path_entry = snd_path_entry; + bsd->fnt_path_entry = fnt_path_entry; + bsd->dat_path_entry = dat_path_entry; + + return layout; +} + +build_setting_data * +build_setting_init(void) +{ + build_setting_data *bsd = calloc(1, sizeof(build_setting_data)); + if (!bsd) + { + EINA_LOG_ERR(_("Failed to allocate Memory!")); + return NULL; + } + return bsd; +} + +void +build_setting_term(build_setting_data *bsd) +{ + if (!bsd) return; + + free(bsd); + + g_bsd = NULL; +} diff --git a/src/bin/setting.c b/src/bin/setting.c index 9a2c76e..6041812 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -1,3 +1,6 @@ +/*****************************************************************************/ +/* Externally accessible calls */ +/*****************************************************************************/ #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -5,21 +8,28 @@ #include "text_setting.h" typedef enum { - SETTING_VIEW_GENERAL = 0, - SETTING_VIEW_TEXT + SETTING_VIEW_PREFERENCE = 0, + SETTING_VIEW_TEXT, + SETTING_VIEW_BUILD, + SETTING_VIEW_NONE } setting_view; typedef struct setting_s { Evas_Object *setting_layout; Evas_Object *toolbar; - Evas_Object *general_layout; - Evas_Object *img_path_entry; - Evas_Object *snd_path_entry; - Evas_Object *fnt_path_entry; - Evas_Object *dat_path_entry; + text_setting_data *tsd; + build_setting_data *bsd; + setting_view current_view; + + Evas_Object *apply_btn; + 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; @@ -31,84 +41,27 @@ typedef struct setting_s Evas_Object *toggle_tools; Evas_Object *toggle_console; - Evas_Object *apply_btn; - Evas_Object *reset_btn; - Evas_Object *cancel_btn; - - setting_view current_view; } 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 */ /*****************************************************************************/ static void -img_path_entry_update(Evas_Object *entry, Eina_List *edc_img_paths) -{ - elm_entry_entry_set(entry, NULL); - - Eina_List *l; - char *edc_img_path; - EINA_LIST_FOREACH(edc_img_paths, l, edc_img_path) - { - elm_entry_entry_append(entry, edc_img_path); - elm_entry_entry_append(entry, ";"); - } -} - -static void -fnt_path_entry_update(Evas_Object *entry, Eina_List *edc_fnt_paths) -{ - elm_entry_entry_set(entry, NULL); - - Eina_List *l; - char *edc_fnt_path; - EINA_LIST_FOREACH(edc_fnt_paths, l, edc_fnt_path) - { - elm_entry_entry_append(entry, edc_fnt_path); - elm_entry_entry_append(entry, ";"); - } -} - -static void -dat_path_entry_update(Evas_Object *entry, Eina_List *edc_dat_paths) -{ - elm_entry_entry_set(entry, NULL); - - Eina_List *l; - char *edc_dat_path; - EINA_LIST_FOREACH(edc_dat_paths, l, edc_dat_path) - { - elm_entry_entry_append(entry, edc_dat_path); - elm_entry_entry_append(entry, ";"); - } -} - -static void -snd_path_entry_update(Evas_Object *entry, Eina_List *edc_snd_paths) -{ - elm_entry_entry_set(entry, NULL); - - Eina_List *l; - char *edc_snd_path; - EINA_LIST_FOREACH(edc_snd_paths, l, edc_snd_path) - { - elm_entry_entry_append(entry, edc_snd_path); - elm_entry_entry_append(entry, ";"); - } -} - -static void setting_dismiss_done_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { setting_data *sd = data; - text_setting_term(); + text_setting_term(sd->tsd); + build_setting_term(sd->bsd); evas_object_del(sd->setting_layout); sd->setting_layout = NULL; @@ -124,29 +77,9 @@ setting_apply_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, { setting_data *sd = data; - config_img_path_set(elm_object_text_get(sd->img_path_entry)); - config_snd_path_set(elm_object_text_get(sd->snd_path_entry)); - config_fnt_path_set(elm_object_text_get(sd->fnt_path_entry)); - config_dat_path_set(elm_object_text_get(sd->dat_path_entry)); - 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)); - text_setting_config_set(); - - 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); - - text_setting_syntax_color_save(); + preference_setting_config_set(sd); + build_setting_config_set(sd->bsd); + text_setting_config_set(sd->tsd); config_apply(); @@ -166,43 +99,22 @@ setting_reset_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, { setting_data *sd = data; - img_path_entry_update(sd->img_path_entry, - (Eina_List *)config_img_path_list_get()); - snd_path_entry_update(sd->snd_path_entry, - (Eina_List *)config_snd_path_list_get()); - fnt_path_entry_update(sd->fnt_path_entry, - (Eina_List *)config_fnt_path_list_get()); - dat_path_entry_update(sd->dat_path_entry, - (Eina_List *)config_dat_path_list_get()); - - 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); + preference_setting_reset(sd); + text_setting_reset(sd->tsd); + build_setting_reset(sd->bsd); +} - const char *font_name; - const char *font_style; - config_font_get(&font_name, &font_style); - text_setting_font_set(font_name, font_style); - text_setting_font_scale_set((double) config_font_scale_get()); - text_setting_linenumber_set(config_linenumber_get()); - text_setting_auto_indent_set(config_auto_indent_get()); - text_setting_auto_complete_set(config_auto_complete_get()); - text_setting_syntax_color_reset(); +static void +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, 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 * @@ -240,55 +152,57 @@ toggle_create(Evas_Object *parent, const char *text, Eina_Bool state) 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 * -general_layout_create(setting_data *sd, Evas_Object *parent) +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; - //Layout - Evas_Object *layout = elm_layout_add(parent); - elm_layout_file_set(layout, EDJE_PATH, "general_layout"); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(layout); - - //Image Path Entry - Evas_Object *img_path_entry = entry_create(layout); - img_path_entry_update(img_path_entry, - (Eina_List *)config_img_path_list_get()); - elm_object_focus_set(img_path_entry, EINA_TRUE); - elm_object_part_content_set(layout, "elm.swallow.img_path_entry", - img_path_entry); - elm_layout_text_set(layout, "img_path_guide", _("Image Paths:")); - - //Sound Path Entry - Evas_Object *snd_path_entry = entry_create(layout); - snd_path_entry_update(snd_path_entry, - (Eina_List *)config_snd_path_list_get()); - elm_object_part_content_set(layout, "elm.swallow.snd_path_entry", - snd_path_entry); - elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:")); - - //Font Path Entry - Evas_Object *fnt_path_entry = entry_create(layout); - fnt_path_entry_update(fnt_path_entry, - (Eina_List *)config_fnt_path_list_get()); - elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry", - fnt_path_entry); - elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:")); - - //Data Path Entry - Evas_Object *dat_path_entry = entry_create(layout); - dat_path_entry_update(dat_path_entry, - (Eina_List *)config_dat_path_list_get()); - elm_object_part_content_set(layout, "elm.swallow.dat_path_entry", - dat_path_entry); - elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:")); - //Preference - Evas_Object *scroller = elm_scroller_add(layout); - elm_object_part_content_set(layout, "elm.swallow.preference", scroller); - elm_layout_text_set(layout, "preference_guide", _("Preferences:")); + Evas_Object *scroller = elm_scroller_add(parent); //Box Evas_Object *box = elm_box_add(scroller); @@ -449,13 +363,11 @@ general_layout_create(setting_data *sd, Evas_Object *parent) //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->general_layout = layout; - sd->img_path_entry = img_path_entry; - sd->snd_path_entry = snd_path_entry; - sd->fnt_path_entry = fnt_path_entry; - sd->dat_path_entry = dat_path_entry; + 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; @@ -467,79 +379,92 @@ general_layout_create(setting_data *sd, Evas_Object *parent) sd->toggle_tools = toggle_tools; sd->toggle_console = toggle_console; - return layout; + return scroller; } static void -general_setting_focus_set(void) +preference_setting_focus_set(void) { setting_data *sd = g_sd; - elm_object_focus_set(sd->img_path_entry, EINA_TRUE); + elm_object_focus_set(sd->slider_view, EINA_TRUE); } static Evas_Object * -general_setting_content_get(Evas_Object *parent EINA_UNUSED) +preference_setting_content_get(Evas_Object *parent EINA_UNUSED) { setting_data *sd = g_sd; - return sd->general_layout; + return sd->preference; } static void -focus_custom_chain_set(setting_data *sd, Evas_Object *content) +toolbar_preferene_cb(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - //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->general_layout); - 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); + setting_data *sd = data; + + if (sd->current_view == SETTING_VIEW_PREFERENCE) return; + + //Hide previous tab view + Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_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", + content); + focus_custom_chain_set(sd, content); + preference_setting_focus_set(); + + sd->current_view = SETTING_VIEW_PREFERENCE; } static void -toolbar_general_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) +toolbar_text_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { setting_data *sd = data; - if (sd->current_view == SETTING_VIEW_GENERAL) return; + if (sd->current_view == SETTING_VIEW_TEXT) return; + + if (!sd->tsd) sd->tsd = text_setting_init(); //Hide previous tab view Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout, "elm.swallow.content"); evas_object_hide(pcontent); - Evas_Object *content = general_setting_content_get(obj); + Evas_Object *content = text_setting_content_get(sd->tsd, obj); elm_object_part_content_set(sd->setting_layout, "elm.swallow.content", content); focus_custom_chain_set(sd, content); - general_setting_focus_set(); + text_setting_focus_set(sd->tsd); - sd->current_view = SETTING_VIEW_GENERAL; + sd->current_view = SETTING_VIEW_TEXT; } static void -toolbar_text_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +toolbar_build_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { setting_data *sd = data; - if (sd->current_view == SETTING_VIEW_TEXT) return; + if (sd->current_view == SETTING_VIEW_BUILD) return; + + if (!sd->bsd) sd->bsd = build_setting_init(); //Hide previous tab view Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout, "elm.swallow.content"); evas_object_hide(pcontent); - Evas_Object *content = text_setting_content_get(obj); + Evas_Object *content = build_setting_content_get(sd->bsd, obj); elm_object_part_content_set(sd->setting_layout, "elm.swallow.content", content); focus_custom_chain_set(sd, content); - text_setting_focus_set(); + build_setting_focus_set(sd->bsd); - sd->current_view = SETTING_VIEW_TEXT; + sd->current_view = SETTING_VIEW_BUILD; } + /*****************************************************************************/ /* Externally accessible calls */ /*****************************************************************************/ @@ -558,8 +483,6 @@ setting_open(void) } g_sd = sd; - text_setting_init(); - search_close(); goto_close(); @@ -575,18 +498,25 @@ setting_open(void) //Tabbar Evas_Object *toolbar = elm_toolbar_add(layout); + //elm_object_style_set(toolbar, "item_horizontal"); elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND); elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_ALWAYS); - evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); - elm_toolbar_item_append(toolbar, NULL, _("General"), toolbar_general_cb, sd); - elm_toolbar_item_append(toolbar, NULL, _("Text Editor"), toolbar_text_cb, sd); + elm_toolbar_item_append(toolbar, NULL, _("Preferences"), + toolbar_preferene_cb, sd); + elm_toolbar_item_append(toolbar, NULL, _("Text Editor"), toolbar_text_cb, + sd); + elm_toolbar_item_append(toolbar, NULL, _("EDC Build"), toolbar_build_cb, + sd); elm_object_part_content_set(layout, "elm.swallow.toolbar", toolbar); - //General layout - Evas_Object *general_layout = general_layout_create(sd, layout); - elm_object_part_content_set(layout, "elm.swallow.content", general_layout); + //Preference layout + Evas_Object *preference = preference_create(sd, layout); + elm_object_part_content_set(layout, "elm.swallow.content", preference); + preference_setting_focus_set(); //Apply Button Evas_Object *apply_btn = elm_button_add(layout); @@ -614,7 +544,6 @@ setting_open(void) sd->apply_btn = apply_btn; sd->reset_btn = reset_btn; sd->cancel_btn = cancel_btn; - sd->current_view = SETTING_VIEW_GENERAL; menu_activate_request(); } diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c index 550be90..14dd4bb 100644 --- a/src/bin/text_setting.c +++ b/src/bin/text_setting.c @@ -29,6 +29,7 @@ typedef struct text_setting_s Evas_Object *toggle_autocomp; Evas_Object *toggle_smart_undo_redo; Evas_Object *list_font_name; + Evas_Object *list_font_style; color_keyword *color_keyword_list; char *syntax_template_format; @@ -93,8 +94,6 @@ static int color_type_list[COLOR_KEYWORD_MAX_CNT] = ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL }; -static text_setting_data *g_tsd = NULL; - /*****************************************************************************/ /* Internal method implementation */ /*****************************************************************************/ @@ -149,9 +148,8 @@ syntax_template_set(char *syntax_template_str, char *syntax_template_format, } static void -syntax_template_apply(void) +syntax_template_apply(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; Evas_Object *layout = tsd->layout; if (!layout) return; @@ -175,15 +173,14 @@ text_setting_syntax_color_load(void) } } -void -text_setting_syntax_color_reset(void) +static void +text_setting_syntax_color_reset(text_setting_data *tsd) { text_setting_syntax_color_load(); - - syntax_template_apply(); + syntax_template_apply(tsd); } -void +static void text_setting_syntax_color_save(void) { Enventor_Syntax_Color_Type color_type = ENVENTOR_SYNTAX_COLOR_STRING; @@ -230,10 +227,10 @@ color_ctxpopup_dismiss_cb(void *data EINA_UNUSED, Evas_Object *obj, } static void -color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, +color_ctxpopup_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) { - text_setting_data *tsd = g_tsd; + text_setting_data *tsd = data; color_keyword *selected_color_keyword; selected_color_keyword = evas_object_data_get(obj, "color_keyword"); @@ -241,7 +238,7 @@ color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, elm_object_focus_set(tsd->slider_font, EINA_TRUE); text_setting_syntax_color_update(obj, selected_color_keyword); - syntax_template_apply(); + syntax_template_apply(tsd); elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_SHOW); @@ -249,20 +246,23 @@ color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, } static void -color_slider_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, +color_slider_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { + text_setting_data *tsd = data; + Evas_Object *ctxpopup = evas_object_data_get(obj, "ctxpopup"); color_keyword *selected_color_keyword; selected_color_keyword = evas_object_data_get(ctxpopup, "color_keyword"); text_setting_syntax_color_update(ctxpopup, selected_color_keyword); - syntax_template_apply(); + syntax_template_apply(tsd); } static Evas_Object * -color_slider_layout_create(Evas_Object *parent, Evas_Object *ctxpopup, - const char *type, double slider_val) +color_slider_layout_create(text_setting_data *tsd, Evas_Object *parent, + Evas_Object *ctxpopup, const char *type, + double slider_val) { //Layout Evas_Object *layout = elm_layout_add(parent); @@ -289,7 +289,7 @@ color_slider_layout_create(Evas_Object *parent, Evas_Object *ctxpopup, elm_object_part_text_set(layout, "elm.text.slider_max", slider_max); elm_object_part_content_set(layout, "elm.swallow.slider", slider); evas_object_smart_callback_add(slider, "changed", color_slider_changed_cb, - NULL); + tsd); return layout; } @@ -321,7 +321,7 @@ convert_hexadecimal_to_decimal(char *hexadecimal) } static void -color_slider_layout_set(Evas_Object *ctxpopup) +color_slider_layout_set(text_setting_data *tsd, Evas_Object *ctxpopup) { Eina_Array *type_array; Eina_Stringshare *type = NULL; @@ -358,7 +358,7 @@ color_slider_layout_set(Evas_Object *ctxpopup) EINA_ARRAY_ITER_NEXT(type_array, i, type, itr) { - layout = color_slider_layout_create(box, ctxpopup, type, + layout = color_slider_layout_create(tsd, box, ctxpopup, type, color_rgb_val[i]); if (i % 2) elm_object_signal_emit(layout, "odd,item,set", ""); elm_box_pack_end(box, layout); @@ -372,10 +372,10 @@ color_slider_layout_set(Evas_Object *ctxpopup) } static Evas_Object * -color_ctxpopup_create(Evas_Object *parent, +color_ctxpopup_create(text_setting_data *tsd, color_keyword *selected_color_keyword) { - Evas_Object *ctxpopup = elm_ctxpopup_add(parent); + Evas_Object *ctxpopup = elm_ctxpopup_add(tsd->layout); if (!ctxpopup) return NULL; elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_NONE); @@ -386,10 +386,10 @@ color_ctxpopup_create(Evas_Object *parent, ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_DOWN); - color_slider_layout_set(ctxpopup); + color_slider_layout_set(tsd, ctxpopup); evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, - color_ctxpopup_del_cb, NULL); + color_ctxpopup_del_cb, tsd); evas_object_smart_callback_add(ctxpopup, "dismissed", color_ctxpopup_dismiss_cb, NULL); return ctxpopup; @@ -427,10 +427,8 @@ color_keyword_list_create(char *syntax_template_str) } static char * -syntax_template_format_create(void) +syntax_template_format_create(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; - text_setting_syntax_color_load(); char file_path[PATH_MAX]; @@ -468,17 +466,17 @@ err: } static char * -syntax_template_create(double font_scale) +syntax_template_create(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; char *syntax_template_str = NULL; - char *syntax_template_format = syntax_template_format_create(); + char *syntax_template_format = syntax_template_format_create(tsd); if (!syntax_template_format) goto err; syntax_template_str = calloc(1, sizeof(char) * SYNTAX_TEMPLATE_MAX_LEN); if (!syntax_template_str) goto err; - syntax_template_set(syntax_template_str, syntax_template_format, font_scale); + syntax_template_set(syntax_template_str, syntax_template_format, + tsd->font_scale); color_keyword *color_keyword_list; color_keyword_list = color_keyword_list_create(syntax_template_str); @@ -562,8 +560,7 @@ text_setting_double_clicked_cb(void *data, Evas_Object *obj, if ((pos >= selected_color_keyword->pos_begin) && (pos <= selected_color_keyword->pos_end)) { - ctxpopup = color_ctxpopup_create(tsd->layout, - selected_color_keyword); + ctxpopup = color_ctxpopup_create(tsd, selected_color_keyword); if (!ctxpopup) return; evas_pointer_output_xy_get(evas_object_evas_get(obj), &x, &y); @@ -618,14 +615,12 @@ font_scale_slider_changed_cb(void *data, Evas_Object *obj, double val = elm_slider_value_get(obj); tsd->font_scale = val; - syntax_template_apply(); + syntax_template_apply(tsd); } static void -text_setting_font_apply(void) +text_setting_font_apply(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; - char text_class_name[32]; snprintf(text_class_name, sizeof(text_class_name), "%s_setting_entry", "enventor"); @@ -649,23 +644,22 @@ font_cmp_cb(const void *data1, } static void -font_style_selected_cb(void *data EINA_UNUSED, Evas_Object *obj, +font_style_selected_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { - text_setting_data *tsd = g_tsd; + text_setting_data *tsd = data; Elm_Object_Item *font_style_it = elm_list_selected_item_get(obj); const char *font_style = elm_object_item_text_get(font_style_it); eina_stringshare_replace(&tsd->font_style, font_style); - text_setting_font_apply(); + text_setting_font_apply(tsd); } static void font_name_selected_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { - text_setting_data *tsd = g_tsd; - Evas_Object *list_font_style = data; + text_setting_data *tsd = data; Elm_Object_Item *font_name_it = elm_list_selected_item_get(obj); Elm_Object_Item *font_style_it = NULL; const char *sel_font_name = elm_object_item_text_get(font_name_it); @@ -674,7 +668,7 @@ font_name_selected_cb(void *data, Evas_Object *obj, config_font_get(&font_name, &font_style); - elm_list_clear(list_font_style); + elm_list_clear(tsd->list_font_style); //Append Items of Font Style List Elm_Font_Properties *efp; @@ -694,9 +688,10 @@ font_name_selected_cb(void *data, Evas_Object *obj, EINA_LIST_FOREACH(efp->styles, ll, style) { Elm_Object_Item *it - = elm_list_item_append(list_font_style, style, NULL, + = elm_list_item_append(tsd->list_font_style, style, + NULL, NULL, font_style_selected_cb, - NULL); + tsd); if (font_name && !strcmp(font_name, efp->name) && font_style && !strcmp(font_style, style)) font_style_it = it; @@ -705,12 +700,12 @@ font_name_selected_cb(void *data, Evas_Object *obj, elm_font_properties_free(efp); } } - elm_list_go(list_font_style); + elm_list_go(tsd->list_font_style); if (font_style_it) elm_list_item_selected_set(font_style_it, EINA_TRUE); eina_stringshare_replace(&tsd->font_name, sel_font_name); eina_stringshare_replace(&tsd->font_style, NULL); - text_setting_font_apply(); + text_setting_font_apply(tsd); } static Eina_Bool @@ -728,14 +723,38 @@ is_supported_font(const char *font_name) return EINA_TRUE; } +static void +text_setting_font_set(text_setting_data *tsd, const char *font_name, + const char *font_style) +{ + eina_stringshare_replace(&tsd->font_name, font_name); + eina_stringshare_replace(&tsd->font_style, font_style); + + if (!tsd->list_font_name) return; + + const Eina_List *it_list = elm_list_items_get(tsd->list_font_name); + const Eina_List *l; + Elm_Object_Item *it; + + EINA_LIST_FOREACH(it_list, l, it) + { + const char *name = elm_object_item_text_get(it); + if (font_name && !strcmp(font_name, name)) + { + elm_list_item_selected_set(it, EINA_TRUE); + break; + } + } +} + /*****************************************************************************/ /* Externally accessible calls */ /*****************************************************************************/ Evas_Object * -text_setting_content_get(Evas_Object *parent) +text_setting_content_get(text_setting_data *tsd, Evas_Object *parent) { - text_setting_data *tsd = g_tsd; + if (!tsd) return NULL; if (tsd->layout) return tsd->layout; //Layout @@ -759,7 +778,7 @@ text_setting_content_get(Evas_Object *parent) //Font Scale Information tsd->font_scale = (double) config_font_scale_get(); - char *syntax_template_str = syntax_template_create(tsd->font_scale); + char *syntax_template_str = syntax_template_create(tsd); elm_entry_entry_set(entry, syntax_template_str); evas_object_smart_callback_add(entry, "clicked,double", text_setting_double_clicked_cb, tsd); @@ -879,8 +898,8 @@ text_setting_content_get(Evas_Object *parent) label_font_style); //Font Style (List) - Evas_Object *list_font_style = list_create(box2); - elm_box_pack_end(box2, list_font_style); + tsd->list_font_style = list_create(box2); + elm_box_pack_end(box2, tsd->list_font_style); //Font Name and Style Information const char *font_name; @@ -909,7 +928,7 @@ text_setting_content_get(Evas_Object *parent) Elm_Object_Item *it = elm_list_item_append(list_font_name, efp->name, NULL, NULL, font_name_selected_cb, - list_font_style); + tsd); if (font_name && !strcmp(font_name, efp->name)) font_name_it = it; snprintf(prev_font, sizeof(prev_font), "%s", efp->name); @@ -933,16 +952,17 @@ text_setting_content_get(Evas_Object *parent) } void -text_setting_focus_set(void) +text_setting_focus_set(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; + if (!tsd) return; + elm_object_focus_set(tsd->slider_font, EINA_TRUE); } void -text_setting_config_set(void) +text_setting_config_set(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; + if (!tsd) return; config_font_set(tsd->font_name, tsd->font_style); config_font_scale_set((float) elm_slider_value_get(tsd->slider_font)); @@ -950,88 +970,48 @@ text_setting_config_set(void) config_auto_indent_set(elm_check_state_get(tsd->toggle_indent)); config_auto_complete_set(elm_check_state_get(tsd->toggle_autocomp)); config_smart_undo_redo_set(elm_check_state_get(tsd->toggle_smart_undo_redo)); -} -void -text_setting_font_set(const char *font_name, const char *font_style) -{ - text_setting_data *tsd = g_tsd; - - eina_stringshare_replace(&tsd->font_name, font_name); - eina_stringshare_replace(&tsd->font_style, font_style); - - if (!tsd->list_font_name) return; - - const Eina_List *it_list = elm_list_items_get(tsd->list_font_name); - const Eina_List *l; - Elm_Object_Item *it; - - EINA_LIST_FOREACH(it_list, l, it) - { - const char *name = elm_object_item_text_get(it); - if (font_name && !strcmp(font_name, name)) - { - elm_list_item_selected_set(it, EINA_TRUE); - break; - } - } + text_setting_syntax_color_save(); } void -text_setting_font_scale_set(double font_scale) +text_setting_reset(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; - tsd->font_scale = font_scale; - elm_slider_value_set(tsd->slider_font, tsd->font_scale); -} + if (!tsd) return; -void -text_setting_linenumber_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_linenum, enabled); -} + //font scale + tsd->font_scale = (double) config_font_scale_get(); + elm_slider_value_set(tsd->slider_font, tsd->font_scale); -void -text_setting_auto_indent_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_indent, enabled); -} + elm_check_state_set(tsd->toggle_linenum, config_linenumber_get()); + elm_check_state_set(tsd->toggle_indent, config_auto_indent_get()); + elm_check_state_set(tsd->toggle_autocomp, config_auto_complete_get()); + elm_check_state_set(tsd->toggle_smart_undo_redo, + config_smart_undo_redo_get()); -void -text_setting_auto_complete_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_autocomp, enabled); -} + //font reset + const char *font_name, *font_style; + config_font_get(&font_name, &font_style); + text_setting_font_set(tsd, font_name, font_style); -void -text_setting_smart_undo_redo_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_smart_undo_redo, enabled); + text_setting_syntax_color_reset(tsd); } -void +text_setting_data * text_setting_init(void) { - text_setting_data *tsd = g_tsd; - if (tsd) return; - - tsd = calloc(1, sizeof(text_setting_data)); + text_setting_data *tsd = calloc(1, sizeof(text_setting_data)); if (!tsd) { EINA_LOG_ERR(_("Failed to allocate Memory!")); - return; + return NULL; } - g_tsd = tsd; + return tsd; } void -text_setting_term(void) +text_setting_term(text_setting_data *tsd) { - text_setting_data *tsd = g_tsd; if (!tsd) return; evas_object_del(tsd->color_ctxpopup); @@ -1041,5 +1021,4 @@ text_setting_term(void) eina_stringshare_del(tsd->font_name); eina_stringshare_del(tsd->font_style); free(tsd); - g_tsd = NULL; } diff --git a/src/include/Makefile.am b/src/include/Makefile.am index 773a951..89557dd 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -17,4 +17,5 @@ EXTRA_DIST = common.h \ console.h \ file_mgr.h \ edc_navigator.h \ - file_browser.h + file_browser.h \ + build_setting.h diff --git a/src/include/build_setting.h b/src/include/build_setting.h new file mode 100644 index 0000000..f5330fa --- /dev/null +++ b/src/include/build_setting.h @@ -0,0 +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); +build_setting_data *build_setting_init(void); +void build_setting_focus_set(build_setting_data *tsd); diff --git a/src/include/common.h b/src/include/common.h index 8be3235..ccf5d91 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -79,7 +79,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" #include "live_edit.h" #include "console.h" #include "file_mgr.h" - +#include "build_setting.h" /* localization */ #ifdef HAVE_GETTEXT diff --git a/src/include/text_setting.h b/src/include/text_setting.h index 8f46ba9..852b20b 100644 --- a/src/include/text_setting.h +++ b/src/include/text_setting.h @@ -1,13 +1,7 @@ -Evas_Object *text_setting_content_get(Evas_Object *parent); -void text_setting_syntax_color_reset(void); -void text_setting_syntax_color_save(void); -void text_setting_config_set(void); -void text_setting_font_set(const char *font_name, const char *font_style); -void text_setting_font_scale_set(double font_scale); -void text_setting_linenumber_set(Eina_Bool enabled); -void text_setting_auto_indent_set(Eina_Bool enabled); -void text_setting_auto_complete_set(Eina_Bool enabled); -void text_setting_smart_undo_redo_set(Eina_Bool enabled); -void text_setting_term(void); -void text_setting_init(void); -void text_setting_focus_set(void); +typedef struct text_setting_s text_setting_data; + +Evas_Object *text_setting_content_get(text_setting_data *tsd, Evas_Object *parent); +void text_setting_config_set(text_setting_data *tsd); +void text_setting_term(text_setting_data *tsd); +text_setting_data *text_setting_init(void); +void text_setting_focus_set(text_setting_data *tsd); --