From b95cb9098deff8a2bfebc6cef9579777e4ead245 Mon Sep 17 00:00:00 2001 From: Seonah Moon Date: Thu, 23 Jul 2020 13:59:27 +0900 Subject: [PATCH] iot common: move show password option beside editfield Change-Id: Ia74dd1cdbe85f38cc716060141f4d6f72429f0bd --- packaging/wifi-efl-ug.spec | 2 +- resources/images/micro_x.png | Bin 0 -> 347 bytes resources/images/wifi_icon_eye_pw_invisible.png | Bin 0 -> 944 bytes resources/images/wifi_icon_eye_pw_visible.png | Bin 0 -> 812 bytes sources/libraries/Common/common_pswd_popup.c | 89 ++++--- sources/ui-gadget/edcs/custom_check.edc | 140 +++++++++++ sources/ui-gadget/edcs/custom_editfield.edc | 300 ++++++++++++++++++++++++ 7 files changed, 501 insertions(+), 30 deletions(-) create mode 100644 resources/images/micro_x.png create mode 100644 resources/images/wifi_icon_eye_pw_invisible.png create mode 100644 resources/images/wifi_icon_eye_pw_visible.png create mode 100755 sources/ui-gadget/edcs/custom_check.edc diff --git a/packaging/wifi-efl-ug.spec b/packaging/wifi-efl-ug.spec index b9e6f20..8f3e94b 100644 --- a/packaging/wifi-efl-ug.spec +++ b/packaging/wifi-efl-ug.spec @@ -1,6 +1,6 @@ Name: wifi-efl-ug Summary: Wi-Fi UI Gadget for TIZEN -Version: 1.0.248 +Version: 1.0.249 Release: 1 Group: App/Network License: Flora-1.1 diff --git a/resources/images/micro_x.png b/resources/images/micro_x.png new file mode 100644 index 0000000000000000000000000000000000000000..e50e8f9884648a99bc90f2652cd2de7927ddcea6 GIT binary patch literal 347 zcmV-h0i^zkP)4r8;~QIh8DPi zxq&M)bSWu;iIdLDC^m^5OO9Ikzg_+REigF6_9o=3CzyY;@7UoKBq7gIp+9;6xkoi6 zU*2{C>_v<)0exqYMZ(effJ2jloOA-V!XK2Voa~MrT_GevfJf+LrML?a5H`g=K%pNT zm@(*P)w-YC$^H!h{RO#kZ`=){Ep}h@hR+x?UO!5UPx95ZF9px!Dh@5kk7LMb%G zEpwK0tW6LueSn(Vn*!{Z;~MA($hw|=`vOEESIY{w0fOtQn8&d2-{TqpePfZ`N!6|y t%G4J}Gak3)ag6dxp2hyC_WfDa{U2KNuMn3f)xiJ&002ovPDHLkV1mJ2kCgxb literal 0 HcmV?d00001 diff --git a/resources/images/wifi_icon_eye_pw_invisible.png b/resources/images/wifi_icon_eye_pw_invisible.png new file mode 100644 index 0000000000000000000000000000000000000000..dc53cd385a746e9bfdc8fac358b647d15fc90aa2 GIT binary patch literal 944 zcmV;h15f;kP)+BSaf!UcmnVf zAXiDp>IuM402c9N5Cup~hIBDqI^-?`yZd>*-M!M)Y6Ti*;w?1N?%jLNcfRwTE8;6$ z-QJ)H$PR^vwQA|54axr-|BsV?ON2X$BaqMaN_p|#1U~luT8G%+$6a)k76S7iFAg5Bm}kc zB5-|nD}kev^DU9MMQ}p4+eiom6pnWm{2MMrk6)~;42#|?B%o5q2zSR4k6+blC}=zM z_Klp$dI{HrvPn4Kj#djG6s_{ifw!KQzfb{nEP-7M@*Tj9wAJW)3;x>EmB*j*)o82S zYxg6GpVFoJ5&up)ugzKk*6Wp0Fw=zH-e8wN(||d2n-QXx8c8dU{CKHI%EX)!?ir5= zg_fqrpvr+-c2Uw z#=T0aBwy54pByIp9rw3EZrMsOSNTMby2pbx5_=H2tX0dS5j^S*4h48_J6L<}`~D;2 zk8ZC&B>0^OUe>FneIxlKc?3$p3X4gT7y>%i^=kRic$5C$1b?*5m1y8i5=dKjJAsaA z!H5LN?b_;-x3gMc%b1&l54B3Eq4#FC;N*M@BHLLDI`v9PCoa8mN(7M~ZDuA+r3BQu zjggT={sVYL;-PI?yVoZBGZXHZ3DfloK9vJD3C(v64>N`Ut^q8hBPy2;y|toXNx__d zvdQVVaNBmM+2B(IG9@O0NJM@k`DWDb7#Gnu(Jw`L@aO5pQh0N{XA)EZ9lh4vL1Y%D z(HaFpDVq_?!U-|s&ko%kN1XR|6zeGoNVD+V5cD>9D{p$7ZKw z(>f)eXB&OUkkz+RWzEJ_rC9Y?~Msh{G%tv$AbvG ztbf}skT_&uo0v-=+Kvif9x%~}fI+}!>zDU-khidv1j=@&^z3ip2ncN=D(AVFnTLSk zj*G$B(5;P@omoo2s$ZNCg$_WaJizmNc*JZpeQ)pMqVt&qqE;g~Pg<;oIB13w_dzW=p0%&N$G*D1p^ zy9B(RXd^irO9c(ztGN2v6alN=KPQ5%zyzDNNr6M4Ls|K_7?xMfG}eqUj5@)57NFpo zBwR&`8LsbD8j3_hAPvr~@mlCeu&smMt<=CQ`>lh%!^}sKFd5yuqG%{`(=PJpx?SCf zNZlJvS;(Xl35ke+4i4b>x?O2T>mM$5i21wxf43$!<^iV7WZ=?oS9ax!1YEy2ZzC|G zUH|jmWsK81C886Z1f?pUnbE8F7yG8c9WZXLy-H$1tKPpP!kbwgun?O{A6C6Ll4B4d z)qZ~2>#DuF#^gB2I_SAtYf>Un1f;KhuezySvXX!r-BJSJRy=|f2|882T{MEEGbwxG z%J(We%SRw{g->IVbIWg6?WqXUop8rRaV%%9TA3w6FdPtG$jg*y^;t{j_+GUXJHz}m zbyy58_oi*Ak&yW=!$a8+;L+V$xS7X>>-Wa*$T{Ga;6hUmHC6eX4YNctS(A=%Cc!e` zFsv;LA~KAQmY~zKd4fohh@w>skF?t3d>1f!dKAl75@0*)-H-_?LoHVn>tNEi3-diI zi)Yrentry, EINA_FALSE); + else + elm_entry_password_set(pswd_popup_data->entry, EINA_TRUE); + + elm_entry_cursor_end_set(pswd_popup_data->entry); +} + +// IOT only +static void __pswd_entry_set_show_password_check(Evas_Object *parent, pswd_popup_t *data) +{ + Evas_Object *check = elm_check_add(parent); + + elm_object_style_set(check, "show_password"); + elm_check_state_set(check, EINA_FALSE); + elm_object_part_content_set(parent, "elm.swallow.end", check); + + evas_object_propagate_events_set(check, EINA_FALSE); + evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_smart_callback_add(check, "changed", _chk_changed_cb, data); + + evas_object_show(check); +} + static Evas_Object* _gl_pswd_entry_item_content_get(void *data, Evas_Object *obj, const char *part) { @@ -452,7 +488,14 @@ static Evas_Object* _gl_pswd_entry_item_content_get(void *data, if (!g_strcmp0(part, g_genlist_info[WIFI_GENLIST_FULL_STYLE].content_part)) { editfield = elm_layout_add(obj); - elm_layout_theme_set(editfield, "layout", "editfield", "singleline"); + + if (common_util_get_ug_type() == UG_VIEW_IOT_COMMON) { + elm_layout_file_set(editfield, CUSTOM_EDITFIELD_PATH, "password"); + __pswd_entry_set_show_password_check(editfield, pswd_popup_data); + } else { + elm_layout_theme_set(editfield, "layout", "editfield", "singleline"); + } + evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, 0.0); entry = elm_entry_add(editfield); @@ -501,21 +544,6 @@ static Evas_Object* _gl_pswd_entry_item_content_get(void *data, return NULL; } -static void _chk_changed_cb(void *data, Evas_Object *obj, void *ei) -{ - if (obj == NULL) - return; - - Eina_Bool state = elm_check_state_get(obj); - pswd_popup_t *pswd_popup_data = (pswd_popup_t *)data; - - if (state) - elm_entry_password_set(pswd_popup_data->entry, EINA_FALSE); - else - elm_entry_password_set(pswd_popup_data->entry, EINA_TRUE); - - elm_entry_cursor_end_set((Evas_Object *)data); -} static char *_gl_pswd_check_box_item_text_get(void *data, Evas_Object *obj, const char *part) { @@ -717,27 +745,29 @@ pswd_popup_t *create_passwd_popup(Evas_Object *conformant, Evas_Object *win_main EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); - /* Entry genlist item */ + /* Entry genlist item for password entry */ g_pswd_entry_itc.item_style = g_genlist_info[WIFI_GENLIST_FULL_STYLE].style_name; g_pswd_entry_itc.func.text_get = NULL; g_pswd_entry_itc.func.content_get = _gl_pswd_entry_item_content_get; - g_check_box_itc.func.state_get = NULL; - g_check_box_itc.func.del = NULL; + g_pswd_entry_itc.func.state_get = NULL; + g_pswd_entry_itc.func.del = NULL; Elm_Object_Item * entry_item = elm_genlist_item_append(genlist, &g_pswd_entry_itc, pswd_popup_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - /* Checkbox genlist item */ - g_check_box_itc.item_style = g_genlist_info[WIFI_GENLIST_1LINE_STYLE].style_name; - g_check_box_itc.func.text_get = _gl_pswd_check_box_item_text_get; - g_check_box_itc.func.content_get = _gl_pswd_check_box_item_content_get; - g_check_box_itc.func.state_get = NULL; - g_check_box_itc.func.del = NULL; - - elm_genlist_item_append(genlist, &g_check_box_itc, pswd_popup_data, - NULL, ELM_GENLIST_ITEM_NONE, - _gl_pswd_check_box_sel, pswd_popup_data); + if (common_util_get_ug_type() != UG_VIEW_IOT_COMMON) { + /* Checkbox genlist item for showing passsword */ + g_check_box_itc.item_style = g_genlist_info[WIFI_GENLIST_1LINE_STYLE].style_name; + g_check_box_itc.func.text_get = _gl_pswd_check_box_item_text_get; + g_check_box_itc.func.content_get = _gl_pswd_check_box_item_content_get; + g_check_box_itc.func.state_get = NULL; + g_check_box_itc.func.del = NULL; + + elm_genlist_item_append(genlist, &g_check_box_itc, pswd_popup_data, + NULL, ELM_GENLIST_ITEM_NONE, + _gl_pswd_check_box_sel, pswd_popup_data); + } if (popup_info->show_wps_btn) { /* WPS options genlist item */ @@ -757,6 +787,7 @@ pswd_popup_t *create_passwd_popup(Evas_Object *conformant, Evas_Object *win_main elm_object_content_set(passpopup, genlist); + evas_object_smart_callback_add(genlist, "realized", _gl_realized, NULL); evas_object_smart_callback_add(passpopup, "show,finished", popup_animation_finish_cb, entry_item); evas_object_show(passpopup); diff --git a/sources/ui-gadget/edcs/custom_check.edc b/sources/ui-gadget/edcs/custom_check.edc new file mode 100755 index 0000000..30f4d53 --- /dev/null +++ b/sources/ui-gadget/edcs/custom_check.edc @@ -0,0 +1,140 @@ +#define SHOW_PASSWORD_CHECKED_BG "wifi_icon_eye_pw_visible.png" +#define SHOW_PASSWORD_UNCHECKED_BG "wifi_icon_eye_pw_invisible.png" + +#define CUSTOM_CHECK_TRANSITION_TIME 0 +#define CUSTOM_CHECK_TRANSITION_TYPE LINEAR CUSTOM_CHECK_TRANSITION_TIME +#define CUSTOM_CHECK_SIZE 32 22 + +#define COLOR_TRANSPARENT 0 0 0 0 + +group { "elm/check/event/default"; + inherit_only: 1; + parts { + rect { "event"; + desc { "default"; + color: COLOR_TRANSPARENT; + vis; + } + desc { "disabled"; + inherit: "default"; + hid; + } + desc { "checked"; + inherit: "default"; + } + } + } + programs { + program { "clicked"; + signal: "mouse,clicked,1"; + source: "event"; + sequence { + action: SIGNAL_EMIT "elm,action,click" ""; + action: SIGNAL_EMIT "elm,action,check,toggle" ""; + } + after: "on_clicked"; + } + program { "pressed"; + signal: "mouse,down,1*"; + source: "event"; + action: SIGNAL_EMIT "elm,action,press" ""; + after: "on_pressed"; + } + program { "unpressed"; + signal: "mouse,up,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,unpress" ""; + after: "on_unpressed"; + } + program { "set_check"; + signal: "elm,state,check,on"; + source: "elm"; + after: "on_set_check"; + } + program { "unset_check"; + signal: "elm,state,check,off"; + source: "elm"; + after: "on_unset_check"; + } + program { "disabled"; + signal: "elm,state,disabled"; + source: "elm"; + after: "on_disabled"; + } + program { "enabled"; + signal: "elm,state,enabled"; + source: "elm"; + after: "on_enabled"; + } + } +} + +group { "elm/check/base/template"; + inherit: "elm/check/event/default"; + nomouse; + parts { + spacer { "base"; + desc { "default"; + } + } + } + programs { + program { name: "on_set_check"; + //Can be overriden in inheriting class + } + program { name: "on_unset_check"; + //Can be overriden in inheriting class + } + program { name: "on_pressed"; + //Can be overriden in inheriting class + } + program { name: "on_unpressed"; + //Can be overriden in inheriting class + } + program { name: "on_clicked"; + //Can be overriden in inheriting class + } + program { name: "on_disabled"; + //Can be overriden in inheriting class + } + program { name: "on_enabled"; + //Can be overriden in inheriting class + } + } +} + +group { "elm/check/base/show_password"; + inherit: "elm/check/base/template"; + nomouse; + + images { + image: SHOW_PASSWORD_CHECKED_BG COMP; + image: SHOW_PASSWORD_UNCHECKED_BG COMP; + } + + parts { + image { "bg"; + desc { "default"; + image.normal: SHOW_PASSWORD_UNCHECKED_BG; + min: CUSTOM_CHECK_SIZE; + max: CUSTOM_CHECK_SIZE; + } + desc { "checked" + inherit: "default"; + image.normal: SHOW_PASSWORD_CHECKED_BG; + } + } + } + + program { name: "on_set_check"; + action: STATE_SET "checked"; + target: "bg"; + transition: CUSTOM_CHECK_TRANSITION_TYPE; + } + + program { name: "on_unset_check"; + action: STATE_SET "default"; + target: "bg"; + transition: CUSTOM_CHECK_TRANSITION_TYPE; + } +} diff --git a/sources/ui-gadget/edcs/custom_editfield.edc b/sources/ui-gadget/edcs/custom_editfield.edc index c96d2bb..5a294ec 100755 --- a/sources/ui-gadget/edcs/custom_editfield.edc +++ b/sources/ui-gadget/edcs/custom_editfield.edc @@ -5,6 +5,25 @@ #define WPS_POPUP_SLIDER_VIEW_LAYOUT_PADDING_TOP_MIN_INC 266 28 #define WPS_POPUP_SLIDER_VIEW_LAYOUT_SWALLOW_MIN_INC 266 10 +// Define macros for password editfield +#define PASSWORD_EDITFIELD_BG_HEIGHT_INC 120 +#define PASSWORD_EDITFIELD_PADDING_MIN_INC 32 33 + +#define PASSWORD_EDITFIELD_PADDING_LINE_LEFT_MIN_INC 32 0 +#define PASSWORD_EDITFIELD_PADDING_LINE_RIGHT_MIN_INC 64 0 +#define PASSWORD_EDITFIELD_PADDING_LINE_BOTTOM_MIN_INC 0 20 +#define PASSWORD_EDITFIELD_LINE_RECT_MIN_INC 0 2 + +#define PASSWORD_EDITFIELD_PADDING_ELM_SWALLOW_CONTENT_MIN_INC 10 0 +#define PASSWORD_EDITFIELD_ELM_SWALLOW_CONTENT_ALIGN 0.5 0.5 +#define PASSWORD_EDITFIELD_ELM_SWALLOW_CONTENT_MIN_INC 0 54 + +#define PASSWORD_EDITFIELD_PADDING_ELM_SWALLOW_BUTTON_RIGHT_MIN_INC 56 0 +#define PASSWORD_EDITFIELD_ELM_SWALLOW_BUTTON_MIN_INC 14 14 + +#define PASSWORD_EDITFIELD_ELM_SWALLOW_END_MIN_INC 18 18 +#define PASSWORD_EDITFIELD_PADDING_SWALLOW_END_LEFT_MIN_INC 32 0 + #define BUTTON_BG_SIZE 96 96 #define BUTTON_CIRCLE_SIZE 46 46 @@ -45,6 +64,9 @@ RESOURCE_IMAGE("wifi_icon_badge_info.png"); RESOURCE_IMAGE("core_button_effect_normal.#.png"); RESOURCE_IMAGE("core_button_effect_pressed.#.png"); RESOURCE_IMAGE("find_hidden_network.png"); +RESOURCE_IMAGE("wifi_icon_eye_pw_invisible.png"); +RESOURCE_IMAGE("wifi_icon_eye_pw_visible.png"); +RESOURCE_IMAGE("micro_x.png"); base_scale: 1.8; plugins { @@ -55,6 +77,8 @@ RESOURCE_IMAGE("find_hidden_network.png"); } } +#include "custom_check.edc" + group { name: "popup_pbc_button_layout"; styles { @@ -602,4 +626,280 @@ group { } } } +group { "password"; + parts { + rect { "clipper"; + desc { "default"; + color: 255 255 255 255; + } + } + rect { "bg"; + scale; + clip: "clipper"; + desc { "default"; + min: 0 PASSWORD_EDITFIELD_BG_HEIGHT_INC; + color: 0 0 0 0; + } + } + spacer { "padding_top_left"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_MIN_INC; + fixed: 1 1; + align: 0.0 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel2.relative: 0.0 0.0; + } + } + spacer { "padding_bottom_right"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_MIN_INC; + fixed: 1 1; + align: 1.0 1.0; + rel1.to: "bg"; + rel1.relative: 1.0 1.0; + rel2.to: "bg"; + } + } + spacer { "padding_line_left"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_LINE_LEFT_MIN_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "bg"; + rel2.to: "bg"; + rel2.relative: 0.0 1.0; + } + } + spacer { "padding_line_right"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_LINE_RIGHT_MIN_INC; + fixed: 1 0; + align: 1.0 0.5; + rel1.to: "bg"; + rel1.relative: 1.0 0.0; + rel2.to: "bg"; + } + } + spacer { "padding_line_bottom"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_LINE_BOTTOM_MIN_INC; + fixed: 0 1; + align: 0.5 1.0; + rel1.to: "bg"; + rel1.relative: 0.0 1.0; + rel2.to: "bg"; + } + } + rect { "line_rect"; + scale; + clip: "clipper"; + desc { "default"; + min: PASSWORD_EDITFIELD_LINE_RECT_MIN_INC; + fixed: 1 1; + align: 0.5 1.0; + rel1 { + to_x: "padding_line_left"; + to_y: "padding_line_bottom"; + relative: 1.0 0.0; + } + rel2 { + to_x: "padding_line_right"; + to_y: "padding_line_bottom"; + relative: 0.0 0.0; + } + color: 128 128 128 166; + } + desc { "focused"; + inherit: "default"; + color: 61 185 204 255; + } + } + spacer { "sizer_elm.swallow.end"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_ELM_SWALLOW_END_MIN_INC; + fixed: 1 1; + align: 1.0 0.0; + rel1 { + to_x: "line_rect"; + to_y: "bg"; + relative: 1.0 0.3; + } + rel2 { + to: "bg"; + relative: 1.0 1.0; + } + } + } + spacer { "padding_elm.swallow.button_right"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_ELM_SWALLOW_BUTTON_RIGHT_MIN_INC; + fixed: 1 0; + align: 1.0 0.5; + rel1 { + to: "bg"; + relative: 1.0 0.0; + } + rel2.to: "bg"; + } + } + spacer { "sizer_elm.swallow.button"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_ELM_SWALLOW_BUTTON_MIN_INC; + fixed: 1 1; + align: 1.0 1.0; + rel1 { + to_x: "padding_elm.swallow.button_right"; + to_y: "bg"; + relative: 0.0 0.6; + } + rel2 { + to_x: "padding_elm.swallow.button_right"; + to_y: "bg"; + relative: 0.0 0.5; + } + } + } + spacer { "padding_elm.swallow.button_left"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_PADDING_ELM_SWALLOW_CONTENT_MIN_INC; + fixed: 1 0; + align: 1.0 0.5; + rel1 { + to_x: "sizer_elm.swallow.button"; + to_y: "bg"; + relative: 0.0 0.0; + } + rel2 { + to_x: "sizer_elm.swallow.button"; + to_y: "bg"; + relative: 0.0 1.0; + } + } + } + spacer { "padding_elm.swallow.content_left"; + scale; + desc { "default"; + fixed: 1 0; + min: PASSWORD_EDITFIELD_PADDING_ELM_SWALLOW_CONTENT_MIN_INC; + align: 0.0 0.5; + rel1 { + to: "padding_top_left"; + relative: 1.0 1.0; + } + rel2 { + to_x: "padding_top_left"; + to_y: "padding_bottom_right"; + relative: 1.0 0.0; + } + } + } + spacer { "padding_elm.swallow.content_right"; + scale; + desc { "default"; + fixed: 1 0; + min: PASSWORD_EDITFIELD_PADDING_ELM_SWALLOW_CONTENT_MIN_INC; + align: 1.0 0.5; + rel1 { + to_x: "padding_bottom_right"; + to_y: "padding_top_left"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_bottom_right"; + relative: 0.0 0.0; + } + } + } + spacer { "sizer_elm.swallow.content"; + scale; + desc { "default"; + min: PASSWORD_EDITFIELD_ELM_SWALLOW_CONTENT_MIN_INC; + rel1 { + to: "padding_elm.swallow.content_left"; + relative: 1.0 0.0; + } + rel2 { + to: "padding_elm.swallow.content_right"; + relative: 0.0 1.0; + } + } + desc { "show_button"; + inherit: "default"; + rel2 { + to_x: "padding_elm.swallow.button_left"; + to_y: "padding_elm.swallow.content_right"; + relative: 0.0 1.0; + } + } + } + swallow { "elm.swallow.content"; + scale; + clip: "clipper"; + desc { "default"; + align: PASSWORD_EDITFIELD_ELM_SWALLOW_CONTENT_ALIGN; + rel.to: "sizer_elm.swallow.content"; + } + } + swallow { "elm.swallow.button"; + scale; + clip: "clipper"; + desc { "default"; + fixed: 1 0; + rel.to: "sizer_elm.swallow.button"; + vis; + } + desc { "show_button"; + inherit: "default"; + vis; + } + } + swallow { "elm.swallow.end"; + scale; + clip: "clipper"; + desc { "default"; + fixed: 1 0; + rel.to: "sizer_elm.swallow.end"; + vis; + } + } + } + programs { + program { "focused"; + signal: "elm,state,focused"; + source: ""; + action: STATE_SET "focused"; + target: "line_rect"; + } + program { "unfocused"; + signal: "elm,state,unfocused"; + source: ""; + action: STATE_SET "default"; + target: "line_rect"; + } + program { "show_button"; + signal: "elm,action,show,button"; + source: ""; + action: STATE_SET "show_button"; + target: "sizer_elm.swallow.content"; + target: "elm.swallow.button"; + } + program { "hide_button"; + signal: "elm,action,hide,button"; + source: ""; + action: STATE_SET "default"; + target: "sizer_elm.swallow.content"; + target: "elm.swallow.button"; + } + } + } } -- 2.7.4