forked from enlightenment/enlightenment
Enlightenment - Sysinfo Gadget - Allow configuring of max speeds for netstatus gadget.
This commit is contained in:
parent
ba7e910f9c
commit
6ebb68777c
|
@ -298,6 +298,7 @@ _cpumonitor_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSE
|
|||
e_gadget_configure_cb_set(inst->o_main, _cpumonitor_configure_cb);
|
||||
|
||||
inst->cfg->cpumonitor.o_gadget = elm_box_add(inst->o_main);
|
||||
elm_box_padding_set(inst->cfg->cpumonitor.o_gadget, 0, 0);
|
||||
if (orient == E_GADGET_SITE_ORIENT_VERTICAL)
|
||||
elm_box_horizontal_set(inst->cfg->cpumonitor.o_gadget, EINA_FALSE);
|
||||
else
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "sysinfo.h"
|
||||
|
||||
#define CONFIG_VERSION 1
|
||||
|
||||
static E_Config_DD *conf_edd = NULL;
|
||||
static E_Config_DD *conf_item_edd = NULL;
|
||||
Eina_List *sysinfo_instances = NULL;
|
||||
|
@ -9,12 +11,16 @@ Config *sysinfo_config = NULL;
|
|||
EINTERN void
|
||||
sysinfo_init(void)
|
||||
{
|
||||
Eina_List *l;
|
||||
Config_Item *ci;
|
||||
|
||||
conf_item_edd = E_CONFIG_DD_NEW("Sysinfo_Config_Item", Config_Item);
|
||||
#undef T
|
||||
#undef D
|
||||
#define T Config_Item
|
||||
#define D conf_item_edd
|
||||
E_CONFIG_VAL(D, T, id, INT);
|
||||
E_CONFIG_VAL(D, T, version, INT);
|
||||
E_CONFIG_VAL(D, T, esm, INT);
|
||||
E_CONFIG_VAL(D, T, batman.poll_interval, INT);
|
||||
E_CONFIG_VAL(D, T, batman.alert, INT);
|
||||
|
@ -22,7 +28,7 @@ sysinfo_init(void)
|
|||
E_CONFIG_VAL(D, T, batman.alert_timeout, INT);
|
||||
E_CONFIG_VAL(D, T, batman.suspend_below, INT);
|
||||
E_CONFIG_VAL(D, T, batman.force_mode, INT);
|
||||
#if defined HAVE_EEZE || defined __OpenBSD__ || defined __NetBSD__
|
||||
#if defined HAVE_EEZE || defined __OpenBSD__ || defined __NetBSD__
|
||||
E_CONFIG_VAL(D, T, batman.fuzzy, INT);
|
||||
#endif
|
||||
E_CONFIG_VAL(D, T, batman.desktop_notifications, INT);
|
||||
|
@ -42,6 +48,11 @@ sysinfo_init(void)
|
|||
E_CONFIG_VAL(D, T, cpumonitor.poll_interval, INT);
|
||||
E_CONFIG_VAL(D, T, memusage.poll_interval, INT);
|
||||
E_CONFIG_VAL(D, T, netstatus.poll_interval, INT);
|
||||
E_CONFIG_VAL(D, T, netstatus.automax, INT);
|
||||
E_CONFIG_VAL(D, T, netstatus.inmax, INT);
|
||||
E_CONFIG_VAL(D, T, netstatus.receive_units, INT);
|
||||
E_CONFIG_VAL(D, T, netstatus.outmax, INT);
|
||||
E_CONFIG_VAL(D, T, netstatus.send_units, INT);
|
||||
|
||||
conf_edd = E_CONFIG_DD_NEW("Sysinfo_Config", Config);
|
||||
#undef T
|
||||
|
@ -54,11 +65,10 @@ sysinfo_init(void)
|
|||
|
||||
if (!sysinfo_config)
|
||||
{
|
||||
Config_Item *ci;
|
||||
|
||||
sysinfo_config = E_NEW(Config, 1);
|
||||
ci = E_NEW(Config_Item, 1);
|
||||
ci->id = 0;
|
||||
ci->version = CONFIG_VERSION;
|
||||
ci->esm = E_SYSINFO_MODULE_NONE;
|
||||
|
||||
ci->batman.poll_interval = 512;
|
||||
|
@ -102,6 +112,9 @@ sysinfo_init(void)
|
|||
ci->memusage.popup = NULL;
|
||||
ci->memusage.configure = NULL;
|
||||
ci->netstatus.poll_interval = 32;
|
||||
ci->netstatus.automax = EINA_TRUE;
|
||||
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
|
||||
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
|
||||
ci->netstatus.in = 0;
|
||||
ci->netstatus.out = 0;
|
||||
ci->netstatus.inmax = 0;
|
||||
|
@ -133,6 +146,19 @@ sysinfo_init(void)
|
|||
|
||||
sysinfo_config->items = eina_list_append(sysinfo_config->items, ci);
|
||||
}
|
||||
EINA_LIST_FOREACH(sysinfo_config->items, l, ci)
|
||||
{
|
||||
if (ci->esm == E_SYSINFO_MODULE_NETSTATUS || ci->esm == E_SYSINFO_MODULE_SYSINFO)
|
||||
{
|
||||
if (ci->version < CONFIG_VERSION)
|
||||
{
|
||||
ci->version = CONFIG_VERSION;
|
||||
ci->netstatus.automax = EINA_TRUE;
|
||||
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
|
||||
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
|
||||
}
|
||||
}
|
||||
}
|
||||
e_gadget_type_add("Batman", batman_create, NULL);
|
||||
e_gadget_type_add("Thermal", thermal_create, NULL);
|
||||
e_gadget_type_add("CpuClock", cpuclock_create, NULL);
|
||||
|
|
|
@ -206,9 +206,6 @@ _netstatus_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED
|
|||
|
||||
e_gadget_configure_cb_set(inst->o_main, _netstatus_configure_cb);
|
||||
|
||||
inst->cfg->netstatus.inmax = 0;
|
||||
inst->cfg->netstatus.outmax = 0;
|
||||
|
||||
inst->cfg->netstatus.o_gadget = elm_layout_add(inst->o_main);
|
||||
e_theme_edje_object_set(inst->cfg->netstatus.o_gadget, "base/theme/modules/netstatus",
|
||||
"e/modules/netstatus/main");
|
||||
|
@ -224,9 +221,6 @@ _netstatus_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED
|
|||
Evas_Object *
|
||||
sysinfo_netstatus_create(Evas_Object *parent, Instance *inst)
|
||||
{
|
||||
inst->cfg->netstatus.inmax = 0;
|
||||
inst->cfg->netstatus.outmax = 0;
|
||||
|
||||
inst->cfg->netstatus.o_gadget = elm_layout_add(parent);
|
||||
e_theme_edje_object_set(inst->cfg->netstatus.o_gadget, "base/theme/modules/netstatus",
|
||||
"e/modules/netstatus/main");
|
||||
|
@ -260,10 +254,13 @@ _conf_item_get(int *id)
|
|||
|
||||
ci->esm = E_SYSINFO_MODULE_NETSTATUS;
|
||||
ci->netstatus.poll_interval = 32;
|
||||
ci->netstatus.in = 0;
|
||||
ci->netstatus.out = 0;
|
||||
ci->netstatus.automax = EINA_TRUE;
|
||||
ci->netstatus.inmax = 0;
|
||||
ci->netstatus.outmax = 0;
|
||||
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
|
||||
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
|
||||
ci->netstatus.in = 0;
|
||||
ci->netstatus.out = 0;
|
||||
ci->netstatus.incurrent = 0;
|
||||
ci->netstatus.outcurrent = 0;
|
||||
ci->netstatus.inpercent = 0;
|
||||
|
@ -287,8 +284,6 @@ netstatus_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_
|
|||
*id = inst->cfg->id;
|
||||
inst->cfg->netstatus.in = 0;
|
||||
inst->cfg->netstatus.out = 0;
|
||||
inst->cfg->netstatus.inmax = 0;
|
||||
inst->cfg->netstatus.outmax = 0;
|
||||
inst->cfg->netstatus.incurrent = 0;
|
||||
inst->cfg->netstatus.outcurrent = 0;
|
||||
inst->cfg->netstatus.inpercent = 0;
|
||||
|
|
|
@ -3,6 +3,19 @@
|
|||
|
||||
#include "../sysinfo.h"
|
||||
|
||||
typedef struct _Netstatus_Config Netstatus_Config;
|
||||
struct _Netstatus_Config
|
||||
{
|
||||
Instance *inst;
|
||||
Evas_Object *transfer_check;
|
||||
Evas_Object *receive_max;
|
||||
Evas_Object *receive_units;
|
||||
Evas_Object *send_max;
|
||||
Evas_Object *send_units;
|
||||
int receive_unit_adjust;
|
||||
int send_unit_adjust;
|
||||
};
|
||||
|
||||
void _netstatus_config_updated(Instance *inst);
|
||||
void _netstatus_proc_getrstatus(Instance *inst);
|
||||
void _netstatus_proc_gettstatus(Instance *inst);
|
||||
|
|
|
@ -3,16 +3,19 @@
|
|||
static void
|
||||
_config_close(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
|
||||
E_FREE_FUNC(inst->cfg->netstatus.configure, evas_object_del);
|
||||
E_FREE_FUNC(nc, free);
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
static void
|
||||
_config_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
_poll_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
int value = elm_radio_value_get(obj);
|
||||
|
||||
switch(value)
|
||||
|
@ -35,44 +38,159 @@ _config_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
|||
default:
|
||||
inst->cfg->netstatus.poll_interval = 32;
|
||||
}
|
||||
|
||||
e_config_save_queue();
|
||||
_netstatus_config_updated(inst);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_update_receive_maximums(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
int value = elm_slider_value_get(nc->receive_max);
|
||||
|
||||
inst->cfg->netstatus.inmax = value * nc->receive_unit_adjust;
|
||||
e_config_save_queue();
|
||||
_netstatus_config_updated(inst);
|
||||
}
|
||||
|
||||
static void
|
||||
_update_send_maximums(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
int value = elm_slider_value_get(nc->send_max);
|
||||
|
||||
inst->cfg->netstatus.outmax = value * nc->send_unit_adjust;
|
||||
e_config_save_queue();
|
||||
_netstatus_config_updated(inst);
|
||||
}
|
||||
|
||||
static void
|
||||
_receive_hover_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
const char *txt = elm_object_item_text_get(event_info);
|
||||
|
||||
if (!strcmp(txt, _("Bytes")))
|
||||
{
|
||||
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
|
||||
nc->receive_unit_adjust = 1;
|
||||
}
|
||||
if (!strcmp(txt, _("KB")))
|
||||
{
|
||||
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_KB;
|
||||
nc->receive_unit_adjust = 1024;
|
||||
}
|
||||
if (!strcmp(txt, _("MB")))
|
||||
{
|
||||
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_MB;
|
||||
nc->receive_unit_adjust = 2048;
|
||||
}
|
||||
if (!strcmp(txt, _("GB")))
|
||||
{
|
||||
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_GB;
|
||||
nc->receive_unit_adjust = 3072;
|
||||
}
|
||||
_update_receive_maximums(nc, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_send_hover_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
const char *txt = elm_object_item_text_get(event_info);
|
||||
|
||||
if (!strcmp(txt, _("Bytes")))
|
||||
{
|
||||
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_BYTES;
|
||||
nc->send_unit_adjust = 1;
|
||||
}
|
||||
if (!strcmp(txt, _("KB")))
|
||||
{
|
||||
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_KB;
|
||||
nc->send_unit_adjust = 1024;
|
||||
}
|
||||
if (!strcmp(txt, _("MB")))
|
||||
{
|
||||
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_MB;
|
||||
nc->send_unit_adjust = 2048;
|
||||
}
|
||||
if (!strcmp(txt, _("GB")))
|
||||
{
|
||||
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_GB;
|
||||
nc->send_unit_adjust = 3072;
|
||||
}
|
||||
_update_send_maximums(nc, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_check_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Netstatus_Config *nc = data;
|
||||
Instance *inst = nc->inst;
|
||||
|
||||
if (elm_check_state_get(nc->transfer_check))
|
||||
{
|
||||
elm_object_disabled_set(nc->receive_max, EINA_TRUE);
|
||||
elm_object_disabled_set(nc->receive_units, EINA_TRUE);
|
||||
elm_object_disabled_set(nc->send_max, EINA_TRUE);
|
||||
elm_object_disabled_set(nc->send_units, EINA_TRUE);
|
||||
inst->cfg->netstatus.automax = EINA_TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_object_disabled_set(nc->receive_max, EINA_FALSE);
|
||||
elm_object_disabled_set(nc->receive_units, EINA_FALSE);
|
||||
elm_object_disabled_set(nc->send_max, EINA_FALSE);
|
||||
elm_object_disabled_set(nc->send_units, EINA_FALSE);\
|
||||
inst->cfg->netstatus.automax = EINA_FALSE;
|
||||
_update_receive_maximums(nc, NULL, NULL);
|
||||
_update_send_maximums(nc, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
netstatus_configure(Instance *inst)
|
||||
{
|
||||
Evas_Object *popup, *frame, *box, *o, *group, *lbl;
|
||||
Evas_Object *popup, *frame, *main_box, *box, *o, *group, *lbl;
|
||||
Evas_Object *hover, *slider, *check;
|
||||
E_Zone *zone = e_zone_current_get();
|
||||
Netstatus_Config *nc = E_NEW(Netstatus_Config, 1);
|
||||
|
||||
nc->inst = inst;
|
||||
|
||||
popup = elm_popup_add(e_comp->elm);
|
||||
E_EXPAND(popup);
|
||||
elm_popup_allow_events_set(popup, 1);
|
||||
elm_popup_scrollable_set(popup, 1);
|
||||
|
||||
box = elm_box_add(popup);
|
||||
elm_box_horizontal_set(box, EINA_FALSE);
|
||||
E_EXPAND(box);
|
||||
E_FILL(box);
|
||||
evas_object_show(box);
|
||||
elm_object_content_set(popup, box);
|
||||
main_box = elm_box_add(popup);
|
||||
elm_box_horizontal_set(main_box, EINA_FALSE);
|
||||
E_EXPAND(main_box);
|
||||
E_FILL(main_box);
|
||||
evas_object_show(main_box);
|
||||
elm_object_content_set(popup, main_box);
|
||||
|
||||
lbl = elm_label_add(box);
|
||||
lbl = elm_label_add(main_box);
|
||||
evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_style_set(lbl, "marker");
|
||||
elm_object_text_set(lbl, _("NetStatus Configuration"));
|
||||
elm_box_pack_end(box, lbl);
|
||||
elm_box_pack_end(main_box, lbl);
|
||||
evas_object_show(lbl);
|
||||
|
||||
frame = elm_frame_add(box);
|
||||
frame = elm_frame_add(main_box);
|
||||
elm_object_text_set(frame, _("Update Poll Interval"));
|
||||
E_EXPAND(frame);
|
||||
E_FILL(frame);
|
||||
elm_box_pack_end(box, frame);
|
||||
elm_box_pack_end(main_box, frame);
|
||||
evas_object_show(frame);
|
||||
|
||||
box = elm_box_add(popup);
|
||||
box = elm_box_add(frame);
|
||||
elm_box_horizontal_set(box, EINA_FALSE);
|
||||
E_EXPAND(box);
|
||||
evas_object_show(box);
|
||||
|
@ -83,7 +201,7 @@ netstatus_configure(Instance *inst)
|
|||
E_ALIGN(o, 0, 0);
|
||||
elm_object_text_set(o, _("Fast (4 ticks)"));
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
|
||||
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
|
||||
evas_object_show(o);
|
||||
group = o;
|
||||
|
||||
|
@ -94,7 +212,7 @@ netstatus_configure(Instance *inst)
|
|||
E_ALIGN(o, 0, 0);
|
||||
elm_object_text_set(o, _("Medium (8 ticks)"));
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
|
||||
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
|
||||
evas_object_show(o);
|
||||
|
||||
o = elm_radio_add(box);
|
||||
|
@ -104,7 +222,7 @@ netstatus_configure(Instance *inst)
|
|||
E_ALIGN(o, 0, 0);
|
||||
elm_object_text_set(o, _("Normal (32 ticks)"));
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
|
||||
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
|
||||
evas_object_show(o);
|
||||
|
||||
o = elm_radio_add(box);
|
||||
|
@ -113,7 +231,7 @@ netstatus_configure(Instance *inst)
|
|||
E_ALIGN(o, 0, 0);
|
||||
elm_object_text_set(o, _("Slow (64 ticks)"));
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
|
||||
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
|
||||
evas_object_show(o);
|
||||
|
||||
o = elm_radio_add(box);
|
||||
|
@ -123,7 +241,7 @@ netstatus_configure(Instance *inst)
|
|||
E_ALIGN(o, 0, 0);
|
||||
elm_object_text_set(o, _("Very Slow (256 ticks)"));
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
|
||||
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
|
||||
evas_object_show(o);
|
||||
|
||||
switch(inst->cfg->netstatus.poll_interval)
|
||||
|
@ -147,6 +265,136 @@ netstatus_configure(Instance *inst)
|
|||
elm_radio_value_set(group, 2);
|
||||
}
|
||||
|
||||
elm_object_content_set(frame, box);
|
||||
|
||||
frame = elm_frame_add(main_box);
|
||||
elm_object_text_set(frame, _("Maximum Transfer Speed"));
|
||||
E_EXPAND(frame);
|
||||
E_FILL(frame);
|
||||
elm_box_pack_end(main_box, frame);
|
||||
evas_object_show(frame);
|
||||
|
||||
box = elm_box_add(frame);
|
||||
elm_box_horizontal_set(box, EINA_FALSE);
|
||||
E_EXPAND(box);
|
||||
evas_object_show(box);
|
||||
|
||||
check = elm_check_add(box);
|
||||
elm_object_text_set(check, _("Use Automatic Maximums"));
|
||||
elm_check_state_set(check, inst->cfg->netstatus.automax);
|
||||
evas_object_size_hint_align_set(check, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_smart_callback_add(check, "changed", _check_changed, nc);
|
||||
elm_box_pack_end(box, check);
|
||||
evas_object_show(check);
|
||||
nc->transfer_check = check;
|
||||
|
||||
slider = elm_slider_add(box);
|
||||
elm_object_text_set(slider, _("Receive:"));
|
||||
elm_slider_unit_format_set(slider, "%1.0f");
|
||||
elm_slider_indicator_format_set(slider, "%1.0f");
|
||||
elm_slider_min_max_set(slider, 0, 1000);
|
||||
elm_slider_value_set(slider, inst->cfg->netstatus.inmax);
|
||||
elm_slider_step_set(slider, 10);
|
||||
elm_slider_span_size_set(slider, 100);
|
||||
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_smart_callback_add(slider, "delay,changed", _update_receive_maximums, nc);
|
||||
if (inst->cfg->netstatus.automax) elm_object_disabled_set(slider, EINA_TRUE);
|
||||
elm_box_pack_end(box, slider);
|
||||
evas_object_show(slider);
|
||||
nc->receive_max = slider;
|
||||
|
||||
hover = elm_hoversel_add(box);
|
||||
elm_hoversel_auto_update_set(hover, EINA_TRUE);
|
||||
elm_hoversel_hover_parent_set(hover, popup);
|
||||
elm_hoversel_item_add(hover, _("Bytes"), NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_BYTES)
|
||||
{
|
||||
elm_object_text_set(hover, _("Bytes"));
|
||||
nc->receive_unit_adjust = 1;
|
||||
}
|
||||
elm_hoversel_item_add(hover, _("KB"), NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_KB)
|
||||
{
|
||||
elm_object_text_set(hover, _("KB"));
|
||||
nc->receive_unit_adjust = 1024;
|
||||
}
|
||||
elm_hoversel_item_add(hover, _("MB"), NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_MB)
|
||||
{
|
||||
elm_object_text_set(hover, _("MB"));
|
||||
nc->receive_unit_adjust = 2048;
|
||||
}
|
||||
elm_hoversel_item_add(hover, _("GB"), NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_GB)
|
||||
{
|
||||
elm_object_text_set(hover, _("GB"));
|
||||
nc->receive_unit_adjust = 3072;
|
||||
}
|
||||
evas_object_size_hint_align_set(hover, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(hover, EVAS_HINT_EXPAND, 0.0);
|
||||
if (inst->cfg->netstatus.automax) elm_object_disabled_set(hover, EINA_TRUE);
|
||||
evas_object_smart_callback_add(hover, "selected", _receive_hover_changed, nc);
|
||||
elm_box_pack_end(box, hover);
|
||||
evas_object_show(hover);
|
||||
nc->receive_units = hover;
|
||||
|
||||
elm_slider_value_set(nc->receive_max, ceil(inst->cfg->netstatus.inmax / nc->receive_unit_adjust));
|
||||
|
||||
slider = elm_slider_add(box);
|
||||
elm_object_text_set(slider, _("Send:"));
|
||||
elm_slider_unit_format_set(slider, "%1.0f");
|
||||
elm_slider_indicator_format_set(slider, "%1.0f");
|
||||
elm_slider_min_max_set(slider, 0, 1000);
|
||||
elm_slider_value_set(slider, inst->cfg->netstatus.outmax);
|
||||
elm_slider_step_set(slider, 10);
|
||||
elm_slider_span_size_set(slider, 100);
|
||||
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_smart_callback_add(slider, "delay,changed", _update_send_maximums, nc);
|
||||
if (inst->cfg->netstatus.automax) elm_object_disabled_set(slider, EINA_TRUE);
|
||||
elm_box_pack_end(box, slider);
|
||||
evas_object_show(slider);
|
||||
nc->send_max = slider;
|
||||
|
||||
hover = elm_hoversel_add(box);
|
||||
elm_hoversel_auto_update_set(hover, EINA_TRUE);
|
||||
elm_hoversel_hover_parent_set(hover, popup);
|
||||
elm_hoversel_item_add(hover, _("Bytes"), NULL, ELM_ICON_NONE, NULL, nc);
|
||||
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_BYTES)
|
||||
{
|
||||
elm_object_text_set(hover, _("Bytes"));
|
||||
nc->send_unit_adjust = 1;
|
||||
}
|
||||
elm_hoversel_item_add(hover, _("KB"), NULL, ELM_ICON_NONE, NULL, nc);
|
||||
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_KB)
|
||||
{
|
||||
elm_object_text_set(hover, _("KB"));
|
||||
nc->send_unit_adjust = 1024;
|
||||
}
|
||||
elm_hoversel_item_add(hover, _("MB"), NULL, ELM_ICON_NONE, NULL, nc);
|
||||
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_MB)
|
||||
{
|
||||
elm_object_text_set(hover, _("MB"));
|
||||
nc->send_unit_adjust = 2048;
|
||||
}
|
||||
elm_hoversel_item_add(hover, _("GB"), NULL, ELM_ICON_NONE, NULL, nc);
|
||||
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_GB)
|
||||
{
|
||||
elm_object_text_set(hover, _("GB"));
|
||||
nc->send_unit_adjust = 3072;
|
||||
}
|
||||
evas_object_size_hint_align_set(hover, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(hover, EVAS_HINT_EXPAND, 0.0);
|
||||
if (inst->cfg->netstatus.automax) elm_object_disabled_set(hover, EINA_TRUE);
|
||||
evas_object_smart_callback_add(hover, "selected", _send_hover_changed, nc);
|
||||
elm_box_pack_end(box, hover);
|
||||
evas_object_show(hover);
|
||||
nc->send_units = hover;
|
||||
|
||||
elm_slider_value_set(nc->send_max, ceil(inst->cfg->netstatus.outmax / nc->send_unit_adjust));
|
||||
|
||||
elm_object_content_set(frame, box);
|
||||
popup = e_comp_object_util_add(popup, E_COMP_OBJECT_TYPE_NONE);
|
||||
evas_object_layer_set(popup, E_LAYER_POPUP);
|
||||
|
@ -154,7 +402,7 @@ netstatus_configure(Instance *inst)
|
|||
e_comp_object_util_center_on_zone(popup, zone);
|
||||
evas_object_show(popup);
|
||||
e_comp_object_util_autoclose(popup, NULL, e_comp_object_util_autoclose_on_escape, NULL);
|
||||
evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _config_close, inst);
|
||||
evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _config_close, nc);
|
||||
|
||||
return inst->cfg->netstatus.configure = popup;
|
||||
}
|
||||
|
|
|
@ -29,8 +29,11 @@ _netstatus_proc_getrstatus(Instance *inst)
|
|||
else
|
||||
{
|
||||
inst->cfg->netstatus.in = tot_in;
|
||||
if (diffin > inst->cfg->netstatus.inmax)
|
||||
inst->cfg->netstatus.inmax = diffin;
|
||||
if (inst->cfg->netstatus.automax)
|
||||
{
|
||||
if (diffin > inst->cfg->netstatus.inmax)
|
||||
inst->cfg->netstatus.inmax = diffin;
|
||||
}
|
||||
inst->cfg->netstatus.incurrent = diffin;
|
||||
if (inst->cfg->netstatus.inmax > 0)
|
||||
percent = 100 * ((float)inst->cfg->netstatus.incurrent / (float)inst->cfg->netstatus.inmax);
|
||||
|
@ -84,8 +87,11 @@ _netstatus_proc_gettstatus(Instance *inst)
|
|||
else
|
||||
{
|
||||
inst->cfg->netstatus.out = tot_out;
|
||||
if (diffout > inst->cfg->netstatus.outmax)
|
||||
inst->cfg->netstatus.outmax = diffout;
|
||||
if (inst->cfg->netstatus.automax)
|
||||
{
|
||||
if (diffout > inst->cfg->netstatus.outmax)
|
||||
inst->cfg->netstatus.outmax = diffout;
|
||||
}
|
||||
inst->cfg->netstatus.outcurrent = diffout;
|
||||
if (inst->cfg->netstatus.outcurrent > 0)
|
||||
percent = 100 * ((float)inst->cfg->netstatus.outcurrent / (float)inst->cfg->netstatus.outmax);
|
||||
|
|
|
@ -135,6 +135,11 @@ _conf_item_get(int *id)
|
|||
ci->netstatus.outstring = NULL;
|
||||
ci->netstatus.popup = NULL;
|
||||
ci->netstatus.configure = NULL;
|
||||
ci->netstatus.automax = EINA_TRUE;
|
||||
ci->netstatus.inmax = 0;
|
||||
ci->netstatus.outmax = 0;
|
||||
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
|
||||
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
|
||||
|
||||
sysinfo_config->items = eina_list_append(sysinfo_config->items, ci);
|
||||
|
||||
|
|
|
@ -27,6 +27,15 @@ enum _E_Sysinfo_Module
|
|||
E_SYSINFO_MODULE_SYSINFO
|
||||
};
|
||||
|
||||
typedef enum _Netstatus_Unit Netstatus_Unit;
|
||||
enum _Netstatus_Unit
|
||||
{
|
||||
NETSTATUS_UNIT_BYTES = 0,
|
||||
NETSTATUS_UNIT_KB,
|
||||
NETSTATUS_UNIT_MB,
|
||||
NETSTATUS_UNIT_GB
|
||||
};
|
||||
|
||||
typedef enum _Sensor_Type
|
||||
{
|
||||
SENSOR_TYPE_NONE,
|
||||
|
@ -112,6 +121,7 @@ struct _Config
|
|||
struct _Config_Item
|
||||
{
|
||||
int id;
|
||||
int version;
|
||||
E_Sysinfo_Module esm;
|
||||
struct
|
||||
{
|
||||
|
@ -203,6 +213,9 @@ struct _Config_Item
|
|||
Evas_Object *o_gadget;
|
||||
Evas_Object *popup;
|
||||
Evas_Object *configure;
|
||||
Eina_Bool automax;
|
||||
Netstatus_Unit receive_units;
|
||||
Netstatus_Unit send_units;
|
||||
int poll_interval;
|
||||
long in;
|
||||
long out;
|
||||
|
|
Loading…
Reference in New Issue