setting: refactoring code.

split preference setting code from general setting.
This commit is contained in:
Hermet Park 2016-04-17 13:48:35 +09:00
parent 8f91d45ff1
commit b04b7dde28
9 changed files with 367 additions and 327 deletions

View File

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

View File

@ -13,8 +13,6 @@ typedef struct build_setting_s
} build_setting_data;
static build_setting_data *g_bsd = NULL;
/*****************************************************************************/
/* Internal method implementation */
/*****************************************************************************/
@ -193,8 +191,6 @@ void
build_setting_term(build_setting_data *bsd)
{
if (!bsd) return;
evas_object_del(bsd->layout);
free(bsd);
g_bsd = NULL;
}

View File

@ -0,0 +1,325 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "common.h"
typedef struct preference_setting_s
{
Evas_Object *scroller;
Evas_Object *slider_view;
Evas_Object *view_size_w_entry;
Evas_Object *view_size_h_entry;
Evas_Object *toggle_highlight;
Evas_Object *toggle_swallow;
Evas_Object *toggle_stats;
Evas_Object *toggle_file_browser;
Evas_Object *toggle_edc_navigator;
Evas_Object *toggle_tools;
Evas_Object *toggle_console;
} preference_setting_data;
/*****************************************************************************/
/* Internal method implementation */
/*****************************************************************************/
static Evas_Object *
label_create(Evas_Object *parent, const char *text)
{
Evas_Object *label = elm_label_add(parent);
elm_object_text_set(label, text);
evas_object_show(label);
return label;
}
static Evas_Object *
toggle_create(Evas_Object *parent, const char *text, Eina_Bool state)
{
Evas_Object *toggle = elm_check_add(parent);
elm_object_style_set(toggle, "toggle");
elm_check_state_set(toggle, state);
evas_object_size_hint_weight_set(toggle, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(toggle, EVAS_HINT_FILL, 0);
elm_object_text_set(toggle, text);
evas_object_show(toggle);
return toggle;
}
static Evas_Object *
entry_create(Evas_Object *parent)
{
Evas_Object *entry = elm_entry_add(parent);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_scrollable_set(entry, EINA_TRUE);
evas_object_show(entry);
return entry;
}
/*****************************************************************************/
/* Externally accessible calls */
/*****************************************************************************/
void
preference_setting_focus_set(preference_setting_data *psd)
{
if (!psd) return;
elm_object_focus_set(psd->slider_view, EINA_TRUE);
}
void
preference_setting_config_set(preference_setting_data *psd)
{
if (!psd) return;
config_view_scale_set(elm_slider_value_get(psd->slider_view));
config_tools_set(elm_check_state_get(psd->toggle_tools));
config_console_set(elm_check_state_get(psd->toggle_console));
config_stats_bar_set(elm_check_state_get(psd->toggle_stats));
config_part_highlight_set(elm_check_state_get(psd->toggle_highlight));
config_dummy_parts_set(elm_check_state_get(psd->toggle_swallow));
config_file_browser_set(elm_check_state_get(psd->toggle_file_browser));
config_edc_navigator_set(elm_check_state_get(psd->toggle_edc_navigator));
Evas_Coord w = 0;
Evas_Coord h = 0;
const char *w_entry = elm_entry_entry_get(psd->view_size_w_entry);
if (w_entry) w = (Evas_Coord)atoi(w_entry);
const char *h_entry = elm_entry_entry_get(psd->view_size_h_entry);
if (h_entry) h = (Evas_Coord)atoi(h_entry);
config_view_size_set(w, h);
}
void
preference_setting_reset(preference_setting_data *psd)
{
if (!psd) return;
elm_slider_value_set(psd->slider_view, (double) config_view_scale_get());
elm_check_state_set(psd->toggle_console, config_console_get());
elm_check_state_set(psd->toggle_tools, config_tools_get());
elm_check_state_set(psd->toggle_stats, config_stats_bar_get());
elm_check_state_set(psd->toggle_highlight, config_part_highlight_get());
elm_check_state_set(psd->toggle_swallow, config_dummy_parts_get());
elm_check_state_set(psd->toggle_file_browser, config_file_browser_get());
elm_check_state_set(psd->toggle_edc_navigator, config_edc_navigator_get());
//Reset view scale
int view_size_w, view_size_h;
config_view_size_get(&view_size_w, &view_size_h);
char buf[10];
snprintf(buf, sizeof(buf), "%d", view_size_w);
elm_entry_entry_set(psd->view_size_w_entry, buf);
snprintf(buf, sizeof(buf), "%d", view_size_h);
elm_entry_entry_set(psd->view_size_h_entry, buf);
}
Evas_Object *
preference_setting_content_get(preference_setting_data *psd, Evas_Object *parent)
{
if (!psd) return NULL;
if (psd->scroller) return psd->scroller;
static Elm_Entry_Filter_Accept_Set digits_filter_data;
static Elm_Entry_Filter_Limit_Size limit_filter_data;
//Preference
Evas_Object *scroller = elm_scroller_add(parent);
//Box
Evas_Object *box = elm_box_add(scroller);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
elm_object_content_set(scroller, box);
Evas_Object *box2;
Evas_Object *layout_padding3;
//Box for View Scale
box2 = elm_box_add(box);
elm_box_horizontal_set(box2, EINA_TRUE);
elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0);
evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0);
evas_object_show(box2);
elm_box_pack_end(box, box2);
/* This layout is intended to put the label aligned to left side
far from 3 pixels. */
layout_padding3 = elm_layout_add(box2);
elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout");
evas_object_show(layout_padding3);
elm_box_pack_end(box2, layout_padding3);
Evas_Object *label_view_scale = label_create(layout_padding3,
_("Live View Scale"));
elm_object_part_content_set(layout_padding3, "elm.swallow.content",
label_view_scale);
//View Scale (Slider)
Evas_Object *slider_view = elm_slider_add(box);
evas_object_size_hint_weight_set(slider_view, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(slider_view, EVAS_HINT_FILL, 0);
elm_slider_span_size_set(slider_view, 190);
elm_slider_indicator_show_set(slider_view, EINA_FALSE);
elm_slider_unit_format_set(slider_view, "%1.2fx");
double step = 0.01 / (double) (MAX_VIEW_SCALE - MIN_VIEW_SCALE);
elm_slider_step_set(slider_view, step);
elm_slider_min_max_set(slider_view, MIN_VIEW_SCALE, MAX_VIEW_SCALE);
elm_slider_value_set(slider_view, (double) config_view_scale_get());
evas_object_show(slider_view);
elm_box_pack_end(box2, slider_view);
//View Size
//Box for View Size
box2 = elm_box_add(box);
elm_box_horizontal_set(box2, EINA_TRUE);
elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0);
evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0);
evas_object_show(box2);
elm_box_pack_end(box, box2);
//Label (View Size)
/* This layout is intended to put the label aligned to left side
far from 3 pixels. */
layout_padding3 = elm_layout_add(box2);
elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout");
evas_object_show(layout_padding3);
elm_box_pack_end(box2, layout_padding3);
Evas_Object *label_view_size = label_create(layout_padding3,
_("Live View Size"));
elm_object_part_content_set(layout_padding3, "elm.swallow.content",
label_view_size);
//Spacer
Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(box2));
evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box2, rect);
Evas_Coord w, h;
char w_str[5], h_str[5];
config_view_size_get(&w, &h);
snprintf(w_str, sizeof(w_str), "%d", w);
snprintf(h_str, sizeof(h_str), "%d", h);
//Entry (View Width)
Evas_Object *entry_view_size_w = entry_create(box2);
evas_object_size_hint_weight_set(entry_view_size_w, 0.15, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry_view_size_w, EVAS_HINT_FILL, EVAS_HINT_FILL);
digits_filter_data.accepted = "0123456789";
digits_filter_data.rejected = NULL;
elm_entry_markup_filter_append(entry_view_size_w,
elm_entry_filter_accept_set,
&digits_filter_data);
limit_filter_data.max_char_count = 4;
limit_filter_data.max_byte_count = 0;
elm_entry_markup_filter_append(entry_view_size_w,
elm_entry_filter_limit_size,
&limit_filter_data);
elm_object_text_set(entry_view_size_w, w_str);
elm_box_pack_end(box2, entry_view_size_w);
//Label (X)
Evas_Object *label_view_size_x = label_create(box2, "X");
elm_box_pack_end(box2, label_view_size_x);
//Entry (View Height)
Evas_Object *entry_view_size_h = entry_create(box2);
evas_object_size_hint_weight_set(entry_view_size_h, 0.15, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry_view_size_h, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_entry_markup_filter_append(entry_view_size_h,
elm_entry_filter_accept_set,
&digits_filter_data);
elm_entry_markup_filter_append(entry_view_size_h,
elm_entry_filter_limit_size,
&limit_filter_data);
elm_object_text_set(entry_view_size_h, h_str);
elm_box_pack_end(box2, entry_view_size_h);
//Toggle (Part Highlighting)
Evas_Object *toggle_highlight = toggle_create(box, _("Part Highlighting"),
config_part_highlight_get());
elm_box_pack_end(box, toggle_highlight);
//Toggle (Dummy Swallow)
Evas_Object *toggle_swallow = toggle_create(box, _("Dummy Parts"),
config_dummy_parts_get());
elm_box_pack_end(box, toggle_swallow);
//Toggle (Status)
Evas_Object *toggle_stats = toggle_create(box, _("Status"),
config_stats_bar_get());
elm_box_pack_end(box, toggle_stats);
//Toggle (File Browser)
Evas_Object *toggle_file_browser = toggle_create(box, _("File Browser"),
config_file_browser_get());
elm_box_pack_end(box, toggle_file_browser);
//Toggle (EDC Navigator)
Evas_Object *toggle_edc_navigator = toggle_create(box, _("EDC Navigator"),
config_edc_navigator_get());
elm_box_pack_end(box, toggle_edc_navigator);
//Toggle (Tools)
Evas_Object *toggle_tools = toggle_create(box, _("Tools"),
config_tools_get());
elm_box_pack_end(box, toggle_tools);
//Toggle (Console)
Evas_Object *toggle_console = toggle_create(box, _("Auto Hiding Console"),
config_console_get());
evas_object_size_hint_weight_set(toggle_console, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(toggle_console, EVAS_HINT_FILL, 0);
elm_box_pack_end(box, toggle_console);
psd->scroller = scroller;
psd->slider_view = slider_view;
psd->view_size_w_entry = entry_view_size_w;
psd->view_size_h_entry = entry_view_size_h;
psd->toggle_highlight = toggle_highlight;
psd->toggle_swallow = toggle_swallow;
psd->toggle_stats = toggle_stats;
psd->toggle_file_browser = toggle_file_browser;
psd->toggle_edc_navigator = toggle_edc_navigator;
psd->toggle_tools = toggle_tools;
psd->toggle_console = toggle_console;
return scroller;
}
preference_setting_data *
preference_setting_init(void)
{
preference_setting_data *psd = calloc(1, sizeof(preference_setting_data));
if (!psd)
{
EINA_LOG_ERR(_("Failed to allocate Memory!"));
return NULL;
}
return psd;
}
void
preference_setting_term(preference_setting_data *psd)
{
if (!psd) return;
evas_object_del(psd->scroller);
free(psd);
}

View File

@ -16,9 +16,10 @@ typedef enum {
typedef struct setting_s
{
Evas_Object *setting_layout;
Evas_Object *layout;
Evas_Object *toolbar;
preference_setting_data *psd;
text_setting_data *tsd;
build_setting_data *bsd;
@ -28,26 +29,10 @@ typedef struct setting_s
Evas_Object *reset_btn;
Evas_Object *cancel_btn;
//below: preference setting data
Evas_Object *preference;
Evas_Object *slider_view;
Evas_Object *view_size_w_entry;
Evas_Object *view_size_h_entry;
Evas_Object *toggle_highlight;
Evas_Object *toggle_swallow;
Evas_Object *toggle_stats;
Evas_Object *toggle_file_browser;
Evas_Object *toggle_edc_navigator;
Evas_Object *toggle_tools;
Evas_Object *toggle_console;
} setting_data;
static setting_data *g_sd = NULL;
static void preference_setting_config_set(setting_data *sd);
static void preference_setting_reset(setting_data *sd);
/*****************************************************************************/
/* Internal method implementation */
@ -63,8 +48,8 @@ setting_dismiss_done_cb(void *data, Evas_Object *obj EINA_UNUSED,
text_setting_term(sd->tsd);
build_setting_term(sd->bsd);
evas_object_del(sd->setting_layout);
sd->setting_layout = NULL;
evas_object_del(sd->layout);
sd->layout = NULL;
menu_deactivate_request();
free(sd);
@ -77,7 +62,7 @@ setting_apply_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
setting_data *sd = data;
preference_setting_config_set(sd);
preference_setting_config_set(sd->psd);
build_setting_config_set(sd->bsd);
text_setting_config_set(sd->tsd);
@ -99,7 +84,7 @@ setting_reset_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
{
setting_data *sd = data;
preference_setting_reset(sd);
preference_setting_reset(sd->psd);
text_setting_reset(sd->tsd);
build_setting_reset(sd->bsd);
}
@ -110,290 +95,11 @@ focus_custom_chain_set(setting_data *sd, Evas_Object *content)
//Set a custom chain to set the focus order.
Eina_List *custom_chain = NULL;
custom_chain = eina_list_append(custom_chain, sd->toolbar);
custom_chain = eina_list_append(custom_chain, sd->preference);
custom_chain = eina_list_append(custom_chain, content);
custom_chain = eina_list_append(custom_chain, sd->apply_btn);
custom_chain = eina_list_append(custom_chain, sd->reset_btn);
custom_chain = eina_list_append(custom_chain, sd->cancel_btn);
elm_object_focus_custom_chain_set(sd->setting_layout, custom_chain);
}
static Evas_Object *
entry_create(Evas_Object *parent)
{
Evas_Object *entry = elm_entry_add(parent);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_scrollable_set(entry, EINA_TRUE);
evas_object_show(entry);
return entry;
}
static Evas_Object *
label_create(Evas_Object *parent, const char *text)
{
Evas_Object *label = elm_label_add(parent);
elm_object_text_set(label, text);
evas_object_show(label);
return label;
}
static Evas_Object *
toggle_create(Evas_Object *parent, const char *text, Eina_Bool state)
{
Evas_Object *toggle = elm_check_add(parent);
elm_object_style_set(toggle, "toggle");
elm_check_state_set(toggle, state);
evas_object_size_hint_weight_set(toggle, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(toggle, EVAS_HINT_FILL, 0);
elm_object_text_set(toggle, text);
evas_object_show(toggle);
return toggle;
}
static void
preference_setting_reset(setting_data *sd)
{
elm_slider_value_set(sd->slider_view, (double) config_view_scale_get());
elm_check_state_set(sd->toggle_console, config_console_get());
elm_check_state_set(sd->toggle_tools, config_tools_get());
elm_check_state_set(sd->toggle_stats, config_stats_bar_get());
elm_check_state_set(sd->toggle_highlight, config_part_highlight_get());
elm_check_state_set(sd->toggle_swallow, config_dummy_parts_get());
elm_check_state_set(sd->toggle_file_browser, config_file_browser_get());
elm_check_state_set(sd->toggle_edc_navigator, config_edc_navigator_get());
//Reset view scale
int view_size_w, view_size_h;
config_view_size_get(&view_size_w, &view_size_h);
char buf[10];
snprintf(buf, sizeof(buf), "%d", view_size_w);
elm_entry_entry_set(sd->view_size_w_entry, buf);
snprintf(buf, sizeof(buf), "%d", view_size_h);
elm_entry_entry_set(sd->view_size_h_entry, buf);
}
static void
preference_setting_config_set(setting_data *sd)
{
config_view_scale_set(elm_slider_value_get(sd->slider_view));
config_tools_set(elm_check_state_get(sd->toggle_tools));
config_console_set(elm_check_state_get(sd->toggle_console));
config_stats_bar_set(elm_check_state_get(sd->toggle_stats));
config_part_highlight_set(elm_check_state_get(sd->toggle_highlight));
config_dummy_parts_set(elm_check_state_get(sd->toggle_swallow));
config_file_browser_set(elm_check_state_get(sd->toggle_file_browser));
config_edc_navigator_set(elm_check_state_get(sd->toggle_edc_navigator));
Evas_Coord w = 0;
Evas_Coord h = 0;
const char *w_entry = elm_entry_entry_get(sd->view_size_w_entry);
if (w_entry) w = (Evas_Coord)atoi(w_entry);
const char *h_entry = elm_entry_entry_get(sd->view_size_h_entry);
if (h_entry) h = (Evas_Coord)atoi(h_entry);
config_view_size_set(w, h);
}
static Evas_Object *
preference_create(setting_data *sd, Evas_Object *parent)
{
static Elm_Entry_Filter_Accept_Set digits_filter_data;
static Elm_Entry_Filter_Limit_Size limit_filter_data;
//Preference
Evas_Object *scroller = elm_scroller_add(parent);
//Box
Evas_Object *box = elm_box_add(scroller);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
elm_object_content_set(scroller, box);
Evas_Object *box2;
Evas_Object *layout_padding3;
//Box for View Scale
box2 = elm_box_add(box);
elm_box_horizontal_set(box2, EINA_TRUE);
elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0);
evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0);
evas_object_show(box2);
elm_box_pack_end(box, box2);
/* This layout is intended to put the label aligned to left side
far from 3 pixels. */
layout_padding3 = elm_layout_add(box2);
elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout");
evas_object_show(layout_padding3);
elm_box_pack_end(box2, layout_padding3);
Evas_Object *label_view_scale = label_create(layout_padding3,
_("Live View Scale"));
elm_object_part_content_set(layout_padding3, "elm.swallow.content",
label_view_scale);
//View Scale (Slider)
Evas_Object *slider_view = elm_slider_add(box);
evas_object_size_hint_weight_set(slider_view, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(slider_view, EVAS_HINT_FILL, 0);
elm_slider_span_size_set(slider_view, 190);
elm_slider_indicator_show_set(slider_view, EINA_FALSE);
elm_slider_unit_format_set(slider_view, "%1.2fx");
double step = 0.01 / (double) (MAX_VIEW_SCALE - MIN_VIEW_SCALE);
elm_slider_step_set(slider_view, step);
elm_slider_min_max_set(slider_view, MIN_VIEW_SCALE, MAX_VIEW_SCALE);
elm_slider_value_set(slider_view, (double) config_view_scale_get());
evas_object_show(slider_view);
elm_box_pack_end(box2, slider_view);
//View Size
//Box for View Size
box2 = elm_box_add(box);
elm_box_horizontal_set(box2, EINA_TRUE);
elm_box_padding_set(box2, 5 * elm_config_scale_get(), 0);
evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0);
evas_object_show(box2);
elm_box_pack_end(box, box2);
//Label (View Size)
/* This layout is intended to put the label aligned to left side
far from 3 pixels. */
layout_padding3 = elm_layout_add(box2);
elm_layout_file_set(layout_padding3, EDJE_PATH, "padding3_layout");
evas_object_show(layout_padding3);
elm_box_pack_end(box2, layout_padding3);
Evas_Object *label_view_size = label_create(layout_padding3,
_("Live View Size"));
elm_object_part_content_set(layout_padding3, "elm.swallow.content",
label_view_size);
//Spacer
Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(box2));
evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box2, rect);
Evas_Coord w, h;
char w_str[5], h_str[5];
config_view_size_get(&w, &h);
snprintf(w_str, sizeof(w_str), "%d", w);
snprintf(h_str, sizeof(h_str), "%d", h);
//Entry (View Width)
Evas_Object *entry_view_size_w = entry_create(box2);
evas_object_size_hint_weight_set(entry_view_size_w, 0.15, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry_view_size_w, EVAS_HINT_FILL, EVAS_HINT_FILL);
digits_filter_data.accepted = "0123456789";
digits_filter_data.rejected = NULL;
elm_entry_markup_filter_append(entry_view_size_w,
elm_entry_filter_accept_set,
&digits_filter_data);
limit_filter_data.max_char_count = 4;
limit_filter_data.max_byte_count = 0;
elm_entry_markup_filter_append(entry_view_size_w,
elm_entry_filter_limit_size,
&limit_filter_data);
elm_object_text_set(entry_view_size_w, w_str);
elm_box_pack_end(box2, entry_view_size_w);
//Label (X)
Evas_Object *label_view_size_x = label_create(box2, "X");
elm_box_pack_end(box2, label_view_size_x);
//Entry (View Height)
Evas_Object *entry_view_size_h = entry_create(box2);
evas_object_size_hint_weight_set(entry_view_size_h, 0.15, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry_view_size_h, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_entry_markup_filter_append(entry_view_size_h,
elm_entry_filter_accept_set,
&digits_filter_data);
elm_entry_markup_filter_append(entry_view_size_h,
elm_entry_filter_limit_size,
&limit_filter_data);
elm_object_text_set(entry_view_size_h, h_str);
elm_box_pack_end(box2, entry_view_size_h);
//Toggle (Part Highlighting)
Evas_Object *toggle_highlight = toggle_create(box, _("Part Highlighting"),
config_part_highlight_get());
elm_box_pack_end(box, toggle_highlight);
//Toggle (Dummy Swallow)
Evas_Object *toggle_swallow = toggle_create(box, _("Dummy Parts"),
config_dummy_parts_get());
elm_box_pack_end(box, toggle_swallow);
//Toggle (Status)
Evas_Object *toggle_stats = toggle_create(box, _("Status"),
config_stats_bar_get());
elm_box_pack_end(box, toggle_stats);
//Toggle (File Browser)
Evas_Object *toggle_file_browser = toggle_create(box, _("File Browser"),
config_file_browser_get());
elm_box_pack_end(box, toggle_file_browser);
//Toggle (EDC Navigator)
Evas_Object *toggle_edc_navigator = toggle_create(box, _("EDC Navigator"),
config_edc_navigator_get());
elm_box_pack_end(box, toggle_edc_navigator);
//Toggle (Tools)
Evas_Object *toggle_tools = toggle_create(box, _("Tools"),
config_tools_get());
elm_box_pack_end(box, toggle_tools);
//Toggle (Console)
Evas_Object *toggle_console = toggle_create(box, _("Auto Hiding Console"),
config_console_get());
evas_object_size_hint_weight_set(toggle_console, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(toggle_console, EVAS_HINT_FILL, 0);
elm_box_pack_end(box, toggle_console);
sd->preference = scroller;
sd->slider_view = slider_view;
sd->view_size_w_entry = entry_view_size_w;
sd->view_size_h_entry = entry_view_size_h;
sd->toggle_highlight = toggle_highlight;
sd->toggle_swallow = toggle_swallow;
sd->toggle_stats = toggle_stats;
sd->toggle_file_browser = toggle_file_browser;
sd->toggle_edc_navigator = toggle_edc_navigator;
sd->toggle_tools = toggle_tools;
sd->toggle_console = toggle_console;
return scroller;
}
static void
preference_setting_focus_set(void)
{
setting_data *sd = g_sd;
elm_object_focus_set(sd->slider_view, EINA_TRUE);
}
static Evas_Object *
preference_setting_content_get(Evas_Object *parent EINA_UNUSED)
{
setting_data *sd = g_sd;
return sd->preference;
elm_object_focus_custom_chain_set(sd->layout, custom_chain);
}
static void
@ -405,15 +111,15 @@ toolbar_preferene_cb(void *data, Evas_Object *obj EINA_UNUSED,
if (sd->current_view == SETTING_VIEW_PREFERENCE) return;
//Hide previous tab view
Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout,
Evas_Object *pcontent = elm_object_part_content_unset(sd->layout,
"elm.swallow.content");
evas_object_hide(pcontent);
Evas_Object *content = preference_setting_content_get(obj);
elm_object_part_content_set(sd->setting_layout, "elm.swallow.content",
Evas_Object *content = preference_setting_content_get(sd->psd, obj);
elm_object_part_content_set(sd->layout, "elm.swallow.content",
content);
focus_custom_chain_set(sd, content);
preference_setting_focus_set();
preference_setting_focus_set(sd->psd);
sd->current_view = SETTING_VIEW_PREFERENCE;
}
@ -428,12 +134,12 @@ toolbar_text_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
if (!sd->tsd) sd->tsd = text_setting_init();
//Hide previous tab view
Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout,
Evas_Object *pcontent = elm_object_part_content_unset(sd->layout,
"elm.swallow.content");
evas_object_hide(pcontent);
Evas_Object *content = text_setting_content_get(sd->tsd, obj);
elm_object_part_content_set(sd->setting_layout, "elm.swallow.content",
elm_object_part_content_set(sd->layout, "elm.swallow.content",
content);
focus_custom_chain_set(sd, content);
text_setting_focus_set(sd->tsd);
@ -451,12 +157,12 @@ toolbar_build_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
if (!sd->bsd) sd->bsd = build_setting_init();
//Hide previous tab view
Evas_Object *pcontent = elm_object_part_content_unset(sd->setting_layout,
Evas_Object *pcontent = elm_object_part_content_unset(sd->layout,
"elm.swallow.content");
evas_object_hide(pcontent);
Evas_Object *content = build_setting_content_get(sd->bsd, obj);
elm_object_part_content_set(sd->setting_layout, "elm.swallow.content",
elm_object_part_content_set(sd->layout, "elm.swallow.content",
content);
focus_custom_chain_set(sd, content);
build_setting_focus_set(sd->bsd);
@ -513,10 +219,12 @@ setting_open(void)
elm_object_part_content_set(layout, "elm.swallow.toolbar", toolbar);
//Preference layout
Evas_Object *preference = preference_create(sd, layout);
elm_object_part_content_set(layout, "elm.swallow.content", preference);
preference_setting_focus_set();
//Preference Content as a default
sd->psd = preference_setting_init();
Evas_Object *content = preference_setting_content_get(sd->psd, layout);
elm_object_part_content_set(layout, "elm.swallow.content", content);
preference_setting_focus_set(sd->psd);
sd->current_view = SETTING_VIEW_PREFERENCE;
//Apply Button
Evas_Object *apply_btn = elm_button_add(layout);
@ -539,7 +247,7 @@ setting_open(void)
sd);
elm_object_part_content_set(layout, "elm.swallow.cancel_btn", cancel_btn);
sd->setting_layout = layout;
sd->layout = layout;
sd->toolbar = toolbar;
sd->apply_btn = apply_btn;
sd->reset_btn = reset_btn;
@ -553,7 +261,7 @@ setting_close()
{
setting_data *sd = g_sd;
if (!sd) return;
elm_object_signal_emit(sd->setting_layout, "elm,state,dismiss", "");
elm_object_signal_emit(sd->layout, "elm,state,dismiss", "");
}
Eina_Bool

View File

@ -1020,5 +1020,6 @@ text_setting_term(text_setting_data *tsd)
free(tsd->syntax_template_str);
eina_stringshare_del(tsd->font_name);
eina_stringshare_del(tsd->font_style);
evas_object_del(tsd->layout);
free(tsd);
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,7 @@
typedef struct preference_setting_s preference_setting_data;
Evas_Object *preference_setting_content_get(preference_setting_data *psd, Evas_Object *parent);
void preference_setting_config_set(preference_setting_data *psd);
void preference_setting_term(preference_setting_data *psd);
preference_setting_data *preference_setting_init(void);
void preference_setting_focus_set(preference_setting_data *psd);