forked from enlightenment/enlightenment
parent
31f92ef736
commit
84d313fdd1
|
@ -10,89 +10,96 @@ extern const char *e_str_offline;
|
|||
struct connman_config_technologies
|
||||
{
|
||||
EINA_INLIST;
|
||||
Evas_Object *obj;
|
||||
Evas_Object *obj;
|
||||
E_Connman_Technology *technology;
|
||||
int enabled;
|
||||
int enabled;
|
||||
};
|
||||
|
||||
struct _E_Config_Dialog_Data
|
||||
{
|
||||
E_Connman_Module_Context *ctxt;
|
||||
const char *selected_network;
|
||||
const char *selected_network;
|
||||
struct connman_config_network_ui
|
||||
{
|
||||
Evas_Object *hlayout;
|
||||
Evas_Object *netframe;
|
||||
Evas_Object *netlist;
|
||||
{
|
||||
Evas_Object *hlayout;
|
||||
Evas_Object *netframe;
|
||||
Evas_Object *netlist;
|
||||
/*
|
||||
Evas_Object *o_up;
|
||||
Evas_Object *o_down;
|
||||
Evas_Object *o_add;
|
||||
Evas_Object *o_del;
|
||||
*/
|
||||
Evas_Object *setframe;
|
||||
struct connman_config_network_settings_ui
|
||||
{
|
||||
Evas_Object *scr_general;
|
||||
Evas_Object *list_general;
|
||||
Evas_Object *lb_autoconn;
|
||||
Evas_Object *lb_autoconn_val;
|
||||
Evas_Object *lb_favorite;
|
||||
Evas_Object *lb_favorite_val;
|
||||
Evas_Object *lb_type;
|
||||
Evas_Object *lb_type_val;
|
||||
Evas_Object *lb_ipv4_method;
|
||||
Evas_Object *lb_ipv4_method_val;
|
||||
Evas_Object *lb_ipv4_address;
|
||||
Evas_Object *lb_ipv4_address_val;
|
||||
Evas_Object *lb_ipv4_netmask;
|
||||
Evas_Object *lb_ipv4_netmask_val;
|
||||
Evas_Object *o_down;
|
||||
Evas_Object *o_add;
|
||||
Evas_Object *o_del;
|
||||
*/
|
||||
Evas_Object *setframe;
|
||||
struct connman_config_network_settings_ui
|
||||
{
|
||||
Evas_Object *scr_general;
|
||||
Evas_Object *list_general;
|
||||
Evas_Object *lb_autoconn;
|
||||
Evas_Object *lb_autoconn_val;
|
||||
Evas_Object *lb_favorite;
|
||||
Evas_Object *lb_favorite_val;
|
||||
Evas_Object *lb_type;
|
||||
Evas_Object *lb_type_val;
|
||||
Evas_Object *lb_ipv4_method;
|
||||
Evas_Object *lb_ipv4_method_val;
|
||||
Evas_Object *lb_ipv4_address;
|
||||
Evas_Object *lb_ipv4_address_val;
|
||||
Evas_Object *lb_ipv4_netmask;
|
||||
Evas_Object *lb_ipv4_netmask_val;
|
||||
|
||||
#if 0 // need to do proxy stuff to enalbe the toolbook
|
||||
Evas_Object *settings_otb;
|
||||
Evas_Object *list_proxy;
|
||||
Evas_Object *settings_otb;
|
||||
Evas_Object *list_proxy;
|
||||
#endif
|
||||
} settings_otb;
|
||||
} networks;
|
||||
} settings_otb;
|
||||
} networks;
|
||||
struct connman_config_switch_ui
|
||||
{
|
||||
Evas_Object *vlayout;
|
||||
Evas_Object *type_frame;
|
||||
Evas_Object *off_frame;
|
||||
Eina_Inlist *technologies;
|
||||
Evas_Object *o_off;
|
||||
int offline_mode;
|
||||
} switches;
|
||||
{
|
||||
Evas_Object *vlayout;
|
||||
Evas_Object *type_frame;
|
||||
Evas_Object *off_frame;
|
||||
Eina_Inlist *technologies;
|
||||
Evas_Object *o_off;
|
||||
int offline_mode;
|
||||
} switches;
|
||||
};
|
||||
|
||||
/* Local Function Prototypes */
|
||||
static void *_create_data(E_Config_Dialog *dialog);
|
||||
static void _free_data(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata);
|
||||
static void _fill_data(E_Config_Dialog_Data *cfdata, E_Connman_Module_Context *ctxt);
|
||||
static Evas_Object *_basic_create(E_Config_Dialog *dialog, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||
static int _basic_apply(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata);
|
||||
static void *_create_data(E_Config_Dialog *dialog);
|
||||
static void _free_data(E_Config_Dialog *dialog,
|
||||
E_Config_Dialog_Data *cfdata);
|
||||
static void _fill_data(E_Config_Dialog_Data *cfdata,
|
||||
E_Connman_Module_Context *ctxt);
|
||||
static Evas_Object *_basic_create(E_Config_Dialog *dialog,
|
||||
Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata);
|
||||
static int _basic_apply(E_Config_Dialog *dialog,
|
||||
E_Config_Dialog_Data *cfdata);
|
||||
|
||||
struct connman_service_move_data
|
||||
{
|
||||
const char *service_path;
|
||||
const char *service_ref_path;
|
||||
const char *service_path;
|
||||
const char *service_ref_path;
|
||||
E_Connman_Module_Context *ctxt;
|
||||
};
|
||||
|
||||
enum _Conmman_Move_Direction {
|
||||
SERVICE_MOVE_DOWN,
|
||||
SERVICE_MOVE_UP
|
||||
SERVICE_MOVE_DOWN,
|
||||
SERVICE_MOVE_UP
|
||||
};
|
||||
|
||||
static void
|
||||
_connman_service_move_cb(void *data, DBusMessage *msg __UNUSED__, DBusError *error)
|
||||
_connman_service_move_cb(void *data,
|
||||
DBusMessage *msg __UNUSED__,
|
||||
DBusError *error)
|
||||
{
|
||||
struct connman_service_move_data *d = data;
|
||||
if (error && dbus_error_is_set(error))
|
||||
{
|
||||
ERR("%s method failed with message \'%s\'",
|
||||
error->name, error->message);
|
||||
dbus_error_free(error);
|
||||
ERR("%s method failed with message \'%s\'",
|
||||
error->name, error->message);
|
||||
dbus_error_free(error);
|
||||
}
|
||||
else
|
||||
DBG("Changed service order");
|
||||
|
@ -103,7 +110,9 @@ _connman_service_move_cb(void *data, DBusMessage *msg __UNUSED__, DBusError *err
|
|||
}
|
||||
|
||||
static void
|
||||
_connman_service_move(E_Connman_Service *service, const E_Connman_Service *service_ref, enum _Conmman_Move_Direction direction)
|
||||
_connman_service_move(E_Connman_Service *service,
|
||||
const E_Connman_Service *service_ref,
|
||||
enum _Conmman_Move_Direction direction)
|
||||
{
|
||||
struct connman_service_move_data *d;
|
||||
int ret;
|
||||
|
@ -121,37 +130,39 @@ _connman_service_move(E_Connman_Service *service, const E_Connman_Service *servi
|
|||
d->service_ref_path);
|
||||
|
||||
if (direction == SERVICE_MOVE_UP)
|
||||
ret = e_connman_service_move_before
|
||||
(service->element, d->service_ref_path, _connman_service_move_cb, d);
|
||||
ret = e_connman_service_move_before
|
||||
(service->element, d->service_ref_path, _connman_service_move_cb, d);
|
||||
else
|
||||
ret = e_connman_service_move_after
|
||||
(service->element, d->service_ref_path, _connman_service_move_cb, d);
|
||||
ret = e_connman_service_move_after
|
||||
(service->element, d->service_ref_path, _connman_service_move_cb, d);
|
||||
|
||||
if (!ret)
|
||||
{
|
||||
eina_stringshare_del(d->service_ref_path);
|
||||
eina_stringshare_del(d->service_path);
|
||||
E_FREE(d);
|
||||
_connman_operation_error_show(_("Re-order preferred services"));
|
||||
eina_stringshare_del(d->service_ref_path);
|
||||
eina_stringshare_del(d->service_path);
|
||||
E_FREE(d);
|
||||
_connman_operation_error_show(_("Re-order preferred services"));
|
||||
}
|
||||
}
|
||||
|
||||
struct _connman_technology_onoff_data
|
||||
{
|
||||
const char *type;
|
||||
const char *type;
|
||||
E_Connman_Module_Context *ctxt;
|
||||
Eina_Bool on;
|
||||
Eina_Bool on;
|
||||
};
|
||||
|
||||
static void
|
||||
_connman_technology_onoff_cb(void *data, DBusMessage *msg __UNUSED__, DBusError *error)
|
||||
_connman_technology_onoff_cb(void *data,
|
||||
DBusMessage *msg __UNUSED__,
|
||||
DBusError *error)
|
||||
{
|
||||
struct _connman_technology_onoff_data *d = data;
|
||||
if (error && dbus_error_is_set(error))
|
||||
{
|
||||
ERR("%s method failed with message \'%s\'.",
|
||||
error->name, error->message);
|
||||
dbus_error_free(error);
|
||||
ERR("%s method failed with message \'%s\'.",
|
||||
error->name, error->message);
|
||||
dbus_error_free(error);
|
||||
}
|
||||
else
|
||||
DBG("Technology %s has been %s.", d->type, d->on ? "enabled" : "disabled");
|
||||
|
@ -161,7 +172,9 @@ _connman_technology_onoff_cb(void *data, DBusMessage *msg __UNUSED__, DBusError
|
|||
}
|
||||
|
||||
static void
|
||||
_connman_technology_onoff(E_Connman_Module_Context *ctxt, const char *type, Eina_Bool on)
|
||||
_connman_technology_onoff(E_Connman_Module_Context *ctxt,
|
||||
const char *type,
|
||||
Eina_Bool on)
|
||||
{
|
||||
int ret;
|
||||
struct _connman_technology_onoff_data *d;
|
||||
|
@ -169,8 +182,8 @@ _connman_technology_onoff(E_Connman_Module_Context *ctxt, const char *type, Eina
|
|||
d = E_NEW(struct _connman_technology_onoff_data, 1);
|
||||
if (!d)
|
||||
{
|
||||
_connman_operation_error_show("No memory available");
|
||||
return;
|
||||
_connman_operation_error_show("No memory available");
|
||||
return;
|
||||
}
|
||||
|
||||
d->type = eina_stringshare_add(type);
|
||||
|
@ -179,22 +192,23 @@ _connman_technology_onoff(E_Connman_Module_Context *ctxt, const char *type, Eina
|
|||
|
||||
if(on)
|
||||
ret = e_connman_manager_technology_enable
|
||||
(type, _connman_technology_onoff_cb, d);
|
||||
(type, _connman_technology_onoff_cb, d);
|
||||
else
|
||||
ret = e_connman_manager_technology_disable
|
||||
(type, _connman_technology_onoff_cb, d);
|
||||
(type, _connman_technology_onoff_cb, d);
|
||||
|
||||
if(!ret)
|
||||
{
|
||||
eina_stringshare_del(type);
|
||||
E_FREE(d);
|
||||
eina_stringshare_del(type);
|
||||
E_FREE(d);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
E_Config_Dialog *
|
||||
e_connman_config_dialog_new(E_Container *con, E_Connman_Module_Context *ctxt)
|
||||
e_connman_config_dialog_new(E_Container *con,
|
||||
E_Connman_Module_Context *ctxt)
|
||||
{
|
||||
E_Config_Dialog *dialog;
|
||||
E_Config_Dialog_View *view;
|
||||
|
@ -211,9 +225,9 @@ e_connman_config_dialog_new(E_Container *con, E_Connman_Module_Context *ctxt)
|
|||
view->basic.apply_cfdata = _basic_apply;
|
||||
|
||||
dialog = e_config_dialog_new
|
||||
(con, _("Connection Manager"),
|
||||
_e_connman_Name, "e_connman_config_dialog_new",
|
||||
e_connman_theme_path(), 0, view, ctxt);
|
||||
(con, _("Connection Manager"),
|
||||
_e_connman_Name, "e_connman_config_dialog_new",
|
||||
e_connman_theme_path(), 0, view, ctxt);
|
||||
e_dialog_resizable_set(dialog->dia, 1);
|
||||
|
||||
return dialog;
|
||||
|
@ -232,19 +246,20 @@ _create_data(E_Config_Dialog *dialog)
|
|||
}
|
||||
|
||||
static void
|
||||
_free_data(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata)
|
||||
_free_data(E_Config_Dialog *dialog,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
E_Connman_Module_Context *ctxt = dialog->data;
|
||||
struct connman_config_switch_ui *ui = &cfdata->switches;
|
||||
|
||||
while(ui->technologies)
|
||||
{
|
||||
struct connman_config_technologies *t;
|
||||
struct connman_config_technologies *t;
|
||||
|
||||
t = (struct connman_config_technologies *) ui->technologies;
|
||||
ui->technologies = eina_inlist_remove
|
||||
(ui->technologies, EINA_INLIST_GET(t));
|
||||
E_FREE(t);
|
||||
t = (struct connman_config_technologies *)ui->technologies;
|
||||
ui->technologies = eina_inlist_remove
|
||||
(ui->technologies, EINA_INLIST_GET(t));
|
||||
E_FREE(t);
|
||||
}
|
||||
|
||||
ctxt->conf_dialog = NULL;
|
||||
|
@ -252,14 +267,18 @@ _free_data(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata)
|
|||
}
|
||||
|
||||
static inline void
|
||||
_fill_data(E_Config_Dialog_Data *cfdata, E_Connman_Module_Context *ctxt)
|
||||
_fill_data(E_Config_Dialog_Data *cfdata,
|
||||
E_Connman_Module_Context *ctxt)
|
||||
{
|
||||
cfdata->ctxt = ctxt;
|
||||
cfdata->switches.technologies = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
_cb_scr_general_show(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
_cb_scr_general_show(void *data,
|
||||
Evas *evas __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
struct connman_config_network_ui *ui;
|
||||
|
@ -269,25 +288,27 @@ _cb_scr_general_show(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *
|
|||
evas_object_hide(obj);
|
||||
}
|
||||
|
||||
static void _network_settings_general_page_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
static void
|
||||
_network_settings_general_page_create(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
struct connman_config_network_settings_ui *ui;
|
||||
Evas_Coord mw, mh;
|
||||
ui = &cfdata->networks.settings_otb;
|
||||
|
||||
ui->list_general = e_widget_list_add(evas, 0, 0);
|
||||
#define _APPEND_ITEM(item, label) \
|
||||
do \
|
||||
{ \
|
||||
ui->lb_##item = e_widget_label_add(evas, _(label)); \
|
||||
ui->lb_##item ## _val = e_widget_entry_add \
|
||||
(evas, NULL, NULL, NULL, NULL); \
|
||||
e_widget_entry_readonly_set(ui->lb_##item ## _val, 1); \
|
||||
e_widget_list_object_append \
|
||||
(ui->list_general, ui->lb_##item, 1, 0, 0.0); \
|
||||
e_widget_list_object_append \
|
||||
(ui->list_general, ui->lb_##item ## _val, 1, 0, 0.0); \
|
||||
} while(0)
|
||||
#define _APPEND_ITEM(item, label) \
|
||||
do \
|
||||
{ \
|
||||
ui->lb_##item = e_widget_label_add(evas, _(label)); \
|
||||
ui->lb_##item ## _val = e_widget_entry_add \
|
||||
(evas, NULL, NULL, NULL, NULL); \
|
||||
e_widget_entry_readonly_set(ui->lb_##item ## _val, 1); \
|
||||
e_widget_list_object_append \
|
||||
(ui->list_general, ui->lb_##item, 1, 0, 0.0); \
|
||||
e_widget_list_object_append \
|
||||
(ui->list_general, ui->lb_##item ## _val, 1, 0, 0.0); \
|
||||
} while(0)
|
||||
|
||||
_APPEND_ITEM(autoconn, _("Auto-connect:"));
|
||||
_APPEND_ITEM(favorite, _("Favorite:"));
|
||||
|
@ -312,7 +333,9 @@ static void _network_settings_general_page_create(Evas *evas, E_Config_Dialog_Da
|
|||
}
|
||||
|
||||
#if 0 // need to do proxy, until then hide the toolbook complexity
|
||||
static void _network_settings_proxy_page_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
static void
|
||||
_network_settings_proxy_page_create(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
struct connman_config_network_settings_ui *ui;
|
||||
Evas_Object *label_todo;
|
||||
|
@ -323,10 +346,12 @@ static void _network_settings_proxy_page_create(Evas *evas, E_Config_Dialog_Data
|
|||
label_todo = e_widget_label_add(evas, "TODO");
|
||||
e_widget_list_object_append(ui->list_proxy, label_todo, 1, 1, 0.0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static void
|
||||
_network_settings_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_network_settings_create(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
struct connman_config_network_ui *ui;
|
||||
|
||||
|
@ -339,12 +364,12 @@ _network_settings_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
_network_settings_general_page_create(evas, cfdata);
|
||||
e_widget_toolbook_page_append
|
||||
(ui->settings_otb.settings_otb, NULL, _("General"),
|
||||
ui->settings_otb.scr_general, 1, 1, 1, 1, 0.5, 0.0);
|
||||
ui->settings_otb.scr_general, 1, 1, 1, 1, 0.5, 0.0);
|
||||
|
||||
_network_settings_proxy_page_create(evas, cfdata);
|
||||
e_widget_toolbook_page_append
|
||||
(ui->settings_otb.settings_otb, NULL, _("Proxy"),
|
||||
ui->settings_otb.list_proxy, 1, 0, 1, 0, 0.5, 0.0);
|
||||
ui->settings_otb.list_proxy, 1, 0, 1, 0, 0.5, 0.0);
|
||||
|
||||
e_widget_size_min_set(ui->settings_otb.settings_otb, 100, 100);
|
||||
e_widget_toolbook_page_show(ui->settings_otb.settings_otb, 0);
|
||||
|
@ -356,23 +381,25 @@ _network_settings_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
}
|
||||
|
||||
static inline void
|
||||
_networks_fill_details(E_Config_Dialog_Data *cfdata, Evas_Object *list __UNUSED__, int sel __UNUSED__)
|
||||
_networks_fill_details(E_Config_Dialog_Data *cfdata,
|
||||
Evas_Object *list __UNUSED__,
|
||||
int sel __UNUSED__)
|
||||
{
|
||||
E_Connman_Service *service;
|
||||
E_Connman_Module_Context *ctxt = cfdata->ctxt;
|
||||
struct connman_config_network_settings_ui *ui = &cfdata->networks.settings_otb;
|
||||
|
||||
service = _connman_ctxt_find_service_stringshare
|
||||
(ctxt, cfdata->selected_network);
|
||||
(ctxt, cfdata->selected_network);
|
||||
if (!service)
|
||||
{
|
||||
ERR("service not found: %s.", cfdata->selected_network);
|
||||
return;
|
||||
ERR("service not found: %s.", cfdata->selected_network);
|
||||
return;
|
||||
}
|
||||
e_widget_entry_text_set(ui->lb_autoconn_val,
|
||||
service->auto_connect ? _("True"): _("False"));
|
||||
service->auto_connect ? _("True") : _("False"));
|
||||
e_widget_entry_text_set(ui->lb_favorite_val,
|
||||
service->favorite ? _("True") : _("False"));
|
||||
service->favorite ? _("True") : _("False"));
|
||||
e_widget_entry_text_set(ui->lb_type_val, service->type);
|
||||
e_widget_entry_text_set(ui->lb_ipv4_method_val, service->ipv4_method);
|
||||
e_widget_entry_text_set(ui->lb_ipv4_address_val, service->ipv4_address);
|
||||
|
@ -381,28 +408,29 @@ _networks_fill_details(E_Config_Dialog_Data *cfdata, Evas_Object *list __UNUSED_
|
|||
evas_object_show(ui->list_general);
|
||||
evas_object_show(ui->scr_general);
|
||||
}
|
||||
|
||||
/*
|
||||
static inline void
|
||||
_networks_disable_buttons(E_Config_Dialog_Data *cfdata, Evas_Object *list, int sel)
|
||||
{
|
||||
static inline void
|
||||
_networks_disable_buttons(E_Config_Dialog_Data *cfdata, Evas_Object *list, int sel)
|
||||
{
|
||||
Evas_Object *o_up = cfdata->networks.o_up;
|
||||
Evas_Object *o_down = cfdata->networks.o_down;
|
||||
|
||||
if (sel >= 0)
|
||||
{
|
||||
int index = e_widget_ilist_selected_get(list);
|
||||
int count = e_widget_ilist_count(list);
|
||||
e_widget_disabled_set(o_up, !index);
|
||||
int index = e_widget_ilist_selected_get(list);
|
||||
int count = e_widget_ilist_count(list);
|
||||
e_widget_disabled_set(o_up, !index);
|
||||
|
||||
e_widget_disabled_set(o_down, (count > index + 1)?0:1);
|
||||
e_widget_disabled_set(o_down, (count > index + 1)?0:1);
|
||||
}
|
||||
else
|
||||
{
|
||||
e_widget_disabled_set(o_up, 1);
|
||||
e_widget_disabled_set(o_down, 1);
|
||||
e_widget_disabled_set(o_up, 1);
|
||||
e_widget_disabled_set(o_down, 1);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
*/
|
||||
void
|
||||
_cb_service_selected(void *data)
|
||||
{
|
||||
|
@ -414,7 +442,8 @@ _cb_service_selected(void *data)
|
|||
}
|
||||
|
||||
static unsigned int
|
||||
_networks_list_fill(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_networks_list_fill(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_Object *list = cfdata->networks.netlist;
|
||||
E_Connman_Module_Context *ctxt = cfdata->ctxt;
|
||||
|
@ -422,18 +451,19 @@ _networks_list_fill(Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
EINA_INLIST_FOREACH(ctxt->services, service)
|
||||
{
|
||||
Evas_Object *icon = _connman_service_new_list_item(evas, service);
|
||||
Evas_Object *icon = _connman_service_new_list_item(evas, service);
|
||||
|
||||
e_widget_ilist_append
|
||||
(list, icon, service->name, _cb_service_selected,
|
||||
cfdata, service->path);
|
||||
e_widget_ilist_append
|
||||
(list, icon, service->name, _cb_service_selected,
|
||||
cfdata, service->path);
|
||||
}
|
||||
|
||||
return eina_inlist_count(ctxt->services);
|
||||
}
|
||||
|
||||
static void
|
||||
_networks_button_up_cb(void *data, void *data2 __UNUSED__)
|
||||
_networks_button_up_cb(void *data,
|
||||
void *data2 __UNUSED__)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
Evas_Object *netlist = cfdata->networks.netlist;
|
||||
|
@ -446,11 +476,11 @@ _networks_button_up_cb(void *data, void *data2 __UNUSED__)
|
|||
return;
|
||||
|
||||
service = _connman_ctxt_find_service_stringshare
|
||||
(ctxt, cfdata->selected_network);
|
||||
e_widget_ilist_selected_set(netlist, sel-1);
|
||||
(ctxt, cfdata->selected_network);
|
||||
e_widget_ilist_selected_set(netlist, sel - 1);
|
||||
|
||||
service_ref = _connman_ctxt_find_service_stringshare
|
||||
(ctxt, cfdata->selected_network);
|
||||
(ctxt, cfdata->selected_network);
|
||||
|
||||
e_widget_ilist_selected_set(netlist, sel);
|
||||
|
||||
|
@ -458,7 +488,8 @@ _networks_button_up_cb(void *data, void *data2 __UNUSED__)
|
|||
}
|
||||
|
||||
static void
|
||||
_networks_button_down_cb(void *data, void *data2 __UNUSED__)
|
||||
_networks_button_down_cb(void *data,
|
||||
void *data2 __UNUSED__)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
Evas_Object *netlist = cfdata->networks.netlist;
|
||||
|
@ -469,22 +500,22 @@ _networks_button_down_cb(void *data, void *data2 __UNUSED__)
|
|||
|
||||
sel = e_widget_ilist_selected_get(netlist);
|
||||
count = e_widget_ilist_count(netlist);
|
||||
if (sel < 0 || (count == sel+1))
|
||||
if (sel < 0 || (count == sel + 1))
|
||||
return;
|
||||
|
||||
service = _connman_ctxt_find_service_stringshare
|
||||
(ctxt, cfdata->selected_network);
|
||||
e_widget_ilist_selected_set(netlist, sel+1);
|
||||
(ctxt, cfdata->selected_network);
|
||||
e_widget_ilist_selected_set(netlist, sel + 1);
|
||||
service_ref = _connman_ctxt_find_service_stringshare
|
||||
(ctxt, cfdata->selected_network);
|
||||
(ctxt, cfdata->selected_network);
|
||||
e_widget_ilist_selected_set(netlist, sel);
|
||||
|
||||
_connman_service_move(service, service_ref, SERVICE_MOVE_DOWN);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
_networks_list_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_networks_list_create(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
struct connman_config_network_ui *ui;
|
||||
Evas_Object *ot;
|
||||
|
@ -503,31 +534,32 @@ _networks_list_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
/* Buttons */
|
||||
ot = e_widget_table_add(evas, 0);
|
||||
ui->o_up = e_widget_button_add
|
||||
(evas, _("Up"), "go-up", _networks_button_up_cb, cfdata, NULL);
|
||||
(evas, _("Up"), "go-up", _networks_button_up_cb, cfdata, NULL);
|
||||
e_widget_disabled_set(ui->o_up, 1);
|
||||
e_widget_table_object_append(ot, ui->o_up, 0, 0, 1, 1, 1, 0, 1, 0);
|
||||
ui->o_down = e_widget_button_add
|
||||
(evas, _("Down"), "go-down", _networks_button_down_cb, cfdata, NULL);
|
||||
(evas, _("Down"), "go-down", _networks_button_down_cb, cfdata, NULL);
|
||||
e_widget_disabled_set(ui->o_down, 1);
|
||||
e_widget_table_object_append(ot, ui->o_down, 1, 0, 1, 1, 1, 0, 1, 0);
|
||||
ui->o_add = e_widget_button_add
|
||||
(evas, _("Add"), "list-add", NULL, cfdata, NULL);
|
||||
(evas, _("Add"), "list-add", NULL, cfdata, NULL);
|
||||
e_widget_disabled_set(ui->o_add, 1);
|
||||
e_widget_table_object_append(ot, ui->o_add, 0, 1, 2, 1, 1, 0, 1, 0);
|
||||
|
||||
e_widget_size_min_get(ot, &mw, &mh);
|
||||
e_widget_framelist_object_append_full(ui->netframe, ot,
|
||||
1, 1, /* fill */
|
||||
1, 0, /* expand */
|
||||
0.5, 0.5, /* align */
|
||||
mw, mh, /* min */
|
||||
99999, 99999 /* max */
|
||||
);
|
||||
1, 1, /* fill */
|
||||
1, 0, /* expand */
|
||||
0.5, 0.5, /* align */
|
||||
mw, mh, /* min */
|
||||
99999, 99999 /* max */
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
_networks_page_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_networks_page_create(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
struct connman_config_network_ui *ui;
|
||||
|
||||
|
@ -553,27 +585,30 @@ _networks_page_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
}
|
||||
|
||||
static inline void
|
||||
_switches_page_create_technologies(Evas *evas, E_Connman_Module_Context *ctxt, struct connman_config_switch_ui *ui)
|
||||
_switches_page_create_technologies(Evas *evas,
|
||||
E_Connman_Module_Context *ctxt,
|
||||
struct connman_config_switch_ui *ui)
|
||||
{
|
||||
struct E_Connman_Technology *t;
|
||||
struct E_Connman_Technology *t;
|
||||
EINA_INLIST_FOREACH(ctxt->technologies, t)
|
||||
{
|
||||
struct connman_config_technologies *t_list;
|
||||
struct connman_config_technologies *t_list;
|
||||
|
||||
t_list = E_NEW(struct connman_config_technologies, 1);
|
||||
t_list->technology = t;
|
||||
t_list->enabled = ((t->state == e_str_enabled) ||
|
||||
(t->state == e_str_connected));
|
||||
t_list->obj = e_widget_check_add(evas, _(t->name), &t_list->enabled);
|
||||
t_list = E_NEW(struct connman_config_technologies, 1);
|
||||
t_list->technology = t;
|
||||
t_list->enabled = ((t->state == e_str_enabled) ||
|
||||
(t->state == e_str_connected));
|
||||
t_list->obj = e_widget_check_add(evas, _(t->name), &t_list->enabled);
|
||||
|
||||
ui->technologies = eina_inlist_append
|
||||
(ui->technologies, EINA_INLIST_GET(t_list));
|
||||
e_widget_framelist_object_append(ui->type_frame, t_list->obj);
|
||||
ui->technologies = eina_inlist_append
|
||||
(ui->technologies, EINA_INLIST_GET(t_list));
|
||||
e_widget_framelist_object_append(ui->type_frame, t_list->obj);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_switches_page_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_switches_page_create(Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
struct connman_config_switch_ui *ui;
|
||||
E_Connman_Module_Context *ctxt = cfdata->ctxt;
|
||||
|
@ -593,7 +628,9 @@ _switches_page_create(Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
}
|
||||
|
||||
static Evas_Object *
|
||||
_basic_create(E_Config_Dialog *dialog __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_basic_create(E_Config_Dialog *dialog __UNUSED__,
|
||||
Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_Object *otb;
|
||||
|
||||
|
@ -602,11 +639,11 @@ _basic_create(E_Config_Dialog *dialog __UNUSED__, Evas *evas, E_Config_Dialog_Da
|
|||
_networks_page_create(evas, cfdata);
|
||||
e_widget_toolbook_page_append
|
||||
(otb, NULL, _("Networks Settings"),
|
||||
cfdata->networks.hlayout, 1, 1, 1, 1, 0.5, 0.0);
|
||||
cfdata->networks.hlayout, 1, 1, 1, 1, 0.5, 0.0);
|
||||
_switches_page_create(evas, cfdata);
|
||||
e_widget_toolbook_page_append
|
||||
(otb, NULL, _("Network Switches"),
|
||||
cfdata->switches.vlayout, 1, 1, 0, 0, 0.5, 0.5);
|
||||
cfdata->switches.vlayout, 1, 1, 0, 0, 0.5, 0.5);
|
||||
|
||||
_networks_list_fill(evas, cfdata);
|
||||
e_widget_toolbook_page_show(otb, 0);
|
||||
|
@ -616,7 +653,8 @@ _basic_create(E_Config_Dialog *dialog __UNUSED__, Evas *evas, E_Config_Dialog_Da
|
|||
}
|
||||
|
||||
static int
|
||||
_basic_apply(E_Config_Dialog *dialog __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||
_basic_apply(E_Config_Dialog *dialog __UNUSED__,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
E_Connman_Module_Context *ctxt = cfdata->ctxt;
|
||||
struct connman_config_switch_ui *sw = &cfdata->switches;
|
||||
|
@ -624,10 +662,10 @@ _basic_apply(E_Config_Dialog *dialog __UNUSED__, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
EINA_INLIST_FOREACH(sw->technologies, t)
|
||||
{
|
||||
int was_enabled = ((t->technology->state == e_str_enabled) ||
|
||||
(t->technology->state == e_str_connected));
|
||||
if (t->enabled != was_enabled)
|
||||
_connman_technology_onoff(ctxt, t->technology->type, t->enabled);
|
||||
int was_enabled = ((t->technology->state == e_str_enabled) ||
|
||||
(t->technology->state == e_str_connected));
|
||||
if (t->enabled != was_enabled)
|
||||
_connman_technology_onoff(ctxt, t->technology->type, t->enabled);
|
||||
}
|
||||
if (ctxt->offline_mode != sw->offline_mode)
|
||||
_connman_toggle_offline_mode(ctxt);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,22 +13,22 @@ extern int _e_connman_log_dom;
|
|||
#define WRN(...) EINA_LOG_DOM_WARN(_e_connman_log_dom, __VA_ARGS__)
|
||||
#define ERR(...) EINA_LOG_DOM_ERR(_e_connman_log_dom, __VA_ARGS__)
|
||||
|
||||
typedef struct E_Connman_Instance E_Connman_Instance;
|
||||
typedef struct E_Connman_Instance E_Connman_Instance;
|
||||
typedef struct E_Connman_Module_Context E_Connman_Module_Context;
|
||||
typedef struct E_Connman_Service E_Connman_Service;
|
||||
typedef struct E_Connman_Technology E_Connman_Technology;
|
||||
typedef struct E_Connman_Service E_Connman_Service;
|
||||
typedef struct E_Connman_Technology E_Connman_Technology;
|
||||
|
||||
struct E_Connman_Instance
|
||||
{
|
||||
E_Connman_Module_Context *ctxt;
|
||||
E_Gadcon_Client *gcc;
|
||||
E_Gadcon_Popup *popup;
|
||||
E_Menu *menu;
|
||||
E_Gadcon_Client *gcc;
|
||||
E_Gadcon_Popup *popup;
|
||||
E_Menu *menu;
|
||||
|
||||
/* used by popup */
|
||||
int offline_mode;
|
||||
const char *service_path;
|
||||
Eina_Bool first_selection;
|
||||
int offline_mode;
|
||||
const char *service_path;
|
||||
Eina_Bool first_selection;
|
||||
|
||||
struct
|
||||
{
|
||||
|
@ -39,51 +39,51 @@ struct E_Connman_Instance
|
|||
Evas_Object *table;
|
||||
struct
|
||||
{
|
||||
Ecore_X_Window win;
|
||||
Ecore_X_Window win;
|
||||
Ecore_Event_Handler *mouse_up;
|
||||
Ecore_Event_Handler *key_down;
|
||||
} input;
|
||||
} ui;
|
||||
|
||||
E_Gadcon_Popup *tip;
|
||||
Evas_Object *o_tip;
|
||||
Evas_Object *o_tip;
|
||||
};
|
||||
|
||||
struct E_Connman_Service
|
||||
{
|
||||
EINA_INLIST;
|
||||
EINA_INLIST;
|
||||
E_Connman_Module_Context *ctxt;
|
||||
E_Connman_Element *element;
|
||||
const char *path;
|
||||
const char *name;
|
||||
const char *type;
|
||||
const char *mode;
|
||||
const char *state;
|
||||
const char *error;
|
||||
const char *security;
|
||||
const char *ipv4_method;
|
||||
const char *ipv4_address;
|
||||
const char *ipv4_netmask;
|
||||
unsigned char strength;
|
||||
Eina_Bool favorite:1;
|
||||
Eina_Bool auto_connect:1;
|
||||
Eina_Bool pass_required:1;
|
||||
E_Connman_Element *element;
|
||||
const char *path;
|
||||
const char *name;
|
||||
const char *type;
|
||||
const char *mode;
|
||||
const char *state;
|
||||
const char *error;
|
||||
const char *security;
|
||||
const char *ipv4_method;
|
||||
const char *ipv4_address;
|
||||
const char *ipv4_netmask;
|
||||
unsigned char strength;
|
||||
Eina_Bool favorite : 1;
|
||||
Eina_Bool auto_connect : 1;
|
||||
Eina_Bool pass_required : 1;
|
||||
};
|
||||
|
||||
struct E_Connman_Technology
|
||||
{
|
||||
EINA_INLIST;
|
||||
EINA_INLIST;
|
||||
E_Connman_Module_Context *ctxt;
|
||||
E_Connman_Element *element;
|
||||
const char *path;
|
||||
const char *name;
|
||||
const char *type;
|
||||
const char *state;
|
||||
E_Connman_Element *element;
|
||||
const char *path;
|
||||
const char *name;
|
||||
const char *type;
|
||||
const char *state;
|
||||
};
|
||||
|
||||
struct E_Connman_Module_Context
|
||||
{
|
||||
Eina_List *instances;
|
||||
Eina_List *instances;
|
||||
E_Config_Dialog *conf_dialog;
|
||||
|
||||
struct st_connman_actions
|
||||
|
@ -104,27 +104,30 @@ struct E_Connman_Module_Context
|
|||
Ecore_Poller *manager_changed;
|
||||
} poller;
|
||||
|
||||
Eina_Bool has_manager:1;
|
||||
Eina_Bool offline_mode;
|
||||
Eina_Bool offline_mode_pending;
|
||||
const char *technology;
|
||||
Eina_Bool has_manager : 1;
|
||||
Eina_Bool offline_mode;
|
||||
Eina_Bool offline_mode_pending;
|
||||
const char *technology;
|
||||
const E_Connman_Service *default_service;
|
||||
Eina_Inlist *services;
|
||||
Eina_Inlist *technologies;
|
||||
Eina_Inlist *services;
|
||||
Eina_Inlist *technologies;
|
||||
};
|
||||
|
||||
EAPI extern E_Module_Api e_modapi;
|
||||
EAPI void *e_modapi_init (E_Module *m);
|
||||
EAPI int e_modapi_shutdown (E_Module *m);
|
||||
EAPI int e_modapi_save (E_Module *m);
|
||||
EAPI void *e_modapi_init(E_Module *m);
|
||||
EAPI int e_modapi_shutdown(E_Module *m);
|
||||
EAPI int e_modapi_save(E_Module *m);
|
||||
|
||||
const char *e_connman_theme_path(void);
|
||||
E_Config_Dialog *e_connman_config_dialog_new(E_Container *con, E_Connman_Module_Context *ctxt);
|
||||
void _connman_toggle_offline_mode(E_Connman_Module_Context *ctxt);
|
||||
Evas_Object *_connman_service_new_list_item(Evas *evas, E_Connman_Service *service);
|
||||
const char *e_connman_theme_path(void);
|
||||
E_Config_Dialog *e_connman_config_dialog_new(E_Container *con,
|
||||
E_Connman_Module_Context *ctxt);
|
||||
void _connman_toggle_offline_mode(E_Connman_Module_Context *ctxt);
|
||||
Evas_Object *_connman_service_new_list_item(Evas *evas,
|
||||
E_Connman_Service *service);
|
||||
|
||||
static inline void
|
||||
_connman_dbus_error_show(const char *msg, const DBusError *error)
|
||||
_connman_dbus_error_show(const char *msg,
|
||||
const DBusError *error)
|
||||
{
|
||||
const char *name;
|
||||
|
||||
|
@ -133,44 +136,46 @@ _connman_dbus_error_show(const char *msg, const DBusError *error)
|
|||
|
||||
name = error->name;
|
||||
if (strncmp(name, "org.moblin.connman.Error.",
|
||||
sizeof("org.moblin.connman.Error.") - 1) == 0)
|
||||
sizeof("org.moblin.connman.Error.") - 1) == 0)
|
||||
name += sizeof("org.moblin.connman.Error.") - 1;
|
||||
|
||||
e_util_dialog_show(_("Connman Server Operation Failed"),
|
||||
_("Could not execute remote operation:<br>"
|
||||
"%s<br>"
|
||||
"Server Error <hilight>%s:</hilight> %s"),
|
||||
msg, name, error->message);
|
||||
_("Could not execute remote operation:<br>"
|
||||
"%s<br>"
|
||||
"Server Error <hilight>%s:</hilight> %s"),
|
||||
msg, name, error->message);
|
||||
}
|
||||
|
||||
static inline void
|
||||
_connman_operation_error_show(const char *msg)
|
||||
{
|
||||
e_util_dialog_show(_("Connman Operation Failed"),
|
||||
_("Could not execute local operation:<br>%s"),
|
||||
msg);
|
||||
_("Could not execute local operation:<br>%s"),
|
||||
msg);
|
||||
}
|
||||
|
||||
static inline E_Connman_Service *
|
||||
_connman_ctxt_find_service_stringshare(const E_Connman_Module_Context *ctxt, const char *service_path)
|
||||
_connman_ctxt_find_service_stringshare(const E_Connman_Module_Context *ctxt,
|
||||
const char *service_path)
|
||||
{
|
||||
E_Connman_Service *itr;
|
||||
|
||||
EINA_INLIST_FOREACH(ctxt->services, itr)
|
||||
if (itr->path == service_path)
|
||||
return itr;
|
||||
if (itr->path == service_path)
|
||||
return itr;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline E_Connman_Technology *
|
||||
_connman_ctxt_technology_find_stringshare(const E_Connman_Module_Context *ctxt, const char *path)
|
||||
_connman_ctxt_technology_find_stringshare(const E_Connman_Module_Context *ctxt,
|
||||
const char *path)
|
||||
{
|
||||
E_Connman_Technology *t;
|
||||
|
||||
EINA_INLIST_FOREACH(ctxt->technologies, t)
|
||||
if (t->path == path)
|
||||
return t;
|
||||
if (t->path == path)
|
||||
return t;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue