From 9af9369c79281dcfc2a15bc1577b9a45cae7ba5a Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Thu, 30 Jan 2014 01:15:33 +0900 Subject: [PATCH] refactoring - got rid of menu instance handling. count menu as a singleton instance. since we can not image multiple menus in the enventor. now code is getting simpler. --- src/bin/hotkeys.c | 52 ++++++++++++++++++++++--------------------- src/bin/main.c | 26 ++++++++++------------ src/bin/menu.c | 49 ++++++++++++++++++++++++---------------- src/include/hotkeys.h | 2 +- src/include/menu.h | 16 ++++++------- 5 files changed, 78 insertions(+), 67 deletions(-) diff --git a/src/bin/hotkeys.c b/src/bin/hotkeys.c index e4b0c78..d9fc862 100644 --- a/src/bin/hotkeys.c +++ b/src/bin/hotkeys.c @@ -3,35 +3,36 @@ static void -f1_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f1_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_about(md); + menu_about(); } static void -f2_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f2_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_edc_new(md); + menu_edc_new(); } static void -f3_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f3_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_edc_save(md); + menu_edc_save(); } static void -f4_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f4_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_edc_load(md); + menu_edc_load(); } static void -f5_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f5_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { /* app_data *ad = data; config_linenumber_set(ad->cd, !config_linenumber_get(ad->cd)); @@ -39,7 +40,8 @@ f5_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) } static void -f6_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f6_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { /* app_data *ad = data; config_stats_bar_set(ad->cd, !config_stats_bar_get(ad->cd)); @@ -47,15 +49,15 @@ f6_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) } static void -f12_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +f12_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_setting(md); + menu_setting(); } Evas_Object * -hotkeys_create(Evas_Object *parent, menu_data *md) +hotkeys_create(Evas_Object *parent) { Evas_Object *box = elm_box_add(parent); elm_box_horizontal_set(box, EINA_TRUE); @@ -70,7 +72,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); - evas_object_smart_callback_add(btn, "clicked", f1_cb, md); + evas_object_smart_callback_add(btn, "clicked", f1_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); @@ -81,7 +83,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); - evas_object_smart_callback_add(btn, "clicked", f2_cb, md); + evas_object_smart_callback_add(btn, "clicked", f2_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); @@ -92,7 +94,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); - evas_object_smart_callback_add(btn, "clicked", f3_cb, md); + evas_object_smart_callback_add(btn, "clicked", f3_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); @@ -103,7 +105,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); - evas_object_smart_callback_add(btn, "clicked", f4_cb, md); + evas_object_smart_callback_add(btn, "clicked", f4_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); @@ -116,7 +118,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); elm_object_disabled_set(btn, EINA_TRUE); - evas_object_smart_callback_add(btn, "clicked", f5_cb, md); + evas_object_smart_callback_add(btn, "clicked", f5_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); @@ -129,7 +131,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); elm_object_disabled_set(btn, EINA_TRUE); - evas_object_smart_callback_add(btn, "clicked", f6_cb, md); + evas_object_smart_callback_add(btn, "clicked", f6_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); @@ -195,7 +197,7 @@ hotkeys_create(Evas_Object *parent, menu_data *md) evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, 0.5, 0); elm_object_focus_allow_set(btn, EINA_FALSE); - evas_object_smart_callback_add(btn, "clicked", f12_cb, md); + evas_object_smart_callback_add(btn, "clicked", f12_cb, NULL); evas_object_show(btn); elm_box_pack_end(box, btn); diff --git a/src/bin/main.c b/src/bin/main.c index 859bee4..5db76b3 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -7,7 +7,6 @@ struct app_s { edit_data *ed; edj_mgr *em; - menu_data *md; stats_data *sd; config_data *cd; @@ -41,11 +40,10 @@ edc_changed_cb(void *data, int type EINA_UNUSED, void *event) } static void -win_delete_request_cb(void *data, Evas_Object *obj EINA_UNUSED, +win_delete_request_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - app_data *ad = data; - menu_exit(ad->md); + menu_exit(); } static Eina_Bool @@ -304,12 +302,12 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) if (!strcmp(event->keyname, "Escape")) { menu_toggle(); - if (menu_open_depth(ad->md) == 0) + if (menu_open_depth() == 0) edit_focus_set(ad->ed); return ECORE_CALLBACK_DONE; } - if (menu_open_depth(ad->md) > 0) return ECORE_CALLBACK_PASS_ON; + if (menu_open_depth() > 0) return ECORE_CALLBACK_PASS_ON; //Control Key if (!strcmp("Control_L", event->keyname)) @@ -320,25 +318,25 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) //README if (!strcmp(event->keyname, "F1")) { - menu_about(ad->md); + menu_about(); return ECORE_CALLBACK_DONE; } //New if (!strcmp(event->keyname, "F2")) { - menu_edc_new(ad->md); + menu_edc_new(); return ECORE_CALLBACK_DONE; } //Save if (!strcmp(event->keyname, "F3")) { - menu_edc_save(ad->md); + menu_edc_save(); return ECORE_CALLBACK_DONE; } //Load if (!strcmp(event->keyname, "F4")) { - menu_edc_load(ad->md); + menu_edc_load(); return ECORE_CALLBACK_DONE; } //Line Number @@ -358,7 +356,7 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev) //Setting if (!strcmp(event->keyname, "F12")) { - menu_setting(ad->md); + menu_setting(); return ECORE_CALLBACK_DONE; } @@ -603,9 +601,9 @@ init(app_data *ad, int argc, char **argv) statusbar_set(ad, ad->cd); edc_edit_set(ad, ad->sd, ad->cd); edc_view_set(ad, ad->cd, ad->sd, stats_group_name_get(ad->sd)); - ad->md = menu_init(ad->win, ad->ed, ad->cd); + menu_init(ad->win, ad->ed, ad->cd); - Evas_Object *hotkeys = hotkeys_create(ad->layout, ad->md); + Evas_Object *hotkeys = hotkeys_create(ad->layout); elm_object_part_content_set(ad->layout, "elm.swallow.hotkeys", hotkeys); ad->edc_monitor = eio_monitor_add(config_edc_path_get(ad->cd)); @@ -618,7 +616,7 @@ static void term(app_data *ad) { build_term(); - menu_term(ad->md); + menu_term(); edit_term(ad->ed); edj_mgr_term(ad->em); stats_term(ad->sd); diff --git a/src/bin/menu.c b/src/bin/menu.c index 2528f9e..7ceea3a 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -30,7 +30,7 @@ struct menu_s edit_data *ed; }; -static menu_data *g_md; +static menu_data *g_md = NULL; static void warning_no_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); @@ -40,32 +40,37 @@ static void edc_reload(menu_data *md, const char *edc_path); static void edc_file_save(menu_data *md); static void -fileselector_close(menu_data *md) +fileselector_close() { + menu_data *md = g_md; elm_object_signal_emit(md->fileselector_layout, "elm,state,dismiss", ""); } static void -about_close(menu_data *md) +about_close() { + menu_data *md = g_md; elm_object_signal_emit(md->about_layout, "elm,state,dismiss", ""); } static void -setting_close(menu_data *md) +setting_close() { + menu_data *md = g_md; elm_object_signal_emit(md->setting_layout, "elm,state,dismiss", ""); } static void -warning_close(menu_data *md) +warning_close() { + menu_data *md = g_md; elm_object_signal_emit(md->warning_layout, "elm,state,dismiss", ""); } static void -menu_close(menu_data *md) +menu_close() { + menu_data *md = g_md; if (!md->menu_layout) return; elm_object_signal_emit(md->menu_layout, "elm,state,dismiss", ""); } @@ -681,8 +686,9 @@ exit_save_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, } void -menu_exit(menu_data *md) +menu_exit() { + menu_data *md = g_md; if (edit_changed_get(md->ed)) warning_layout_create(md, exit_yes_btn_cb, exit_save_btn_cb); else @@ -693,8 +699,7 @@ static void exit_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_exit(md); + menu_exit(); } static Evas_Object * @@ -986,20 +991,23 @@ load_save_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } void -menu_about(menu_data *md) +menu_about() { + menu_data *md = g_md; about_open(md); } void -menu_setting(menu_data *md) +menu_setting() { + menu_data *md = g_md; setting_open(md); } Eina_Bool -menu_edc_new(menu_data *md) +menu_edc_new() { + menu_data *md = g_md; if (edit_changed_get(md->ed)) { warning_layout_create(md, new_yes_btn_cb, new_save_btn_cb); @@ -1012,14 +1020,16 @@ menu_edc_new(menu_data *md) } void -menu_edc_save(menu_data *md) +menu_edc_save() { + menu_data *md = g_md; edc_file_save(md); } void -menu_edc_load(menu_data *md) +menu_edc_load() { + menu_data *md = g_md; if (edit_changed_get(md->ed)) warning_layout_create(md, load_yes_btn_cb, load_save_btn_cb); else @@ -1027,11 +1037,10 @@ menu_edc_load(menu_data *md) } static void -load_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, +load_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - menu_data *md = data; - menu_edc_load(md); + menu_edc_load(); } static void @@ -1096,8 +1105,9 @@ menu_init(Evas_Object *win, edit_data *ed, config_data *cd) } void -menu_term(menu_data *md) +menu_term() { + menu_data *md = g_md; if (!md) return; free(md); } @@ -1165,7 +1175,8 @@ menu_ctxpopup_register(Evas_Object *ctxpopup) } int -menu_open_depth(menu_data *md) +menu_open_depth() { + menu_data *md = g_md; return md->open_depth; } diff --git a/src/include/hotkeys.h b/src/include/hotkeys.h index 88844ae..12e3fc2 100644 --- a/src/include/hotkeys.h +++ b/src/include/hotkeys.h @@ -1,2 +1,2 @@ -Evas_Object *hotkeys_create(Evas_Object *parent, menu_data *md); +Evas_Object *hotkeys_create(Evas_Object *parent); diff --git a/src/include/menu.h b/src/include/menu.h index c7bc7f7..8a1649c 100644 --- a/src/include/menu.h +++ b/src/include/menu.h @@ -1,14 +1,14 @@ #define VIEW_DATA edj_mgr_view_get(NULL, NULL) menu_data *menu_init(Evas_Object *win, edit_data *ed, config_data *cd); -void menu_term(menu_data *md); +void menu_term(); void menu_toggle(); void menu_ctxpopup_register(Evas_Object *ctxpopup); void menu_ctxpopup_unregister(Evas_Object *ctxpopup); -Eina_Bool menu_edc_new(menu_data *md); -void menu_edc_save(menu_data *md); -void menu_edc_load(menu_data *md); -void menu_exit(menu_data *md); -void menu_about(menu_data *md); -void menu_setting(menu_data *md); -int menu_open_depth(menu_data *md); +Eina_Bool menu_edc_new(); +void menu_edc_save(); +void menu_edc_load(); +void menu_exit(); +void menu_about(); +void menu_setting(); +int menu_open_depth();