From 3585f3a53e9b655eeaef455a870f7135a458f57b Mon Sep 17 00:00:00 2001 From: Seonah Moon Date: Tue, 1 Nov 2016 19:30:10 +0900 Subject: [PATCH] [TSAM-9310] Fixed connect popup for saved AP - Add new edc file for circle button Change-Id: I6f9c47e4fb9968e1b7a8d2a6da9aa705e1f377b8 Signed-off-by: Seonah Moon --- packaging/wifi-efl-ug.spec | 2 +- sources/wearable/CMakeLists.txt | 11 +- .../inc/wearable-circle/view/popup_change_ap.h | 2 + .../inc/wearable-circle/view/util/efl_helper.h | 4 + .../res/wearable-circle/edje/circle_button.edc | 377 +++++++++++++++++++++ sources/wearable/res/wearable-circle/edje/wifi.edc | 60 ++-- sources/wearable/src/wearable-circle/app_main.c | 6 + .../src/wearable-circle/view/popup_change_ap.c | 18 +- .../src/wearable-circle/view/util/efl_helper.c | 24 ++ 9 files changed, 473 insertions(+), 31 deletions(-) create mode 100755 sources/wearable/res/wearable-circle/edje/circle_button.edc diff --git a/packaging/wifi-efl-ug.spec b/packaging/wifi-efl-ug.spec index 586b9ac..ea72e6c 100644 --- a/packaging/wifi-efl-ug.spec +++ b/packaging/wifi-efl-ug.spec @@ -1,7 +1,7 @@ %define _unpackaged_files_terminate_build 0 Name: wifi-efl-ug Summary: Wi-Fi UI Gadget for TIZEN -Version: 1.0.212 +Version: 1.0.213 Release: 1 Group: App/Network License: Flora-1.1 diff --git a/sources/wearable/CMakeLists.txt b/sources/wearable/CMakeLists.txt index d1bc113..9584176 100755 --- a/sources/wearable/CMakeLists.txt +++ b/sources/wearable/CMakeLists.txt @@ -69,7 +69,6 @@ pkg_check_modules(pkgs REQUIRED glib-2.0 elementary bundle -# ui-extension efl-extension capi-ui-efl-util ecore-input @@ -110,9 +109,17 @@ ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj) +ADD_CUSTOM_TARGET(circle_button.edj + COMMAND edje_cc -id ${RES_SOURCE_DIR}/images + ${RES_SOURCE_DIR}/edje/circle_button.edc ${CMAKE_CURRENT_SOURCE_DIR}/circle_button.edj + DEPENDS ${RES_SOURCE_DIR}/edje/circle_button.edc + ) + +ADD_DEPENDENCIES(${PROJECT_NAME} circle_button.edj) + INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.edj DESTINATION ${EDJDIR}) - +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/circle_button.edj DESTINATION ${EDJDIR}) # install application HOME directory INSTALL(DIRECTORY DESTINATION ${DATADIR}) diff --git a/sources/wearable/inc/wearable-circle/view/popup_change_ap.h b/sources/wearable/inc/wearable-circle/view/popup_change_ap.h index acfe2a3..002cb27 100755 --- a/sources/wearable/inc/wearable-circle/view/popup_change_ap.h +++ b/sources/wearable/inc/wearable-circle/view/popup_change_ap.h @@ -55,6 +55,8 @@ void popup_change_ap_set_tap_ok_button_cb(popup_change_ap_object *self, Evas_Smart_Cb func, gpointer data); void popup_change_ap_set_tap_forget_button_cb(popup_change_ap_object *self, Evas_Smart_Cb func, gpointer data); +void popup_change_ap_set_ssid(popup_change_ap_object *self, + const gchar *ssid); void popup_change_ap_set_rssi_text(popup_change_ap_object *self, const gchar *rssi_text); diff --git a/sources/wearable/inc/wearable-circle/view/util/efl_helper.h b/sources/wearable/inc/wearable-circle/view/util/efl_helper.h index 20f5896..cdbf199 100755 --- a/sources/wearable/inc/wearable-circle/view/util/efl_helper.h +++ b/sources/wearable/inc/wearable-circle/view/util/efl_helper.h @@ -36,12 +36,14 @@ extern "C" { #define EDJ_PATH "edje" #define EDJ_FILE "wifi.edj" +#define EDJ_CIRCLE_BUTTON_FILE "circle_button.edj" #define IMAGE_PATH "images" gboolean get_color_table_path(gchar *table_path, gsize table_path_length); gboolean get_font_table_path(gchar *table_path, gsize table_path_length); gboolean get_edj_path(gchar *edj_path, gsize edj_path_length); +gboolean get_edj_circle_button_path(gchar *edj_path, gsize edj_path_length); gboolean get_image_path(gchar *image_path, gsize image_path_length, const gchar *image_file); @@ -56,6 +58,8 @@ Evas_Object *create_layout_use_edj_file(Evas_Object *parent, const gchar *group) Evas_Object *create_icon_use_image_file(Evas_Object *parent, const gchar *image, const gchar *code); +Evas_Object *create_circle_button_use_edj_file(Evas_Object *parent); + #ifdef __cplusplus } #endif diff --git a/sources/wearable/res/wearable-circle/edje/circle_button.edc b/sources/wearable/res/wearable-circle/edje/circle_button.edc new file mode 100755 index 0000000..b33a381 --- /dev/null +++ b/sources/wearable/res/wearable-circle/edje/circle_button.edc @@ -0,0 +1,377 @@ +/* + * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define BUTTON_PADDING_SIZE_INC 30 0 +#define BUTTON_ICON_SIZE_INC 30 30 +#define BUTTON_POPUP_SIZE_INC 220 220 + +collections { + base_scale: 1.8; + styles { + style { name: "button_general_text_normal"; + base: "font=Tizen:weight=Normal:width=Condensed font_size=36 align=center color=#FAFAFAFF ellipsis=1.0 wrap=mixed text_class=tizen"; + } + style { name: "button_general_text_dim"; + base: "font=Tizen:weight=Normal:width=Condensed font_size=36 align=center color=#FAFAFA89 ellipsis=1.0 wrap=mixed text_class=tizen"; + } + style { name: "button_general_text_press"; + base: "font=Tizen:weight=Normal:width=Condensed font_size=36 align=center color=#FAFAFAFF ellipsis=1.0 wrap=mixed text_class=tizen"; + } + style { name: "button_general_text_focused"; + base: "font=Tizen:weight=Normal:width=Condensed font_size=36 align=center color=#FAFAFAFF ellipsis=1.0 wrap=mixed text_class=tizen"; + } + } + + group { name: "elm/button/base/popup_circle"; + images { + image: "wifi_ap_forget_btn.png" COMP; + } + script { + public mouse_down = 0; + public multi_down = 0; + } + parts { + part { name: "padding"; + type: "SPACER"; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + rel1.relative: 0.5 1.0; + rel2.relative: 0.5 1.0; + align: 0.5 0.0; + } + } + part { name: "bg"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + min: BUTTON_POPUP_SIZE_INC; + image.normal: "wifi_ap_forget_btn.png"; + rel1.to: "padding"; + rel1.relative: 0.5 1.0; + rel2.to: "padding"; + rel2.relative: 0.5 1.0; + align: 0.5 1.0; + color: 0 44 76 255; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + rel1.relative: 0.5 0.0; + rel2.relative: 0.5 0.0; + color: 0 148 255 127; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 33 33 33 255; + } + } + + part { name: "padding_left_top"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + rel2.relative: 0.0 0.0; + min: BUTTON_PADDING_SIZE_INC; + fixed: 1 1; + } + } + part { name: "padding_right_bottom"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 1.0 1.0; + rel1.relative: 1.0 1.0; + min: BUTTON_PADDING_SIZE_INC; + fixed: 1 1; + } + } + part { name: "icon_rect"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.5; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "padding_right_bottom"; + } + min: 0 0; + fixed: 1 1; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: BUTTON_ICON_SIZE_INC; + max: BUTTON_ICON_SIZE_INC; + fixed: 1 1; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + clip_to: "elm.swallow.content.clip"; + scale: 1; + description { state: "default" 0.0; + visible: 0; + align: 0.0 0.5; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "padding_right_bottom"; + } + fixed: 1 0; + } + description { state: "visible" 0.0; + fixed: 1 1; + min: BUTTON_ICON_SIZE_INC; + max: BUTTON_ICON_SIZE_INC; + align: 1.0 0.5; + rel1 { + relative: 0.0 1.0; + to_x: "elm.text"; + to_y: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to_x: "elm.text"; + to_y: "padding_right_bottom"; + } + } + description { state: "icononly" 0.0; + min: BUTTON_ICON_SIZE_INC; + max: BUTTON_ICON_SIZE_INC; + } + } + part { name: "padding_text"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 20; + rel1 { + to: "padding_left_top"; + relative: 0.0 1.0; + } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 0.5 1.0; + rel1 { + relative: 1.0 0.2; + to_x: "icon_rect"; + //to_y: "padding_left_top"; + to_y: "padding_text"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + text { + max: 1 0; + style: "button_general_text_normal"; + } + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + text.style: "button_general_text_dim"; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + text.style: "button_general_text_press"; + } + } + part { name: "elm.swallow.content.clip"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color: 0 148 255 255; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 250 250 250 76; + } + } + part { name: "event"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + rel1.to: "bg"; + rel2.to: "bg"; + } + } + } + programs { + program { name: "pressed"; + signal: "mouse,down,1*"; + source: "event"; + script { + if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) + { + set_int(mouse_down, 1); + run_program(PROGRAM:"button_press1"); + } + } + } + program { name: "button_press1"; + script { + new st[31]; + new Float:vl; + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + set_state(PART:"bg", "pressed", 0.0); + set_state(PART:"elm.text", "pressed", 0.0); + emit("elm,action,press", ""); + } + } + } + program { name: "unpressed"; + signal: "mouse,up,1"; + source: "event"; + script { + if (get_int(mouse_down) == 1) { + set_int(mouse_down, 0); + run_program(PROGRAM:"button_unpress1"); + } + } + } + program { name: "button_unpress1"; + script { + new st[31]; + new Float:vl; + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + set_state(PART:"bg", "default", 0.0); + set_state(PART:"elm.text", "default", 0.0); + emit("elm,action,unpress", ""); + } + } + } + program { name: "touch_snd"; + signal: "mouse,clicked,1"; + source: "event"; + script { + new st[31]; + new Float:vl; + if (get_int(multi_down) == 0) { + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) { + run_program(PROGRAM:"play_sample"); + emit("elm,action,click", ""); + } + } + } + } + program { + name: "play_sample"; + action: RUN_PLUGIN "touch_sound"; + } + program { name: "text_show"; + signal: "elm,state,text,visible"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "icononly")) + { + set_state(PART:"elm.swallow.content", "visible", 0.0); + set_state(PART:"icon_rect", "visible", 0.0); + } + get_state(PART:"bg", st, 30, vl); + if (strcmp(st, "disabled")) + set_state(PART:"elm.text", "default", 0.0); + else + set_state(PART:"elm.text", "disabled", 0.0); + } + } + program { name: "text_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "visible")) + { + set_state(PART:"elm.swallow.content", "icononly", 0.0); + set_state(PART:"icon_rect", "default", 0.0); + } + set_state(PART:"elm.text", "default", 0.0); + } + } + program { name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + target: "icon_rect"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "bg"; + target: "elm.swallow.content.clip"; + target: "elm.text"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "elm.swallow.content.clip"; + target: "elm.text"; + } + program { name: "multi_down"; + signal: "elm,action,multi,down"; + source: "elm"; + script { + set_int(multi_down, 1); + } + } + program { name: "multi_up"; + signal: "elm,action,multi,up"; + source: "elm"; + script { + set_int(multi_down, 0); + } + } + } + } +} diff --git a/sources/wearable/res/wearable-circle/edje/wifi.edc b/sources/wearable/res/wearable-circle/edje/wifi.edc index 184b9f8..b2e7ba7 100755 --- a/sources/wearable/res/wearable-circle/edje/wifi.edc +++ b/sources/wearable/res/wearable-circle/edje/wifi.edc @@ -23,14 +23,9 @@ #define LOGS_DEFAULT_COLOR_TRANSPARENCY 0 0 0 0 #define LOGS_DEFAULT_COLOR_BLACK 0 0 0 -#define POPUP_ENTRY_H 66 -#define POPUP_PADDING_H 32 -#define POPUP_ENTRY_HIDDEN_AP_MIN 0 325 #define POPUP_BASE_DEFAULT_WIDTH 360 -#define POPUP_LEFT_RIGHT_PADDING_WIDTH 16 -#define POPUP_TITLE_BOTTOM_PADDING_HEIGHT 8 -#define POPUP_BODY_BUTTON_WIDTH_INC 160 -#define POPUP_BODY_BUTTON_HEIGHT_INC 160 +#define POPUP_LEFT_RIGHT_PADDING_WIDTH 30 +#define POPUP_TITLE_BOTTOM_PADDING_HEIGHT 20 collections { base_scale: 1.3; @@ -63,6 +58,14 @@ collections { style { name: "wps_progress_popup_layout"; base: "font=Tizen:style=Regular font_size=32 color=#F9F9F9FF align=center ellipsis=1.0 text_class=label"; } + style { name: "popup_title_style"; + base: "font=Tizen:style=Bold font_size=32 align=center color=#3B73B6 style=Regular wrap=mixed ellipsis=1.0 text_class=tizen"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { name: "button_popup_body_text_normal"; + base: "font=Tizen:style=Light font_size=31 align=center color=#FFFFFF ellipsis=1.0 wrap=mixed text_class=tizen"; + } } group { name: "ap_signal_image_layout"; @@ -110,7 +113,10 @@ collections { scale: 1; description { state: "default" 0.0; min: POPUP_LEFT_RIGHT_PADDING_WIDTH 0; - rel1.to: "base"; + rel1 { + to: "base"; + relative: 0.0 0.1; + } rel2 { to: "base"; relative: 0.0 0.0; @@ -149,7 +155,7 @@ collections { align: 0.5 0.0; fixed: 0 1; text { - style: "textblock_popup_title"; + style: "popup_title_style"; min: 0 1; } } @@ -189,37 +195,39 @@ collections { } } } - part { name: "text_bottom_pad"; - type: SPACER; + part { name: "elm.swallow.button"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - min: 0 19; + min: 220 220; + max: 220 220; + align: 0.5 0.0; rel1 { to: "elm.text.content"; relative: 0.0 1.0; } - rel2.to: "elm.text.content"; - align: 0.5 0.0; - fixed: 0 1; + rel2 { + to: "bottom_right_pad"; + relative: 0.0 0.0; + } } } - part { name: "elm.swallow.button"; - type: SWALLOW; + part { name: "button_bottom_pad"; + type: SPACER; scale: 1; description { state: "default" 0.0; - min: 160 160; - max: 160 160; + min: 0 20; rel1 { - to: "text_bottom_pad"; + to: "elm.swallow.button"; relative: 0.0 1.0; } rel2 { - to: "bottom_right_pad"; - relative: 0.0 0.0; - } - } - } - } + to: "bottom_right_pad"; + relative: 0.0 0.0; + } + } + } + } } group { name: "wps_text_block_layout"; diff --git a/sources/wearable/src/wearable-circle/app_main.c b/sources/wearable/src/wearable-circle/app_main.c index b4a9614..c5a284b 100755 --- a/sources/wearable/src/wearable-circle/app_main.c +++ b/sources/wearable/src/wearable-circle/app_main.c @@ -1743,6 +1743,7 @@ static void __popup_change_ap_forget_button_tap_cb(void *data, static void _popup_change_ap_show_use_ap(app_object *app_obj, wifi_ap_object *ap) { + gchar *ssid; gchar *rssi_text; gboolean is_removable_ap = _is_removable_ap(app_obj->wifi_manager, ap); @@ -1759,6 +1760,11 @@ static void _popup_change_ap_show_use_ap(app_object *app_obj, wifi_ap_object *ap __popup_change_ap_destroy_cb, app_obj); popup_change_ap_set_tap_ok_button_cb(app_obj->popup_change_ap, __popup_change_ap_ok_button_tap_cb, app_obj); + + ssid = wifi_manager_ap_get_ssid(ap); + popup_change_ap_set_ssid(app_obj->popup_change_ap, ssid); + g_free(ssid); + rssi_text = _wifi_manager_ap_get_signal_strength_text_for_display(ap); popup_change_ap_set_rssi_text(app_obj->popup_change_ap, rssi_text); g_free(rssi_text); diff --git a/sources/wearable/src/wearable-circle/view/popup_change_ap.c b/sources/wearable/src/wearable-circle/view/popup_change_ap.c index 889eda9..6102d4f 100755 --- a/sources/wearable/src/wearable-circle/view/popup_change_ap.c +++ b/sources/wearable/src/wearable-circle/view/popup_change_ap.c @@ -34,6 +34,7 @@ struct _popup_change_ap_object { Evas_Object *ok_button; Evas_Object *content_layout; Evas_Object *forget_button; + gchar *ssid; gchar *rssi_text; popup_change_ap_dismiss_reason dismiss_reason; @@ -144,6 +145,7 @@ static Evas_Object *_create_content_layout(popup_change_ap_object *self, Evas_Ob content_text = g_strdup_printf("%s
%s
%s", tokens[0], tokens[1], self->rssi_text); g_strfreev(tokens); + elm_object_part_text_set(layout, "elm.text.title", self->ssid); elm_object_part_text_set(layout, "elm.text.content", content_text); g_free(content_text); return layout; @@ -151,10 +153,9 @@ static Evas_Object *_create_content_layout(popup_change_ap_object *self, Evas_Ob static Evas_Object *_create_forget_button(popup_change_ap_object *self, Evas_Object *parent) { - Evas_Object *forget_button = elm_button_add(parent); + Evas_Object *forget_button = create_circle_button_use_edj_file(parent); WIFI_RET_VAL_IF_FAIL(forget_button, NULL); - elm_object_style_set(forget_button, "default"); elm_object_text_set(forget_button, STR_FORGET); evas_object_size_hint_weight_set(forget_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(forget_button, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -253,6 +254,10 @@ void popup_change_ap_destroy(popup_change_ap_object *self) { WIFI_RET_IF_FAIL(self); + if (self->ssid) { + g_free(self->ssid); + self->ssid = NULL; + } if (self->rssi_text) { g_free(self->rssi_text); self->rssi_text = NULL; @@ -331,6 +336,15 @@ void popup_change_ap_set_tap_forget_button_cb(popup_change_ap_object *self, self->tap_forget_button_cb.data = data; } +void popup_change_ap_set_ssid(popup_change_ap_object *self, + const gchar *ssid) +{ + WIFI_RET_IF_FAIL(self); + WIFI_RET_IF_FAIL(ssid); + + self->ssid = g_strdup(ssid); +} + void popup_change_ap_set_rssi_text(popup_change_ap_object *self, const gchar *rssi_text) { diff --git a/sources/wearable/src/wearable-circle/view/util/efl_helper.c b/sources/wearable/src/wearable-circle/view/util/efl_helper.c index f19c8bf..c869998 100755 --- a/sources/wearable/src/wearable-circle/view/util/efl_helper.c +++ b/sources/wearable/src/wearable-circle/view/util/efl_helper.c @@ -72,6 +72,12 @@ gboolean get_edj_path(gchar *edj_path, gsize edj_path_length) edj_path, edj_path_length, EDJ_PATH, EDJ_FILE); } +gboolean get_edj_circle_button_path(gchar *edj_path, gsize edj_path_length) +{ + return _make_path_append_to_app_resource_path( + edj_path, edj_path_length, EDJ_PATH, EDJ_CIRCLE_BUTTON_FILE); +} + gboolean get_image_path(gchar *image_path, gsize image_path_length, const gchar *image_file) { @@ -128,3 +134,21 @@ Evas_Object *create_icon_use_image_file(Evas_Object *parent, const gchar *image, elm_image_file_set(icon, image_path, NULL); return icon; } + +Evas_Object *create_circle_button_use_edj_file(Evas_Object *parent) +{ + Evas_Object *button = NULL; + gchar edj_path[PATH_MAX] = { 0, }; + WIFI_RET_VAL_IF_FAIL(parent, NULL); + WIFI_RET_VAL_IF_FAIL(get_edj_circle_button_path(edj_path, sizeof(edj_path)), NULL); + + WIFI_LOG_INFO("circle button path (%s)", edj_path); + elm_theme_extension_add(NULL, edj_path); + + button = elm_button_add(parent); + WIFI_RET_VAL_IF_FAIL(button, NULL); + + elm_object_style_set(button, "popup_circle"); + + return button; +} -- 2.7.4