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.
This commit is contained in:
parent
39fb929aeb
commit
9af9369c79
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Evas_Object *hotkeys_create(Evas_Object *parent, menu_data *md);
|
||||
Evas_Object *hotkeys_create(Evas_Object *parent);
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue