From 3fb81494860bf5e66c24831273fdd803944f979f Mon Sep 17 00:00:00 2001 From: Stephen 'Okra' Houston Date: Sun, 8 Jan 2017 14:26:11 -0600 Subject: [PATCH] Enlightenment: Sysinfo gadget: Calculate aspects correctly. --- src/modules/sysinfo/cpumonitor/cpumonitor.c | 18 ++++++-- src/modules/sysinfo/memusage/memusage.c | 11 +++++ src/modules/sysinfo/sysinfo.c | 47 ++++++++++----------- src/modules/sysinfo/sysinfo.h | 1 + 4 files changed, 50 insertions(+), 27 deletions(-) diff --git a/src/modules/sysinfo/cpumonitor/cpumonitor.c b/src/modules/sysinfo/cpumonitor/cpumonitor.c index b68584817..4e2d452f7 100644 --- a/src/modules/sysinfo/cpumonitor/cpumonitor.c +++ b/src/modules/sysinfo/cpumonitor/cpumonitor.c @@ -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; } diff --git a/src/modules/sysinfo/memusage/memusage.c b/src/modules/sysinfo/memusage/memusage.c index a3b29f8d8..7c8f7905e 100644 --- a/src/modules/sysinfo/memusage/memusage.c +++ b/src/modules/sysinfo/memusage/memusage.c @@ -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; diff --git a/src/modules/sysinfo/sysinfo.c b/src/modules/sysinfo/sysinfo.c index 83bd8df2b..06e5a7753 100644 --- a/src/modules/sysinfo/sysinfo.c +++ b/src/modules/sysinfo/sysinfo.c @@ -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; } diff --git a/src/modules/sysinfo/sysinfo.h b/src/modules/sysinfo/sysinfo.h index 4fa79c4d0..42cec8f24 100644 --- a/src/modules/sysinfo/sysinfo.h +++ b/src/modules/sysinfo/sysinfo.h @@ -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;