e/connman: Add icon to list of services
SVN revision: 76043
This commit is contained in:
parent
20c53c31ed
commit
6237df554b
|
@ -82,4 +82,9 @@ void econnman_mod_manager_update(struct Connman_Manager *cm);
|
|||
void econnman_mod_manager_inout(struct Connman_Manager *cm);
|
||||
void econnman_mod_services_changed(struct Connman_Manager *cm);
|
||||
|
||||
/* Util */
|
||||
|
||||
const char *econnman_state_to_str(enum Connman_State state);
|
||||
const char *econnman_service_type_to_str(enum Connman_Service_Type type);
|
||||
|
||||
#endif /* E_CONNMAN_H */
|
||||
|
|
|
@ -47,6 +47,25 @@ static enum Connman_State str_to_state(const char *s)
|
|||
return CONNMAN_STATE_NONE;
|
||||
}
|
||||
|
||||
const char *econnman_state_to_str(enum Connman_State state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case CONNMAN_STATE_OFFLINE:
|
||||
return "offline";
|
||||
case CONNMAN_STATE_IDLE:
|
||||
return "idle";
|
||||
case CONNMAN_STATE_READY:
|
||||
return "ready";
|
||||
case CONNMAN_STATE_ONLINE:
|
||||
return "online";
|
||||
case CONNMAN_STATE_NONE:
|
||||
break;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static enum Connman_Service_Type str_to_type(const char *s)
|
||||
{
|
||||
if (strcmp(s, "ethernet") == 0)
|
||||
|
@ -58,6 +77,21 @@ static enum Connman_Service_Type str_to_type(const char *s)
|
|||
return CONNMAN_SERVICE_TYPE_NONE;
|
||||
}
|
||||
|
||||
const char *econnman_service_type_to_str(enum Connman_Service_Type type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case CONNMAN_SERVICE_TYPE_ETHERNET:
|
||||
return "ethernet";
|
||||
case CONNMAN_SERVICE_TYPE_WIFI:
|
||||
return "wifi";
|
||||
case CONNMAN_SERVICE_TYPE_NONE:
|
||||
break;
|
||||
}
|
||||
|
||||
return "other";
|
||||
}
|
||||
|
||||
/* ---- */
|
||||
|
||||
static void _connman_object_init(struct Connman_Object *obj, const char *path)
|
||||
|
|
|
@ -27,10 +27,33 @@ e_connman_theme_path(void)
|
|||
#undef TF
|
||||
}
|
||||
|
||||
static Evas_Object * _econnman_service_new_icon(struct Connman_Service *cs,
|
||||
Evas *evas)
|
||||
{
|
||||
const char *type = econnman_service_type_to_str(cs->type);
|
||||
const char *state = econnman_state_to_str(cs->state);
|
||||
Evas_Object *icon;
|
||||
Edje_Message_Int msg;
|
||||
char buf[128];
|
||||
|
||||
snprintf(buf, sizeof(buf), "e/modules/connman/icon/%s", type);
|
||||
icon = edje_object_add(evas);
|
||||
e_theme_edje_object_set(icon, "base/theme/modules/connman", buf);
|
||||
|
||||
if (state)
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "e,state,%s", state);
|
||||
edje_object_signal_emit(icon, buf, "e");
|
||||
}
|
||||
|
||||
return icon;
|
||||
}
|
||||
|
||||
static void _econnman_popup_update(struct Connman_Manager *cm,
|
||||
E_Connman_Instance *inst)
|
||||
{
|
||||
Evas_Object *list = inst->ui.popup.list;
|
||||
Evas *evas = evas_object_evas_get(list);
|
||||
struct Connman_Service *cs;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(cm);
|
||||
|
@ -39,7 +62,10 @@ static void _econnman_popup_update(struct Connman_Manager *cm,
|
|||
e_widget_ilist_clear(list);
|
||||
|
||||
EINA_INLIST_FOREACH(cm->services, cs)
|
||||
e_widget_ilist_append(list, NULL, cs->name, NULL, NULL, cs->obj.path);
|
||||
{
|
||||
Evas_Object *icon = _econnman_service_new_icon(cs, evas);
|
||||
e_widget_ilist_append(list, icon, cs->name, NULL, NULL, cs->obj.path);
|
||||
}
|
||||
|
||||
e_widget_ilist_thaw(list);
|
||||
e_widget_ilist_go(list);
|
||||
|
|
Loading…
Reference in New Issue