diff options
author | Hyojung Jo <hj903.jo@samsung.com> | 2015-09-04 11:28:31 +0900 |
---|---|---|
committer | Hyojung Jo <hj903.jo@samsung.com> | 2015-09-04 11:28:31 +0900 |
commit | 414ac6cde719907858aff74bb056d7637e78471a (patch) | |
tree | 65a86f8529b44cb59e02c013c7b46deaa9a44362 | |
parent | 12bc19146da33b5e64df281969935178e873898d (diff) | |
download | air_favorite-414ac6cde719907858aff74bb056d7637e78471a.tar.gz air_favorite-414ac6cde719907858aff74bb056d7637e78471a.tar.bz2 air_favorite-414ac6cde719907858aff74bb056d7637e78471a.zip |
Load appropriate menu when called by 'more favorite'
Change-Id: I3883adb24de21161b275ad57c301f99072e72cd3
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
-rw-r--r-- | include/view.h | 1 | ||||
-rw-r--r-- | src/main.c | 10 | ||||
-rw-r--r-- | src/view/view_base.c | 20 |
3 files changed, 31 insertions, 0 deletions
diff --git a/include/view.h b/include/view.h index 88fbb88..ca7252c 100644 --- a/include/view.h +++ b/include/view.h @@ -27,6 +27,7 @@ enum update_type { UPDATE_SHOW_TOAST, UPDATE_LOCK, UPDATE_UNLOCK, + UPDATE_MENU, }; #endif /* __AIR_APPS_VIEW_H__ */ @@ -19,6 +19,7 @@ #include <viewmgr.h> #include <inputmgr.h> #include <ui-gadget.h> +#include <app_define.h> #include <app_debug.h> #include "define.h" @@ -113,6 +114,8 @@ static void _terminate(void *data) static void _app_control(app_control_h control, void *data) { struct _appdata *ad; + char *category; + int r; if (!data) { _ERR("Get data failed."); @@ -123,6 +126,13 @@ static void _app_control(app_control_h control, void *data) if (ad->win) elm_win_activate(ad->win); + r = app_control_get_extra_data(control, PARAM_CATEGORY, &category); + if (r != APP_CONTROL_ERROR_NONE) + category = NULL; + + if (category) + viewmgr_update_view(VIEW_BASE, UPDATE_MENU, category); + if (!viewmgr_push_view(VIEW_BASE)) _ERR("Push view failed."); } diff --git a/src/view/view_base.c b/src/view/view_base.c index e31dff6..85a774a 100644 --- a/src/view/view_base.c +++ b/src/view/view_base.c @@ -524,6 +524,8 @@ static void _update(void *view_data, int update_type, void *data) { struct _priv *priv; struct grid_data *gdata; + char *menu_category; + int i; if (!view_data) { _ERR("Get data failed."); @@ -532,6 +534,24 @@ static void _update(void *view_data, int update_type, void *data) priv = view_data; switch (update_type) { + case UPDATE_MENU: + if (!data) + return; + + menu_category = data; + + for (i = 0; i < COUNT_MENU; i++) { + gdata = _get_grid_data[i](); + + if (gdata && gdata->id + && !strcmp(gdata->id, menu_category)) { + elm_object_focus_set(priv->menu[i], EINA_TRUE); + break; + } + } + + break; + case UPDATE_GRID: _update_current_grid(priv); break; |