diff --git a/README b/README index 24457f0..7ef320d 100644 --- a/README +++ b/README @@ -36,7 +36,7 @@ F3 - Save F4 - Load F5 - Toggle Line Number F9 - Toggle Tools -F10 - Toggle Console +F10 - Toggle EDC Navigator F11 - Toggle Status F12 - Settings diff --git a/data/about/ABOUT b/data/about/ABOUT index f6f9119..c42ee1e 100644 --- a/data/about/ABOUT +++ b/data/about/ABOUT @@ -18,7 +18,7 @@ F3 - Save
F4 - Load
F5 - Toggle Line Number
F9 - Toggle Tools
-F10 - Toggle Console
+F10 - Toggle EDC Navigator
F11 - Toggle Status
F12 - Settings

diff --git a/data/themes/default/images.edc b/data/themes/default/images.edc index 1756b86..02b9507 100644 --- a/data/themes/default/images.edc +++ b/data/themes/default/images.edc @@ -21,6 +21,7 @@ images { image: "live_textblock.png" COMP; image: "expand.png" COMP; image: "invert.png" COMP; + image: "edc_navigator.png" COMP; } #define ICON_GROUP(_group_name, _image_path) \ @@ -55,5 +56,6 @@ ICON_GROUP("Swallow", "live_swallow.png") ICON_GROUP("Text", "live_text.png") ICON_GROUP("Textblock", "live_textblock.png") ICON_GROUP("close", "icon_close.png") +ICON_GROUP("edc_navigator", "edc_navigator.png") #undef ICON_GROUP diff --git a/data/themes/default/images/Makefile.am b/data/themes/default/images/Makefile.am index 58eab21..97e9c5a 100644 --- a/data/themes/default/images/Makefile.am +++ b/data/themes/default/images/Makefile.am @@ -70,4 +70,5 @@ EXTRA_DIST = \ horizontal_separated_bar_small_glow.png \ expand.png \ invert.png \ - icon_close.png + icon_close.png \ + edc_navigator.png diff --git a/data/themes/default/images/edc_navigator.png b/data/themes/default/images/edc_navigator.png new file mode 100644 index 0000000..881fa99 Binary files /dev/null and b/data/themes/default/images/edc_navigator.png differ diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index b8600d2..245fae6 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -2387,7 +2387,7 @@ group { name: "main_layout"; type: SPACER; scale: 1; description { - min: 640 440; + min: 900 440; } } part { name: "tools_base"; @@ -2427,12 +2427,12 @@ group { name: "main_layout"; image.border_scale: 1; } } - part { name: "elm.swallow.panes"; - type: SWALLOW; + swallow { "elm.swallow.panes"; scale: 1; - description { state: "default" 0.0; + desc { "default"; rel1.relative: 0 1; - rel2.relative: 1 0; + rel2.relative: 0 0; + rel2.to: "elm.swallow.edc_navigator"; rel1.to_y: "elm.swallow.tools"; rel2.to_y: "elm.swallow.statusbar"; } @@ -2465,8 +2465,36 @@ group { name: "main_layout"; align: 0.5 1; } } + swallow { "elm.swallow.edc_navigator"; + scale: 1; + desc { "default"; + rel1.relative: 1 1; + rel2.relative: 1 0; + rel1.to_y: "elm.swallow.tools"; + rel2.to_y: "elm.swallow.statusbar"; + align: 1 0; + min: 0 0; + fixed: 1 0; + } + desc { "visible"; + inherit: "default"; + min: 150 0; + } + } } programs { + program { "edc_navigator_show"; + signal: "elm,state,edc_navigator,show"; + action: STATE_SET "visible" 0.0; + target: "elm.swallow.edc_navigator"; + transition: DECELERATE 0.25; + } + program { "edc_navigator_hide"; + signal: "elm,state,edc_navigator,hide"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.edc_navigator"; + transition: DECELERATE 0.25; + } program { name: "statusbar_show"; signal: "elm,state,statusbar,show"; action: STATE_SET "visible" 0.0; diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c index ef49d1d..817efc1 100644 --- a/src/bin/base_gui.c +++ b/src/bin/base_gui.c @@ -70,6 +70,19 @@ base_statusbar_toggle(Eina_Bool toggle) elm_object_signal_emit(bd->layout, "elm,state,statusbar,hide", ""); } +void base_edc_navigator_toggle(Eina_Bool toggle) +{ + base_data *bd = g_bd; + assert(bd); + + if (toggle) config_edc_navigator_set(!config_edc_navigator_get()); + + if (config_edc_navigator_get()) + elm_object_signal_emit(bd->layout, "elm,state,edc_navigator,show", ""); + else + elm_object_signal_emit(bd->layout, "elm,state,edc_navigator,hide", ""); +} + void base_tools_toggle(Eina_Bool config) { diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 0ea964f..0a457d8 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -38,6 +38,7 @@ typedef struct config_s Eina_Bool console; Eina_Bool auto_complete; Eina_Bool smart_undo_redo; + Eina_Bool edc_navigator; } config_data; static config_data *g_cd = NULL; @@ -158,7 +159,7 @@ config_load(void) } } // loaded config is not compatile with current version of Enventor - if (cd->version < ENVENTOR_CONFIG_VERSION) + if (!ef || cd->version < ENVENTOR_CONFIG_VERSION) { cd->img_path_list = NULL; cd->snd_path_list = NULL; @@ -180,6 +181,7 @@ config_load(void) cd->auto_complete = EINA_TRUE; cd->version = ENVENTOR_CONFIG_VERSION; cd->smart_undo_redo = EINA_FALSE; + cd->edc_navigator = EINA_TRUE; } g_cd = cd; @@ -288,6 +290,8 @@ eddc_init(void) auto_complete, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "smart_undo_redo", smart_undo_redo, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "edc_navigator", + edc_navigator, EET_T_UCHAR); } void @@ -876,3 +880,17 @@ config_tools_set(Eina_Bool enabled) config_data *cd = g_cd; cd->tools = enabled; } + +void +config_edc_navigator_set(Eina_Bool enabled) +{ + config_data *cd = g_cd; + cd->edc_navigator = enabled; +} + +Eina_Bool +config_edc_navigator_get(void) +{ + config_data *cd = g_cd; + return cd->edc_navigator; +} diff --git a/src/bin/main.c b/src/bin/main.c index 7d8618b..96e1a42 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -43,6 +43,7 @@ tools_update(void) tools_highlight_update(EINA_FALSE); tools_dummy_update(EINA_FALSE); tools_status_update(EINA_FALSE); + tools_edc_navigator_update(EINA_FALSE); } static void @@ -772,11 +773,11 @@ keygrabber_key_down_cb(void *data, Evas *e EINA_UNUSED, base_tools_toggle(EINA_TRUE); return; } - //Console + //EDC Navigator if (!strcmp(ev->key, "F10")) { enventor_object_ctxpopup_dismiss(ad->enventor); - base_console_toggle(); + tools_edc_navigator_update(EINA_TRUE); return; } //Statusbar diff --git a/src/bin/setting.c b/src/bin/setting.c index 9f2c684..3e1a667 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -23,6 +23,7 @@ struct setting_s Evas_Object *toggle_highlight; Evas_Object *toggle_swallow; Evas_Object *toggle_stats; + Evas_Object *toggle_edc_navigator; Evas_Object *toggle_tools; Evas_Object *toggle_console; @@ -414,6 +415,11 @@ general_layout_create(setting_data *sd, Evas_Object *parent) config_stats_bar_get()); elm_box_pack_end(box, toggle_stats); + //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()); @@ -435,6 +441,7 @@ general_layout_create(setting_data *sd, Evas_Object *parent) sd->toggle_highlight = toggle_highlight; sd->toggle_swallow = toggle_swallow; sd->toggle_stats = toggle_stats; + sd->toggle_edc_navigator = toggle_edc_navigator; sd->toggle_tools = toggle_tools; sd->toggle_console = toggle_console; diff --git a/src/bin/tools.c b/src/bin/tools.c index ed7802d..def3209 100644 --- a/src/bin/tools.c +++ b/src/bin/tools.c @@ -8,6 +8,7 @@ typedef struct tools_s { Evas_Object *swallow_btn; Evas_Object *status_btn; + Evas_Object *edc_navigator_btn; Evas_Object *lines_btn; Evas_Object *highlight_btn; Evas_Object *goto_btn; @@ -31,25 +32,33 @@ menu_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } static void -highlight_cb(void *data, Evas_Object *obj EINA_UNUSED, +highlight_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { tools_highlight_update(EINA_TRUE); } static void -dummy_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) +dummy_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { tools_dummy_update(EINA_TRUE); } static void -lines_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +lines_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { tools_lines_update(EINA_TRUE); } +static void +edc_navigator_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + tools_edc_navigator_update(EINA_TRUE); +} + static void status_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) @@ -238,7 +247,6 @@ tools_init(Evas_Object *parent) elm_box_pack_end(box, btn); td->lines_btn = btn; - sp = elm_separator_add(box); evas_object_show(sp); elm_box_pack_end(box, sp); @@ -250,6 +258,13 @@ tools_init(Evas_Object *parent) elm_box_pack_end(box, btn); td->console_btn = btn; + btn = tools_btn_create(box, "edc_navigator", _("EDC Navigator (F10)"), + edc_navigator_cb); + evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(btn, 1.0, EVAS_HINT_FILL); + elm_box_pack_end(box, btn); + td->edc_navigator_btn = btn; + btn = tools_btn_create(box, "status", _("Status (F11)"), status_cb); evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, 1.0, EVAS_HINT_FILL); @@ -309,6 +324,29 @@ tools_highlight_update(Eina_Bool toggle) elm_object_signal_emit(td->highlight_btn, "icon,highlight,disabled", ""); } +void +tools_edc_navigator_update(Eina_Bool toggle) +{ + tools_data *td = g_td; + if (!td) return; + + if (toggle) config_edc_navigator_set(!config_edc_navigator_get()); + + base_edc_navigator_toggle(EINA_FALSE); + + //Toggle on/off + if (config_edc_navigator_get()) + { + elm_object_signal_emit(td->edc_navigator_btn, "icon,highlight,enabled", + ""); + } + else + { + elm_object_signal_emit(td->edc_navigator_btn, "icon,highlight,disabled", + ""); + } +} + void tools_lines_update(Eina_Bool toggle) { diff --git a/src/include/base_gui.h b/src/include/base_gui.h index 1a96cac..12f861c 100644 --- a/src/include/base_gui.h +++ b/src/include/base_gui.h @@ -21,3 +21,4 @@ void base_gui_term(void); void base_console_reset(void); void base_error_msg_set(const char *msg); void base_console_full_view(void); +void base_edc_navigator_toggle(Eina_Bool toggle); diff --git a/src/include/common.h b/src/include/common.h index 21d938a..e0ddecb 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -57,7 +57,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" #define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig)) -#define ENVENTOR_CONFIG_VERSION 4 +#define ENVENTOR_CONFIG_VERSION 5 #define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \ ((MASK & ECORE_EVENT_MODIFIER_##NAME) && \ diff --git a/src/include/config_data.h b/src/include/config_data.h index 8abbf1f..0b2c06d 100644 --- a/src/include/config_data.h +++ b/src/include/config_data.h @@ -58,3 +58,5 @@ void config_win_size_get(Evas_Coord *w, Evas_Coord *h); void config_win_size_set(Evas_Coord w, Evas_Coord h); void config_smart_undo_redo_set(Eina_Bool smart_undo_redo); Eina_Bool config_smart_undo_redo_get(void); +void config_edc_navigator_set(Eina_Bool enabled); +Eina_Bool config_edc_navigator_get(void); diff --git a/src/include/tools.h b/src/include/tools.h index 33a2bc3..530b6f6 100644 --- a/src/include/tools.h +++ b/src/include/tools.h @@ -5,6 +5,7 @@ void tools_highlight_update(Eina_Bool toggle); void tools_lines_update(Eina_Bool toggle); void tools_dummy_update(Eina_Bool toggle); void tools_status_update(Eina_Bool toggle); +void tools_edc_navigator_update(Eina_Bool toggle); void tools_goto_update(void); void tools_search_update(void); void tools_live_update(Eina_Bool on);