From 6d931e15ac46fbbd92cce4a70aff2fb291a69fb2 Mon Sep 17 00:00:00 2001 From: "changjoo.lee" Date: Thu, 9 Jun 2016 19:55:27 +0900 Subject: [PATCH] Add power off and restart image to powerkey Change-Id: I83a54082bd77d24f1efec9a77f8ee1d2abdc9223 --- core_power_off.png | Bin 0 -> 2880 bytes core_restart.png | Bin 0 -> 3158 bytes packaging/system-servant.spec | 2 + src/powerkey/CMakeLists.txt | 2 + src/powerkey/powerkey.c | 146 +++++++++++++++++++++++++----------------- 5 files changed, 92 insertions(+), 58 deletions(-) create mode 100755 core_power_off.png create mode 100755 core_restart.png diff --git a/core_power_off.png b/core_power_off.png new file mode 100755 index 0000000000000000000000000000000000000000..132afb635932fc4dd6933eb25bdd3ee112d07e91 GIT binary patch literal 2880 zcmbVOX;c&E8je^H5JeU(sD&6n;7SsbkU+xLkVPY_A*@;;Bm+dq9v~o#psYnOxC8|% zAYwobpcW9^*ab9NuBAn=C~FnjL{UNM4OV*ZkDmUxb7tmS=6#;${oduA$@22py+L!U zCI|%DK-oj2Do4weM_o<%mW6;8l!Kv&$oW*g3%rxDBfLTmOh#%VB z+MP!LB3OIk1%P+F2aORQ$-pup&Q4$lF-}Rq21InQm>tCt;>3=S&%8M0d}SLB0e?0T zMLI(Mbjsh|3rye&05BScf-E zzrdI*CJyOBCgaI2L@WVoL$X02?8tUl5}HInlgSt?o@R9e!<%OBNj&x0CW*oK;v?wRx7|Of-B+* zBe*;;!5ag%@MCe9+*qOIN_zf0EfEl~VgM#tz-5C!#}~)?8+|(h#)WK)L8Gx`A_IgA0XWKz5hz<@ z`(^_b5NI8bLd4U=Pi_XpMd|x&Uk(e)o349W=k+_@k}dI8waMJRSH)uMh>k{wOsuAl zUd*V^LKq?N5QHvVx4n&ARnkE$b1@6Ckcer-%D%nZQrT(HQrD(|>H7-#&_JB)dQo_V zYC@MZCOrJNgqhf+nJcM&3yh--B;s5{YQY{iu%?E#1l*WKXv2qU|MczkoKaG@HAPdU zUME(^wfA9@F(uT#HcNJ5Js#fbsDmoun#wdLt^x1bkTOU z=gErt{fcB?Q@>41%)#P3ep=BV3Q2y#S(%y5*OCq8nMP~vcFHl%vWo*r)irnXCR%+C+v$U)h#lzo~j-4=Y}`R7E>RF6$^L zG5;k0FoS-+WUXg6`i;VE_!hfui+!x0PT_9d11(>r^J-<#^c0#EWInj|w#XUdY7{_8 z8kg^!ZAS!Fny&%82HPpr*_=YF>}(8=>kKF6q`Z$dItQ3oB41HEztS-o%;TG_8N9=@ z>Q%T^TrHG-AK;j5bvigmOVoZNwY>0XBMp<|y(b%}7LNU!!M|VZdw9s#y+aQrEHR#` z>vG2T-Yu&-5EbB?HNlaA7TtQ*D~Q28w9{H$16hb%U(;r@YuPp7W2X9JvIx!22-0n@ zeNluFUf$SC>DQ-*kBy!3b;#UQGl3<)#!+75I}IGKh{riRTXXasdp8WLSz}u_+?f(8c!~%rR zsNXDa3YKvFyq*R0+5s5X$HVj4;q=onYh5wRDRRAiVss=P4lTF!f%S>5k5hmCDO9GbG=V*$V>;KMqe-2c`tfU(O9Zn=`9lrJ4BRp8ELvO|!`H2jyw`2exZ0&EBg^ z1|PgN+xAv(o=^7yW#X~Aw8;?gPTFx#yr<5H$+_knCXs<4{ z9c%7xB#%z&nC9<1YfphC7y0Pse@v!rbmC+`pIZpJZ`E_8BA(|+F?xSZ`cCzgft!wL z51X>p@;cFBn zSejM+q^!UZ22W)588}x9*H|W9WIiYp~;CmU2us^fXEY3^tVwor)Qdxm~MOWT85-0kai=XiI?;Beewp3?#oKO6nuCry!t%jSR z^;N_j)5gE~y4f66fy)^$5TlDpQzb>;@A8-z$pjOp6Kh~~b)B<`hxBg*sa91Dcg0=s z#bhf+(q#=9?CAa+$bC!gnyP)hwMiWIbm&L@BEzAJxnX!g^(T-0lwHydOO3t8O^f*r z{FfGkuC<5dNtb>d(Ahjk&cZYzzve=ro_bof+u7`o+tzKoO3n@AQ~J{tK|Y*cr^W*A zWjsvAr9aJpSZtKNSYBF=9^nrRQ(aBSS2Ig+K%g6nayDfKDHLj+oIptHDuQVgwX7iED zQi`rqcVOqITwA(^YV9E#sxM*vzKqi-e1cI={50k{`t|XUdwN=P?N{2&0McB2IxkR7ssqeQI%=AhP=w+VX5>`l z*xElP#F#=lEu-~()3dNkqL|i`GXbbx!sEa*QyV6-LXH&OS%}Iz-_PWm)jo+Hx6i|1 zhfWEWg)udE@Y7Z^J8!r1wBK9~Hoh%+=qZ^mmY&VE*vcGGwO literal 0 HcmV?d00001 diff --git a/core_restart.png b/core_restart.png new file mode 100755 index 0000000000000000000000000000000000000000..46b56c237142149eec9c43f5d5f372c9c77a6684 GIT binary patch literal 3158 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 literal 0 HcmV?d00001 diff --git a/packaging/system-servant.spec b/packaging/system-servant.spec index 8484596..ec6acef 100755 --- a/packaging/system-servant.spec +++ b/packaging/system-servant.spec @@ -330,6 +330,8 @@ rm -rf %{buildroot} %defattr(-,root,root,-) %{TZ_SYS_RO_APP}/org.tizen.powerkey-syspopup/bin/powerkey-popup %{TZ_SYS_RO_SHARE}/packages/org.tizen.powerkey-syspopup.xml +%{TZ_SYS_RO_APP}/org.tizen.powerkey-syspopup/res/core_power_off.png +%{TZ_SYS_RO_APP}/org.tizen.powerkey-syspopup/res/core_restart.png %{TZ_SYS_RO_APP}/org.tizen.powerkey-syspopup/res/circle_btn_check.png %{TZ_SYS_RO_APP}/org.tizen.powerkey-syspopup/res/circle_btn_delete.png %endif diff --git a/src/powerkey/CMakeLists.txt b/src/powerkey/CMakeLists.txt index a6ff523..cc63f8a 100755 --- a/src/powerkey/CMakeLists.txt +++ b/src/powerkey/CMakeLists.txt @@ -66,3 +66,5 @@ INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/powerkey/${PKGNAME}.xml DESTINATION ${MANI INSTALL(FILES ${CMAKE_SOURCE_DIR}/circle_btn_check.png DESTINATION ${RESDIR}) INSTALL(FILES ${CMAKE_SOURCE_DIR}/circle_btn_delete.png DESTINATION ${RESDIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/core_power_off.png DESTINATION ${RESDIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/core_restart.png DESTINATION ${RESDIR}) diff --git a/src/powerkey/powerkey.c b/src/powerkey/powerkey.c index 568053a..1ad276f 100755 --- a/src/powerkey/powerkey.c +++ b/src/powerkey/powerkey.c @@ -73,15 +73,13 @@ static void restart_clicked(const struct popup_ops *ops) char data[8]; int ret; - if (bReset == 1) - return; + if (bReset == 1) return; bReset = 1; unload_simple_popup(ops); win = get_window(); - if (!win) - popup_terminate(); + if (!win) popup_terminate(); rect = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_geometry_get(win, NULL, NULL, &w, &h); @@ -100,16 +98,24 @@ static void restart_clicked(const struct popup_ops *ops) POWER_METHOD, "si", param); - if (ret < 0) - _E("Failed to request restart to deviced (%d)", ret); + if (ret < 0) _E("Failed to request restart to deviced (%d)", ret); } -static char* -gl_text_get_cb(void *data, Evas_Object *obj, const char *part) +static char* gl_text_get_cb(void *data, Evas_Object *obj, const char *part) { int index = (int) data; - return strdup(_(items[index])); + switch (index) { + case 0: + if (!strncmp("elm.text", part, sizeof("elm.text"))) return strdup(_(items[index])); + else + return NULL; + + case 1: + if (!strncmp("elm.text", part, sizeof("elm.text"))) return strdup(_(items[index])); + else + return NULL; + } } static void gl_sel_cb(void *data, Evas_Object *obj, void *event_info) @@ -120,52 +126,87 @@ static void gl_sel_cb(void *data, Evas_Object *obj, void *event_info) clicked_index = (int)elm_object_item_data_get(item); unload_simple_popup(data); - if(clicked_index == 0 ) - { + if (clicked_index == 0) { _D("poweroff is chosen"); load_simple_popup(b, &poweroff_ops); - } - else if(clicked_index == 1 ) - { + } else if (clicked_index == 1) { _D("restart is chosen"); load_simple_popup(b, &restart_ops); + } else + _E("Wrong button is pressed"); +} + +static Evas_Object* gl_image_get_cb(void *data, Evas_Object *obj, const char *part) +{ + Evas_Object *img = elm_image_add(obj); + Evas_Object *check; + int index = (int) data; + + if (!img) { + _E("BAD image"); + return NULL; + } + + switch (index) { + case 0: + if (!strncmp(part, "elm.swallow.icon", sizeof("elm.swallow.icon"))) { + elm_image_file_set(img, RESDIR"/core_power_off.png", NULL); + evas_object_size_hint_min_set(img, ELM_SCALE_SIZE(50), ELM_SCALE_SIZE(50)); + _D("Power off img"); + return img; + } else if (!strncmp(part, "elm.swallow.icon.end", sizeof("elm.swallow.icon.end"))) { + check = elm_check_add(obj); + return check; + } else + return NULL; + + case 1: + if (!strncmp(part, "elm.swallow.icon", sizeof("elm.swallow.icon"))) { + elm_image_file_set(img, RESDIR"/core_restart.png", NULL); + evas_object_size_hint_min_set(img, ELM_SCALE_SIZE(50), ELM_SCALE_SIZE(50)); + _D("Restart img"); + return img; + } else if (!strncmp(part, "elm.swallow.icon.end", sizeof("elm.swallow.icon.end"))) { + check = elm_check_add(obj); + return check; + } else + return NULL; + + default: + _E("BAD data!"); + return NULL; } - else _E("Wrong button is pressed"); } int powerkey_list(bundle *b, const struct popup_ops *ops) { - static Elm_Genlist_Item_Class itc; - Evas_Object *popup; - Evas_Object *box; + Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); + Evas_Object *popup = NULL; + Evas_Object *box = NULL; Evas_Object *genlist; struct object_ops *obj; int i; Evas_Object *win; int ret; - if (!ops) - return -EINVAL; + if (!ops) return -EINVAL; ret = get_object_by_ops(ops, &obj); - if (ret < 0) { - _E("Failed to get object (%d)", ret); - return -EINVAL; - } + if (ret < 0) return -EINVAL; win = get_window(); - if (!win) - return -ENOMEM; + if (!win) return -ENOMEM; evas_object_show(win); popup = elm_popup_add(win); - if (!popup) - return -ENOMEM; + if (!popup) return -ENOMEM; elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_style_set(genlist, "default"); + /* box */ box = elm_box_add(popup); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -175,34 +216,32 @@ int powerkey_list(bundle *b, const struct popup_ops *ops) evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); - itc.item_style = "default"; - itc.func.text_get = gl_text_get_cb; - itc.func.content_get = NULL; - itc.func.state_get = NULL; - itc.func.del = NULL; + itc->item_style = "type1"; + itc->func.text_get = gl_text_get_cb; + itc->func.content_get = gl_image_get_cb; + itc->func.state_get = NULL; + itc->func.del = NULL; + + for (i = 0; i < 2; i++) + elm_genlist_item_append(genlist, itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, gl_sel_cb, ops); - for (i = 0; i < 2; i++) { - elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, gl_sel_cb, ops); - } evas_object_show(genlist); elm_box_pack_end(box, genlist); - evas_object_size_hint_min_set(box, -1, 250); + evas_object_size_hint_min_set(box, -1, 350); elm_object_content_set(popup, box); evas_object_show(popup); obj->popup = popup; + elm_genlist_item_class_free(itc); return 0; } - static void remove_popup(const struct popup_ops *ops) { static bool terminating = false; - if (terminating) - return; - + if (terminating) return; terminating = true; unload_simple_popup(ops); @@ -213,11 +252,8 @@ static void pm_state_changed(keynode_t *key, void *data) { const struct popup_ops *ops = data; - if (!key) - return; - - if (vconf_keynode_get_int(key) != VCONFKEY_PM_STATE_LCDOFF) - return; + if (!key) return; + if (vconf_keynode_get_int(key) != VCONFKEY_PM_STATE_LCDOFF) return; remove_popup(ops); } @@ -226,8 +262,7 @@ static void event_back_key_up(void *data, Evas_Object *obj, void *event_info) { const struct popup_ops *ops = data; - if (ops) - remove_popup(ops); + if (ops) remove_popup(ops); terminate_if_no_popup(); } @@ -242,8 +277,7 @@ static void register_handlers(const struct popup_ops *ops) _E("Failed to register vconf"); win = get_window(); - if (win) - eext_object_event_callback_add(win, EEXT_CALLBACK_BACK, event_back_key_up, (void*)ops); + if (win) eext_object_event_callback_add(win, EEXT_CALLBACK_BACK, event_back_key_up, (void*)ops); } static void unregister_handlers(const struct popup_ops *ops) @@ -253,8 +287,7 @@ static void unregister_handlers(const struct popup_ops *ops) vconf_ignore_key_changed(VCONFKEY_PM_STATE, pm_state_changed); win = get_window(); - if (win) - eext_object_event_callback_del(win, EEXT_CALLBACK_BACK, event_back_key_up); + if (win) eext_object_event_callback_del(win, EEXT_CALLBACK_BACK, event_back_key_up); } static int powerkey_list_launch(bundle *b, const struct popup_ops *ops) @@ -288,15 +321,13 @@ static void poweroff_clicked(const struct popup_ops *ops) char data[8]; int ret; - if (bPowerOff == 1) - return; + if (bPowerOff == 1) return; bPowerOff = 1; unload_simple_popup(ops); win = get_window(); - if (!win) - popup_terminate(); + if (!win) popup_terminate(); rect = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_geometry_get(win, NULL, NULL, &w, &h); @@ -313,8 +344,7 @@ static void poweroff_clicked(const struct popup_ops *ops) POWER_INTERFACE_NAME, POWER_METHOD, "si", param); - if (ret < 0) - _E("Failed to request poweroff to deviced (%d)", ret); + if (ret < 0) _E("Failed to request poweroff to deviced (%d)", ret); } static const struct popup_ops restart_ops = { -- 2.7.4