}
}
part {
- name, "bg.entry";
- type, RECT;
+ name, PART_USER_LOGIN_PW;
+ type, SWALLOW;
scale, 1;
description {
state, "default" 0.0;
to, "padding.name";
relative, 1.0 1.0;
}
- color, 27 32 45 40;
- }
- description {
- state, "focus" 0.0;
- inherit, "default" 0.0;
- color, 69 143 255 255;
- }
- }
- part {
- name, "padding.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 2 2;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1.to, "bg.entry";
- rel2 {
- to, "bg.entry";
- relative, 0.0 0.0;
- }
- visible, 0;
- }
- }
- part {
- name, "bg.entry.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 306 46;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1 {
- to, "padding.border";
- relative, 1.0 1.0;
- }
- rel2 {
- to, "padding.border";
- relative, 1.0 1.0;
- }
- }
- }
- part {
- name, PART_USER_LOGIN_PW_DESC;
- type, TEXT;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, "bg.entry.border";
- rel2.to, "bg.entry.border";
- text {
- font, "TizenSans";
- size, 22;
- align, 0.5 0.5;
- }
- color, 27 32 45 100;
- visible, 1;
- }
- description {
- state, "hide" 0.0;
- inherit, "default" 0.0;
- visible, 0;
- }
- description {
- state, "wrongpw" 0.0;
- inherit, "default" 0.0;
- color, 220 0 0 255;
- visible, 1;
}
}
- part {
- name, PART_USER_LOGIN_PW;
- type, SWALLOW;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, PART_USER_LOGIN_PW_DESC;
- rel2.to, PART_USER_LOGIN_PW_DESC;
- }
- }
- }
- programs {
- program {
- name, "show.pw";
- signal, SIG_SHOW_PW;
- source, SRC_PROG;
- action, STATE_SET "default" 0.0;
- transition, LINEAR 0.1;
- target, PART_USER_LOGIN_PW_DESC;
- }
- program {
- name, "hide.pw";
- signal, SIG_HIDE_PW;
- source, SRC_PROG;
- action, STATE_SET "hide" 0.0;
- transition, LINEAR 0.1;
- target, PART_USER_LOGIN_PW_DESC;
- }
- program {
- name, "show.wrong.pw";
- signal, SIG_SHOW_WRONG_PW;
- source, SRC_PROG;
- action, STATE_SET "wrongpw" 0.0;
- transition, LINEAR 0.1;
- target, PART_USER_LOGIN_PW_DESC;
- }
- program {
- name, "focus.pw";
- signal, SIG_FOCUS;
- source, SRC_PROG;
- action, STATE_SET "focus" 0.0;
- transition, LINEAR 0.1;
- target, "bg.entry";
- }
- program {
- name, "unfocus.pw";
- signal, SIG_UNFOCUS;
- source, SRC_PROG;
- action, STATE_SET "default" 0.0;
- transition, LINEAR 0.1;
- target, "bg.entry";
- }
}
}
}
}
part {
- name, "bg.entry";
- type, RECT;
+ name, PART_USER_LOGIN_PW;
+ type, SWALLOW;
scale, 1;
description {
state, "default" 0.0;
relative, 1.0 1.0;
}
rel2.to, "padding.entry";
- color, 27 32 45 40;
- }
- description {
- state, "focus" 0.0;
- inherit, "default" 0.0;
- color, 69 143 255 255;
- }
- }
- part {
- name, "padding.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 2 2;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1.to, "bg.entry";
- rel2 {
- to, "bg.entry";
- relative, 0.0 0.0;
- }
- visible, 0;
- }
- }
- part {
- name, "bg.entry.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 306 46;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1 {
- to, "padding.border";
- relative, 1.0 1.0;
- }
- rel2 {
- to, "padding.border";
- relative, 1.0 1.0;
- }
- }
- }
- part {
- name, PART_USER_LOGIN_PW_DESC;
- type, TEXT;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, "bg.entry.border";
- rel2.to, "bg.entry.border";
- text {
- font, "TizenSans";
- size, 22;
- align, 0.5 0.5;
- }
- color, 27 32 45 100;
- visible, 1;
- }
- description {
- state, "hide" 0.0;
- inherit, "default" 0.0;
- visible, 0;
- }
- description {
- state, "wrongpw" 0.0;
- inherit, "default" 0.0;
- color, 220 0 0 255;
- visible, 1;
- }
- }
- part {
- name, PART_USER_LOGIN_PW;
- type, SWALLOW;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, PART_USER_LOGIN_PW_DESC;
- rel2.to, PART_USER_LOGIN_PW_DESC;
}
}
}
- programs {
- program {
- name, "show.pw";
- signal, SIG_SHOW_PW;
- source, SRC_PROG;
- action, STATE_SET "default" 0.0;
- transition, LINEAR 0.1;
- target, PART_USER_LOGIN_PW_DESC;
- }
- program {
- name, "hide.pw";
- signal, SIG_HIDE_PW;
- source, SRC_PROG;
- action, STATE_SET "hide" 0.0;
- transition, LINEAR 0.1;
- target, PART_USER_LOGIN_PW_DESC;
- }
- program {
- name, "show.long.pw";
- signal, SIG_SHOW_WRONG_PW;
- source, SRC_PROG;
- action, STATE_SET "wrongpw" 0.0;
- transition, LINEAR 0.1;
- target, PART_USER_LOGIN_PW_DESC;
- }
- program {
- name, "focus.pw";
- signal, SIG_FOCUS;
- source, SRC_PROG;
- action, STATE_SET "focus" 0.0;
- transition, LINEAR 0.1;
- target, "bg.entry";
- }
- program {
- name, "unfocus.pw";
- signal, SIG_UNFOCUS;
- source, SRC_PROG;
- action, STATE_SET "default" 0.0;
- transition, LINEAR 0.1;
- target, "bg.entry";
- }
- }
}
group {
}
}
part {
- name, "bg.entry";
- type, RECT;
+ name, PART_POPUP_ENTRY_NAME;
+ type, SWALLOW;
scale, 1;
description {
state, "default" 0.0;
to, "padding.name";
relative, 0.0 1.0;
}
- color, 27 32 45 40;
- }
- description {
- state, "focus" 0.0;
- inherit, "default" 0.0;
- color, 69 143 255 255;
- }
- }
- part {
- name, "padding.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 2 2;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1.to, "bg.entry";
- rel2 {
- to, "bg.entry";
- relative, 0.0 0.0;
- }
- visible, 0;
- }
- }
- part {
- name, "bg.entry.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 266 46;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1 {
- to, "padding.border";
- relative, 1.0 1.0;
- }
- rel2 {
- to, "padding.border";
- relative, 1.0 1.0;
- }
- }
- }
- part {
- name, PART_POPUP_ENTRY_NAME_DESC;
- type, TEXT;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, "bg.entry.border";
- rel2.to, "bg.entry.border";
- text {
- font, "TizenSans";
- size, 22;
- align, 0.5 0.5;
- }
- color, 27 32 45 100;
- visible, 1;
- }
- description {
- state, "hide" 0.0;
- inherit, "default" 0.0;
- visible, 0;
- }
- description {
- state, "wrongpw" 0.0;
- inherit, "default" 0.0;
- color, 220 0 0 255;
- visible, 1;
- }
- }
- part {
- name, PART_POPUP_ENTRY_NAME;
- type, SWALLOW;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, PART_POPUP_ENTRY_NAME_DESC;
- rel2.to, PART_POPUP_ENTRY_NAME_DESC;
}
}
part {
min, 0 10;
align, 0.0 0.0;
rel1 {
- to, "bg.entry";
+ to, PART_POPUP_ENTRY_NAME;
relative, 0.0 1.0;
}
rel2 {
- to, "bg.entry";
+ to, PART_POPUP_ENTRY_NAME;
relative, 0.0 1.0;
}
}
}
part {
- name, "bg.pw.entry";
- type, RECT;
+ name, PART_POPUP_ENTRY_PW;
+ type, SWALLOW;
scale, 1;
description {
state, "default" 0.0;
relative, 1.0 1.0;
}
rel2.to, "padding.pw";
- color, 27 32 45 40;
- }
- description {
- state, "focus" 0.0;
- inherit, "default" 0.0;
- color, 69 143 255 255;
- }
- }
- part {
- name, "padding.pw.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 2 2;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1.to, "bg.pw.entry";
- rel2 {
- to, "bg.pw.entry";
- relative, 0.0 0.0;
- }
- visible, 0;
- }
- }
- part {
- name, "bg.pw.entry.border";
- type, RECT;
- scale, 1;
- description {
- state, "default" 0.0;
- min, 266 46;
- fixed, 1 1;
- align, 0.0 0.0;
- rel1 {
- to, "padding.pw.border";
- relative, 1.0 1.0;
- }
- rel2 {
- to, "padding.pw.border";
- relative, 1.0 1.0;
- }
- }
- }
- part {
- name, PART_POPUP_ENTRY_PW_DESC;
- type, TEXT;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, "bg.pw.entry.border";
- rel2.to, "bg.pw.entry.border";
- text {
- font, "TizenSans";
- size, 22;
- align, 0.5 0.5;
- }
- color, 27 32 45 100;
- visible, 1;
- }
- description {
- state, "hide" 0.0;
- inherit, "default" 0.0;
- visible, 0;
- }
- description {
- state, "wrongpw" 0.0;
- inherit, "default" 0.0;
- color, 220 0 0 255;
- visible, 1;
- }
- }
- part {
- name, PART_POPUP_ENTRY_PW;
- type, SWALLOW;
- scale, 1;
- description {
- state, "default" 0.0;
- fixed, 1 1;
- rel1.to, PART_POPUP_ENTRY_PW_DESC;
- rel2.to, PART_POPUP_ENTRY_PW_DESC;
}
}
}
- programs {
- program {
- name, "show.pw";
- signal, SIG_SHOW_PW;
- source, SRC_PROG;
- action, STATE_SET "default" 0.0;
- transition, LINEAR 0.1;
- target, PART_POPUP_ENTRY_PW_DESC;
- }
- program {
- name, "show.name";
- signal, SIG_SHOW_NAME;
- source, SRC_PROG;
- action, STATE_SET "default" 0.0;
- transition, LINEAR 0.1;
- target, PART_POPUP_ENTRY_NAME_DESC;
- }
- program {
- name, "hide.pw";
- signal, SIG_HIDE_PW;
- source, SRC_PROG;
- action, STATE_SET "hide";
- transition, LINEAR 0.1;
- target, PART_POPUP_ENTRY_PW_DESC;
- }
- program {
- name, "hide.name";
- signal, SIG_HIDE_NAME;
- source, SRC_PROG;
- action, STATE_SET "hide";
- transition, LINEAR 0.1;
- target, PART_POPUP_ENTRY_NAME_DESC;
- }
- program {
- name, "focus.pw";
- signal, SIG_FOCUS;
- source, SRC_PROG;
- action, STATE_SET "focus" 0.0;
- transition, LINEAR 0.1;
- target, "bg.pw.entry";
- }
- program {
- name, "focus.name";
- signal, SIG_FOCUS_NAME;
- source, SRC_PROG;
- action, STATE_SET "focus" 0.0;
- transition, LINEAR 0.1;
- target, "bg.entry";
- }
- program {
- name, "unfocus.pw";
- signal, SIG_UNFOCUS;
- source, SRC_PROG;
- action, STATE_SET "unfocus" 0.0;
- transition, LINEAR 0.1;
- target, "bg.pw.entry";
- }
- program {
- name, "unfocus.name";
- signal, SIG_UNFOCUS_NAME;
- source, SRC_PROG;
- action, STATE_SET "unfocus" 0.0;
- transition, LINEAR 0.1;
- target, "bg.entry";
- }
- program {
- name, "show.wrong.name";
- signal, SIG_SHOW_WRONG;
- source, SRC_PROG;
- action, STATE_SET "wrongpw" 0.0;
- transition, LINEAR 0.1;
- target, PART_POPUP_ENTRY_NAME_DESC;
- }
- }
}
#define STYLE_BTN_HOVERTEXT "hovertext"
#define STYLE_BTN_DIM_HOVERTEXT "dimhovertext"
#define STYLE_CTXPOPUP_HOVER "hoverpopup"
+#define STYLE_ENTRY "input.field.small"
#define STYLE_LABEL_SLIDE_LEFT "slide_style_24_left"
#define STYLE_LABEL_SLIDE_CENTER "slide_style_24_center"
#define STYLE_LABEL_SLIDE_LEFT_32 "slide_style_32_left"
1000, &serial, NULL, &error);
if (!res) {
_ERR("failed to switch user, %s", error ? error->message : "");
+ g_object_unref(msg);
+ g_object_unref(conn);
g_error_free(error);
return -1;
}
#include <gum/gum-user.h>
#include <gum/gum-user-service.h>
#include <gum/common/gum-user-types.h>
+#include <Elementary.h>
#include "engine.h"
#include "bus.h"
static Eina_Bool _add_popup_btn(Evas_Object *p, struct _ubar_item *item,
struct _btn_info *btn_info, int size)
{
- Evas_Object *btn, *firstbtn;
+ Evas_Object *btn;
int i;
if (!p || !item || !btn_info) {
return EINA_FALSE;
}
- firstbtn = NULL;
for (i = 0; i < size; i++) {
btn = elm_button_add(p);
if (!btn) {
btn_info[i].click_cb, item);
evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_MOVE,
_mouse_over, NULL);
-
- if (i == 0)
- firstbtn = btn;
}
- if (firstbtn)
- elm_object_focus_set(firstbtn, EINA_TRUE);
-
return EINA_TRUE;
}
return EINA_TRUE;
}
-static void _entry_focused(void *data, Evas_Object *obj, void *ei)
-{
- struct _ubar_data *bar;
- Evas_Object *ly;
-
- if (!data) {
- _ERR("Invalid arguemtn");
- return;
- }
-
- bar = data;
- ly = elm_object_parent_widget_get(obj);
- if (!ly)
- return;
-
- elm_object_signal_emit(ly, SIG_HIDE_PW, SRC_PROG);
- elm_object_signal_emit(ly, SIG_FOCUS, SRC_PROG);
-
- if (bar->popup_cur)
- elm_object_signal_emit(bar->popup_cur->eo, SIG_FOCUS, SRC_PROG);
-}
-
-static void _entry_unfocused(void *data, Evas_Object *obj, void *ei)
-{
- if (elm_entry_is_empty(obj)) {
- elm_object_signal_emit(data, SIG_SHOW_PW, SRC_PROG);
- elm_object_part_text_set(data, PART_USER_LOGIN_PW_DESC,
- MESSAGE_PW);
- }
- elm_object_signal_emit(data, SIG_UNFOCUS, SRC_PROG);
-}
-
static Evas_Object *_add_entry(Evas_Object *p, const char *part, bool password)
{
Evas_Object *entry;
evas_object_del(p);
return NULL;
}
+ if (password) {
+ elm_entry_password_set(entry, EINA_TRUE);
+ elm_config_password_show_last_set(EINA_FALSE);
+ }
+ elm_object_style_set(entry, STYLE_ENTRY);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_input_panel_language_set(entry,
ELM_INPUT_PANEL_LANG_ALPHABET);
elm_entry_cursor_end_set(entry);
- if (password)
- elm_entry_password_set(entry, EINA_TRUE);
- /* FIXME: entry scroll style
elm_entry_scrollable_set(entry, EINA_TRUE);
- */
- /* TODO: IME */
elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF,
ELM_SCROLLER_POLICY_OFF);
elm_object_part_content_set(p, part, entry);
return entry;
}
-static void _id_entry_focused(void *data, Evas_Object *obj, void *ei)
-{
- struct _ubar_data *bar;
- Evas_Object *ly;
-
- if (!data) {
- _ERR("Invalid argument");
- return;
- }
-
- bar = data;
- ly = elm_object_parent_widget_get(obj);
- if (!ly)
- return;
-
- elm_object_signal_emit(ly, SIG_HIDE_NAME, SRC_PROG);
- elm_object_signal_emit(ly, SIG_FOCUS_NAME, SRC_PROG);
-
- if (bar->popup_cur)
- elm_object_signal_emit(bar->popup_cur->eo, SIG_FOCUS, SRC_PROG);
-}
-
-static void _id_entry_unfocused(void *data, Evas_Object *obj, void *ei)
-{
- if (elm_entry_is_empty(obj)) {
- elm_object_signal_emit(data, SIG_SHOW_NAME, SRC_PROG);
- elm_object_part_text_set(data, PART_POPUP_ENTRY_NAME_DESC,
- MESSAGE_ID);
- }
- elm_object_signal_emit(data, SIG_UNFOCUS_NAME, SRC_PROG);
-}
-
static void _popup_arrow_clicked(void *data, Evas_Object *obj,
const char *emission, const char *source)
{
}
elm_object_signal_callback_add(left_arrow, SIG_ARROW_CLICKED, SRC_EDJE,
_popup_arrow_clicked, item);
- item->left_arrow = left_arrow;
right_arrow = _add_arrow(item, ly, GRP_UBAR_RIGHT_ARROW,
PART_RIGHT_ARROW);
}
elm_object_signal_callback_add(right_arrow, SIG_ARROW_CLICKED, SRC_EDJE,
_popup_arrow_clicked, item);
- item->right_arrow = right_arrow;
if (!_load_users(item->bar, ly)) {
_ERR("failed to create users");
evas_object_del(ly);
return EINA_FALSE;
}
- elm_object_part_text_set(ly, PART_POPUP_ENTRY_NAME_DESC, MESSAGE_ID);
- evas_object_smart_callback_add(id_entry, "focused",
- _id_entry_focused, item->bar);
- evas_object_smart_callback_add(id_entry, "unfocused",
- _id_entry_unfocused, ly);
- item->id_entry = id_entry;
pw_entry = _add_entry(ly, PART_POPUP_ENTRY_PW, true);
if (!pw_entry) {
evas_object_del(ly);
return EINA_FALSE;
}
- elm_object_part_text_set(ly, PART_POPUP_ENTRY_PW_DESC, MESSAGE_PW);
- evas_object_smart_callback_add(pw_entry, "focused", _entry_focused,
- item->bar);
- evas_object_smart_callback_add(pw_entry, "unfocused", _entry_unfocused,
- ly);
+ elm_object_focus_next_object_set(pw_entry, item->btn[0],
+ ELM_FOCUS_DOWN);
+
+ item->left_arrow = left_arrow;
+ item->right_arrow = right_arrow;
+ item->id_entry = id_entry;
item->pw_entry = pw_entry;
return EINA_TRUE;
}
}
+ elm_object_signal_emit(item->eo, SIG_HLIGHT_FROM_POPOVER, SRC_PROG);
+
item->popup = popup;
item->state = POPUP_STATE_EDIT;
evas_object_del(ly);
return EINA_FALSE;
}
- elm_object_part_text_set(ly, PART_USER_LOGIN_PW_DESC, MESSAGE_PW);
- evas_object_smart_callback_add(entry, "focused", _entry_focused,
- item->bar);
- evas_object_smart_callback_add(entry, "unfocused", _entry_unfocused,
- ly);
-
item->pw_entry = entry;
return EINA_TRUE;
return EINA_FALSE;
}
evas_object_show(popup);
- item->popup = popup;
if (!_add_delete_item(popup, item)) {
_ERR("failed to create login item");
evas_object_del(popup);
return EINA_FALSE;
}
+
+ if (item->pw_entry)
+ elm_object_focus_set(item->pw_entry, EINA_TRUE);
+
elm_object_signal_emit(item->eo, SIG_HLIGHT_FROM_POPOVER, SRC_PROG);
+
item->state = POPUP_STATE_DELETE;
+ item->popup = popup;
return EINA_TRUE;
}
evas_object_del(ly);
return EINA_FALSE;
}
- elm_object_part_text_set(ly, PART_USER_LOGIN_PW_DESC, MESSAGE_PW);
- evas_object_smart_callback_add(entry, "focused", _entry_focused,
- item->bar);
- evas_object_smart_callback_add(entry, "unfocused", _entry_unfocused,
- ly);
+ elm_object_focus_next_object_set(entry, item->btn[0],
+ ELM_FOCUS_DOWN);
item->pw_entry = entry;
return EINA_FALSE;
}
+ if (item->pw_entry)
+ elm_object_focus_set(item->pw_entry, EINA_TRUE);
+
+ elm_object_signal_emit(item->eo, SIG_HLIGHT_FROM_POPOVER, SRC_PROG);
+
item->popup = popup;
item->state = POPUP_STATE_LOGIN;
- elm_object_signal_emit(item->eo, SIG_HLIGHT_FROM_POPOVER, SRC_PROG);
return EINA_TRUE;
}
return EINA_FALSE;
}
- firstbtn = NULL;
for (i = 0; i < sizeof(btn_info) / sizeof(*btn_info); i++) {
btn = elm_button_add(base);
if (!btn) {
elm_object_focus_set(cur->eo, EINA_TRUE);
}
+ elm_object_signal_emit(item->eo, SIG_HLIGHT_FROM_POPOVER, SRC_PROG);
+
item->popup = popup;
item->state = POPUP_STATE_ADD;
- elm_object_signal_emit(item->eo, SIG_HLIGHT_FROM_POPOVER, SRC_PROG);
-
return EINA_TRUE;
}