rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2312a46b9e372a6e420c2dad6b617b3e324148c6
commit 2312a46b9e372a6e420c2dad6b617b3e324148c6 Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Wed Mar 23 17:10:50 2016 +0200 workspace: add shortcuts for new part(q), state(w), item(e) and program(r) --- src/bin/ui/tabs.c | 40 ++++++++++++++++++++++++++++++++++ src/bin/ui/workspace/group_navigator.c | 32 ++++++++++++++++++++++++++- src/bin/ui/workspace/group_navigator.h | 12 ++++++++++ src/bin/ui/workspace/workspace.c | 32 +++++++++++++++++++++++++++ src/bin/ui/workspace/workspace.h | 12 ++++++++++ 5 files changed, 127 insertions(+), 1 deletion(-) diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c index ef49dc2..7f8c665 100644 --- a/src/bin/ui/tabs.c +++ b/src/bin/ui/tabs.c @@ -565,6 +565,42 @@ _editor_part_item_restacked_cb(void *data __UNUSED__, editor_part_item_restack->relative_part_item); } +static void +_shortcut_add_part_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + if (tabs.current_workspace) + workspace_add_part_request(tabs.current_workspace); +} + +static void +_shortcut_add_part_item_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + if (tabs.current_workspace) + workspace_add_part_item_request(tabs.current_workspace); +} + +static void +_shortcut_add_state_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + if (tabs.current_workspace) + workspace_add_state_request(tabs.current_workspace); +} + +static void +_shortcut_add_program_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + if (tabs.current_workspace) + workspace_add_program_request(tabs.current_workspace); +} + Evas_Object * tabs_add(void) { @@ -665,6 +701,10 @@ tabs_add(void) evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_PROGRAM_ADDED, _editor_program_added_cb, NULL); evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_PROGRAM_DELETED, _editor_program_deleted_cb, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_ADD_PART, _shortcut_add_part_cb, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_ADD_ITEM, _shortcut_add_part_item_cb, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_ADD_STATE, _shortcut_add_state_cb, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_ADD_PROGRAM, _shortcut_add_program_cb, NULL); return tabs.layout; } diff --git a/src/bin/ui/workspace/group_navigator.c b/src/bin/ui/workspace/group_navigator.c index 3821bcb..ce7258d 100644 --- a/src/bin/ui/workspace/group_navigator.c +++ b/src/bin/ui/workspace/group_navigator.c @@ -817,7 +817,7 @@ _combobox_collapsed(void *data, static void _on_menu_add_part_clicked(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, + Evas_Object *obj, void *ei __UNUSED__) { Edje_Part_Type type; @@ -1944,3 +1944,33 @@ group_navigator_part_update(Evas_Object *obj, Part *part) elm_genlist_item_update(part_item); } } + +void +group_navigator_add_part_request(Evas_Object *obj) +{ + _on_menu_add_part_clicked(NULL, obj, NULL); +} + +void +group_navigator_add_part_item_request(Evas_Object *obj) +{ + Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA); + + if (!elm_object_item_disabled_get(pl->add_part_item_menu_item)) + _on_menu_add_item_clicked(NULL, obj, NULL); +} + +void +group_navigator_add_state_request(Evas_Object *obj) +{ + Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA); + + if (!elm_object_item_disabled_get(pl->add_state_menu_item)) + _on_menu_add_state_clicked(NULL, obj, NULL); +} + +void +group_navigator_add_program_request(Evas_Object *obj) +{ + _on_menu_add_program_clicked(NULL, obj, NULL); +} diff --git a/src/bin/ui/workspace/group_navigator.h b/src/bin/ui/workspace/group_navigator.h index 16faccf..f39c3f1 100644 --- a/src/bin/ui/workspace/group_navigator.h +++ b/src/bin/ui/workspace/group_navigator.h @@ -99,4 +99,16 @@ group_navigator_program_add(Evas_Object *obj, Eina_Stringshare *program); void group_navigator_program_del(Evas_Object *obj, Eina_Stringshare *program); +void +group_navigator_add_part_request(Evas_Object *obj); + +void +group_navigator_add_part_item_request(Evas_Object *obj); + +void +group_navigator_add_state_request(Evas_Object *obj); + +void +group_navigator_add_program_request(Evas_Object *obj); + #endif /* GROUP_NAVIGATOR_H */ diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 2b41953..b4413a2 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -1072,3 +1072,35 @@ workspace_program_del(Evas_Object *obj, Eina_Stringshare *program_name) group_navigator_program_del(wd->group_navi, program_name); demo_group_program_del(wd->demo_navi, program_name); } + +void +workspace_add_part_request(Evas_Object *obj) +{ + WS_DATA_GET(obj); + + group_navigator_add_part_request(wd->group_navi); +} + +void +workspace_add_part_item_request(Evas_Object *obj) +{ + WS_DATA_GET(obj); + + group_navigator_add_part_item_request(wd->group_navi); +} + +void +workspace_add_state_request(Evas_Object *obj) +{ + WS_DATA_GET(obj); + + group_navigator_add_state_request(wd->group_navi); +} + +void +workspace_add_program_request(Evas_Object *obj) +{ + WS_DATA_GET(obj); + + group_navigator_add_program_request(wd->group_navi); +} diff --git a/src/bin/ui/workspace/workspace.h b/src/bin/ui/workspace/workspace.h index ab43267..c644751 100644 --- a/src/bin/ui/workspace/workspace.h +++ b/src/bin/ui/workspace/workspace.h @@ -323,4 +323,16 @@ TODO("remove after property refactor!!! HIGH LEVEL"); Eina_Bool workspace_active_demo_mode_get(Evas_Object *obj); +void +workspace_add_part_request(Evas_Object *obj); + +void +workspace_add_part_item_request(Evas_Object *obj); + +void +workspace_add_state_request(Evas_Object *obj); + +void +workspace_add_program_request(Evas_Object *obj); + #endif /* WORKSPACE_H */ --