forked from enlightenment/enventor
setting: Add the Text Editor mode in setting.
Add the Text Editor mode in setting by adding text_setting.c. text_setting.c covers the syntax coloring and the syntax font scaling.
This commit is contained in:
parent
2289ad6c03
commit
799fd32e13
|
@ -7,7 +7,8 @@ color.src
|
|||
|
||||
filesdir = $(datadir)/$(PACKAGE)/color
|
||||
files_DATA = \
|
||||
color.eet
|
||||
color.eet \
|
||||
syntax_template.dat
|
||||
|
||||
%.eet: %.src
|
||||
$(EET_EET) -e \
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<font_size=%d><color=#%s>//comment</color><br/> <color=#%s>#define RECT_COLOR</color> 0 136 170 255<br/> <color=#%s>part</color> <color=#%s>{</color> <color=#%s>name</color><color=#%s>:</color> <color=#%s>"rect"</color><color=#%s>;</color><br/> <color=#%s>type</color><color=#%s>:</color> <color=#%s>RECT</color><color=#%s>;</color><br/> <color=#%s>description</color> <color=#%s>{</color> <color=#%s>state</color><color=#%s>:</color> <color=#%s>"default"</color> 0.0<color=#%s>;</color><br/> <color=#%s>rel1</color><color=#%s>.</color><color=#%s>relative</color><color=#%s>:</color> 0.0 0.0<color=#%s>;</color><br/> <color=#%s>rel2</color><color=#%s>.</color><color=#%s>relative</color><color=#%s>:</color> 1.0 1.0<color=#%s>;</color><br/> <color=#%s>color</color><color=#%s>:</color> <color=#%s>RECT_COLOR</color><color=#%s>;</color><br/> <color=#%s>}</color><br/> <color=#%s>}</color><br/> <color=#%s>program</color> <color=#%s>{</color> <color=#%s>name</color><color=#%s>:</color> <color=#%s>"mouse_down"</color><color=#%s>;</color><br/> <color=#%s>signal</color><color=#%s>:</color> <color=#%s>"mouse,down,1"</color><color=#%s>;</color><br/> <color=#%s>source</color><color=#%s>:</color> <color=#%s>"rect"</color><color=#%s>;</color><br/> <color=#%s>action</color><color=#%s>:</color> <color=#%s>STATE_SET</color> <color=#%s>"default"</color> 0.0<color=#%s>;</color><br/> <color=#%s>target</color><color=#%s>:</color> <color=#%s>"rect"</color><color=#%s>;</color><br/> <color=#%s>}</color><br/> <color=#%s>script</color> <color=#%s>{</color><br/> <color=#%s>public</color> flag <color=#%s>=</color> 0<color=#%s>;</color><br/> <color=#%s>public</color> func<color=#%s>() {</color><br/> <color=#%s>if</color> <color=#%s>(!</color><color=#%s>get_int</color><color=#%s>(</color>flag<color=#%s>))</color> <color=#%s>set_int</color><color=#%s>(</color>flag<color=#%s>,</color> 1<color=#%s>);</color><br/> <color=#%s>}</color><br/> <color=#%s>}</color></font_size>
|
|
@ -28,8 +28,8 @@ group { name: "setting_layout";
|
|||
scale: 1;
|
||||
clip_to: "clipper";
|
||||
description {
|
||||
min: 600 350;
|
||||
max: 600 350;
|
||||
min: 600 380;
|
||||
max: 600 380;
|
||||
fixed: 1 1;
|
||||
image.normal: "frame_bg.png";
|
||||
image.border: 10 10 10 10;
|
||||
|
@ -104,307 +104,39 @@ group { name: "setting_layout";
|
|||
color: COL_HI;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
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";
|
||||
part { name: "elm.swallow.tabbar";
|
||||
type: SWALLOW;
|
||||
scale: 1;
|
||||
clip_to: "clipper";
|
||||
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";
|
||||
description { state: "default" 0.0;
|
||||
min: 0 25;
|
||||
max: -1 25;
|
||||
align: 0.5 0.0;
|
||||
fixed: 0 1;
|
||||
rel1 {to: "title_frame"; relative: 0.0 1.0; offset: 0 5;}
|
||||
rel2.to: "title_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;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.snd_path_entry";
|
||||
part { name: "elm.swallow.content";
|
||||
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;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
to: "elm.swallow.tabbar";
|
||||
relative: 0.0 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
rel2 {
|
||||
to_x: "base_frame";
|
||||
to_y: "elm.swallow.reset_btn";
|
||||
relative: 1.0 0.0;
|
||||
offset: -1 -11;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
|
@ -418,7 +150,6 @@ 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;
|
||||
|
@ -432,7 +163,6 @@ 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;
|
||||
|
@ -494,3 +224,373 @@ 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ enventor_SOURCES = \
|
|||
goto.c \
|
||||
newfile.c \
|
||||
setting.c \
|
||||
text_setting.c \
|
||||
globals.c \
|
||||
live_edit.c \
|
||||
console.c \
|
||||
|
|
|
@ -14,8 +14,6 @@ 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;
|
||||
|
@ -38,7 +36,6 @@ 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)
|
||||
|
@ -189,13 +186,6 @@ 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;
|
||||
}
|
||||
|
||||
|
@ -215,8 +205,6 @@ 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",
|
||||
|
@ -291,8 +279,6 @@ 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);
|
||||
|
@ -551,28 +537,6 @@ 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)
|
||||
{
|
||||
|
|
|
@ -109,56 +109,6 @@ 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)
|
||||
{
|
||||
|
@ -183,8 +133,6 @@ 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);
|
||||
|
@ -892,10 +840,6 @@ 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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,26 +1,25 @@
|
|||
#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;
|
||||
|
@ -89,6 +88,9 @@ 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();
|
||||
|
@ -107,21 +109,20 @@ 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();
|
||||
|
@ -149,16 +150,19 @@ 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());
|
||||
elm_check_state_set(sd->toggle_indent, config_auto_indent_get());
|
||||
elm_check_state_set(sd->toggle_autocomp, config_auto_complete_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();
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
|
@ -197,33 +201,17 @@ toggle_view_size_changed_cb(void *data, Evas_Object *obj,
|
|||
elm_object_disabled_set(sd->view_size_h_entry, !toggle_on);
|
||||
}
|
||||
|
||||
void
|
||||
setting_open(void)
|
||||
static Evas_Object *
|
||||
general_layout_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;
|
||||
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(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 *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);
|
||||
base_win_resize_object_add(layout);
|
||||
|
||||
//Image Path Entry
|
||||
Evas_Object *img_path_entry = entry_create(layout);
|
||||
|
@ -259,91 +247,14 @@ setting_open(void)
|
|||
|
||||
//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(box2);
|
||||
Evas_Object *slider_view = elm_slider_add(box);
|
||||
evas_object_size_hint_weight_set(slider_view, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(slider_view, 0, 0);
|
||||
elm_slider_span_size_set(slider_view, 190);
|
||||
|
@ -354,10 +265,19 @@ setting_open(void)
|
|||
elm_object_text_set(slider_view, "View Scale");
|
||||
evas_object_show(slider_view);
|
||||
|
||||
elm_box_pack_end(box3, slider_view);
|
||||
elm_box_pack_end(box, slider_view);
|
||||
|
||||
//View Size
|
||||
box3 = elm_box_add(box2);
|
||||
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);
|
||||
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);
|
||||
|
@ -366,7 +286,7 @@ setting_open(void)
|
|||
elm_box_pack_end(box2, box3);
|
||||
|
||||
//Entry (View Size)
|
||||
Evas_Object *entry_view_size = entry_create(box3);
|
||||
Evas_Object *entry_view_size = entry_create(box2);
|
||||
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);
|
||||
|
@ -425,26 +345,126 @@ setting_open(void)
|
|||
|
||||
//Toggle (View Size)
|
||||
Evas_Object *toggle_view_size;
|
||||
toggle_view_size = toggle_create(box3, NULL,
|
||||
toggle_view_size = toggle_create(box2, 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(box3, toggle_view_size);
|
||||
elm_box_pack_end(box2, toggle_view_size);
|
||||
|
||||
//Toggle (Part Highlighting)
|
||||
Evas_Object *toggle_highlight = toggle_create(box2, "Part Highlighting",
|
||||
config_part_highlight_get());
|
||||
elm_box_pack_end(box2, toggle_highlight);
|
||||
Evas_Object *toggle_highlight = toggle_create(box, "Part Highlighting",
|
||||
config_part_highlight_get());
|
||||
elm_box_pack_end(box, toggle_highlight);
|
||||
|
||||
//Toggle (Dummy Swallow)
|
||||
Evas_Object *toggle_swallow = toggle_create(box2, "Dummy Swallow",
|
||||
config_dummy_swallow_get());
|
||||
elm_box_pack_end(box2, toggle_swallow);
|
||||
Evas_Object *toggle_swallow = toggle_create(box, "Dummy Swallow",
|
||||
config_dummy_swallow_get());
|
||||
elm_box_pack_end(box, toggle_swallow);
|
||||
|
||||
//Toggle (Status)
|
||||
Evas_Object *toggle_stats = toggle_create(box2, "Status",
|
||||
Evas_Object *toggle_stats = toggle_create(box, "Status",
|
||||
config_stats_bar_get());
|
||||
elm_box_pack_end(box2, toggle_stats);
|
||||
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);
|
||||
|
||||
Evas_Object *btn;
|
||||
|
||||
|
@ -467,23 +487,6 @@ 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();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,853 @@
|
|||
#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, "<color=#");
|
||||
cur = next + 15; //Move position to first character of keyword
|
||||
(color_keyword_list + i)->pos_begin = cur - syntax_template_str;
|
||||
|
||||
next = strstr(cur, "</color>");
|
||||
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;
|
||||
}
|
|
@ -11,6 +11,7 @@ EXTRA_DIST = common.h \
|
|||
newfile.h \
|
||||
goto.h \
|
||||
setting.h \
|
||||
text_setting.h \
|
||||
search.h \
|
||||
live_edit.h \
|
||||
console.h \
|
||||
|
|
|
@ -19,8 +19,6 @@ 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);
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
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);
|
Loading…
Reference in New Issue