From 8866cd0f9993b25b846204b84c4efaf80e7ee817 Mon Sep 17 00:00:00 2001 From: Michael Bouchaud Date: Wed, 12 Feb 2014 23:36:45 +0000 Subject: [PATCH] entrance: use external instead of hard coded widget, so we can do more theming --- data/themes/default/default.edc | 14 ++++++++++++-- src/bin/entrance_login.c | 26 +++++++++----------------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/data/themes/default/default.edc b/data/themes/default/default.edc index 4cd5cb1..f321e18 100644 --- a/data/themes/default/default.edc +++ b/data/themes/default/default.edc @@ -304,14 +304,18 @@ collections { } part { - name: "entrance.loginbtn"; - type: SWALLOW; + name: "login_button"; + type: EXTERNAL; + source: "elm/button"; repeat_events: 0; description { rel1.relative: 0.5 1.0; rel1.to_x: "entrance.password"; rel1.to_y: "entrance.password"; visible: 1; + params { + string: "label" "Login"; + } } } @@ -393,6 +397,12 @@ collections { target: "error"; target: "entrance.error"; } + program { + name: "check_auth"; + signal: "clicked"; + source: "login_button"; + action: SIGNAL_EMIT "entrance,auth,check" ""; + } } /* diff --git a/src/bin/entrance_login.c b/src/bin/entrance_login.c index 0fb61db..0094575 100644 --- a/src/bin/entrance_login.c +++ b/src/bin/entrance_login.c @@ -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 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_auth_check_cb(void *data, Evas_Object *obj, const char *signal, const char *source); 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 _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); } - +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 * 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; /* 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); 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 */ elm_object_event_callback_add(o, _login_input_event_cb, o); 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); evas_object_smart_callback_add(p, "unfocused", _login_password_unfocused_cb, o); - evas_object_smart_callback_add(b, "clicked", - _login_loginbutton_cb, o); + elm_object_signal_callback_add(o, "entrance,auth,check", "", + _entrance_login_auth_check_cb, o); h = elm_hoversel_add(o); elm_hoversel_hover_parent_set(h, obj); evas_object_data_set(o, "entrance", login);