elm_object_focus_set(obj, EINA_TRUE);
}
-static void _menu_clicked_cb(int id, void *data, Evas_Object *obj)
-{
- /* It will be implemented later. */
-}
-
static void _menu_focused_cb(int id, void *data, Evas_Object *obj,
Elm_Object_Item *item)
{
}
}
+static void _sort_option_selected(struct _priv *priv, int id, Evas_Object *obj)
+{
+ if (!priv || !obj) {
+ _ERR("Invalid argument.");
+ return;
+ }
+
+ switch (id) {
+ case SORT_RECENT:
+ _sort_by_recently_used(priv);
+ priv->sort_type = SORT_RECENT;
+
+ break;
+
+ case SORT_A_TO_Z:
+ priv->app_list = eina_list_sort(priv->app_list, 0,
+ _sort_by_a_to_z);
+ priv->sort_type = SORT_A_TO_Z;
+ break;
+
+ case SORT_Z_TO_A:
+ priv->app_list = eina_list_sort(priv->app_list, 0,
+ _sort_by_z_to_a);
+ priv->sort_type = SORT_Z_TO_A;
+ break;
+
+ default:
+ _ERR("Invalid sort type.");
+ }
+
+ _destroy_sort_ctxpopup(priv);
+ elm_object_text_set(priv->sort_btn, elm_object_text_get(obj));
+ gridmgr_append_list(priv->gmgr, STR_MYAPPS, priv->app_list);
+}
+
static void _option_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev)
{
priv = data;
if (!strcmp(ev->keyname, KEY_BACK)
- || !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
+ || !strcmp(ev->keyname, KEY_BACK_REMOTE))
_destroy_sort_ctxpopup(priv);
- } else if (!strcmp(ev->keyname, KEY_ENTER)
- || !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
- switch (id) {
- case SORT_RECENT:
- _sort_by_recently_used(priv);
- priv->sort_type = SORT_RECENT;
-
- break;
-
- case SORT_A_TO_Z:
- priv->app_list = eina_list_sort(priv->app_list, 0,
- _sort_by_a_to_z);
- priv->sort_type = SORT_A_TO_Z;
- break;
-
- case SORT_Z_TO_A:
- priv->app_list = eina_list_sort(priv->app_list, 0,
- _sort_by_z_to_a);
- priv->sort_type = SORT_Z_TO_A;
- break;
+ else if (!strcmp(ev->keyname, KEY_ENTER)
+ || !strcmp(ev->keyname, KEY_ENTER_REMOTE))
+ _sort_option_selected(priv, id, obj);
+}
- default:
- _ERR("Invalid sort type.");
- }
+static void _option_mouse_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Down *ev)
+{
+ struct _priv *priv;
- _destroy_sort_ctxpopup(priv);
- elm_object_text_set(priv->sort_btn, elm_object_text_get(obj));
- gridmgr_append_list(priv->gmgr, STR_MYAPPS, priv->app_list);
+ if (!data || !obj || !ev) {
+ _ERR("Invalid argument.");
+ return;
}
+ priv = data;
+
+ _sort_option_selected(priv, id, obj);
}
static input_handler _option_input_handler = {
.mouse_move = _mouse_move_cb,
- .key_down = _option_key_down_cb
- /* It will be implemented later. */
+ .key_down = _option_key_down_cb,
+ .mouse_down = _option_mouse_down_cb
};
static bool _draw_sort_option(struct _priv *priv)
Evas_Coord x, y, w, h;
int i;
- if (!priv) {
+ if (!priv || !priv->sort_btn) {
_ERR("Invalid argument.");
return false;
}
+ elm_object_signal_emit(priv->sort_btn, SIG_SELECTED, SRC_SORT_BTN);
+
ctxpopup = elm_ctxpopup_add(priv->base);
if (!ctxpopup) {
_ERR("elm_ctxpopup_add failed.");
return true;
}
-static void _sort_clicked_cb(int id, void *data, Evas_Object *obj)
+static void _sort_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Key_Down *ev)
{
struct _priv *priv;
- if (!data || !obj) {
+ if (!data || !obj || !ev) {
_ERR("Invalid argument.");
return;
}
priv = data;
- if (!_draw_sort_option(priv)) {
- _ERR("Draw sort ctxpopup failed.");
- return;
- }
-
- elm_object_signal_emit(obj, SIG_SELECTED, SRC_SORT_BTN);
+ if (!strcmp(ev->keyname, KEY_BACK)
+ || !strcmp(ev->keyname, KEY_BACK_REMOTE))
+ ui_app_exit();
+ else if (!strcmp(ev->keyname, KEY_ENTER)
+ || !strcmp(ev->keyname, KEY_ENTER_REMOTE))
+ if (!_draw_sort_option(priv))
+ _ERR("Draw sort ctxpopup failed.");
}
-static void _sort_focused_cb(int id, void *data, Evas_Object *obj,
- Elm_Object_Item *item)
+static void _sort_mouse_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Down *ev)
{
- /* It will be implemented later. */
-}
+ struct _priv *priv;
-static void _sort_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Key_Down *ev)
-{
- if (!ev) {
+ if (!data || !obj || !ev) {
_ERR("Invalid argument.");
return;
}
+ priv = data;
- if (!strcmp(ev->keyname, KEY_BACK)
- || !strcmp(ev->keyname, KEY_BACK_REMOTE))
- ui_app_exit();
+ if (!_draw_sort_option(priv))
+ _ERR("Draw sort ctxpopup failed.");
}
static void _grid_mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj,
static input_handler _menu_input_handler = {
.mouse_move = _mouse_move_cb,
- .clicked = _menu_clicked_cb,
.focused = _menu_focused_cb,
.key_down = _menu_key_down_cb,
.key_up = _menu_key_up_cb
- /* It will be implemented later. */
};
static input_handler _sort_input_handler = {
.mouse_move = _mouse_move_cb,
- .clicked = _sort_clicked_cb,
- .focused = _sort_focused_cb,
- .key_down = _sort_key_down_cb
- /* It will be implemented later. */
+ .key_down = _sort_key_down_cb,
+ .mouse_down = _sort_mouse_down_cb
};
static input_handler _grid_input_handler = {
.realized = _grid_realized_cb,
.unrealized = _grid_unrealized_cb,
.key_down = _grid_key_down_cb
- /* It will be implemented later. */
};
static bool _draw_top_area(struct _priv *priv)