Enlightenment: Sysinfo gadget: Calculate aspects correctly.

This commit is contained in:
Stephen 'Okra' Houston 2017-01-08 14:26:11 -06:00
parent a8f5529d25
commit 3fb8149486
4 changed files with 50 additions and 27 deletions

View File

@ -12,14 +12,14 @@ struct _Thread_Config
static void
_cpumonitor_face_update(Instance *inst)
{
Edje_Message_Int_Set *usage_msg;
Eina_List *l;
CPU_Core *core;
usage_msg = malloc(sizeof(Edje_Message_Int_Set) + 1 * sizeof(int));
EINA_SAFETY_ON_NULL_RETURN(usage_msg);
EINA_LIST_FOREACH(inst->cfg->cpumonitor.cores, l, core)
{
Edje_Message_Int_Set *usage_msg;
usage_msg = malloc(sizeof(Edje_Message_Int_Set) + 1 * sizeof(int));
EINA_SAFETY_ON_NULL_RETURN(usage_msg);
usage_msg->count = 1;
usage_msg->val[0] = core->percent;
edje_object_message_send(elm_layout_edje_get(core->layout), EDJE_MESSAGE_INT_SET, 1,
@ -162,7 +162,13 @@ _cpumonitor_eval_instance_aspect(Instance *inst)
if (num_cores < 1)
return;
if (!inst->o_main)
return;
owner = e_gadget_site_get(inst->o_main);
if (!owner)
return;
switch (e_gadget_site_orient_get(owner))
{
case E_GADGET_SITE_ORIENT_HORIZONTAL:
@ -173,6 +179,10 @@ _cpumonitor_eval_instance_aspect(Instance *inst)
evas_object_geometry_get(owner, NULL, NULL, &sw, NULL);
break;
case E_GADGET_SITE_ORIENT_NONE:
evas_object_geometry_get(owner, NULL, NULL, NULL, &sh);
break;
default:
sw = sh = 48;
break;
@ -209,10 +219,12 @@ Evas_Object *
sysinfo_cpumonitor_create(Evas_Object *parent, Instance *inst)
{
inst->cfg->cpumonitor.o_gadget = elm_box_add(parent);
elm_box_horizontal_set(inst->cfg->cpumonitor.o_gadget, EINA_TRUE);
E_EXPAND(inst->cfg->cpumonitor.o_gadget);
E_FILL(inst->cfg->cpumonitor.o_gadget);
evas_object_show(inst->cfg->cpumonitor.o_gadget);
_cpumonitor_config_updated(inst);
_cpumonitor_eval_instance_aspect(inst);
return inst->cfg->cpumonitor.o_gadget;
}

View File

@ -112,7 +112,12 @@ _memusage_eval_instance_aspect(Instance *inst)
Evas_Coord sw = 0, sh = 0;
Evas_Object *owner, *ed;
if (!inst->o_main)
return;
owner = e_gadget_site_get(inst->o_main);
if (!owner)
return;
switch (e_gadget_site_orient_get(owner))
{
case E_GADGET_SITE_ORIENT_HORIZONTAL:
@ -125,6 +130,11 @@ _memusage_eval_instance_aspect(Instance *inst)
sh = sw;
break;
case E_GADGET_SITE_ORIENT_NONE:
evas_object_geometry_get(owner, NULL, NULL, NULL, &sh);
sw = sh;
break;
default:
sw = sh = 48;
break;
@ -162,6 +172,7 @@ sysinfo_memusage_create(Evas_Object *parent, Instance *inst)
E_EXPAND(inst->cfg->memusage.o_gadget);
E_FILL(inst->cfg->memusage.o_gadget);
evas_object_show(inst->cfg->memusage.o_gadget);
_memusage_eval_instance_aspect(inst);
_memusage_config_updated(inst);
return inst->cfg->memusage.o_gadget;

View File

@ -23,18 +23,18 @@ _sysinfo_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED)
{
Instance *inst = data;
inst->cfg->sysinfo.o_batman = sysinfo_batman_create(inst->o_main, inst);
elm_table_pack(inst->o_main, inst->cfg->sysinfo.o_batman, 0, 0, 1, 1);
inst->cfg->sysinfo.o_thermal = sysinfo_thermal_create(inst->o_main, inst);
elm_table_pack(inst->o_main, inst->cfg->sysinfo.o_thermal, 1, 0, 1, 1);
inst->cfg->sysinfo.o_cpuclock = sysinfo_cpuclock_create(inst->o_main, inst);
elm_table_pack(inst->o_main, inst->cfg->sysinfo.o_cpuclock, 0, 1, 1, 1);
inst->cfg->sysinfo.o_cpumonitor = sysinfo_cpumonitor_create(inst->o_main, inst);
elm_table_pack(inst->o_main, inst->cfg->sysinfo.o_cpumonitor, 1, 1, 1, 1);
inst->cfg->sysinfo.o_memusage = sysinfo_memusage_create(inst->o_main, inst);
elm_table_pack(inst->o_main, inst->cfg->sysinfo.o_memusage, 0, 2, 1, 1);
inst->cfg->sysinfo.o_netstatus = sysinfo_netstatus_create(inst->o_main, inst);
elm_table_pack(inst->o_main, inst->cfg->sysinfo.o_netstatus, 1, 2, 1, 1);
inst->cfg->sysinfo.o_batman = sysinfo_batman_create(inst->o_table, inst);
elm_table_pack(inst->o_table, inst->cfg->sysinfo.o_batman, 0, 0, 1, 1);
inst->cfg->sysinfo.o_thermal = sysinfo_thermal_create(inst->o_table, inst);
elm_table_pack(inst->o_table, inst->cfg->sysinfo.o_thermal, 1, 0, 1, 1);
inst->cfg->sysinfo.o_cpuclock = sysinfo_cpuclock_create(inst->o_table, inst);
elm_table_pack(inst->o_table, inst->cfg->sysinfo.o_cpuclock, 0, 1, 1, 1);
inst->cfg->sysinfo.o_cpumonitor = sysinfo_cpumonitor_create(inst->o_table, inst);
elm_table_pack(inst->o_table, inst->cfg->sysinfo.o_cpumonitor, 1, 1, 1, 1);
inst->cfg->sysinfo.o_memusage = sysinfo_memusage_create(inst->o_table, inst);
elm_table_pack(inst->o_table, inst->cfg->sysinfo.o_memusage, 0, 2, 1, 1);
inst->cfg->sysinfo.o_netstatus = sysinfo_netstatus_create(inst->o_table, inst);
elm_table_pack(inst->o_table, inst->cfg->sysinfo.o_netstatus, 1, 2, 1, 1);
evas_object_smart_callback_del_full(obj, "gadget_created", _sysinfo_created_cb, data);
}
@ -104,33 +104,32 @@ Evas_Object *
sysinfo_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_UNUSED)
{
Instance *inst;
Evas_Object *scroller;
inst = E_NEW(Instance, 1);
inst->cfg = _conf_item_get(id);
*id = inst->cfg->id;
scroller = elm_scroller_add(parent);
elm_object_style_set(scroller, "no_inset_shadow");
E_EXPAND(scroller);
evas_object_size_hint_aspect_set(scroller, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
evas_object_show(scroller);
inst->o_main = elm_table_add(parent);
elm_table_homogeneous_set(inst->o_main, EINA_TRUE);
inst->o_main = elm_scroller_add(parent);
elm_object_style_set(inst->o_main, "no_inset_shadow");
E_EXPAND(inst->o_main);
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
elm_object_content_set(scroller, inst->o_main);
evas_object_show(inst->o_main);
inst->o_table = elm_table_add(inst->o_main);
elm_table_homogeneous_set(inst->o_table, EINA_TRUE);
E_EXPAND(inst->o_table);
evas_object_size_hint_aspect_set(inst->o_table, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
elm_object_content_set(inst->o_main, inst->o_table);
evas_object_show(inst->o_table);
evas_object_smart_callback_add(parent, "gadget_created", _sysinfo_created_cb, inst);
evas_object_smart_callback_add(parent, "gadget_removed", _sysinfo_removed_cb, inst);
if (inst->cfg->id < 0) return scroller;
if (inst->cfg->id < 0) return inst->o_main;
sysinfo_instances =
eina_list_append(sysinfo_instances, inst);
return scroller;
return inst->o_main;
}

View File

@ -211,6 +211,7 @@ struct _Config_Item
struct _Instance
{
Evas_Object *o_main;
Evas_Object *o_table;
Evas_Object *popup_battery;
Evas_Object *warning;
Config_Item *cfg;