From e1991b63ff8fe6cee45e07e7287f4c832551bbad Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Tue, 3 Feb 2015 13:46:43 +0900 Subject: [PATCH] Revert "setting: Add the Text Editor mode in setting." This reverts commit 799fd32e13b5cf3e313badb73572821d22974064. The previous commit("config: Add config_syntax_color_set()/get() functions.") is not applied correctly. --- data/color/Makefile.am | 3 +- data/color/syntax_template.dat | 1 - data/themes/default/layout_setting.edc | 684 +++++++++----------- src/bin/Makefile.am | 1 - src/bin/config_data.c | 36 ++ src/bin/main.c | 56 ++ src/bin/setting.c | 293 +++++---- src/bin/text_setting.c | 853 ------------------------- src/include/Makefile.am | 1 - src/include/config_data.h | 2 + src/include/text_setting.h | 35 - 11 files changed, 532 insertions(+), 1433 deletions(-) delete mode 100644 data/color/syntax_template.dat delete mode 100644 src/bin/text_setting.c delete mode 100644 src/include/text_setting.h diff --git a/data/color/Makefile.am b/data/color/Makefile.am index d1d438a..aa8f3d3 100644 --- a/data/color/Makefile.am +++ b/data/color/Makefile.am @@ -7,8 +7,7 @@ color.src filesdir = $(datadir)/$(PACKAGE)/color files_DATA = \ -color.eet \ -syntax_template.dat +color.eet %.eet: %.src $(EET_EET) -e \ diff --git a/data/color/syntax_template.dat b/data/color/syntax_template.dat deleted file mode 100644 index d5ec66a..0000000 --- a/data/color/syntax_template.dat +++ /dev/null @@ -1 +0,0 @@ - //comment
#define RECT_COLOR 0 136 170 255
part { name: "rect";
type: RECT;
description { state: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
color: RECT_COLOR;
}
}
program { name: "mouse_down";
signal: "mouse,down,1";
source: "rect";
action: STATE_SET "default" 0.0;
target: "rect";
}
script {
public flag = 0;
public func() {
if (!get_int(flag)) set_int(flag, 1);
}
} diff --git a/data/themes/default/layout_setting.edc b/data/themes/default/layout_setting.edc index 44e1ba9..4081bb9 100644 --- a/data/themes/default/layout_setting.edc +++ b/data/themes/default/layout_setting.edc @@ -28,8 +28,8 @@ group { name: "setting_layout"; scale: 1; clip_to: "clipper"; description { - min: 600 380; - max: 600 380; + min: 600 350; + max: 600 350; fixed: 1 1; image.normal: "frame_bg.png"; image.border: 10 10 10 10; @@ -104,39 +104,307 @@ group { name: "setting_layout"; color: COL_HI; } } - part { name: "elm.swallow.tabbar"; - type: SWALLOW; - scale: 1; - clip_to: "clipper"; - description { state: "default" 0.0; - min: 0 25; - max: -1 25; - align: 0.5 0.0; + part { name: "img_path_frame"; + type: SPACER; + description { + rel1 {to: "title_frame"; relative: 0 1;} + rel2 {to: "title_frame"; relative: 1 1;} + align: 0.5 0; + min: 0 30; fixed: 0 1; - rel1 {to: "title_frame"; relative: 0.0 1.0; offset: 0 5;} - rel2.to: "title_frame"; } } - part { name: "elm.swallow.content"; + part { name: "snd_path_frame"; + type: SPACER; + scale: 1; + description { + rel1 {to: "img_path_frame"; relative: 0 1;} + rel2 {to: "img_path_frame"; relative: 1 1;} + align: 0.5 0; + min: 0 30; + fixed: 0 1; + } + } + part { name: "fnt_path_frame"; + type: SPACER; + scale: 1; + description { + rel1 {to: "snd_path_frame"; relative: 0 1;} + rel2 {to: "snd_path_frame"; relative: 1 1;} + align: 0.5 0; + min: 0 30; + fixed: 0 1; + } + } + part { name: "dat_path_frame"; + type: SPACER; + scale: 1; + description { + rel1 {to: "fnt_path_frame"; relative: 0 1;} + rel2 {to: "fnt_path_frame"; relative: 1 1;} + align: 0.5 0; + min: 0 30; + fixed: 0 1; + } + } + part { name: "preference_frame"; + type: SPACER; + scale: 1; + description { + rel1 {to: "dat_path_frame"; relative: 0 1; offset: 0 5;} + rel2 {to: "dat_path_frame"; relative: 1 1;} + align: 0.5 0; + min: 0 140; + fixed: 0 1; + } + } + part { name: "img_path_icon"; + type: IMAGE; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0.5; + min: 20 20; + max: 20 20; + fixed: 1 1; + rel1.to: "img_path_frame"; + rel2.to: "img_path_frame"; + image.normal: "folder.png"; + } + } + part { name: "img_path_guide"; + type: TEXT; + scale: 1; + clip_to: "clipper"; + effect: SHADOW BOTTOM; + description { + rel1 {to: "img_path_icon"; relative: 1 0; offset: 5 1;} + rel2 {to: "img_path_icon"; relative: 1 1;} + color: COL_NM; + align: 0 0.5; + fixed: 1 1; + text { + font: FN; + text: "Image Paths:"; + size: 11; + align: 0 0.5; + min: 1 0; + ellipsis: -1; + } + } + } + part { name: "elm.swallow.img_path_entry"; type: SWALLOW; scale: 1; clip_to: "clipper"; - description { state: "default" 0.0; - rel1 { - to: "elm.swallow.tabbar"; - relative: 0.0 1.0; + description { + align: 0 0; + fixed: 1 1; + rel1.to_x: "img_path_guide"; + rel1.to_y: "img_path_guide"; + rel1.offset: 5 0; + rel1.relative: 1 0; + rel2.to: "img_path_frame"; + } + } + part { name: "snd_path_icon"; + type: IMAGE; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0.5; + min: 20 20; + max: 20 20; + fixed: 1 1; + rel1.to: "snd_path_frame"; + rel2.to: "snd_path_frame"; + image.normal: "folder.png"; + } + } + part { name: "snd_path_guide"; + type: TEXT; + effect: SHADOW BOTTOM; + scale: 1; + clip_to: "clipper"; + description { + rel1 {to: "snd_path_icon"; relative: 1 0; offset: 5 1;} + rel2 {to: "snd_path_icon"; relative: 1 1;} + color: COL_NM; + align: 0 0.5; + fixed: 1 1; + text { + font: FN; + text: "Sound Paths:"; + size: 11; + align: 0 0.5; + min: 1 0; + ellipsis: -1; } - rel2 { - to_x: "base_frame"; - to_y: "elm.swallow.reset_btn"; - relative: 1.0 0.0; - offset: -1 -11; + } + } + part { name: "elm.swallow.snd_path_entry"; + type: SWALLOW; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0; + fixed: 1 1; + rel1.to_x: "snd_path_guide"; + rel1.to_y: "snd_path_guide"; + rel1.offset: 5 0; + rel1.relative: 1 0; + rel2.to: "snd_path_frame"; + } + } + part { name: "fnt_path_icon"; + type: IMAGE; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0.5; + min: 20 20; + max: 20 20; + fixed: 1 1; + rel1.to: "fnt_path_frame"; + rel2.to: "fnt_path_frame"; + image.normal: "folder.png"; + } + } + part { name: "fnt_path_guide"; + type: TEXT; + effect: SHADOW BOTTOM; + scale: 1; + clip_to: "clipper"; + description { + rel1 {to: "fnt_path_icon"; relative: 1 0; offset: 5 1;} + rel2 {to: "fnt_path_icon"; relative: 1 1;} + color: COL_NM; + align: 0 0.5; + fixed: 1 1; + text { + font: FN; + text: "Font Paths:"; + size: 11; + align: 0 0.5; + min: 1 0; + ellipsis: -1; } } } + part { name: "elm.swallow.fnt_path_entry"; + type: SWALLOW; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0; + fixed: 1 1; + rel1.to_x: "fnt_path_guide"; + rel1.to_y: "fnt_path_guide"; + rel1.offset: 17 0; + rel1.relative: 1 0; + rel2.to: "fnt_path_frame"; + } + } + part { name: "dat_path_icon"; + type: IMAGE; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0.5; + min: 20 20; + max: 20 20; + fixed: 1 1; + rel1.to: "dat_path_frame"; + rel2.to: "dat_path_frame"; + image.normal: "folder.png"; + } + } + part { name: "dat_path_guide"; + type: TEXT; + effect: SHADOW BOTTOM; + scale: 1; + clip_to: "clipper"; + description { + rel1 {to: "dat_path_icon"; relative: 1 0; offset: 5 1;} + rel2 {to: "dat_path_icon"; relative: 1 1;} + color: COL_NM; + align: 0 0.5; + fixed: 1 1; + text { + font: FN; + text: "Data Paths:"; + size: 11; + align: 0 0.5; + min: 1 0; + ellipsis: -1; + } + } + } + part { name: "elm.swallow.dat_path_entry"; + type: SWALLOW; + scale: 1; + clip_to: "clipper"; + description { + align: 0 0; + fixed: 1 1; + rel1.to_x: "dat_path_guide"; + rel1.to_y: "dat_path_guide"; + rel1.offset: 14 0; + rel1.relative: 1 0; + rel2.to: "dat_path_frame"; + } + } + part { name: "preference_icon"; + type: IMAGE; + scale: 1; + clip_to: "clipper"; + 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; + clip_to: "clipper"; + 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; + clip_to: "clipper"; + description { + rel1.to_x: "preference_guide"; + rel1.to_y: "preference_guide"; + rel1.offset: 0 5; + rel1.relative: 0 1; + rel2.to: "preference_frame"; + } + } part { name: "elm.swallow.apply_btn"; type: SWALLOW; scale: 1; + clip_to: "clipper"; description { align: 1 0.5; min: 50 25; @@ -150,6 +418,7 @@ group { name: "setting_layout"; part { name: "elm.swallow.reset_btn"; type: SWALLOW; scale: 1; + clip_to: "clipper"; description { align: 0.5 1; min: 50 25; @@ -163,6 +432,7 @@ group { name: "setting_layout"; part { name: "elm.swallow.cancel_btn"; type: SWALLOW; scale: 1; + clip_to: "clipper"; description { align: 0 0.5; min: 50 25; @@ -224,373 +494,3 @@ group { name: "setting_layout"; } } } - -group { name: "general_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;} - align: 0.5 0; - min: 0 30; - fixed: 0 1; - } - } - part { name: "snd_path_frame"; - type: SPACER; - scale: 1; - description { - rel1 {to: "img_path_frame"; relative: 0 1;} - rel2 {to: "img_path_frame"; relative: 1 1;} - align: 0.5 0; - min: 0 30; - fixed: 0 1; - } - } - part { name: "fnt_path_frame"; - type: SPACER; - scale: 1; - description { - rel1 {to: "snd_path_frame"; relative: 0 1;} - rel2 {to: "snd_path_frame"; relative: 1 1;} - align: 0.5 0; - min: 0 30; - fixed: 0 1; - } - } - part { name: "dat_path_frame"; - type: SPACER; - scale: 1; - description { - rel1 {to: "fnt_path_frame"; relative: 0 1;} - rel2 {to: "fnt_path_frame"; relative: 1 1;} - align: 0.5 0; - min: 0 30; - fixed: 0 1; - } - } - part { name: "preference_frame"; - type: SPACER; - scale: 1; - description { - rel1 {to: "dat_path_frame"; relative: 0 1; offset: 0 5;} - rel2 {to: "dat_path_frame"; relative: 1 1;} - align: 0.5 0; - min: 0 140; - fixed: 0 1; - } - } - part { name: "img_path_icon"; - type: IMAGE; - scale: 1; - description { - align: 0 0.5; - min: 20 20; - max: 20 20; - fixed: 1 1; - rel1.to: "img_path_frame"; - rel2.to: "img_path_frame"; - image.normal: "folder.png"; - } - } - part { name: "img_path_guide"; - type: TEXT; - scale: 1; - effect: SHADOW BOTTOM; - description { - rel1 {to: "img_path_icon"; relative: 1 0; offset: 5 1;} - rel2 {to: "img_path_icon"; relative: 1 1;} - color: COL_NM; - align: 0 0.5; - fixed: 1 1; - text { - font: FN; - text: "Image Paths:"; - size: 11; - align: 0 0.5; - min: 1 0; - ellipsis: -1; - } - } - } - part { name: "elm.swallow.img_path_entry"; - type: SWALLOW; - scale: 1; - description { - align: 0 0; - fixed: 1 1; - rel1.to_x: "img_path_guide"; - rel1.to_y: "img_path_guide"; - rel1.offset: 5 0; - rel1.relative: 1 0; - rel2.to: "img_path_frame"; - } - } - part { name: "snd_path_icon"; - type: IMAGE; - scale: 1; - description { - align: 0 0.5; - min: 20 20; - max: 20 20; - fixed: 1 1; - rel1.to: "snd_path_frame"; - rel2.to: "snd_path_frame"; - image.normal: "folder.png"; - } - } - part { name: "snd_path_guide"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - description { - rel1 {to: "snd_path_icon"; relative: 1 0; offset: 5 1;} - rel2 {to: "snd_path_icon"; relative: 1 1;} - color: COL_NM; - align: 0 0.5; - fixed: 1 1; - text { - font: FN; - text: "Sound Paths:"; - size: 11; - align: 0 0.5; - min: 1 0; - ellipsis: -1; - } - } - } - part { name: "elm.swallow.snd_path_entry"; - type: SWALLOW; - scale: 1; - description { - align: 0 0; - fixed: 1 1; - rel1.to_x: "snd_path_guide"; - rel1.to_y: "snd_path_guide"; - rel1.offset: 5 0; - rel1.relative: 1 0; - rel2.to: "snd_path_frame"; - } - } - part { name: "fnt_path_icon"; - type: IMAGE; - scale: 1; - description { - align: 0 0.5; - min: 20 20; - max: 20 20; - fixed: 1 1; - rel1.to: "fnt_path_frame"; - rel2.to: "fnt_path_frame"; - image.normal: "folder.png"; - } - } - part { name: "fnt_path_guide"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - description { - rel1 {to: "fnt_path_icon"; relative: 1 0; offset: 5 1;} - rel2 {to: "fnt_path_icon"; relative: 1 1;} - color: COL_NM; - align: 0 0.5; - fixed: 1 1; - text { - font: FN; - text: "Font Paths:"; - size: 11; - align: 0 0.5; - min: 1 0; - ellipsis: -1; - } - } - } - part { name: "elm.swallow.fnt_path_entry"; - type: SWALLOW; - scale: 1; - description { - align: 0 0; - fixed: 1 1; - rel1.to_x: "fnt_path_guide"; - rel1.to_y: "fnt_path_guide"; - rel1.offset: 17 0; - rel1.relative: 1 0; - rel2.to: "fnt_path_frame"; - } - } - part { name: "dat_path_icon"; - type: IMAGE; - scale: 1; - description { - align: 0 0.5; - min: 20 20; - max: 20 20; - fixed: 1 1; - rel1.to: "dat_path_frame"; - rel2.to: "dat_path_frame"; - image.normal: "folder.png"; - } - } - part { name: "dat_path_guide"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - description { - rel1 {to: "dat_path_icon"; relative: 1 0; offset: 5 1;} - rel2 {to: "dat_path_icon"; relative: 1 1;} - color: COL_NM; - align: 0 0.5; - fixed: 1 1; - text { - font: FN; - text: "Data Paths:"; - size: 11; - align: 0 0.5; - min: 1 0; - ellipsis: -1; - } - } - } - part { name: "elm.swallow.dat_path_entry"; - type: SWALLOW; - scale: 1; - description { - align: 0 0; - fixed: 1 1; - rel1.to_x: "dat_path_guide"; - rel1.to_y: "dat_path_guide"; - rel1.offset: 14 0; - rel1.relative: 1 0; - 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"; - } - } - } -} - -group { name: "text_setting_layout"; - parts { - part { name: "base_frame"; - type: SPACER; - scale: 1; - description { - min: 580 265; - max: 580 265; - fixed: 1 1; - } - } - part { name: "text_setting_guide"; - type: TEXT; - scale: 1; - effect: SHADOW BOTTOM; - description { - rel1 {to: "base_frame"; relative: 0 0; offset: 5 0;} - rel2 {to: "base_frame"; relative: 0.5 0;} - color: COL_NM; - min: 0 20; - align: 0 0; - fixed: 0 1; - text { - font: FN; - text: "Double click a keyword to change its color :"; - size: 11; - align: 0 0.5; - min: 1 0; - ellipsis: -1; - } - } - } - part { name: "text_setting_frame"; - type: SPACER; - scale: 1; - description { - rel1 {to_x: "base_frame"; to_y: "text_setting_guide"; relative: 0 1;} - rel2 {to: "base_frame"; relative: 0.5 0;} - align: 0.5 0; - min: 0 245; - fixed: 0 1; - } - } - part { name: "elm.swallow.text_setting"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - fixed: 0 1; - rel1.to: "text_setting_frame"; - rel2.to: "text_setting_frame"; - } - } - part { name: "preference_frame"; - type: SPACER; - scale: 1; - description { - rel1 {to: "base_frame"; relative: 0.5 0; offset: 5 0;} - rel2 {to: "base_frame"; relative: 1 0;} - align: 0.5 0; - min: 0 90; - fixed: 0 1; - } - } - part { name: "elm.swallow.preference"; - type: SWALLOW; - scale: 1; - description { - rel1.to: "preference_frame"; - rel2.to: "preference_frame"; - } - } - } -} diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 2a27e4f..711d685 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -22,7 +22,6 @@ enventor_SOURCES = \ goto.c \ newfile.c \ setting.c \ - text_setting.c \ globals.c \ live_edit.c \ console.c \ diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 75f2edb..27dd93d 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -14,6 +14,8 @@ typedef struct config_s Eina_Strbuf *edc_fnt_path_buf; //pre-stored font paths for edc compile. Eina_Strbuf *edc_dat_path_buf; //pre-stored data paths for edc compile. + Eina_List *syntax_color_list; + float font_scale; double view_scale; double console_size; @@ -36,6 +38,7 @@ typedef struct config_s static config_data *g_cd = NULL; static Eet_Data_Descriptor *edd_base = NULL; +static Eet_Data_Descriptor *edd_color = NULL; static void config_edj_path_update(config_data *cd) @@ -186,6 +189,13 @@ config_load(void) else cd->edc_dat_path_buf = config_paths_buf_set(cd->edc_dat_path_list, " -dd "); + if (!cd->syntax_color_list) + { + Enventor_Syntax_Color_Type color_type = ENVENTOR_SYNTAX_COLOR_STRING; + for (; color_type < ENVENTOR_SYNTAX_COLOR_LAST; color_type++) + cd->syntax_color_list = eina_list_append(cd->syntax_color_list, NULL); + } + return cd; } @@ -205,6 +215,8 @@ eddc_init(void) "edc_fnt_path_list", edc_fnt_path_list); EET_DATA_DESCRIPTOR_ADD_LIST_STRING(edd_base, config_data, "edc_dat_path_list", edc_dat_path_list); + EET_DATA_DESCRIPTOR_ADD_LIST_STRING(edd_base, config_data, + "syntax_color_list", syntax_color_list); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "font_scale", font_scale, EET_T_FLOAT); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "view_scale", @@ -279,6 +291,8 @@ config_term(void) EINA_LIST_FREE(cd->edc_fnt_path_list, str) eina_stringshare_del(str); EINA_LIST_FREE(cd->edc_dat_path_list, str) eina_stringshare_del(str); + EINA_LIST_FREE(cd->syntax_color_list, str) eina_stringshare_del(str); + if (cd->edc_img_path_buf) eina_strbuf_free(cd->edc_img_path_buf); if (cd->edc_snd_path_buf) eina_strbuf_free(cd->edc_snd_path_buf); if (cd->edc_fnt_path_buf) eina_strbuf_free(cd->edc_fnt_path_buf); @@ -537,6 +551,28 @@ config_edj_path_get(void) return cd->edj_path; } +void +config_syntax_color_set(Enventor_Syntax_Color_Type color_type, + const char *val) +{ + config_data *cd = g_cd; + Eina_List *target_list; + + target_list = eina_list_nth_list(cd->syntax_color_list, color_type); + if (!target_list) return; + + eina_stringshare_del(eina_list_data_get(target_list)); + if (val) + eina_list_data_set(target_list, eina_stringshare_add(val)); +} + +const char * +config_syntax_color_get(Enventor_Syntax_Color_Type color_type) +{ + config_data *cd = g_cd; + return (const char *) eina_list_nth(cd->syntax_color_list, color_type); +} + Eina_Bool config_linenumber_get(void) { diff --git a/src/bin/main.c b/src/bin/main.c index 1b68e55..82b8a37 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -109,6 +109,56 @@ template_insert_patch(app_data *ad, const char *key) return ECORE_CALLBACK_DONE; } +static void +syntax_color_update(Evas_Object *enventor) +{ + const char *config_color; + const char *enventor_color; + Eina_Bool color_changed = EINA_FALSE; + Enventor_Syntax_Color_Type color_type; + + color_type = ENVENTOR_SYNTAX_COLOR_STRING; + for (; color_type < ENVENTOR_SYNTAX_COLOR_LAST; color_type++) + { + config_color = config_syntax_color_get(color_type); + if (config_color) + { + enventor_color = enventor_object_syntax_color_get(enventor, + color_type); + if (strcmp(config_color, enventor_color)) + { + enventor_object_syntax_color_set(enventor, color_type, + config_color); + color_changed = EINA_TRUE; + } + } + } + + if (color_changed) + enventor_object_syntax_color_full_apply(enventor, EINA_TRUE); +} + +static void +syntax_color_init(Evas_Object *enventor) +{ + const char *config_color; + const char *enventor_color; + Eina_Bool color_changed = EINA_FALSE; + Enventor_Syntax_Color_Type color_type; + + color_type = ENVENTOR_SYNTAX_COLOR_STRING; + for (; color_type < ENVENTOR_SYNTAX_COLOR_LAST; color_type++) + { + config_color = config_syntax_color_get(color_type); + if (!config_color) + { + enventor_color = enventor_object_syntax_color_get(enventor, + color_type); + config_syntax_color_set(color_type, enventor_color); + } + } +} + static void config_update_cb(void *data) { @@ -133,6 +183,8 @@ config_update_cb(void *data) enventor_object_part_highlight_set(enventor, config_part_highlight_get()); enventor_object_live_view_scale_set(enventor, config_view_scale_get()); + syntax_color_update(enventor); + Evas_Coord w, h; if (config_view_size_configurable_get()) config_view_size_get(&w, &h); @@ -840,6 +892,10 @@ init(app_data *ad, int argc, char **argv) template_show(ad); + //Initialize syntax color. + syntax_color_init(ad->enventor); + syntax_color_update(ad->enventor); + return EINA_TRUE; } diff --git a/src/bin/setting.c b/src/bin/setting.c index 804c000..3ef0339 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -1,25 +1,26 @@ #include "common.h" -#include "text_setting.h" struct setting_s { Evas_Object *setting_layout; - - Evas_Object *general_layout; - Evas_Object *img_path_entry; Evas_Object *snd_path_entry; Evas_Object *fnt_path_entry; Evas_Object *dat_path_entry; + Evas_Object *slider_font; Evas_Object *slider_view; + Evas_Object *toggle_tools; + Evas_Object *toggle_stats; + Evas_Object *toggle_linenum; + Evas_Object *toggle_highlight; + Evas_Object *toggle_swallow; + Evas_Object *toggle_indent; + Evas_Object *toggle_autocomp; + Evas_Object *view_size_w_entry; Evas_Object *view_size_h_entry; Evas_Object *toggle_view_size; - Evas_Object *toggle_highlight; - Evas_Object *toggle_swallow; - Evas_Object *toggle_stats; - Evas_Object *toggle_tools; }; typedef struct setting_s setting_data; @@ -88,9 +89,6 @@ setting_dismiss_done_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *source EINA_UNUSED) { setting_data *sd = data; - - text_setting_term(); - evas_object_del(sd->setting_layout); sd->setting_layout = NULL; menu_deactivate_request(); @@ -109,20 +107,21 @@ setting_apply_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, config_edc_snd_path_set(elm_object_text_get(sd->snd_path_entry)); config_edc_fnt_path_set(elm_object_text_get(sd->fnt_path_entry)); config_edc_dat_path_set(elm_object_text_get(sd->dat_path_entry)); + config_font_scale_set((float) elm_slider_value_get(sd->slider_font)); config_view_scale_set(elm_slider_value_get(sd->slider_view)); config_tools_set(elm_check_state_get(sd->toggle_tools)); config_stats_bar_set(elm_check_state_get(sd->toggle_stats)); + config_linenumber_set(elm_check_state_get(sd->toggle_linenum)); config_part_highlight_set(elm_check_state_get(sd->toggle_highlight)); config_dummy_swallow_set(elm_check_state_get(sd->toggle_swallow)); + config_auto_indent_set(elm_check_state_get(sd->toggle_indent)); + config_auto_complete_set(elm_check_state_get(sd->toggle_autocomp)); config_view_size_configurable_set(elm_check_state_get(sd->toggle_view_size)); - text_setting_config_set(); Evas_Coord w = (Evas_Coord)atoi(elm_entry_entry_get(sd->view_size_w_entry)); Evas_Coord h = (Evas_Coord)atoi(elm_entry_entry_get(sd->view_size_h_entry)); config_view_size_set(w, h); - text_setting_syntax_color_save(); - config_apply(); setting_close(); @@ -150,19 +149,16 @@ setting_reset_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, dat_path_entry_update(sd->dat_path_entry, (Eina_List *)config_edc_dat_path_list_get()); + elm_slider_value_set(sd->slider_font, (double) config_font_scale_get()); elm_slider_value_set(sd->slider_view, (double) config_view_scale_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_linenum, config_linenumber_get()); elm_check_state_set(sd->toggle_highlight, config_part_highlight_get()); elm_check_state_set(sd->toggle_swallow, config_dummy_swallow_get()); - - 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(); + elm_check_state_set(sd->toggle_indent, config_auto_indent_get()); + elm_check_state_set(sd->toggle_autocomp, config_auto_complete_get()); } static Evas_Object * @@ -201,17 +197,33 @@ toggle_view_size_changed_cb(void *data, Evas_Object *obj, elm_object_disabled_set(sd->view_size_h_entry, !toggle_on); } -static Evas_Object * -general_layout_create(setting_data *sd, Evas_Object *parent) +void +setting_open(void) { static Elm_Entry_Filter_Accept_Set digits_filter_data; static Elm_Entry_Filter_Limit_Size limit_filter_data; + setting_data *sd = g_sd; + if (sd) return; + + sd = calloc(1, sizeof(setting_data)); + if (!sd) + { + EINA_LOG_ERR("Failed to allocate Memory!"); + return; + } + g_sd = sd; + + search_close(); + goto_close(); //Layout - Evas_Object *layout = elm_layout_add(parent); - elm_layout_file_set(layout, EDJE_PATH, "general_layout"); + Evas_Object *layout = elm_layout_add(base_win_get()); + elm_layout_file_set(layout, EDJE_PATH, "setting_layout"); + elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "", + setting_dismiss_done_cb, sd); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(layout); + base_win_resize_object_add(layout); //Image Path Entry Evas_Object *img_path_entry = entry_create(layout); @@ -247,14 +259,91 @@ general_layout_create(setting_data *sd, Evas_Object *parent) //Box Evas_Object *box = elm_box_add(scroller); + elm_box_horizontal_set(box, EINA_TRUE); 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); + //Left Box + Evas_Object *box2 = elm_box_add(box); + elm_box_padding_set(box2, 1, 1); + 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); + + Evas_Object *box3; + + //Font Size + box3 = elm_box_add(box2); + elm_box_horizontal_set(box3, EINA_TRUE); + evas_object_size_hint_weight_set(box3, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(box3, EVAS_HINT_FILL, 0); + evas_object_show(box3); + + elm_box_pack_end(box2, box3); + + //Font Size (Slider) + Evas_Object *slider_font = elm_slider_add(box3); + evas_object_size_hint_weight_set(slider_font, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(slider_font, 0, 0); + elm_slider_span_size_set(slider_font, 190); + elm_slider_indicator_show_set(slider_font, EINA_FALSE); + elm_slider_unit_format_set(slider_font, "%1.1fx"); + elm_slider_min_max_set(slider_font, MIN_FONT_SCALE, MAX_FONT_SCALE); + elm_slider_value_set(slider_font, (double) config_font_scale_get()); + elm_object_text_set(slider_font, "Font Size"); + evas_object_show(slider_font); + + elm_box_pack_end(box3, slider_font); + + //Toggle (Line Number) + Evas_Object *toggle_linenum = toggle_create(box2, "Line Number", + config_linenumber_get()); + elm_box_pack_end(box2, toggle_linenum); + + //Toggle (Auto Indentation) + Evas_Object *toggle_indent = toggle_create(box2, "Auto Indentation", + config_auto_indent_get()); + elm_box_pack_end(box2, toggle_indent); + + //Toggle (Auto Complete) + Evas_Object *toggle_autocomp = toggle_create(box2, "Auto Completion", + config_auto_complete_get()); + elm_box_pack_end(box2, toggle_autocomp); + + //Toggle (Tools) + Evas_Object *toggle_tools = toggle_create(box2, "Tools", + config_tools_get()); + elm_box_pack_end(box2, toggle_tools); + + Evas_Object *separator = elm_separator_add(box); + evas_object_show(separator); + elm_box_pack_end(box, separator); + + //Right Box + box2 = elm_box_add(box); + elm_box_padding_set(box2, 1, 1); + evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0); + evas_object_show(box2); + + elm_box_pack_end(box, box2); + + //View Scale + box3 = elm_box_add(box2); + elm_box_padding_set(box2, 1, 1); + elm_box_horizontal_set(box3, EINA_TRUE); + evas_object_size_hint_weight_set(box3, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(box3, EVAS_HINT_FILL, 0); + evas_object_show(box3); + + elm_box_pack_end(box2, box3); + //View Scale (Slider) - Evas_Object *slider_view = elm_slider_add(box); + Evas_Object *slider_view = elm_slider_add(box2); evas_object_size_hint_weight_set(slider_view, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(slider_view, 0, 0); elm_slider_span_size_set(slider_view, 190); @@ -265,19 +354,10 @@ general_layout_create(setting_data *sd, Evas_Object *parent) elm_object_text_set(slider_view, "View Scale"); evas_object_show(slider_view); - elm_box_pack_end(box, slider_view); + elm_box_pack_end(box3, slider_view); //View Size - Evas_Object *box2 = elm_box_add(box); - elm_box_horizontal_set(box2, EINA_TRUE); - 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); - - //Box for View Size Entries - Evas_Object *box3 = elm_box_add(box2); + box3 = elm_box_add(box2); elm_box_horizontal_set(box3, EINA_TRUE); evas_object_size_hint_weight_set(box3, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(box3, EVAS_HINT_FILL, 0); @@ -286,7 +366,7 @@ general_layout_create(setting_data *sd, Evas_Object *parent) elm_box_pack_end(box2, box3); //Entry (View Size) - Evas_Object *entry_view_size = entry_create(box2); + Evas_Object *entry_view_size = entry_create(box3); elm_object_text_set(entry_view_size, "View Size"); elm_entry_scrollable_set(entry_view_size, EINA_FALSE); elm_entry_editable_set(entry_view_size, EINA_FALSE); @@ -345,126 +425,26 @@ general_layout_create(setting_data *sd, Evas_Object *parent) //Toggle (View Size) Evas_Object *toggle_view_size; - toggle_view_size = toggle_create(box2, NULL, + toggle_view_size = toggle_create(box3, NULL, config_view_size_configurable_get()); evas_object_smart_callback_add(toggle_view_size, "changed", toggle_view_size_changed_cb, sd); - elm_box_pack_end(box2, toggle_view_size); + elm_box_pack_end(box3, toggle_view_size); //Toggle (Part Highlighting) - Evas_Object *toggle_highlight = toggle_create(box, "Part Highlighting", - config_part_highlight_get()); - elm_box_pack_end(box, toggle_highlight); + Evas_Object *toggle_highlight = toggle_create(box2, "Part Highlighting", + config_part_highlight_get()); + elm_box_pack_end(box2, toggle_highlight); //Toggle (Dummy Swallow) - Evas_Object *toggle_swallow = toggle_create(box, "Dummy Swallow", - config_dummy_swallow_get()); - elm_box_pack_end(box, toggle_swallow); + Evas_Object *toggle_swallow = toggle_create(box2, "Dummy Swallow", + config_dummy_swallow_get()); + elm_box_pack_end(box2, toggle_swallow); //Toggle (Status) - Evas_Object *toggle_stats = toggle_create(box, "Status", + Evas_Object *toggle_stats = toggle_create(box2, "Status", config_stats_bar_get()); - elm_box_pack_end(box, toggle_stats); - - //Toggle (Tools) - Evas_Object *toggle_tools = toggle_create(box, "Tools", - config_tools_get()); - elm_box_pack_end(box, toggle_tools); - - 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->slider_view = slider_view; - sd->view_size_w_entry = entry_view_size_w; - sd->view_size_h_entry = entry_view_size_h; - sd->toggle_view_size = toggle_view_size; - sd->toggle_highlight = toggle_highlight; - sd->toggle_swallow = toggle_swallow; - sd->toggle_stats = toggle_stats; - sd->toggle_tools = toggle_tools; - - return layout; -} - -static void -general_tab_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - setting_data *sd = data; - Evas_Object *content; - - if (!sd->setting_layout) return; - - content = elm_object_part_content_get(sd->setting_layout, - "elm.swallow.content"); - - if (content == sd->general_layout) return; - - elm_object_part_content_unset(sd->setting_layout, "elm.swallow.content"); - evas_object_hide(content); - - elm_object_part_content_set(sd->setting_layout, "elm.swallow.content", - sd->general_layout); - elm_object_focus_set(sd->img_path_entry, EINA_TRUE); -} - -static void -text_setting_tab_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - setting_data *sd = data; - text_setting_layout_show(sd->setting_layout); -} - -void -setting_open(void) -{ - setting_data *sd = g_sd; - if (sd) return; - - sd = calloc(1, sizeof(setting_data)); - if (!sd) - { - EINA_LOG_ERR("Failed to allocate Memory!"); - return; - } - g_sd = sd; - - text_setting_init(); - - search_close(); - goto_close(); - - //Layout - Evas_Object *layout = elm_layout_add(base_win_get()); - elm_layout_file_set(layout, EDJE_PATH, "setting_layout"); - elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "", - setting_dismiss_done_cb, sd); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(layout); - base_win_resize_object_add(layout); - - //Tabbar - Evas_Object *tabbar = elm_toolbar_add(layout); - elm_toolbar_shrink_mode_set(tabbar, ELM_TOOLBAR_SHRINK_EXPAND); - elm_toolbar_select_mode_set(tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS); - evas_object_size_hint_weight_set(tabbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - elm_toolbar_item_append(tabbar, NULL, "General", general_tab_cb, sd); - elm_toolbar_item_append(tabbar, NULL, "Text Editor", text_setting_tab_cb, sd); - - elm_object_part_content_set(layout, "elm.swallow.tabbar", tabbar); - - //General layout - Evas_Object *general_layout = general_layout_create(sd, layout); - elm_object_part_content_set(layout, "elm.swallow.content", general_layout); - - //Text setting layout - Evas_Object *text_setting_layout; - text_setting_layout = text_setting_layout_create(layout); - evas_object_hide(text_setting_layout); + elm_box_pack_end(box2, toggle_stats); Evas_Object *btn; @@ -487,6 +467,23 @@ setting_open(void) elm_object_part_content_set(layout, "elm.swallow.cancel_btn", btn); sd->setting_layout = layout; + sd->setting_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->slider_font = slider_font; + sd->slider_view = slider_view; + sd->toggle_tools = toggle_tools; + sd->toggle_stats = toggle_stats; + sd->toggle_linenum = toggle_linenum; + sd->toggle_highlight = toggle_highlight; + sd->toggle_swallow = toggle_swallow; + sd->toggle_indent = toggle_indent; + sd->toggle_autocomp = toggle_autocomp; + sd->view_size_w_entry = entry_view_size_w; + sd->view_size_h_entry = entry_view_size_h; + sd->toggle_view_size = toggle_view_size; menu_activate_request(); } diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c deleted file mode 100644 index 84369e0..0000000 --- a/src/bin/text_setting.c +++ /dev/null @@ -1,853 +0,0 @@ -#include "common.h" -#include "text_setting.h" - -#define COLOR_KEYWORD_MAX_CNT 76 -#define SYNTAX_TEMPLATE_MAX_LEN 3072 -#define SYNTAX_TEMPLATE_FONT_SIZE 10 -#define SYNTAX_COLOR_LEN 7 - -static char color_val[ENVENTOR_SYNTAX_COLOR_LAST][SYNTAX_COLOR_LEN] = {0}; - -static int color_type_list[COLOR_KEYWORD_MAX_CNT] = -{ - ENVENTOR_SYNTAX_COLOR_COMMENT, ENVENTOR_SYNTAX_COLOR_MACRO, - ENVENTOR_SYNTAX_COLOR_MAIN_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_STRING, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_CONSTANT, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_MAIN_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_STRING, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_MAIN_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_MAIN_KEYWORD, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_MACRO, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_MAIN_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_STRING, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_STRING, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_STRING, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_CONSTANT, ENVENTOR_SYNTAX_COLOR_STRING, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_STRING, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SUB_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SCRIPT_KEYWORD, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SCRIPT_KEYWORD, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SCRIPT_KEYWORD, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SCRIPT_FUNC, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SCRIPT_FUNC, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL, - ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL -}; - -static text_setting_data *g_tsd = NULL; - -static void -syntax_template_set(char *syntax_template_str, char *syntax_template_format, - double font_scale) -{ - if (!syntax_template_str || !syntax_template_format) return; - - snprintf(syntax_template_str, SYNTAX_TEMPLATE_MAX_LEN, syntax_template_format, - (int) ((SYNTAX_TEMPLATE_FONT_SIZE * font_scale) + 0.5), - color_val[color_type_list[0]], color_val[color_type_list[1]], - color_val[color_type_list[2]], color_val[color_type_list[3]], - color_val[color_type_list[4]], color_val[color_type_list[5]], - color_val[color_type_list[6]], color_val[color_type_list[7]], - color_val[color_type_list[8]], color_val[color_type_list[9]], - color_val[color_type_list[10]], color_val[color_type_list[11]], - color_val[color_type_list[12]], color_val[color_type_list[13]], - color_val[color_type_list[14]], color_val[color_type_list[15]], - color_val[color_type_list[16]], color_val[color_type_list[17]], - color_val[color_type_list[18]], color_val[color_type_list[19]], - color_val[color_type_list[20]], color_val[color_type_list[21]], - color_val[color_type_list[22]], color_val[color_type_list[23]], - color_val[color_type_list[24]], color_val[color_type_list[25]], - color_val[color_type_list[26]], color_val[color_type_list[27]], - color_val[color_type_list[28]], color_val[color_type_list[29]], - color_val[color_type_list[30]], color_val[color_type_list[31]], - color_val[color_type_list[32]], color_val[color_type_list[33]], - color_val[color_type_list[34]], color_val[color_type_list[35]], - color_val[color_type_list[36]], color_val[color_type_list[37]], - color_val[color_type_list[38]], color_val[color_type_list[39]], - color_val[color_type_list[40]], color_val[color_type_list[41]], - color_val[color_type_list[42]], color_val[color_type_list[43]], - color_val[color_type_list[44]], color_val[color_type_list[45]], - color_val[color_type_list[46]], color_val[color_type_list[47]], - color_val[color_type_list[48]], color_val[color_type_list[49]], - color_val[color_type_list[50]], color_val[color_type_list[51]], - color_val[color_type_list[52]], color_val[color_type_list[53]], - color_val[color_type_list[54]], color_val[color_type_list[55]], - color_val[color_type_list[56]], color_val[color_type_list[57]], - color_val[color_type_list[58]], color_val[color_type_list[59]], - color_val[color_type_list[60]], color_val[color_type_list[61]], - color_val[color_type_list[62]], color_val[color_type_list[63]], - color_val[color_type_list[64]], color_val[color_type_list[65]], - color_val[color_type_list[66]], color_val[color_type_list[67]], - color_val[color_type_list[68]], color_val[color_type_list[69]], - color_val[color_type_list[70]], color_val[color_type_list[71]], - color_val[color_type_list[72]], color_val[color_type_list[73]], - color_val[color_type_list[74]], color_val[color_type_list[75]]); -} - -static void -syntax_template_apply(void) -{ - text_setting_data *tsd = g_tsd; - Evas_Object *layout = tsd->text_setting_layout; - if (!layout) return; - - Evas_Object *entry = elm_object_part_content_get(layout, - "elm.swallow.text_setting"); - syntax_template_set(tsd->syntax_template_str, tsd->syntax_template_format, - tsd->font_scale); - elm_entry_entry_set(entry, tsd->syntax_template_str); -} - -static void -text_setting_syntax_color_load(void) -{ - const char *color; - Enventor_Syntax_Color_Type color_type = ENVENTOR_SYNTAX_COLOR_STRING; - for (; color_type < ENVENTOR_SYNTAX_COLOR_LAST; color_type++) - { - color = config_syntax_color_get(color_type); - if (color) strncpy(color_val[color_type], color, 6); - else strncpy(color_val[color_type], "FFFFFF", 6); - } -} - -void -text_setting_syntax_color_reset(void) -{ - text_setting_syntax_color_load(); - - syntax_template_apply(); -} - -void -text_setting_syntax_color_save(void) -{ - Enventor_Syntax_Color_Type color_type = ENVENTOR_SYNTAX_COLOR_STRING; - for (; color_type < ENVENTOR_SYNTAX_COLOR_LAST; color_type++) - { - config_syntax_color_set(color_type, color_val[color_type]); - } -} - -static void -text_setting_syntax_color_update(Evas_Object *ctxpopup, - color_keyword *selected_color_keyword) -{ - Evas_Object *box = elm_object_content_get(ctxpopup); - Evas_Object *layout; - Evas_Object *slider; - Eina_List *box_children = elm_box_children_get(box); - Eina_List *l; - char color[SYNTAX_COLOR_LEN] = {0}; - char buf[3]; - - if (eina_list_count(box_children) == 0) return; - - //Extract color value from sliders - EINA_LIST_FOREACH(box_children, l, layout) - { - slider = elm_object_part_content_get(layout, - "elm.swallow.slider"); - snprintf(buf, sizeof(buf), "%02X", - (int) roundf(elm_slider_value_get(slider))); - strcat(color, buf); - } - color[SYNTAX_COLOR_LEN - 1] = '\0'; - - //Set the extracted color value to the selected color keyword - strncpy(color_val[selected_color_keyword->color_type], color, 7); -} - -static void -color_btn_up_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - Evas_Object *layout = data; - Evas_Object *slider = elm_object_part_content_get(layout, - "elm.swallow.slider"); - Evas_Object *entry = elm_object_part_content_get(layout, - "elm.swallow.entry"); - double value = elm_slider_value_get(slider); - char buf[128]; - - value += 1; - - snprintf(buf, sizeof(buf), "%1.0f", value); - elm_object_text_set(entry, buf); -} - -static void -color_btn_down_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - Evas_Object *layout = data; - Evas_Object *slider = elm_object_part_content_get(layout, - "elm.swallow.slider"); - Evas_Object *entry = elm_object_part_content_get(layout, - "elm.swallow.entry"); - double value = elm_slider_value_get(slider); - char buf[128]; - - value -= 1; - - snprintf(buf, sizeof(buf), "%1.0f", value); - elm_object_text_set(entry, buf); -} - -static void -color_ctxpopup_dismiss_cb(void *data, Evas_Object *obj, - void *event_info EINA_UNUSED) -{ - evas_object_del(obj); -} - -static void -color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, - Evas_Object *obj, void *event_info EINA_UNUSED) -{ - text_setting_data *tsd = g_tsd; - color_keyword *selected_color_keyword; - selected_color_keyword = evas_object_data_get(obj, "color_keyword"); - - elm_object_disabled_set(tsd->text_setting_layout, EINA_FALSE); - elm_object_focus_set(tsd->slider_font, EINA_TRUE); - - text_setting_syntax_color_update(obj, selected_color_keyword); - syntax_template_apply(); - - elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_SHOW); - - tsd->color_ctxpopup = NULL; -} - -static void -color_slider_changed_cb(void *data, Evas_Object *obj, - void *event_info EINA_UNUSED) -{ - Evas_Object *entry = data; - double val = elm_slider_value_get(obj); - char buf[128]; - - snprintf(buf, sizeof(buf), "%1.0f", val); - elm_object_text_set(entry, buf); - - 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(); -} - -static void -color_entry_changed_cb(void *data, Evas_Object *obj, - void *event_info EINA_UNUSED) -{ - Evas_Object *slider = data; - double text_val, val, min_val, max_val; - char buf[128]; - - text_val = atof(elm_object_text_get(obj)); - elm_slider_min_max_get(slider, &min_val, &max_val); - - if (text_val < min_val) val = min_val; - else if (text_val > max_val) val = max_val; - else val = text_val; - - if (val != text_val) - { - snprintf(buf, sizeof(buf), "%1.0f", val); - elm_object_text_set(obj, buf); - } - else - elm_slider_value_set(slider, val); -} - -static Evas_Object * -color_slider_layout_create(Evas_Object *parent, Evas_Object *ctxpopup, - const char *type, double slider_val) -{ - //Layout - Evas_Object *layout = elm_layout_add(parent); - elm_layout_file_set(layout, EDJE_PATH, "slider_layout"); - evas_object_show(layout); - - //Type - if (type) - elm_object_part_text_set(layout, "elm.text.type", type); - - //Slider - Evas_Object *slider = elm_slider_add(layout); - evas_object_data_set(slider, "ctxpopup", ctxpopup); - elm_slider_span_size_set(slider, 120); - elm_slider_indicator_show_set(slider, EINA_FALSE); - elm_slider_min_max_set(slider, 0, 255); - elm_slider_value_set(slider, slider_val); - - char slider_min[16]; - char slider_max[16]; - snprintf(slider_min, sizeof(slider_min), "%1.0f", 0.0); - snprintf(slider_max, sizeof(slider_max), "%1.0f", 255.0); - elm_object_part_text_set(layout, "elm.text.slider_min", slider_min); - elm_object_part_text_set(layout, "elm.text.slider_max", slider_max); - elm_object_part_content_set(layout, "elm.swallow.slider", slider); - - //Entry - char buf[128]; - Evas_Object *entry = elm_entry_add(layout); - elm_entry_context_menu_disabled_set(entry, EINA_TRUE); - elm_entry_single_line_set(entry, EINA_TRUE); - evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - snprintf(buf, sizeof(buf), "%1.0f", slider_val); - elm_object_text_set(entry, buf); - elm_object_part_content_set(layout, "elm.swallow.entry", entry); - - Elm_Entry_Filter_Accept_Set digits_filter_data; - Elm_Entry_Filter_Limit_Size limit_filter_data; - digits_filter_data.accepted = "0123456789"; - digits_filter_data.rejected = NULL; - limit_filter_data.max_char_count = 4; - elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, - &digits_filter_data); - elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, - &limit_filter_data); - - evas_object_smart_callback_add(slider, "changed", color_slider_changed_cb, - entry); - evas_object_smart_callback_add(entry, "changed", color_entry_changed_cb, - slider); - - Evas_Object *btn; - Evas_Object *img; - - //Up Button - btn = elm_button_add(layout); - evas_object_smart_callback_add(btn, "clicked", color_btn_up_cb, layout); - elm_object_part_content_set(layout, "elm.swallow.up", btn); - - //Up Image - img = elm_image_add(btn); - elm_image_file_set(img, EDJE_PATH, "up"); - elm_object_content_set(btn, img); - - //Down Button - btn = elm_button_add(layout); - evas_object_smart_callback_add(btn, "clicked", color_btn_down_cb, layout); - elm_object_part_content_set(layout, "elm.swallow.down", btn); - - //Down Image - img = elm_image_add(btn); - elm_image_file_set(img, EDJE_PATH, "down"); - elm_object_content_set(btn, img); - - return layout; -} - -static int -convert_hexadecimal_to_decimal(char *hexadecimal) -{ - int i; - int len; - int decimal = 0; - char digit; - - if (!hexadecimal) return 0; - - len = strlen(hexadecimal); - if (len == 0) return 0; - - for (i = 0; i < len; i++) - { - digit = hexadecimal[i]; - - if ((digit >= 'a') && (digit <= 'f')) - decimal += ((digit - 'a') + 10) * pow(16, (len - i - 1)); - else if ((digit >= 'A') && (digit <= 'F')) - decimal += ((digit - 'A') + 10) * pow(16, (len - i - 1)); - else if ((digit >= '0') && (digit <= '9')) - decimal += atoi(&digit) * pow(16, (len - i - 1)); - } - return decimal; -} - -static void -color_slider_layout_set(Evas_Object *ctxpopup) -{ - text_setting_data *tsd = g_tsd; - Eina_Array *type_array; - Eina_Stringshare *type; - Eina_Array_Iterator itr; - unsigned int i; - const char *color; - char color_rgb_str[3][3] = {0}; - int color_rgb_val[3]; - color_keyword *selected_color_keyword; - selected_color_keyword = evas_object_data_get(ctxpopup, "color_keyword"); - - //Box - Evas_Object *box = elm_box_add(ctxpopup); - 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); - - //Layout - Evas_Object *layout; - - type_array = eina_array_new(3); - eina_array_push(type_array, eina_stringshare_add("R")); - eina_array_push(type_array, eina_stringshare_add("G")); - eina_array_push(type_array, eina_stringshare_add("B")); - - color = config_syntax_color_get(selected_color_keyword->color_type); - - for (i = 0; i < 3; i++) - { - strncpy(color_rgb_str[i], &color[i * 2], 2); - color_rgb_val[i] = convert_hexadecimal_to_decimal(color_rgb_str[i]); - } - - EINA_ARRAY_ITER_NEXT(type_array, i, type, itr) - { - layout = color_slider_layout_create(box, ctxpopup, type, - color_rgb_val[i]); - if (i % 2) elm_object_signal_emit(layout, "odd,item,set", ""); - elm_box_pack_end(box, layout); - } - - while (eina_array_count(type_array)) - eina_stringshare_del(eina_array_pop(type_array)); - eina_array_free(type_array); - - elm_object_content_set(ctxpopup, box); -} - -static Evas_Object * -color_ctxpopup_create(Evas_Object *parent, - color_keyword *selected_color_keyword) -{ - Evas_Object *ctxpopup = elm_ctxpopup_add(parent); - if (!ctxpopup) return NULL; - - elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_NONE); - - elm_object_style_set(ctxpopup, "enventor"); - evas_object_data_set(ctxpopup, "color_keyword", selected_color_keyword); - elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_RIGHT, - ELM_CTXPOPUP_DIRECTION_LEFT, - ELM_CTXPOPUP_DIRECTION_UP, - ELM_CTXPOPUP_DIRECTION_DOWN); - color_slider_layout_set(ctxpopup); - - evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, - color_ctxpopup_del_cb, NULL); - evas_object_smart_callback_add(ctxpopup, "dismissed", - color_ctxpopup_dismiss_cb, NULL); - return ctxpopup; -} - -static color_keyword * -color_keyword_list_create(char *syntax_template_str) -{ - char *cur = syntax_template_str; - char *next = NULL; - int i; - - color_keyword *color_keyword_list = calloc(COLOR_KEYWORD_MAX_CNT, - sizeof(color_keyword)); - if (!color_keyword_list) - { - EINA_LOG_ERR("Failed to allocate Memory!"); - return NULL; - } - - for (i = 0; i < COLOR_KEYWORD_MAX_CNT; i++) - { - next = strstr(cur, "pos_begin = cur - syntax_template_str; - - next = strstr(cur, ""); - cur = next - 1; //Move position to last character of keyword - (color_keyword_list + i)->pos_end = cur - syntax_template_str; - - (color_keyword_list + i)->color_type = color_type_list[i]; - } - - return color_keyword_list; -} - -static char * -syntax_template_format_create(void) -{ - text_setting_data *tsd = g_tsd; - - text_setting_syntax_color_load(); - - char file_path[PATH_MAX]; - snprintf(file_path, sizeof(file_path), "%s/color/syntax_template.dat", - elm_app_data_dir_get()); - - Eina_File *file = NULL; - file = eina_file_open(file_path, EINA_FALSE); - if (!file) - { - EINA_LOG_ERR("Failed to open file \"%s\"", file_path); - return NULL; - } - - char *utf8 = eina_file_map_all(file, EINA_FILE_POPULATE); - if (!utf8) goto syntax_template_format_create_err; - - char *syntax_template_format = calloc(1, sizeof(char) * (strlen(utf8) + 1)); - if (!syntax_template_format) goto syntax_template_format_create_err; - strcpy(syntax_template_format, utf8); - - tsd->syntax_template_format = syntax_template_format; - - eina_file_close(file); - - return tsd->syntax_template_format; - -syntax_template_format_create_err: - EINA_LOG_ERR("Failed to allocate Memory!"); - if (utf8) free(utf8); - - eina_file_close(file); - - return NULL; -} - -static char * -syntax_template_create(double font_scale) -{ - text_setting_data *tsd = g_tsd; - char *syntax_template_format = syntax_template_format_create(); - if (!syntax_template_format) goto syntax_template_create_err; - - char *syntax_template_str = NULL; - syntax_template_str = calloc(1, sizeof(char) * SYNTAX_TEMPLATE_MAX_LEN); - if (!syntax_template_str) goto syntax_template_create_err; - - syntax_template_set(syntax_template_str, syntax_template_format, font_scale); - - color_keyword *color_keyword_list; - color_keyword_list = color_keyword_list_create(syntax_template_str); - if (!color_keyword_list) goto syntax_template_create_err; - - tsd->syntax_template_str = syntax_template_str; - tsd->color_keyword_list = color_keyword_list; - - return tsd->syntax_template_str; - -syntax_template_create_err: - EINA_LOG_ERR("Failed to allocate Memory!"); - if (syntax_template_format) - { - free(syntax_template_format); - tsd->syntax_template_format = NULL; - } - if (syntax_template_str) free(syntax_template_str); - - return NULL; -} - -static int -color_keyword_pos_get(const char *syntax_template_str, const char *selected_str) -{ - Eina_Bool left_arrow_found = EINA_FALSE; - char *cur; - int i; - int len = 0; - int pos = 0; - - cur = strstr(syntax_template_str, selected_str); - len = strlen(cur); - for (i = 0; i < len; i++) - { - if (left_arrow_found) - { - if (*(cur + i) == '>') - left_arrow_found = EINA_FALSE; - continue; - } - - if (*(cur + i) == '<') - { - left_arrow_found = EINA_TRUE; - } - else - { - pos = (cur + i) - syntax_template_str; - break; - } - } - - return pos; -} - -static void -text_setting_double_clicked_cb(void *data, Evas_Object *obj, - void *event_info EINA_UNUSED) -{ - text_setting_data *tsd = data; - color_keyword *selected_color_keyword; - Evas_Object *ctxpopup; - const char *syntax_template_str; - const char *selected_str; - int i; - int pos; - int x, y; - - syntax_template_str = elm_entry_entry_get(obj); - if (!syntax_template_str) return; - - selected_str = elm_entry_selection_get(obj); - if (!selected_str) return; - - pos = color_keyword_pos_get(syntax_template_str, selected_str); - - for (i = 0; i < COLOR_KEYWORD_MAX_CNT; i++) - { - selected_color_keyword = tsd->color_keyword_list + i; - if ((pos >= selected_color_keyword->pos_begin) && - (pos <= selected_color_keyword->pos_end)) - { - ctxpopup = color_ctxpopup_create(tsd->text_setting_layout, - selected_color_keyword); - if (!ctxpopup) return; - - evas_pointer_output_xy_get(evas_object_evas_get(obj), &x, &y); - evas_object_move(ctxpopup, x, y); - evas_object_show(ctxpopup); - tsd->color_ctxpopup = ctxpopup; - break; - } - } -} - -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 -font_scale_slider_changed_cb(void *data, Evas_Object *obj, - void *event_info EINA_UNUSED) -{ - text_setting_data *tsd = data; - double val = elm_slider_value_get(obj); - tsd->font_scale = val; - - syntax_template_apply(); -} - -Evas_Object * -text_setting_layout_create(Evas_Object *parent) -{ - text_setting_data *tsd = g_tsd; - - //Layout - Evas_Object *layout = elm_layout_add(parent); - elm_layout_file_set(layout, EDJE_PATH, "text_setting_layout"); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(layout); - - //Text Editor - Evas_Object *entry = elm_entry_add(layout); - elm_entry_context_menu_disabled_set(entry, EINA_TRUE); - elm_entry_line_wrap_set(entry, ELM_WRAP_NONE); - elm_entry_scrollable_set(entry, EINA_TRUE); - elm_entry_editable_set(entry, EINA_FALSE); - evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); - - tsd->font_scale = (double) config_font_scale_get(); - char *syntax_template_str = syntax_template_create(tsd->font_scale); - elm_entry_entry_set(entry, syntax_template_str); - evas_object_smart_callback_add(entry, "clicked,double", - text_setting_double_clicked_cb, tsd); - elm_object_focus_set(entry, EINA_TRUE); - elm_object_part_content_set(layout, "elm.swallow.text_setting", entry); - - //Preference - Evas_Object *scroller = elm_scroller_add(layout); - elm_object_part_content_set(layout, "elm.swallow.preference", scroller); - - //Box - Evas_Object *box = elm_box_add(scroller); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0); - evas_object_show(box); - - elm_object_content_set(scroller, box); - - //Font Size (Box) - Evas_Object *box2 = elm_box_add(box); - elm_box_horizontal_set(box2, EINA_TRUE); - 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); - - //Font Size (Slider) - Evas_Object *slider_font = elm_slider_add(box2); - evas_object_size_hint_weight_set(slider_font, EVAS_HINT_EXPAND, 0); - evas_object_size_hint_align_set(slider_font, 0, 0); - elm_slider_span_size_set(slider_font, 190); - elm_slider_indicator_show_set(slider_font, EINA_FALSE); - elm_slider_unit_format_set(slider_font, "%1.1fx"); - elm_slider_min_max_set(slider_font, MIN_FONT_SCALE, MAX_FONT_SCALE); - elm_slider_value_set(slider_font, tsd->font_scale); - elm_object_text_set(slider_font, "Font Size"); - evas_object_smart_callback_add(slider_font, "changed", - font_scale_slider_changed_cb, tsd); - evas_object_show(slider_font); - elm_object_focus_set(slider_font, EINA_TRUE); - - elm_box_pack_end(box2, slider_font); - - //Toggle (Line Number) - Evas_Object *toggle_linenum = toggle_create(box, "Line Number", - config_linenumber_get()); - elm_box_pack_end(box, toggle_linenum); - - //Toggle (Auto Indentation) - Evas_Object *toggle_indent = toggle_create(box, "Auto Indentation", - config_auto_indent_get()); - elm_box_pack_end(box, toggle_indent); - - //Toggle (Auto Completion) - Evas_Object *toggle_autocomp = toggle_create(box, "Auto Completion", - config_auto_complete_get()); - elm_box_pack_end(box, toggle_autocomp); - - tsd->text_setting_layout = layout; - tsd->slider_font = slider_font; - tsd->toggle_linenum = toggle_linenum; - tsd->toggle_indent = toggle_indent; - tsd->toggle_autocomp = toggle_autocomp; - - return layout; -} - -void -text_setting_layout_show(Evas_Object *setting_layout) -{ - text_setting_data *tsd = g_tsd; - Evas_Object *content; - - if (!setting_layout) return; - - content = elm_object_part_content_get(setting_layout, - "elm.swallow.content"); - - if (content == tsd->text_setting_layout) return; - - elm_object_part_content_unset(setting_layout, "elm.swallow.content"); - evas_object_hide(content); - - elm_object_part_content_set(setting_layout, "elm.swallow.content", - tsd->text_setting_layout); - elm_object_focus_set(tsd->slider_font, EINA_TRUE); -} - -void -text_setting_config_set(void) -{ - text_setting_data *tsd = g_tsd; - - config_font_scale_set((float) elm_slider_value_get(tsd->slider_font)); - config_linenumber_set(elm_check_state_get(tsd->toggle_linenum)); - config_auto_indent_set(elm_check_state_get(tsd->toggle_indent)); - config_auto_complete_set(elm_check_state_get(tsd->toggle_autocomp)); -} - -void -text_setting_font_scale_set(double font_scale) -{ - text_setting_data *tsd = g_tsd; - tsd->font_scale = font_scale; - elm_slider_value_set(tsd->slider_font, tsd->font_scale); -} - -void -text_setting_linenumber_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_linenum, enabled); -} - -void -text_setting_auto_indent_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_indent, enabled); -} - -void -text_setting_auto_complete_set(Eina_Bool enabled) -{ - text_setting_data *tsd = g_tsd; - elm_check_state_set(tsd->toggle_autocomp, enabled); -} - -void -text_setting_init(void) -{ - text_setting_data *tsd = g_tsd; - if (tsd) return; - - tsd = calloc(1, sizeof(text_setting_data)); - if (!tsd) - { - EINA_LOG_ERR("Failed to allocate Memory!"); - return; - } - g_tsd = tsd; -} - -void -text_setting_term(void) -{ - text_setting_data *tsd = g_tsd; - if (!tsd) return; - - if (tsd->color_ctxpopup) - evas_object_del(tsd->color_ctxpopup); - - if (tsd->color_keyword_list) - free(tsd->color_keyword_list); - if (tsd->syntax_template_format) - free(tsd->syntax_template_format); - if (tsd->syntax_template_str) - free(tsd->syntax_template_str); - free(tsd); - g_tsd = NULL; -} diff --git a/src/include/Makefile.am b/src/include/Makefile.am index 2875f75..c38884c 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -11,7 +11,6 @@ EXTRA_DIST = common.h \ newfile.h \ goto.h \ setting.h \ - text_setting.h \ search.h \ live_edit.h \ console.h \ diff --git a/src/include/config_data.h b/src/include/config_data.h index 3d6e521..f40ac65 100644 --- a/src/include/config_data.h +++ b/src/include/config_data.h @@ -19,6 +19,8 @@ Eina_List *config_edc_img_path_list_get(void); Eina_List *config_edc_snd_path_list_get(void); Eina_List *config_edc_fnt_path_list_get(void); Eina_List *config_edc_dat_path_list_get(void); +void config_syntax_color_set(Enventor_Syntax_Color_Type color_type, const char *val); +const char *config_syntax_color_get(Enventor_Syntax_Color_Type color_type); void config_update_cb_set(void (*cb)(void *data), void *data); void config_stats_bar_set(Eina_Bool enabled); void config_linenumber_set(Eina_Bool enabled); diff --git a/src/include/text_setting.h b/src/include/text_setting.h deleted file mode 100644 index 1910f1b..0000000 --- a/src/include/text_setting.h +++ /dev/null @@ -1,35 +0,0 @@ -typedef struct color_keyword_s -{ - int pos_begin; - int pos_end; - int color_type; -} color_keyword; - -struct text_setting_s -{ - Evas_Object *text_setting_layout; - Evas_Object *color_ctxpopup; - - Evas_Object *slider_font; - Evas_Object *toggle_linenum; - Evas_Object *toggle_indent; - Evas_Object *toggle_autocomp; - - color_keyword *color_keyword_list; - char *syntax_template_format; - char *syntax_template_str; - - double font_scale; -}; - -typedef struct text_setting_s text_setting_data; - -Evas_Object *text_setting_layout_create(Evas_Object *parent); -void text_setting_layout_show(Evas_Object *setting_layout); -void text_setting_syntax_color_reset(void); -void text_setting_syntax_color_save(void); -void text_setting_config_set(void); -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);