setting: reorganize setting view.

This commit is contained in:
Hermet Park 2016-04-17 13:31:27 +09:00
parent e6bfbd85c9
commit 8f91d45ff1
11 changed files with 496 additions and 457 deletions

View File

@ -22,7 +22,6 @@ EXTRA_DIST = \
full_logo.png \
frame_bg.png \
part_highlight.png \
preference.png \
runner_glow_horiz.png \
runner_glow_vert.png \
runner_horiz.png \

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -2,7 +2,6 @@ images {
image: "frame_bg.png" COMP;
image: "setting_icon.png" COMP;
image: "folder.png" COMP;
image: "preference.png" COMP;
}
group { name: "setting_layout";
@ -225,31 +224,20 @@ group { name: "setting_layout";
}
}
group { name: "general_layout";
group { "build_setting_layout";
parts {
part { name: "base_frame";
type: SPACER;
scale: 1;
description {
min: 580 265;
max: 580 265;
fixed: 1 1;
}
}
part { name: "img_path_frame";
type: SPACER;
description {
rel1 {to: "base_frame"; relative: 0 0;}
rel2 {to: "base_frame"; relative: 1 0;}
spacer { "img_path_frame";
desc {
rel1 { relative: 0 0;}
rel2 { relative: 1 0;}
align: 0.5 0;
min: 0 30;
fixed: 0 1;
}
}
part { name: "snd_path_frame";
type: SPACER;
spacer { "snd_path_frame";
scale: 1;
description {
desc {
rel1 {to: "img_path_frame"; relative: 0 1;}
rel2 {to: "img_path_frame"; relative: 1 1;}
align: 0.5 0;
@ -257,10 +245,9 @@ group { name: "general_layout";
fixed: 0 1;
}
}
part { name: "fnt_path_frame";
type: SPACER;
spacer { "fnt_path_frame";
scale: 1;
description {
desc {
rel1 {to: "snd_path_frame"; relative: 0 1;}
rel2 {to: "snd_path_frame"; relative: 1 1;}
align: 0.5 0;
@ -268,10 +255,9 @@ group { name: "general_layout";
fixed: 0 1;
}
}
part { name: "dat_path_frame";
type: SPACER;
spacer { "dat_path_frame";
scale: 1;
description {
desc {
rel1 {to: "fnt_path_frame"; relative: 0 1;}
rel2 {to: "fnt_path_frame"; relative: 1 1;}
align: 0.5 0;
@ -279,10 +265,9 @@ group { name: "general_layout";
fixed: 0 1;
}
}
part { name: "preference_frame";
type: SPACER;
spacer { "preference_frame";
scale: 1;
description {
desc {
rel1 {to: "dat_path_frame"; relative: 0 1; offset: 0 5;}
rel2 {to: "dat_path_frame"; relative: 1 1;}
align: 0.5 0;
@ -290,10 +275,9 @@ group { name: "general_layout";
fixed: 0 1;
}
}
part { name: "img_path_icon";
type: IMAGE;
image { "img_path_icon";
scale: 1;
description {
desc {
align: 0 0.5;
min: 20 20;
max: 20 20;
@ -303,11 +287,10 @@ group { name: "general_layout";
image.normal: "folder.png";
}
}
part { name: "img_path_guide";
type: TEXT;
text { "img_path_guide";
scale: 1;
effect: SHADOW BOTTOM;
description {
desc {
rel1 {to: "img_path_icon"; relative: 1 0; offset: 5 1;}
rel2 {to: "img_path_icon"; relative: 1 1;}
color: COL_NM;
@ -323,10 +306,9 @@ group { name: "general_layout";
}
}
}
part { name: "elm.swallow.img_path_entry";
type: SWALLOW;
swallow { "elm.swallow.img_path_entry";
scale: 1;
description {
desc {
align: 0 0;
fixed: 1 1;
rel1.to_x: "img_path_guide";
@ -336,10 +318,9 @@ group { name: "general_layout";
rel2.to: "img_path_frame";
}
}
part { name: "snd_path_icon";
type: IMAGE;
image { "snd_path_icon";
scale: 1;
description {
desc {
align: 0 0.5;
min: 20 20;
max: 20 20;
@ -349,11 +330,10 @@ group { name: "general_layout";
image.normal: "folder.png";
}
}
part { name: "snd_path_guide";
type: TEXT;
text { "snd_path_guide";
effect: SHADOW BOTTOM;
scale: 1;
description {
desc {
rel1 {to: "snd_path_icon"; relative: 1 0; offset: 5 1;}
rel2 {to: "snd_path_icon"; relative: 1 1;}
color: COL_NM;
@ -369,10 +349,9 @@ group { name: "general_layout";
}
}
}
part { name: "elm.swallow.snd_path_entry";
type: SWALLOW;
swallow { "elm.swallow.snd_path_entry";
scale: 1;
description {
desc {
align: 0 0;
fixed: 1 1;
rel1.to_x: "snd_path_guide";
@ -382,10 +361,9 @@ group { name: "general_layout";
rel2.to: "snd_path_frame";
}
}
part { name: "fnt_path_icon";
type: IMAGE;
image { "fnt_path_icon";
scale: 1;
description {
desc {
align: 0 0.5;
min: 20 20;
max: 20 20;
@ -395,11 +373,10 @@ group { name: "general_layout";
image.normal: "folder.png";
}
}
part { name: "fnt_path_guide";
type: TEXT;
text { "fnt_path_guide";
effect: SHADOW BOTTOM;
scale: 1;
description {
desc {
rel1 {to: "fnt_path_icon"; relative: 1 0; offset: 5 1;}
rel2 {to: "fnt_path_icon"; relative: 1 1;}
color: COL_NM;
@ -415,10 +392,9 @@ group { name: "general_layout";
}
}
}
part { name: "elm.swallow.fnt_path_entry";
type: SWALLOW;
swallow { "elm.swallow.fnt_path_entry";
scale: 1;
description {
desc {
align: 0 0;
fixed: 1 1;
rel1.to_x: "fnt_path_guide";
@ -428,10 +404,9 @@ group { name: "general_layout";
rel2.to: "fnt_path_frame";
}
}
part { name: "dat_path_icon";
type: IMAGE;
image { "dat_path_icon";
scale: 1;
description {
desc {
align: 0 0.5;
min: 20 20;
max: 20 20;
@ -441,11 +416,10 @@ group { name: "general_layout";
image.normal: "folder.png";
}
}
part { name: "dat_path_guide";
type: TEXT;
text { "dat_path_guide";
effect: SHADOW BOTTOM;
scale: 1;
description {
desc {
rel1 {to: "dat_path_icon"; relative: 1 0; offset: 5 1;}
rel2 {to: "dat_path_icon"; relative: 1 1;}
color: COL_NM;
@ -461,10 +435,9 @@ group { name: "general_layout";
}
}
}
part { name: "elm.swallow.dat_path_entry";
type: SWALLOW;
swallow { "elm.swallow.dat_path_entry";
scale: 1;
description {
desc {
align: 0 0;
fixed: 1 1;
rel1.to_x: "dat_path_guide";
@ -474,50 +447,6 @@ group { name: "general_layout";
rel2.to: "dat_path_frame";
}
}
part { name: "preference_icon";
type: IMAGE;
scale: 1;
description {
align: 0 0;
min: 20 20;
max: 20 20;
fixed: 1 1;
rel1.to: "preference_frame";
rel2.to: "preference_frame";
image.normal: "preference.png";
}
}
part { name: "preference_guide";
type: TEXT;
effect: SHADOW BOTTOM;
scale: 1;
description {
rel1 {to: "preference_icon"; relative: 1 0; offset: 5 1;}
rel2 {to: "preference_icon"; relative: 1 1;}
color: COL_NM;
align: 0 0;
fixed: 1 1;
text {
font: FN;
text: "Preferences:";
size: 11;
align: 0 0;
min: 1 0;
ellipsis: -1;
}
}
}
part { name: "elm.swallow.preference";
type: SWALLOW;
scale: 1;
description {
rel1.to_x: "preference_guide";
rel1.to_y: "preference_guide";
rel1.offset: 0 5;
rel1.relative: 0 1;
rel2.to: "preference_frame";
}
}
}
}

View File

@ -30,7 +30,8 @@ enventor_SOURCES = \
console.c \
file_mgr.c \
edc_navigator.c \
file_browser.c
file_browser.c \
build_setting.c
enventor_LDADD = \
$(top_builddir)/src/lib/libenventor.la \

200
src/bin/build_setting.c Normal file
View File

@ -0,0 +1,200 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "common.h"
typedef struct build_setting_s
{
Evas_Object *layout;
Evas_Object *img_path_entry;
Evas_Object *snd_path_entry;
Evas_Object *fnt_path_entry;
Evas_Object *dat_path_entry;
} build_setting_data;
static build_setting_data *g_bsd = NULL;
/*****************************************************************************/
/* Internal method implementation */
/*****************************************************************************/
static Evas_Object *
entry_create(Evas_Object *parent)
{
Evas_Object *entry = elm_entry_add(parent);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_scrollable_set(entry, EINA_TRUE);
evas_object_show(entry);
return entry;
}
static void
img_path_entry_update(Evas_Object *entry, Eina_List *edc_img_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_img_path;
EINA_LIST_FOREACH(edc_img_paths, l, edc_img_path)
{
elm_entry_entry_append(entry, edc_img_path);
elm_entry_entry_append(entry, ";");
}
}
static void
fnt_path_entry_update(Evas_Object *entry, Eina_List *edc_fnt_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_fnt_path;
EINA_LIST_FOREACH(edc_fnt_paths, l, edc_fnt_path)
{
elm_entry_entry_append(entry, edc_fnt_path);
elm_entry_entry_append(entry, ";");
}
}
static void
dat_path_entry_update(Evas_Object *entry, Eina_List *edc_dat_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_dat_path;
EINA_LIST_FOREACH(edc_dat_paths, l, edc_dat_path)
{
elm_entry_entry_append(entry, edc_dat_path);
elm_entry_entry_append(entry, ";");
}
}
static void
snd_path_entry_update(Evas_Object *entry, Eina_List *edc_snd_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_snd_path;
EINA_LIST_FOREACH(edc_snd_paths, l, edc_snd_path)
{
elm_entry_entry_append(entry, edc_snd_path);
elm_entry_entry_append(entry, ";");
}
}
/*****************************************************************************/
/* Externally accessible calls */
/*****************************************************************************/
void
build_setting_focus_set(build_setting_data *bsd)
{
if (!bsd) return;
elm_object_focus_set(bsd->img_path_entry, EINA_TRUE);
}
void
build_setting_config_set(build_setting_data *bsd)
{
if (!bsd) return;
config_img_path_set(elm_object_text_get(bsd->img_path_entry));
config_snd_path_set(elm_object_text_get(bsd->snd_path_entry));
config_fnt_path_set(elm_object_text_get(bsd->fnt_path_entry));
config_dat_path_set(elm_object_text_get(bsd->dat_path_entry));
}
void
build_setting_reset(build_setting_data *bsd)
{
if (!bsd) return;
img_path_entry_update(bsd->img_path_entry,
(Eina_List *)config_img_path_list_get());
snd_path_entry_update(bsd->snd_path_entry,
(Eina_List *)config_snd_path_list_get());
fnt_path_entry_update(bsd->fnt_path_entry,
(Eina_List *)config_fnt_path_list_get());
dat_path_entry_update(bsd->dat_path_entry,
(Eina_List *)config_dat_path_list_get());
}
Evas_Object *
build_setting_content_get(build_setting_data *bsd, Evas_Object *parent)
{
if (!bsd) return NULL;
if (bsd->layout) return bsd->layout;
//Layout
Evas_Object *layout = elm_layout_add(parent);
elm_layout_file_set(layout, EDJE_PATH, "build_setting_layout");
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(layout);
//Image Path Entry
Evas_Object *img_path_entry = entry_create(layout);
img_path_entry_update(img_path_entry,
(Eina_List *)config_img_path_list_get());
elm_object_focus_set(img_path_entry, EINA_TRUE);
elm_object_part_content_set(layout, "elm.swallow.img_path_entry",
img_path_entry);
elm_layout_text_set(layout, "img_path_guide", _("Image Paths:"));
//Sound Path Entry
Evas_Object *snd_path_entry = entry_create(layout);
snd_path_entry_update(snd_path_entry,
(Eina_List *)config_snd_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.snd_path_entry",
snd_path_entry);
elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:"));
//Font Path Entry
Evas_Object *fnt_path_entry = entry_create(layout);
fnt_path_entry_update(fnt_path_entry,
(Eina_List *)config_fnt_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry",
fnt_path_entry);
elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:"));
//Data Path Entry
Evas_Object *dat_path_entry = entry_create(layout);
dat_path_entry_update(dat_path_entry,
(Eina_List *)config_dat_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.dat_path_entry",
dat_path_entry);
elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:"));
bsd->layout = layout;
bsd->img_path_entry = img_path_entry;
bsd->snd_path_entry = snd_path_entry;
bsd->fnt_path_entry = fnt_path_entry;
bsd->dat_path_entry = dat_path_entry;
return layout;
}
build_setting_data *
build_setting_init(void)
{
build_setting_data *bsd = calloc(1, sizeof(build_setting_data));
if (!bsd)
{
EINA_LOG_ERR(_("Failed to allocate Memory!"));
return NULL;
}
return bsd;
}
void
build_setting_term(build_setting_data *bsd)
{
if (!bsd) return;
free(bsd);
g_bsd = NULL;
}

View File

@ -1,3 +1,6 @@
/*****************************************************************************/
/* Externally accessible calls */
/*****************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@ -5,21 +8,28 @@
#include "text_setting.h"
typedef enum {
SETTING_VIEW_GENERAL = 0,
SETTING_VIEW_TEXT
SETTING_VIEW_PREFERENCE = 0,
SETTING_VIEW_TEXT,
SETTING_VIEW_BUILD,
SETTING_VIEW_NONE
} setting_view;
typedef struct setting_s
{
Evas_Object *setting_layout;
Evas_Object *toolbar;
Evas_Object *general_layout;
Evas_Object *img_path_entry;
Evas_Object *snd_path_entry;
Evas_Object *fnt_path_entry;
Evas_Object *dat_path_entry;
text_setting_data *tsd;
build_setting_data *bsd;
setting_view current_view;
Evas_Object *apply_btn;
Evas_Object *reset_btn;
Evas_Object *cancel_btn;
//below: preference setting data
Evas_Object *preference;
Evas_Object *slider_view;
Evas_Object *view_size_w_entry;
Evas_Object *view_size_h_entry;
@ -31,76 +41,18 @@ typedef struct setting_s
Evas_Object *toggle_tools;
Evas_Object *toggle_console;
Evas_Object *apply_btn;
Evas_Object *reset_btn;
Evas_Object *cancel_btn;
setting_view current_view;
} setting_data;
static setting_data *g_sd = NULL;
static void preference_setting_config_set(setting_data *sd);
static void preference_setting_reset(setting_data *sd);
/*****************************************************************************/
/* Internal method implementation */
/*****************************************************************************/
static void
img_path_entry_update(Evas_Object *entry, Eina_List *edc_img_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_img_path;
EINA_LIST_FOREACH(edc_img_paths, l, edc_img_path)
{
elm_entry_entry_append(entry, edc_img_path);
elm_entry_entry_append(entry, ";");
}
}
static void
fnt_path_entry_update(Evas_Object *entry, Eina_List *edc_fnt_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_fnt_path;
EINA_LIST_FOREACH(edc_fnt_paths, l, edc_fnt_path)
{
elm_entry_entry_append(entry, edc_fnt_path);
elm_entry_entry_append(entry, ";");
}
}
static void
dat_path_entry_update(Evas_Object *entry, Eina_List *edc_dat_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_dat_path;
EINA_LIST_FOREACH(edc_dat_paths, l, edc_dat_path)
{
elm_entry_entry_append(entry, edc_dat_path);
elm_entry_entry_append(entry, ";");
}
}
static void
snd_path_entry_update(Evas_Object *entry, Eina_List *edc_snd_paths)
{
elm_entry_entry_set(entry, NULL);
Eina_List *l;
char *edc_snd_path;
EINA_LIST_FOREACH(edc_snd_paths, l, edc_snd_path)
{
elm_entry_entry_append(entry, edc_snd_path);
elm_entry_entry_append(entry, ";");
}
}
static void
setting_dismiss_done_cb(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
@ -108,7 +60,8 @@ setting_dismiss_done_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
setting_data *sd = data;
text_setting_term();
text_setting_term(sd->tsd);
build_setting_term(sd->bsd);
evas_object_del(sd->setting_layout);
sd->setting_layout = NULL;
@ -124,29 +77,9 @@ setting_apply_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
setting_data *sd = data;
config_img_path_set(elm_object_text_get(sd->img_path_entry));
config_snd_path_set(elm_object_text_get(sd->snd_path_entry));
config_fnt_path_set(elm_object_text_get(sd->fnt_path_entry));
config_dat_path_set(elm_object_text_get(sd->dat_path_entry));
config_view_scale_set(elm_slider_value_get(sd->slider_view));
config_tools_set(elm_check_state_get(sd->toggle_tools));
config_console_set(elm_check_state_get(sd->toggle_console));
config_stats_bar_set(elm_check_state_get(sd->toggle_stats));
config_part_highlight_set(elm_check_state_get(sd->toggle_highlight));
config_dummy_parts_set(elm_check_state_get(sd->toggle_swallow));
config_file_browser_set(elm_check_state_get(sd->toggle_file_browser));
config_edc_navigator_set(elm_check_state_get(sd->toggle_edc_navigator));
text_setting_config_set();
Evas_Coord w = 0;
Evas_Coord h = 0;
const char *w_entry = elm_entry_entry_get(sd->view_size_w_entry);
if (w_entry) w = (Evas_Coord)atoi(w_entry);
const char *h_entry = elm_entry_entry_get(sd->view_size_h_entry);
if (h_entry) h = (Evas_Coord)atoi(h_entry);
config_view_size_set(w, h);
text_setting_syntax_color_save();
preference_setting_config_set(sd);
build_setting_config_set(sd->bsd);
text_setting_config_set(sd->tsd);
config_apply();
@ -166,43 +99,22 @@ setting_reset_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
{
setting_data *sd = data;
img_path_entry_update(sd->img_path_entry,
(Eina_List *)config_img_path_list_get());
snd_path_entry_update(sd->snd_path_entry,
(Eina_List *)config_snd_path_list_get());
fnt_path_entry_update(sd->fnt_path_entry,
(Eina_List *)config_fnt_path_list_get());
dat_path_entry_update(sd->dat_path_entry,
(Eina_List *)config_dat_path_list_get());
preference_setting_reset(sd);
text_setting_reset(sd->tsd);
build_setting_reset(sd->bsd);
}
elm_slider_value_set(sd->slider_view, (double) config_view_scale_get());
elm_check_state_set(sd->toggle_console, config_console_get());
elm_check_state_set(sd->toggle_tools, config_tools_get());
elm_check_state_set(sd->toggle_stats, config_stats_bar_get());
elm_check_state_set(sd->toggle_highlight, config_part_highlight_get());
elm_check_state_set(sd->toggle_swallow, config_dummy_parts_get());
elm_check_state_set(sd->toggle_file_browser, config_file_browser_get());
elm_check_state_set(sd->toggle_edc_navigator, config_edc_navigator_get());
//Reset view scale
int view_size_w, view_size_h;
config_view_size_get(&view_size_w, &view_size_h);
char buf[10];
snprintf(buf, sizeof(buf), "%d", view_size_w);
elm_entry_entry_set(sd->view_size_w_entry, buf);
snprintf(buf, sizeof(buf), "%d", view_size_h);
elm_entry_entry_set(sd->view_size_h_entry, buf);
const char *font_name;
const char *font_style;
config_font_get(&font_name, &font_style);
text_setting_font_set(font_name, font_style);
text_setting_font_scale_set((double) config_font_scale_get());
text_setting_linenumber_set(config_linenumber_get());
text_setting_auto_indent_set(config_auto_indent_get());
text_setting_auto_complete_set(config_auto_complete_get());
text_setting_syntax_color_reset();
static void
focus_custom_chain_set(setting_data *sd, Evas_Object *content)
{
//Set a custom chain to set the focus order.
Eina_List *custom_chain = NULL;
custom_chain = eina_list_append(custom_chain, sd->toolbar);
custom_chain = eina_list_append(custom_chain, sd->preference);
custom_chain = eina_list_append(custom_chain, sd->apply_btn);
custom_chain = eina_list_append(custom_chain, sd->reset_btn);
custom_chain = eina_list_append(custom_chain, sd->cancel_btn);
elm_object_focus_custom_chain_set(sd->setting_layout, custom_chain);
}
static Evas_Object *
@ -240,55 +152,57 @@ toggle_create(Evas_Object *parent, const char *text, Eina_Bool state)
return toggle;
}
static void
preference_setting_reset(setting_data *sd)
{
elm_slider_value_set(sd->slider_view, (double) config_view_scale_get());
elm_check_state_set(sd->toggle_console, config_console_get());
elm_check_state_set(sd->toggle_tools, config_tools_get());
elm_check_state_set(sd->toggle_stats, config_stats_bar_get());
elm_check_state_set(sd->toggle_highlight, config_part_highlight_get());
elm_check_state_set(sd->toggle_swallow, config_dummy_parts_get());
elm_check_state_set(sd->toggle_file_browser, config_file_browser_get());
elm_check_state_set(sd->toggle_edc_navigator, config_edc_navigator_get());
//Reset view scale
int view_size_w, view_size_h;
config_view_size_get(&view_size_w, &view_size_h);
char buf[10];
snprintf(buf, sizeof(buf), "%d", view_size_w);
elm_entry_entry_set(sd->view_size_w_entry, buf);
snprintf(buf, sizeof(buf), "%d", view_size_h);
elm_entry_entry_set(sd->view_size_h_entry, buf);
}
static void
preference_setting_config_set(setting_data *sd)
{
config_view_scale_set(elm_slider_value_get(sd->slider_view));
config_tools_set(elm_check_state_get(sd->toggle_tools));
config_console_set(elm_check_state_get(sd->toggle_console));
config_stats_bar_set(elm_check_state_get(sd->toggle_stats));
config_part_highlight_set(elm_check_state_get(sd->toggle_highlight));
config_dummy_parts_set(elm_check_state_get(sd->toggle_swallow));
config_file_browser_set(elm_check_state_get(sd->toggle_file_browser));
config_edc_navigator_set(elm_check_state_get(sd->toggle_edc_navigator));
Evas_Coord w = 0;
Evas_Coord h = 0;
const char *w_entry = elm_entry_entry_get(sd->view_size_w_entry);
if (w_entry) w = (Evas_Coord)atoi(w_entry);
const char *h_entry = elm_entry_entry_get(sd->view_size_h_entry);
if (h_entry) h = (Evas_Coord)atoi(h_entry);
config_view_size_set(w, h);
}
static Evas_Object *
general_layout_create(setting_data *sd, Evas_Object *parent)
preference_create(setting_data *sd, Evas_Object *parent)
{
static Elm_Entry_Filter_Accept_Set digits_filter_data;
static Elm_Entry_Filter_Limit_Size limit_filter_data;
//Layout
Evas_Object *layout = elm_layout_add(parent);
elm_layout_file_set(layout, EDJE_PATH, "general_layout");
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(layout);
//Image Path Entry
Evas_Object *img_path_entry = entry_create(layout);
img_path_entry_update(img_path_entry,
(Eina_List *)config_img_path_list_get());
elm_object_focus_set(img_path_entry, EINA_TRUE);
elm_object_part_content_set(layout, "elm.swallow.img_path_entry",
img_path_entry);
elm_layout_text_set(layout, "img_path_guide", _("Image Paths:"));
//Sound Path Entry
Evas_Object *snd_path_entry = entry_create(layout);
snd_path_entry_update(snd_path_entry,
(Eina_List *)config_snd_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.snd_path_entry",
snd_path_entry);
elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:"));
//Font Path Entry
Evas_Object *fnt_path_entry = entry_create(layout);
fnt_path_entry_update(fnt_path_entry,
(Eina_List *)config_fnt_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry",
fnt_path_entry);
elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:"));
//Data Path Entry
Evas_Object *dat_path_entry = entry_create(layout);
dat_path_entry_update(dat_path_entry,
(Eina_List *)config_dat_path_list_get());
elm_object_part_content_set(layout, "elm.swallow.dat_path_entry",
dat_path_entry);
elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:"));
//Preference
Evas_Object *scroller = elm_scroller_add(layout);
elm_object_part_content_set(layout, "elm.swallow.preference", scroller);
elm_layout_text_set(layout, "preference_guide", _("Preferences:"));
Evas_Object *scroller = elm_scroller_add(parent);
//Box
Evas_Object *box = elm_box_add(scroller);
@ -449,13 +363,11 @@ general_layout_create(setting_data *sd, Evas_Object *parent)
//Toggle (Console)
Evas_Object *toggle_console = toggle_create(box, _("Auto Hiding Console"),
config_console_get());
evas_object_size_hint_weight_set(toggle_console, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(toggle_console, EVAS_HINT_FILL, 0);
elm_box_pack_end(box, toggle_console);
sd->general_layout = layout;
sd->img_path_entry = img_path_entry;
sd->snd_path_entry = snd_path_entry;
sd->fnt_path_entry = fnt_path_entry;
sd->dat_path_entry = dat_path_entry;
sd->preference = scroller;
sd->slider_view = slider_view;
sd->view_size_w_entry = entry_view_size_w;
sd->view_size_h_entry = entry_view_size_h;
@ -467,56 +379,43 @@ general_layout_create(setting_data *sd, Evas_Object *parent)
sd->toggle_tools = toggle_tools;
sd->toggle_console = toggle_console;
return layout;
return scroller;
}
static void
general_setting_focus_set(void)
preference_setting_focus_set(void)
{
setting_data *sd = g_sd;
elm_object_focus_set(sd->img_path_entry, EINA_TRUE);
elm_object_focus_set(sd->slider_view, EINA_TRUE);
}
static Evas_Object *
general_setting_content_get(Evas_Object *parent EINA_UNUSED)
preference_setting_content_get(Evas_Object *parent EINA_UNUSED)
{
setting_data *sd = g_sd;
return sd->general_layout;
return sd->preference;
}
static void
focus_custom_chain_set(setting_data *sd, Evas_Object *content)
{
//Set a custom chain to set the focus order.
Eina_List *custom_chain = NULL;
custom_chain = eina_list_append(custom_chain, sd->toolbar);
custom_chain = eina_list_append(custom_chain, sd->general_layout);
custom_chain = eina_list_append(custom_chain, sd->apply_btn);
custom_chain = eina_list_append(custom_chain, sd->reset_btn);
custom_chain = eina_list_append(custom_chain, sd->cancel_btn);
elm_object_focus_custom_chain_set(sd->setting_layout, custom_chain);
}
static void
toolbar_general_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
toolbar_preferene_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
setting_data *sd = data;
if (sd->current_view == SETTING_VIEW_GENERAL) return;
if (sd->current_view == SETTING_VIEW_PREFERENCE) return;
//Hide previous tab view
Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout,
"elm.swallow.content");
evas_object_hide(pcontent);
Evas_Object *content = general_setting_content_get(obj);
Evas_Object *content = preference_setting_content_get(obj);
elm_object_part_content_set(sd->setting_layout, "elm.swallow.content",
content);
focus_custom_chain_set(sd, content);
general_setting_focus_set();
preference_setting_focus_set();
sd->current_view = SETTING_VIEW_GENERAL;
sd->current_view = SETTING_VIEW_PREFERENCE;
}
static void
@ -526,20 +425,46 @@ toolbar_text_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
if (sd->current_view == SETTING_VIEW_TEXT) return;
if (!sd->tsd) sd->tsd = text_setting_init();
//Hide previous tab view
Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout,
"elm.swallow.content");
evas_object_hide(pcontent);
Evas_Object *content = text_setting_content_get(obj);
Evas_Object *content = text_setting_content_get(sd->tsd, obj);
elm_object_part_content_set(sd->setting_layout, "elm.swallow.content",
content);
focus_custom_chain_set(sd, content);
text_setting_focus_set();
text_setting_focus_set(sd->tsd);
sd->current_view = SETTING_VIEW_TEXT;
}
static void
toolbar_build_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
setting_data *sd = data;
if (sd->current_view == SETTING_VIEW_BUILD) return;
if (!sd->bsd) sd->bsd = build_setting_init();
//Hide previous tab view
Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout,
"elm.swallow.content");
evas_object_hide(pcontent);
Evas_Object *content = build_setting_content_get(sd->bsd, obj);
elm_object_part_content_set(sd->setting_layout, "elm.swallow.content",
content);
focus_custom_chain_set(sd, content);
build_setting_focus_set(sd->bsd);
sd->current_view = SETTING_VIEW_BUILD;
}
/*****************************************************************************/
/* Externally accessible calls */
/*****************************************************************************/
@ -558,8 +483,6 @@ setting_open(void)
}
g_sd = sd;
text_setting_init();
search_close();
goto_close();
@ -575,18 +498,25 @@ setting_open(void)
//Tabbar
Evas_Object *toolbar = elm_toolbar_add(layout);
//elm_object_style_set(toolbar, "item_horizontal");
elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
elm_toolbar_item_append(toolbar, NULL, _("General"), toolbar_general_cb, sd);
elm_toolbar_item_append(toolbar, NULL, _("Text Editor"), toolbar_text_cb, sd);
elm_toolbar_item_append(toolbar, NULL, _("Preferences"),
toolbar_preferene_cb, sd);
elm_toolbar_item_append(toolbar, NULL, _("Text Editor"), toolbar_text_cb,
sd);
elm_toolbar_item_append(toolbar, NULL, _("EDC Build"), toolbar_build_cb,
sd);
elm_object_part_content_set(layout, "elm.swallow.toolbar", toolbar);
//General layout
Evas_Object *general_layout = general_layout_create(sd, layout);
elm_object_part_content_set(layout, "elm.swallow.content", general_layout);
//Preference layout
Evas_Object *preference = preference_create(sd, layout);
elm_object_part_content_set(layout, "elm.swallow.content", preference);
preference_setting_focus_set();
//Apply Button
Evas_Object *apply_btn = elm_button_add(layout);
@ -614,7 +544,6 @@ setting_open(void)
sd->apply_btn = apply_btn;
sd->reset_btn = reset_btn;
sd->cancel_btn = cancel_btn;
sd->current_view = SETTING_VIEW_GENERAL;
menu_activate_request();
}

View File

@ -29,6 +29,7 @@ typedef struct text_setting_s
Evas_Object *toggle_autocomp;
Evas_Object *toggle_smart_undo_redo;
Evas_Object *list_font_name;
Evas_Object *list_font_style;
color_keyword *color_keyword_list;
char *syntax_template_format;
@ -93,8 +94,6 @@ static int color_type_list[COLOR_KEYWORD_MAX_CNT] =
ENVENTOR_SYNTAX_COLOR_SYMBOL, ENVENTOR_SYNTAX_COLOR_SYMBOL
};
static text_setting_data *g_tsd = NULL;
/*****************************************************************************/
/* Internal method implementation */
/*****************************************************************************/
@ -149,9 +148,8 @@ syntax_template_set(char *syntax_template_str, char *syntax_template_format,
}
static void
syntax_template_apply(void)
syntax_template_apply(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
Evas_Object *layout = tsd->layout;
if (!layout) return;
@ -175,15 +173,14 @@ text_setting_syntax_color_load(void)
}
}
void
text_setting_syntax_color_reset(void)
static void
text_setting_syntax_color_reset(text_setting_data *tsd)
{
text_setting_syntax_color_load();
syntax_template_apply();
syntax_template_apply(tsd);
}
void
static void
text_setting_syntax_color_save(void)
{
Enventor_Syntax_Color_Type color_type = ENVENTOR_SYNTAX_COLOR_STRING;
@ -230,10 +227,10 @@ color_ctxpopup_dismiss_cb(void *data EINA_UNUSED, Evas_Object *obj,
}
static void
color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
color_ctxpopup_del_cb(void *data, Evas *e EINA_UNUSED,
Evas_Object *obj, void *event_info EINA_UNUSED)
{
text_setting_data *tsd = g_tsd;
text_setting_data *tsd = data;
color_keyword *selected_color_keyword;
selected_color_keyword = evas_object_data_get(obj, "color_keyword");
@ -241,7 +238,7 @@ color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
elm_object_focus_set(tsd->slider_font, EINA_TRUE);
text_setting_syntax_color_update(obj, selected_color_keyword);
syntax_template_apply();
syntax_template_apply(tsd);
elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_SHOW);
@ -249,20 +246,23 @@ color_ctxpopup_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
}
static void
color_slider_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
color_slider_changed_cb(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
text_setting_data *tsd = data;
Evas_Object *ctxpopup = evas_object_data_get(obj, "ctxpopup");
color_keyword *selected_color_keyword;
selected_color_keyword = evas_object_data_get(ctxpopup, "color_keyword");
text_setting_syntax_color_update(ctxpopup, selected_color_keyword);
syntax_template_apply();
syntax_template_apply(tsd);
}
static Evas_Object *
color_slider_layout_create(Evas_Object *parent, Evas_Object *ctxpopup,
const char *type, double slider_val)
color_slider_layout_create(text_setting_data *tsd, Evas_Object *parent,
Evas_Object *ctxpopup, const char *type,
double slider_val)
{
//Layout
Evas_Object *layout = elm_layout_add(parent);
@ -289,7 +289,7 @@ color_slider_layout_create(Evas_Object *parent, Evas_Object *ctxpopup,
elm_object_part_text_set(layout, "elm.text.slider_max", slider_max);
elm_object_part_content_set(layout, "elm.swallow.slider", slider);
evas_object_smart_callback_add(slider, "changed", color_slider_changed_cb,
NULL);
tsd);
return layout;
}
@ -321,7 +321,7 @@ convert_hexadecimal_to_decimal(char *hexadecimal)
}
static void
color_slider_layout_set(Evas_Object *ctxpopup)
color_slider_layout_set(text_setting_data *tsd, Evas_Object *ctxpopup)
{
Eina_Array *type_array;
Eina_Stringshare *type = NULL;
@ -358,7 +358,7 @@ color_slider_layout_set(Evas_Object *ctxpopup)
EINA_ARRAY_ITER_NEXT(type_array, i, type, itr)
{
layout = color_slider_layout_create(box, ctxpopup, type,
layout = color_slider_layout_create(tsd, box, ctxpopup, type,
color_rgb_val[i]);
if (i % 2) elm_object_signal_emit(layout, "odd,item,set", "");
elm_box_pack_end(box, layout);
@ -372,10 +372,10 @@ color_slider_layout_set(Evas_Object *ctxpopup)
}
static Evas_Object *
color_ctxpopup_create(Evas_Object *parent,
color_ctxpopup_create(text_setting_data *tsd,
color_keyword *selected_color_keyword)
{
Evas_Object *ctxpopup = elm_ctxpopup_add(parent);
Evas_Object *ctxpopup = elm_ctxpopup_add(tsd->layout);
if (!ctxpopup) return NULL;
elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_NONE);
@ -386,10 +386,10 @@ color_ctxpopup_create(Evas_Object *parent,
ELM_CTXPOPUP_DIRECTION_LEFT,
ELM_CTXPOPUP_DIRECTION_UP,
ELM_CTXPOPUP_DIRECTION_DOWN);
color_slider_layout_set(ctxpopup);
color_slider_layout_set(tsd, ctxpopup);
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL,
color_ctxpopup_del_cb, NULL);
color_ctxpopup_del_cb, tsd);
evas_object_smart_callback_add(ctxpopup, "dismissed",
color_ctxpopup_dismiss_cb, NULL);
return ctxpopup;
@ -427,10 +427,8 @@ color_keyword_list_create(char *syntax_template_str)
}
static char *
syntax_template_format_create(void)
syntax_template_format_create(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
text_setting_syntax_color_load();
char file_path[PATH_MAX];
@ -468,17 +466,17 @@ err:
}
static char *
syntax_template_create(double font_scale)
syntax_template_create(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
char *syntax_template_str = NULL;
char *syntax_template_format = syntax_template_format_create();
char *syntax_template_format = syntax_template_format_create(tsd);
if (!syntax_template_format) goto err;
syntax_template_str = calloc(1, sizeof(char) * SYNTAX_TEMPLATE_MAX_LEN);
if (!syntax_template_str) goto err;
syntax_template_set(syntax_template_str, syntax_template_format, font_scale);
syntax_template_set(syntax_template_str, syntax_template_format,
tsd->font_scale);
color_keyword *color_keyword_list;
color_keyword_list = color_keyword_list_create(syntax_template_str);
@ -562,8 +560,7 @@ text_setting_double_clicked_cb(void *data, Evas_Object *obj,
if ((pos >= selected_color_keyword->pos_begin) &&
(pos <= selected_color_keyword->pos_end))
{
ctxpopup = color_ctxpopup_create(tsd->layout,
selected_color_keyword);
ctxpopup = color_ctxpopup_create(tsd, selected_color_keyword);
if (!ctxpopup) return;
evas_pointer_output_xy_get(evas_object_evas_get(obj), &x, &y);
@ -618,14 +615,12 @@ font_scale_slider_changed_cb(void *data, Evas_Object *obj,
double val = elm_slider_value_get(obj);
tsd->font_scale = val;
syntax_template_apply();
syntax_template_apply(tsd);
}
static void
text_setting_font_apply(void)
text_setting_font_apply(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
char text_class_name[32];
snprintf(text_class_name, sizeof(text_class_name), "%s_setting_entry",
"enventor");
@ -649,23 +644,22 @@ font_cmp_cb(const void *data1,
}
static void
font_style_selected_cb(void *data EINA_UNUSED, Evas_Object *obj,
font_style_selected_cb(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
text_setting_data *tsd = g_tsd;
text_setting_data *tsd = data;
Elm_Object_Item *font_style_it = elm_list_selected_item_get(obj);
const char *font_style = elm_object_item_text_get(font_style_it);
eina_stringshare_replace(&tsd->font_style, font_style);
text_setting_font_apply();
text_setting_font_apply(tsd);
}
static void
font_name_selected_cb(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
text_setting_data *tsd = g_tsd;
Evas_Object *list_font_style = data;
text_setting_data *tsd = data;
Elm_Object_Item *font_name_it = elm_list_selected_item_get(obj);
Elm_Object_Item *font_style_it = NULL;
const char *sel_font_name = elm_object_item_text_get(font_name_it);
@ -674,7 +668,7 @@ font_name_selected_cb(void *data, Evas_Object *obj,
config_font_get(&font_name, &font_style);
elm_list_clear(list_font_style);
elm_list_clear(tsd->list_font_style);
//Append Items of Font Style List
Elm_Font_Properties *efp;
@ -694,9 +688,10 @@ font_name_selected_cb(void *data, Evas_Object *obj,
EINA_LIST_FOREACH(efp->styles, ll, style)
{
Elm_Object_Item *it
= elm_list_item_append(list_font_style, style, NULL,
= elm_list_item_append(tsd->list_font_style, style,
NULL,
NULL, font_style_selected_cb,
NULL);
tsd);
if (font_name && !strcmp(font_name, efp->name) &&
font_style && !strcmp(font_style, style))
font_style_it = it;
@ -705,12 +700,12 @@ font_name_selected_cb(void *data, Evas_Object *obj,
elm_font_properties_free(efp);
}
}
elm_list_go(list_font_style);
elm_list_go(tsd->list_font_style);
if (font_style_it) elm_list_item_selected_set(font_style_it, EINA_TRUE);
eina_stringshare_replace(&tsd->font_name, sel_font_name);
eina_stringshare_replace(&tsd->font_style, NULL);
text_setting_font_apply();
text_setting_font_apply(tsd);
}
static Eina_Bool
@ -728,14 +723,38 @@ is_supported_font(const char *font_name)
return EINA_TRUE;
}
static void
text_setting_font_set(text_setting_data *tsd, const char *font_name,
const char *font_style)
{
eina_stringshare_replace(&tsd->font_name, font_name);
eina_stringshare_replace(&tsd->font_style, font_style);
if (!tsd->list_font_name) return;
const Eina_List *it_list = elm_list_items_get(tsd->list_font_name);
const Eina_List *l;
Elm_Object_Item *it;
EINA_LIST_FOREACH(it_list, l, it)
{
const char *name = elm_object_item_text_get(it);
if (font_name && !strcmp(font_name, name))
{
elm_list_item_selected_set(it, EINA_TRUE);
break;
}
}
}
/*****************************************************************************/
/* Externally accessible calls */
/*****************************************************************************/
Evas_Object *
text_setting_content_get(Evas_Object *parent)
text_setting_content_get(text_setting_data *tsd, Evas_Object *parent)
{
text_setting_data *tsd = g_tsd;
if (!tsd) return NULL;
if (tsd->layout) return tsd->layout;
//Layout
@ -759,7 +778,7 @@ text_setting_content_get(Evas_Object *parent)
//Font Scale Information
tsd->font_scale = (double) config_font_scale_get();
char *syntax_template_str = syntax_template_create(tsd->font_scale);
char *syntax_template_str = syntax_template_create(tsd);
elm_entry_entry_set(entry, syntax_template_str);
evas_object_smart_callback_add(entry, "clicked,double",
text_setting_double_clicked_cb, tsd);
@ -879,8 +898,8 @@ text_setting_content_get(Evas_Object *parent)
label_font_style);
//Font Style (List)
Evas_Object *list_font_style = list_create(box2);
elm_box_pack_end(box2, list_font_style);
tsd->list_font_style = list_create(box2);
elm_box_pack_end(box2, tsd->list_font_style);
//Font Name and Style Information
const char *font_name;
@ -909,7 +928,7 @@ text_setting_content_get(Evas_Object *parent)
Elm_Object_Item *it
= elm_list_item_append(list_font_name, efp->name, NULL,
NULL, font_name_selected_cb,
list_font_style);
tsd);
if (font_name && !strcmp(font_name, efp->name))
font_name_it = it;
snprintf(prev_font, sizeof(prev_font), "%s", efp->name);
@ -933,16 +952,17 @@ text_setting_content_get(Evas_Object *parent)
}
void
text_setting_focus_set(void)
text_setting_focus_set(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
if (!tsd) return;
elm_object_focus_set(tsd->slider_font, EINA_TRUE);
}
void
text_setting_config_set(void)
text_setting_config_set(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
if (!tsd) return;
config_font_set(tsd->font_name, tsd->font_style);
config_font_scale_set((float) elm_slider_value_get(tsd->slider_font));
@ -950,88 +970,48 @@ text_setting_config_set(void)
config_auto_indent_set(elm_check_state_get(tsd->toggle_indent));
config_auto_complete_set(elm_check_state_get(tsd->toggle_autocomp));
config_smart_undo_redo_set(elm_check_state_get(tsd->toggle_smart_undo_redo));
text_setting_syntax_color_save();
}
void
text_setting_font_set(const char *font_name, const char *font_style)
text_setting_reset(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
if (!tsd) return;
eina_stringshare_replace(&tsd->font_name, font_name);
eina_stringshare_replace(&tsd->font_style, font_style);
if (!tsd->list_font_name) return;
const Eina_List *it_list = elm_list_items_get(tsd->list_font_name);
const Eina_List *l;
Elm_Object_Item *it;
EINA_LIST_FOREACH(it_list, l, it)
{
const char *name = elm_object_item_text_get(it);
if (font_name && !strcmp(font_name, name))
{
elm_list_item_selected_set(it, EINA_TRUE);
break;
}
}
}
void
text_setting_font_scale_set(double font_scale)
{
text_setting_data *tsd = g_tsd;
tsd->font_scale = font_scale;
//font scale
tsd->font_scale = (double) config_font_scale_get();
elm_slider_value_set(tsd->slider_font, tsd->font_scale);
elm_check_state_set(tsd->toggle_linenum, config_linenumber_get());
elm_check_state_set(tsd->toggle_indent, config_auto_indent_get());
elm_check_state_set(tsd->toggle_autocomp, config_auto_complete_get());
elm_check_state_set(tsd->toggle_smart_undo_redo,
config_smart_undo_redo_get());
//font reset
const char *font_name, *font_style;
config_font_get(&font_name, &font_style);
text_setting_font_set(tsd, font_name, font_style);
text_setting_syntax_color_reset(tsd);
}
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_smart_undo_redo_set(Eina_Bool enabled)
{
text_setting_data *tsd = g_tsd;
elm_check_state_set(tsd->toggle_smart_undo_redo, enabled);
}
void
text_setting_data *
text_setting_init(void)
{
text_setting_data *tsd = g_tsd;
if (tsd) return;
tsd = calloc(1, sizeof(text_setting_data));
text_setting_data *tsd = calloc(1, sizeof(text_setting_data));
if (!tsd)
{
EINA_LOG_ERR(_("Failed to allocate Memory!"));
return;
return NULL;
}
g_tsd = tsd;
return tsd;
}
void
text_setting_term(void)
text_setting_term(text_setting_data *tsd)
{
text_setting_data *tsd = g_tsd;
if (!tsd) return;
evas_object_del(tsd->color_ctxpopup);
@ -1041,5 +1021,4 @@ text_setting_term(void)
eina_stringshare_del(tsd->font_name);
eina_stringshare_del(tsd->font_style);
free(tsd);
g_tsd = NULL;
}

View File

@ -17,4 +17,5 @@ EXTRA_DIST = common.h \
console.h \
file_mgr.h \
edc_navigator.h \
file_browser.h
file_browser.h \
build_setting.h

View File

@ -0,0 +1,7 @@
typedef struct build_setting_s build_setting_data;
Evas_Object *build_setting_content_get(build_setting_data *tsd, Evas_Object *parent);
void build_setting_config_set(build_setting_data *tsd);
void build_setting_term(build_setting_data *tsd);
build_setting_data *build_setting_init(void);
void build_setting_focus_set(build_setting_data *tsd);

View File

@ -79,7 +79,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
#include "live_edit.h"
#include "console.h"
#include "file_mgr.h"
#include "build_setting.h"
/* localization */
#ifdef HAVE_GETTEXT

View File

@ -1,13 +1,7 @@
Evas_Object *text_setting_content_get(Evas_Object *parent);
void text_setting_syntax_color_reset(void);
void text_setting_syntax_color_save(void);
void text_setting_config_set(void);
void text_setting_font_set(const char *font_name, const char *font_style);
void text_setting_font_scale_set(double font_scale);
void text_setting_linenumber_set(Eina_Bool enabled);
void text_setting_auto_indent_set(Eina_Bool enabled);
void text_setting_auto_complete_set(Eina_Bool enabled);
void text_setting_smart_undo_redo_set(Eina_Bool enabled);
void text_setting_term(void);
void text_setting_init(void);
void text_setting_focus_set(void);
typedef struct text_setting_s text_setting_data;
Evas_Object *text_setting_content_get(text_setting_data *tsd, Evas_Object *parent);
void text_setting_config_set(text_setting_data *tsd);
void text_setting_term(text_setting_data *tsd);
text_setting_data *text_setting_init(void);
void text_setting_focus_set(text_setting_data *tsd);