transition, TRANSITION_DECEL;
target, "clip";
target, PART_HOME_MENU_BAR;
+ after, "sig,show,done";
+ }
+ program {
+ name, "sig,show,done";
+ action, SIGNAL_EMIT SIG_SHOW_DONE SRC_EDJE;
}
program {
name, "sig,hide";
}
programs {
program {
- name, "sig,show,recent";
- signal, SIG_SHOW_RECENT;
+ name, "sig,show";
+ signal, SIG_SHOW;
source, SRC_PROG;
action, STATE_SET "show" 0.0;
transition, TRANSITION_DECEL;
target, "clip";
target, "guide";
+ after, "sig,show,done";
}
program {
- name, "sig,hide,recent";
- signal, SIG_HIDE_RECENT;
+ name, "sig,show,done";
+ action, SIGNAL_EMIT SIG_SHOW_DONE SRC_EDJE;
+ }
+ program {
+ name, "sig,hide";
+ signal, SIG_HIDE;
source, SRC_PROG;
action, STATE_SET "default" 0.0;
transition, TRANSITION_DECEL;
target, "clip";
target, "guide";
- after, "sig.hide.recent.done";
+ after, "sig,hide,done";
}
program {
- name, "sig.hide.recent.done";
- action, SIGNAL_EMIT SIG_HIDE_RECENT_DONE SRC_EDJE;
+ name, "sig,hide,done";
+ action, SIGNAL_EMIT SIG_HIDE_DONE SRC_EDJE;
}
program {
- name, "outside.up.clicked";
+ name, "outside,up,clicked";
source, "outside.up";
signal, "mouse,clicked,1";
- action, SIGNAL_EMIT SIG_HIDE_RECENT SRC_PROG;
+ action, SIGNAL_EMIT SIG_HIDE SRC_PROG;
}
}
}
target, "clip";
target, PART_USER_BAR;
target, "text";
+ after, "sig,show,done";
+ }
+ program {
+ name, "sig,show,done";
+ action, SIGNAL_EMIT SIG_SHOW_DONE SRC_EDJE;
}
program {
name, "sig,hide";
#define SIG_UNFOCUS "sig.unfocus"
#define SIG_UNFOCUS_TO_RIGHT "sig.unfocus.to.right"
#define SIG_UNFOCUS_TO_LEFT "sig.unfocus.to.left"
-#define SIG_SHOW_RECENT "sig.show.recent"
-#define SIG_HIDE_RECENT "sig.hide.recent"
-#define SIG_HIDE_RECENT_DONE "sig.hide.recent.done"
#define SIG_DISABLE "sig.disable"
#define SIG_ENABLE "sig.enable"
#define SIG_SHOW_MASK "sig.show.mask"
#define SIG_SHOW "sig.show"
+#define SIG_SHOW_DONE "sig.show.done"
#define SIG_HIDE "sig.hide"
#define SIG_HIDE_DONE "sig.hide.done"
#define SIG_CLICK_ITEM "sig.click.item"
ad = user_data;
elm_theme_overlay_add(NULL, THEMEFILE);
- elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_IN);
+ elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_CLICK);
win = _add_win(ad->name);
if (!win) {
}
}
+static void _mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Move *ev)
+{
+ switch (id) {
+ case INPUT_HANDLER_TYPE_DOWN:
+ case INPUT_HANDLER_TYPE_EO:
+ if (!elm_object_focus_get(obj))
+ elm_object_focus_set(obj, EINA_TRUE);
+ break;
+ default:
+ return;
+ }
+}
+
static input_handler handler = {
.focused = _focused,
.unfocused = _unfocused,
.key_down = _key_down,
- .mouse_down = _mouse_down
+ .mouse_down = _mouse_down,
+ .mouse_move = _mouse_move
};
static bool _add_navigations(struct _priv *priv, Evas_Object *base)
datamgr_select_item(priv->dm, priv->foc->di);
}
+static void _show_done(void *data, Evas_Object *obj, const char *emission,
+ const char *source)
+{
+ struct _priv *priv = data;
+
+ if (!priv->foc)
+ priv->foc = eina_list_data_get(priv->list);
+
+ elm_object_focus_set(priv->foc->eo, EINA_TRUE);
+}
+
static Evas_Object *_create(Evas_Object *win, void *data)
{
struct _priv *priv;
viewmgr_set_view_data(VIEW_HOME, priv);
elm_object_signal_callback_add(base, SIG_HIDE_DONE, SRC_EDJE,
_hide_done, priv);
+ elm_object_signal_callback_add(base, SIG_SHOW_DONE, SRC_EDJE,
+ _show_done, priv);
return base;
}
evas_object_show(priv->base);
elm_object_signal_emit(priv->base, SIG_SHOW_NAVIGATION, SRC_PROG);
elm_object_signal_emit(priv->base, SIG_SHOW, SRC_PROG);
-
- if (!priv->foc)
- priv->foc = eina_list_data_get(priv->list);
- elm_object_focus_set(priv->foc->eo, EINA_TRUE);
}
static void _unload_home(struct _priv *priv)
static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev);
-static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Mouse_Up *ev);
+static void _clicked(int id, void *data, Evas_Object *obj);
+
+static void _mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Move *ev)
+{
+ Elm_Object_Item *it;
+
+ switch (id) {
+ case INPUT_HANDLER_TYPE_GRID:
+ it = elm_gengrid_at_xy_item_get(obj, ev->cur.canvas.x,
+ ev->cur.canvas.y, NULL, NULL);
+ if (!it)
+ return;
+
+ if (!elm_object_item_focus_get(it))
+ elm_object_item_focus_set(it, EINA_TRUE);
+ break;
+ case INPUT_HANDLER_TYPE_DONE:
+ case INPUT_HANDLER_TYPE_CANCEL:
+ if (!elm_object_focus_get(obj))
+ elm_object_focus_set(obj, EINA_TRUE);
+ break;
+ default:
+ return;
+ }
+}
static input_handler handler = {
.key_down = _key_down,
- .mouse_up = _mouse_up
+ .clicked = _clicked,
+ .mouse_move = _mouse_move
};
static void _delete_popup(struct _priv *priv, Evas_Object *obj)
}
}
-static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Mouse_Up *ev)
+static void _clicked(int id, void *data, Evas_Object *obj)
{
struct _priv *priv;
if (!strcmp(ev->keyname, KEY_DOWN) ||
!strcmp(ev->keyname, KEY_BACK) ||
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
- elm_object_signal_emit(priv->base, SIG_HIDE_RECENT,
- SRC_PROG);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
} else if (!strcmp(ev->keyname, KEY_ENTER) ||
!strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
datamgr_select_item(priv->dm, bi->di);
if (!strcmp(ev->keyname, KEY_BACK) ||
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
- elm_object_signal_emit(priv->base, SIG_HIDE_RECENT,
- SRC_PROG);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
} else if (!strcmp(ev->keyname, KEY_ENTER) ||
!strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
datamgr_clear_item(priv->dm);
- elm_object_signal_emit(priv->base, SIG_HIDE_RECENT,
- SRC_PROG);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
} else if (!strcmp(ev->keyname, KEY_DOWN)) {
if (!priv->cur)
priv->cur = eina_list_data_get(priv->list);
if (!strcmp(ev->keyname, KEY_DOWN) ||
!strcmp(ev->keyname, KEY_BACK) ||
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
- elm_object_signal_emit(priv->base, SIG_HIDE_RECENT,
- SRC_PROG);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
}
break;
default:
priv = data;
datamgr_clear_item(priv->dm);
- elm_object_signal_emit(priv->base, SIG_HIDE_RECENT,
- SRC_PROG);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
break;
default:
return;
}
}
+static void _mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Move *ev)
+{
+ if (!elm_object_focus_get(obj))
+ elm_object_focus_set(obj, EINA_TRUE);
+}
+
static input_handler handler = {
.focused = _focused,
.unfocused = _unfocused,
.key_down = _key_down,
- .mouse_down = _mouse_down
+ .mouse_down = _mouse_down,
+ .mouse_move = _mouse_move
};
static void _hide_done(void *data, Evas_Object *obj, const char *emission,
priv->del_btn = btn;
}
+static void _show_done(void *data, Evas_Object *obj, const char *emission,
+ const char *source)
+{
+ struct _priv *priv = data;
+ struct _bar_item *bi;
+
+ if (!priv->list) {
+ elm_object_focus_set(priv->del_btn, EINA_TRUE);
+ } else {
+ bi = eina_list_data_get(priv->list);
+ elm_object_focus_set(bi->eo, EINA_TRUE);
+ }
+}
+
static Evas_Object *_create(Evas_Object *win, void *data)
{
struct _priv *priv;
priv->dm = dm;
viewmgr_set_view_data(VIEW_RECENT, priv);
- elm_object_signal_callback_add(base, SIG_HIDE_RECENT_DONE, SRC_EDJE,
+ elm_object_signal_callback_add(base, SIG_HIDE_DONE, SRC_EDJE,
_hide_done, NULL);
+ elm_object_signal_callback_add(base, SIG_SHOW_DONE, SRC_EDJE,
+ _show_done, priv);
return base;
}
static void _show(void *data)
{
struct _priv *priv;
- struct _bar_item *bi;
if (!data) {
_ERR("Invalid argument");
priv = data;
- evas_object_show(priv->base);
- elm_object_signal_emit(priv->base, SIG_SHOW_RECENT, SRC_PROG);
-
_load_recent(priv);
- if (!priv->list) {
- elm_object_focus_set(priv->del_btn, EINA_TRUE);
- } else {
- bi = eina_list_data_get(priv->list);
- elm_object_focus_set(bi->eo, EINA_TRUE);
- }
+ evas_object_show(priv->base);
+ elm_object_signal_emit(priv->base, SIG_SHOW, SRC_PROG);
}
static void _unload_recent(struct _priv *priv)
static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Mouse_Down *ev);
+static void _mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Move *ev)
+{
+ if (!elm_object_focus_get(obj))
+ elm_object_focus_set(obj, EINA_TRUE);
+}
+
static input_handler handler = {
.focused = _focused,
.unfocused = _unfocused,
.key_down = _key_down,
- .mouse_down = _mouse_down
+ .mouse_down = _mouse_down,
+ .mouse_move = _mouse_move
};
static void _add_popup(struct _priv *priv)
viewmgr_pop_view();
}
+static void _show_done(void *data, Evas_Object *obj, const char *emission,
+ const char *source)
+{
+ struct _priv *priv = data;
+
+ if (!priv->foc)
+ priv->foc = eina_list_data_get(priv->list);
+
+ elm_object_focus_set(priv->foc->eo, EINA_TRUE);
+}
+
static Evas_Object *_create(Evas_Object *win, void *data)
{
struct _priv *priv;
inputmgr_add_callback(base, INPUT_HANDLER_TYPE_BASE, &handler, priv);
elm_object_signal_callback_add(base, SIG_HIDE_DONE, SRC_EDJE,
_hide_done, NULL);
-
+ elm_object_signal_callback_add(base, SIG_SHOW_DONE, SRC_EDJE,
+ _show_done, priv);
return base;
}
elm_object_signal_emit(priv->base, SIG_SHOW, SRC_PROG);
_add_user(priv);
-
- if (!priv->foc)
- priv->foc = eina_list_data_get(priv->list);
-
- elm_object_focus_set(priv->foc->eo, EINA_TRUE);
}
static void _unload_user(struct _priv *priv)
static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev);
-static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Mouse_Down *ev);
+static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Up *ev);
+
+static void _mouse_move(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Move *ev)
+{
+ if (!elm_object_focus_get(obj))
+ elm_object_focus_set(obj, EINA_TRUE);
+}
static input_handler handler = {
.focused = _focused,
.unfocused = _unfocused,
.key_down = _key_down,
- .mouse_down = _mouse_down
+ .mouse_up = _mouse_up,
+ .mouse_move = _mouse_move
};
static void _get_profile(struct _priv *priv, const char **name,
return eo;
}
+static void _dismissed(void *data, Evas_Object *obj, void *ei)
+{
+ struct _priv *priv = data;
+
+ elm_object_focus_allow_set(priv->photo, EINA_TRUE);
+}
+
static void _add_icon_list(struct _priv *priv)
{
Evas_Coord x, y, w, h;
}
elm_ctxpopup_horizontal_set(ctxpopup, EINA_TRUE);
elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
+ evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed, priv);
ly = utils_add_layout(ctxpopup, GRP_USER_EDIT_ICON_LIST, false, NULL);
if (!ly) {
elm_object_focus_set(eo, EINA_TRUE);
}
+ elm_object_focus_allow_set(priv->photo, EINA_FALSE);
priv->ctxpopup = ctxpopup;
}
inputmgr_add_callback(cancel_btn,
INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL,
&handler, priv);
+
+ elm_object_focus_allow_set(priv->del, EINA_FALSE);
elm_object_focus_set(cancel_btn, EINA_TRUE);
}
evas_object_del(priv->ctxpopup);
priv->ctxpopup = NULL;
+ elm_object_focus_allow_set(priv->photo, EINA_TRUE);
file = evas_object_data_get(obj, KEY_ICON);
focus_file = utils_get_focus_photo_from_photo(file);
- if (!strcmp(file, ICON_ADD) || !strcmp(focus_file, ICON_ADD))
+ if (!strcmp(file, ICON_ADD) || !strcmp(focus_file, ICON_ADD)) {
viewmgr_push_view(VIEW_PHOTO);
- else
+ elm_object_focus_allow_set(obj, EINA_FALSE);
+ } else
_load_user_icon(priv, file, focus_file);
}
break;
case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE:
_delete_popup(priv, obj);
+ elm_object_focus_allow_set(priv->del, EINA_TRUE);
priv->di->action = ITEM_SELECT_ACTION_DELETE;
datamgr_select_item(priv->dm, priv->di);
viewmgr_pop_view();
viewmgr_pop_view();
break;
case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL:
+ elm_object_focus_allow_set(priv->del, EINA_TRUE);
case INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL:
_delete_popup(priv, obj);
break;
case INPUT_HANDLER_TYPE_EO:
evas_object_del(priv->ctxpopup);
priv->ctxpopup = NULL;
+ elm_object_focus_allow_set(priv->photo, EINA_TRUE);
break;
case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE:
_delete_popup(priv, obj);
+ elm_object_focus_allow_set(priv->del, EINA_TRUE);
break;
case INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD:
_delete_popup(priv, obj);
break;
case INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL:
+ elm_object_focus_allow_set(priv->del, EINA_TRUE);
case INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL:
_delete_popup(priv, obj);
break;
}
}
-static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Mouse_Down *ev)
+static void _mouse_up(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Mouse_Up *ev)
{
struct _priv *priv;