entrance: use external instead of hard coded widget, so we can do more theming

This commit is contained in:
Michael Bouchaud 2014-02-12 23:36:45 +00:00
parent 01f35eed49
commit 8866cd0f99
2 changed files with 21 additions and 19 deletions

View File

@ -304,14 +304,18 @@ collections {
} }
part { part {
name: "entrance.loginbtn"; name: "login_button";
type: SWALLOW; type: EXTERNAL;
source: "elm/button";
repeat_events: 0; repeat_events: 0;
description { description {
rel1.relative: 0.5 1.0; rel1.relative: 0.5 1.0;
rel1.to_x: "entrance.password"; rel1.to_x: "entrance.password";
rel1.to_y: "entrance.password"; rel1.to_y: "entrance.password";
visible: 1; visible: 1;
params {
string: "label" "Login";
}
} }
} }
@ -393,6 +397,12 @@ collections {
target: "error"; target: "error";
target: "entrance.error"; target: "entrance.error";
} }
program {
name: "check_auth";
signal: "clicked";
source: "login_button";
action: SIGNAL_EMIT "entrance,auth,check" "";
}
} }
/* /*

View File

@ -23,6 +23,7 @@ static void _login_login_activated_cb(void *data, Evas_Object *obj, void *event)
static char *_login_xsession_text_get(void *data, Evas_Object *obj, const char *part); static char *_login_xsession_text_get(void *data, Evas_Object *obj, const char *part);
static void _login_auth_cb(void *data, const char *user, Eina_Bool granted); static void _login_auth_cb(void *data, const char *user, Eina_Bool granted);
static void _entrance_login_session_set(Evas_Object *widget, const char *name); static void _entrance_login_session_set(Evas_Object *widget, const char *name);
static void _entrance_login_auth_check_cb(void *data, Evas_Object *obj, const char *signal, const char *source);
static Entrance_Fill *_login_fill; static Entrance_Fill *_login_fill;
@ -353,13 +354,6 @@ _login_xsession_guess(void *data, const char *user)
} }
} }
static void
_login_loginbutton_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
_login_check_auth(data);
}
static void static void
_login_xsession_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) _login_xsession_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{ {
@ -428,7 +422,11 @@ _entrance_login_session_set(Evas_Object *widget, const char *name)
_login_xsession_update(widget); _login_xsession_update(widget);
} }
static void
_entrance_login_auth_check_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *signal EINA_UNUSED, const char *source EINA_UNUSED)
{
_login_check_auth(data);
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -451,7 +449,7 @@ entrance_login_shutdown(void)
Evas_Object * Evas_Object *
entrance_login_add(Evas_Object *obj, Entrance_Login_Cb login_cb, void *data) entrance_login_add(Evas_Object *obj, Entrance_Login_Cb login_cb, void *data)
{ {
Evas_Object *o, *h, *p, *b; Evas_Object *o, *h, *p;
Entrance_Gui_Login *login; Entrance_Gui_Login *login;
/* layout */ /* layout */
@ -477,12 +475,6 @@ entrance_login_add(Evas_Object *obj, Entrance_Login_Cb login_cb, void *data)
elm_object_part_content_set(o, "entrance.password", p); elm_object_part_content_set(o, "entrance.password", p);
evas_object_show(p); evas_object_show(p);
/* login button */
b = elm_button_add(o);
elm_object_part_content_set(o, "entrance.loginbtn", b);
elm_object_text_set(b, "Login");
evas_object_show(b);
/* callbacks */ /* callbacks */
elm_object_event_callback_add(o, _login_input_event_cb, o); elm_object_event_callback_add(o, _login_input_event_cb, o);
evas_object_smart_callback_add(h, "activated", evas_object_smart_callback_add(h, "activated",
@ -493,8 +485,8 @@ entrance_login_add(Evas_Object *obj, Entrance_Login_Cb login_cb, void *data)
_login_password_focused_cb, o); _login_password_focused_cb, o);
evas_object_smart_callback_add(p, "unfocused", evas_object_smart_callback_add(p, "unfocused",
_login_password_unfocused_cb, o); _login_password_unfocused_cb, o);
evas_object_smart_callback_add(b, "clicked", elm_object_signal_callback_add(o, "entrance,auth,check", "",
_login_loginbutton_cb, o); _entrance_login_auth_check_cb, o);
h = elm_hoversel_add(o); h = elm_hoversel_add(o);
elm_hoversel_hover_parent_set(h, obj); elm_hoversel_hover_parent_set(h, obj);
evas_object_data_set(o, "entrance", login); evas_object_data_set(o, "entrance", login);