diff --git a/data/themes/default.edc b/data/themes/default.edc index 6f04d133b..0151e27ee 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -7884,7 +7884,8 @@ collections { aspect_preference: BOTH; \ color: 255 255 255 0; \ image.normal: "connman_status_ready"; \ - rel1.relative: 1 0; \ + rel1.relative: 0.8 0.8; \ + rel2.relative: 1 1; \ align: 1 1; \ min: 8 8; \ } \ @@ -7971,17 +7972,17 @@ CONNMAN_ICON(ethernet) #undef CONNMAN_ICON -#define CONNMAN_IMAGES_SET(_name) \ +#define CONNMAN_IMAGES_SET(_name, _min) \ images { \ set { \ name: "connman_"##_name; \ image { \ image: "connman_"##_name##"_128.png" COMP; \ - size: 33 33 1000 1000; \ + size: (_min+1) (_min+1) 1000 1000; \ } \ image { \ image: "connman_"##_name##"_32.png" COMP; \ - size: 1 1 32 32; \ + size: 1 1 _min _min; \ } \ } \ } \ @@ -8147,8 +8148,8 @@ CONNMAN_ICON(ethernet) color: 255 255 255 255; } } - CONNMAN_IMAGES_SET(status_ready) - CONNMAN_IMAGES_SET(status_online) + CONNMAN_IMAGES_SET(status_ready, 8) + CONNMAN_IMAGES_SET(status_online, 8) CONNMAN_STATE_PART_ADD() } programs { @@ -8224,6 +8225,39 @@ CONNMAN_ICON(ethernet) group { name: "e/modules/connman/main"; +#define CONNMAN_TECH_ICON_ADD(_tech) \ + part { \ + name: #_tech##"_icon"; \ + type: GROUP; \ + mouse_events: 0; \ + source: "e/modules/connman/icon/"##_tech; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + } \ + description { \ + state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + program { \ + name: "technology_"##_tech; \ + signal: "e,changed,technology,"##_tech; \ + source: "e"; \ + action: STATE_SET "default" 0.0; \ + target: "wifi_icon"; \ + target: "ethernet_icon"; \ + target: "cellular_icon"; \ + target: "bluetooth_icon"; \ + after: "technology_"##_tech##",2"; \ + } \ + program { \ + name: "technology_"##_tech##",2"; \ + action: STATE_SET "visible" 0.0; \ + target: #_tech##"_icon"; \ + } + parts { part { name: "eventarea"; @@ -8234,23 +8268,49 @@ CONNMAN_ICON(ethernet) color: 255 255 255 0; } } - part { - name: "icon"; - type: GROUP; - mouse_events: 0; - source: "e/modules/connman/icon/wifi"; - description { - state: "default" 0.0; - } + CONNMAN_TECH_ICON_ADD(wifi) + CONNMAN_TECH_ICON_ADD(ethernet) + CONNMAN_TECH_ICON_ADD(cellular) + CONNMAN_TECH_ICON_ADD(bluetooth) + } + programs { + program { + name: "technology_other"; + signal: "e,changed,technology,other"; + source: "e"; + after: "technology_wifi"; + } + program { + name: "connman,disabled"; + signal: "e,unavailable"; + source: "e"; + after: "connman,enabled"; + } + program { + name: "connman,enabled"; + signal: "e,available"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "wifi_icon"; + target: "ethernet_icon"; + target: "cellular_icon"; + target: "bluetooth_icon"; + after: "connman,enabled,2"; + } + program { + name: "connman,enabled,2"; + action: STATE_SET "visible" 0.0; + target: "wifi_icon"; } } +#undef CONNMAN_TECH_ICON_ADD } group { name: "e/modules/connman/end"; - CONNMAN_IMAGES_SET(security1) - CONNMAN_IMAGES_SET(security2) + CONNMAN_IMAGES_SET(security1, 32) + CONNMAN_IMAGES_SET(security2, 32) parts { part { diff --git a/src/modules/connman/e_mod_main.c b/src/modules/connman/e_mod_main.c index e21badcf1..7d6e9639b 100644 --- a/src/modules/connman/e_mod_main.c +++ b/src/modules/connman/e_mod_main.c @@ -261,17 +261,21 @@ static void _econnman_mod_manager_update_inst(E_Connman_Module_Context *ctxt, enum Connman_Service_Type type) { Evas_Object *o = inst->ui.gadget; - const char *statestr, *typestr; + Edje_Message_Int_Set *msg; + const char *typestr; char buf[128]; - if ((state == CONNMAN_STATE_ONLINE) || (state == CONNMAN_STATE_READY)) - edje_object_signal_emit(o, "e,changed,connected,yes", "e"); + msg = malloc(sizeof(*msg) + sizeof(int)); + msg->count = 2; + msg->val[0] = state; + /* FIXME check if it's possible to receive strenght as props of cm */ + if (type == -1) + msg->val[1] = 0; else - edje_object_signal_emit(o, "e,changed,connected,no", "e"); + msg->val[1] = 100; - statestr = econnman_state_to_str(state); - snprintf(buf, sizeof(buf), "e,changed,state,%s", statestr); - edje_object_signal_emit(o, buf, "e"); + edje_object_message_send(o, EDJE_MESSAGE_INT_SET, 1, msg); + free(msg); typestr = econnman_service_type_to_str(type); snprintf(buf, sizeof(buf), "e,changed,technology,%s", typestr); @@ -291,8 +295,12 @@ void econnman_mod_manager_update(struct Connman_Manager *cm) DBG("cm->services=%p", cm->services); - if (cm->services && (cm->state == CONNMAN_STATE_ONLINE || - cm->state == CONNMAN_STATE_READY)) + if ((cm->services) && ((cm->state == CONNMAN_STATE_ONLINE) || + (cm->state == CONNMAN_STATE_READY))) + /* FIXME would be nice to represent "configuring state". + theme already supports it */ + /* (cm->state == CONNMAN_STATE_ASSOCIATION) || + (cm->state == CONNMAN_STATE_CONFIGURATION))) */ { struct Connman_Service *cs = EINA_INLIST_CONTAINER_GET(cm->services, struct Connman_Service);