From d3f066b9f288f9f0dfb0f82e3d0f7a8bfd243724 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 26 Aug 2013 02:17:57 +0900 Subject: [PATCH] enventor - support f2, f3, f4, f12 short cut keys --- README | 6 ++--- src/bin/main.c | 22 ++++++++++++++-- src/bin/menu.c | 64 +++++++++++++++++++++++++++++++++------------- src/include/menu.h | 4 ++- 4 files changed, 72 insertions(+), 24 deletions(-) diff --git a/README b/README index 94b0121..c2e2396 100644 --- a/README +++ b/README @@ -36,12 +36,12 @@ Once you have met requirements, compiling and installing is simple: Esc = Open/Close Menu F1 = Help -//F2 = New -//F3 = Save +F2 = New +F3 = Save F4 = Load F5 = Show/Hide Line Number F6 = Show/Hide Status -//F12 = Setting +F12 = Setting Ctrl+S = Quick Save + Compile EDC Ctrl+A = Select Text All Ctrl+Double Click = Select a word diff --git a/src/bin/main.c b/src/bin/main.c index d67d007..9d6924d 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -273,6 +273,18 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) ad->menu_opened = menu_help(ad->md); return ECORE_CALLBACK_DONE; } + //New + if (!strcmp(event->keyname, "F2")) + { + ad->menu_opened = menu_edc_new(ad->md); + return ECORE_CALLBACK_DONE; + } + //Save + if (!strcmp(event->keyname, "F3")) + { + ad->menu_opened = menu_edc_save(ad->md); + return ECORE_CALLBACK_DONE; + } //Load if (!strcmp(event->keyname, "F4")) { @@ -280,19 +292,25 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) return ECORE_CALLBACK_DONE; } //Line Number - else if (!strcmp(event->keyname, "F5")) + if (!strcmp(event->keyname, "F5")) { config_linenumber_set(ad->cd, !config_linenumber_get(ad->cd)); edit_line_number_toggle(ad->ed); return ECORE_CALLBACK_DONE; } //Statusbar - else if (!strcmp(event->keyname, "F6")) + if (!strcmp(event->keyname, "F6")) { config_stats_bar_set(ad->cd, !config_stats_bar_get(ad->cd)); statusbar_toggle(ad); return ECORE_CALLBACK_DONE; } + //Setting + if (!strcmp(event->keyname, "F12")) + { + ad->menu_opened = menu_setting(ad->md); + return ECORE_CALLBACK_DONE; + } return ECORE_CALLBACK_PASS_ON; } diff --git a/src/bin/menu.c b/src/bin/menu.c index 55c234c..05631f1 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -66,7 +66,8 @@ warning_close(menu_data *md) static void menu_close(menu_data *md, Eina_Bool toggled) { - elm_object_signal_emit(md->menu_layout, "elm,state,dismiss", ""); + if (md->menu_layout) + elm_object_signal_emit(md->menu_layout, "elm,state,dismiss", ""); if (!toggled) md->close_cb(md->close_cb_data); @@ -95,6 +96,7 @@ setting_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED, menu_data *md = data; evas_object_del(md->setting_layout); md->setting_layout = NULL; + if (!md->menu_layout) return; elm_object_disabled_set(md->menu_layout, EINA_FALSE); elm_object_focus_set(md->menu_layout, EINA_TRUE); } @@ -107,11 +109,9 @@ help_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED, menu_data *md = data; evas_object_del(md->help_layout); md->help_layout = NULL; - if (md->menu_layout) - { - elm_object_disabled_set(md->menu_layout, EINA_FALSE); - elm_object_focus_set(md->menu_layout, EINA_TRUE); - } + if (!md->menu_layout) return; + elm_object_disabled_set(md->menu_layout, EINA_FALSE); + elm_object_focus_set(md->menu_layout, EINA_TRUE); } static void @@ -133,11 +133,9 @@ warning_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED, menu_data *md = data; evas_object_del(md->warning_layout); md->warning_layout = NULL; - if (md->menu_layout) - { - elm_object_disabled_set(md->menu_layout, EINA_FALSE); - elm_object_focus_set(md->menu_layout, EINA_TRUE); - } + if (!md->menu_layout) return; + elm_object_disabled_set(md->menu_layout, EINA_FALSE); + elm_object_focus_set(md->menu_layout, EINA_TRUE); } static void @@ -462,7 +460,8 @@ setting_open(menu_data *md) elm_object_part_content_set(layout, "elm.swallow.reset_btn", btn); - elm_object_disabled_set(md->menu_layout, EINA_TRUE); + if (md->menu_layout) + elm_object_disabled_set(md->menu_layout, EINA_TRUE); md->setting_layout = layout; md->img_path_entry = img_path_entry; @@ -898,6 +897,30 @@ menu_help(menu_data *md) return EINA_TRUE; } +Eina_Bool +menu_setting(menu_data *md) +{ + setting_open(md); + return EINA_TRUE; +} + +Eina_Bool +menu_edc_new(menu_data *md) +{ + if (edit_changed_get(md->ed)) + warning_layout_create(md, new_yes_btn_cb, new_save_btn_cb); + else + edc_reload(md, PROTO_EDC_PATH); + return EINA_TRUE; +} + +Eina_Bool +menu_edc_save(menu_data *md) +{ + edc_file_save(md); + return EINA_TRUE; +} + Eina_Bool menu_edc_load(menu_data *md) { @@ -1019,6 +1042,7 @@ menu_toggle() return EINA_TRUE; } } + //Short Cut Key Open Case else { if (md->help_layout) @@ -1026,6 +1050,16 @@ menu_toggle() help_close(md); return EINA_FALSE; } + if (md->fileselector_layout) + { + fileselector_close(md); + return EINA_FALSE; + } + if (md->setting_layout) + { + setting_close(md); + return EINA_FALSE; + } } //Ctxpopup @@ -1034,12 +1068,6 @@ menu_toggle() elm_ctxpopup_dismiss(md->ctxpopup); return EINA_FALSE; } - //FileSelector - if (md->fileselector_layout) - { - fileselector_close(md); - return EINA_FALSE; - } //Warning if (md->warning_layout) { diff --git a/src/include/menu.h b/src/include/menu.h index 7d2a290..8fd6ac0 100644 --- a/src/include/menu.h +++ b/src/include/menu.h @@ -2,7 +2,9 @@ menu_data *menu_init(Evas_Object *win, edit_data *ed, config_data *cd, view_data void menu_term(menu_data *md); Eina_Bool menu_toggle(); void menu_ctxpopup_register(Evas_Object *ctxpopup); +Eina_Bool menu_edc_new(menu_data *md); +Eina_Bool menu_edc_save(menu_data *md); Eina_Bool menu_edc_load(menu_data *md); void menu_exit(menu_data *md); Eina_Bool menu_help(menu_data *md); - +Eina_Bool menu_setting(menu_data *md);