diff --git a/src/modules/sysinfo/cpumonitor/cpumonitor.c b/src/modules/sysinfo/cpumonitor/cpumonitor.c index 187dbb448..4fb54320d 100644 --- a/src/modules/sysinfo/cpumonitor/cpumonitor.c +++ b/src/modules/sysinfo/cpumonitor/cpumonitor.c @@ -26,6 +26,12 @@ _cpumonitor_face_update(Instance *inst) usage_msg); free(usage_msg); } + if (inst->cfg->cpumonitor.popup) + { + char text[4096]; + snprintf(text, sizeof(text), "%s: %d%%", _("Total CPU Usage"), inst->cfg->cpumonitor.percent); + elm_object_text_set(inst->cfg->cpumonitor.popup_label, text); + } } static Evas_Object * @@ -81,7 +87,8 @@ _cpumonitor_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA elm_object_text_set(label, text); elm_object_content_set(popup, label); evas_object_show(label); - + inst->cfg->cpumonitor.popup_label = label; + e_comp_object_util_autoclose(popup, NULL, NULL, NULL); evas_object_show(popup); e_gadget_util_ctxpopup_place(inst->o_main, popup, inst->cfg->cpumonitor.o_gadget); @@ -103,6 +110,16 @@ _cpumonitor_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA } } +static void +_cpumonitor_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED) +{ + Evas_Coord w, h; + Instance *inst = data; + + evas_object_geometry_get(inst->cfg->cpumonitor.o_gadget, 0, 0, &w, &h); + evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, w, h); +} + static void _cpumonitor_cb_usage_check_main(void *data, Ecore_Thread *th) { @@ -243,52 +260,6 @@ sysinfo_cpumonitor_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA } } -static void -_cpumonitor_eval_instance_aspect(Instance *inst) -{ - Evas_Coord w, h; - Evas_Coord sw = 1, sh = 1; - Evas_Object *owner, *ed; - CPU_Core *first_core; - int num_cores = eina_list_count(inst->cfg->cpumonitor.cores); - - 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: - case E_GADGET_SITE_ORIENT_NONE: - evas_object_geometry_get(owner, NULL, NULL, NULL, &sh); - break; - - case E_GADGET_SITE_ORIENT_VERTICAL: - evas_object_geometry_get(owner, NULL, NULL, &sw, NULL); - break; - - default: - sw = sh = 48; - break; - } - - first_core = eina_list_nth(inst->cfg->cpumonitor.cores, 0); - evas_object_resize(first_core->layout, sw, sh); - ed = elm_layout_edje_get(first_core->layout); - edje_object_parts_extends_calc(ed, NULL, NULL, &w, &h); - if (e_gadget_site_orient_get(owner) == E_GADGET_SITE_ORIENT_VERTICAL) - h *= num_cores; - else - w *= num_cores; - evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, w, h); -} - static void _cpumonitor_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED) { @@ -299,6 +270,7 @@ _cpumonitor_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSE inst->cfg->cpumonitor.o_gadget = elm_box_add(inst->o_main); elm_box_padding_set(inst->cfg->cpumonitor.o_gadget, 0, 0); + elm_box_homogeneous_set(inst->cfg->cpumonitor.o_gadget, EINA_TRUE); if (orient == E_GADGET_SITE_ORIENT_VERTICAL) elm_box_horizontal_set(inst->cfg->cpumonitor.o_gadget, EINA_FALSE); else @@ -307,10 +279,10 @@ _cpumonitor_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSE E_FILL(inst->cfg->cpumonitor.o_gadget); elm_box_pack_end(inst->o_main, inst->cfg->cpumonitor.o_gadget); evas_object_event_callback_add(inst->cfg->cpumonitor.o_gadget, EVAS_CALLBACK_MOUSE_DOWN, _cpumonitor_mouse_down_cb, inst); + evas_object_event_callback_add(inst->cfg->cpumonitor.o_gadget, EVAS_CALLBACK_RESIZE, _cpumonitor_resize_cb, inst); evas_object_show(inst->cfg->cpumonitor.o_gadget); evas_object_smart_callback_del_full(obj, "gadget_created", _cpumonitor_created_cb, data); _cpumonitor_config_updated(inst); - _cpumonitor_eval_instance_aspect(inst); } Evas_Object * @@ -318,12 +290,12 @@ 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); + elm_box_homogeneous_set(inst->cfg->cpumonitor.o_gadget, EINA_TRUE); E_EXPAND(inst->cfg->cpumonitor.o_gadget); E_FILL(inst->cfg->cpumonitor.o_gadget); evas_object_event_callback_add(inst->cfg->cpumonitor.o_gadget, EVAS_CALLBACK_MOUSE_DOWN, _cpumonitor_mouse_down_cb, inst); 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 c8b1008db..895cfbbcd 100644 --- a/src/modules/sysinfo/memusage/memusage.c +++ b/src/modules/sysinfo/memusage/memusage.c @@ -23,6 +23,14 @@ _memusage_face_update(Instance *inst, int mem, int swap) edje_object_message_send(elm_layout_edje_get(inst->cfg->memusage.o_gadget), EDJE_MESSAGE_INT_SET, 1, msg); free(msg); + + if (inst->cfg->memusage.popup) + { + char text[4096]; + snprintf(text, sizeof(text), "%s: %d%%
%s: %d%%", _("Total Memory Usage"), + inst->cfg->memusage.real, _("Total Swap Usage"), inst->cfg->memusage.swap); + elm_object_text_set(inst->cfg->memusage.popup_label, text); + } } static Evas_Object * @@ -79,6 +87,7 @@ _memusage_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U elm_object_text_set(label, text); elm_object_content_set(popup, label); evas_object_show(label); + inst->cfg->memusage.popup_label = label; e_comp_object_util_autoclose(popup, NULL, NULL, NULL); evas_object_show(popup); @@ -101,6 +110,17 @@ _memusage_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U } } +static void +_memusage_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED) +{ + Evas_Coord w, h; + Instance *inst = data; + + evas_object_geometry_get(inst->cfg->memusage.o_gadget, 0, 0, &w, &h); + if (inst->cfg->esm == E_SYSINFO_MODULE_MEMUSAGE) + evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, w, h); +} + static void _memusage_cb_usage_check_main(void *data, Ecore_Thread *th) { @@ -196,44 +216,6 @@ sysinfo_memusage_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U } } -static void -_memusage_eval_instance_aspect(Instance *inst) -{ - Evas_Coord w, h; - 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: - case E_GADGET_SITE_ORIENT_NONE: - evas_object_geometry_get(owner, NULL, NULL, NULL, &sh); - sw = sh; - break; - - case E_GADGET_SITE_ORIENT_VERTICAL: - evas_object_geometry_get(owner, NULL, NULL, &sw, NULL); - sh = sw; - break; - - default: - sw = sh = 48; - break; - } - - evas_object_resize(inst->cfg->memusage.o_gadget, sw, sh); - ed = elm_layout_edje_get(inst->cfg->memusage.o_gadget); - edje_object_parts_extends_calc(ed, NULL, NULL, &w, &h); - evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, w, h); -} - static void _memusage_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED) { @@ -256,9 +238,9 @@ _memusage_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED) E_FILL(inst->cfg->memusage.o_gadget); elm_box_pack_end(inst->o_main, inst->cfg->memusage.o_gadget); evas_object_event_callback_add(inst->cfg->memusage.o_gadget, EVAS_CALLBACK_MOUSE_DOWN, _memusage_mouse_down_cb, inst); + evas_object_event_callback_add(inst->cfg->memusage.o_gadget, EVAS_CALLBACK_RESIZE, _memusage_resize_cb, inst); evas_object_show(inst->cfg->memusage.o_gadget); evas_object_smart_callback_del_full(obj, "gadget_created", _memusage_created_cb, data); - _memusage_eval_instance_aspect(inst); _memusage_config_updated(inst); } @@ -271,8 +253,8 @@ sysinfo_memusage_create(Evas_Object *parent, Instance *inst) E_EXPAND(inst->cfg->memusage.o_gadget); E_FILL(inst->cfg->memusage.o_gadget); evas_object_event_callback_add(inst->cfg->memusage.o_gadget, EVAS_CALLBACK_MOUSE_DOWN, _memusage_mouse_down_cb, inst); + evas_object_event_callback_add(inst->cfg->memusage.o_gadget, EVAS_CALLBACK_RESIZE, _memusage_resize_cb, inst); 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/netstatus/netstatus.c b/src/modules/sysinfo/netstatus/netstatus.c index 93f4a62fb..3b0f7fbc4 100644 --- a/src/modules/sysinfo/netstatus/netstatus.c +++ b/src/modules/sysinfo/netstatus/netstatus.c @@ -27,6 +27,13 @@ _netstatus_face_update(Instance *inst) edje_object_message_send(elm_layout_edje_get(inst->cfg->netstatus.o_gadget), EDJE_MESSAGE_INT_SET, 1, msg); free(msg); + + if (inst->cfg->netstatus.popup) + { + char text[4096]; + snprintf(text, sizeof(text), "%s
%s", inst->cfg->netstatus.instring, inst->cfg->netstatus.outstring); + elm_object_text_set(inst->cfg->netstatus.popup_label, text); + } } static Evas_Object * @@ -82,6 +89,7 @@ _netstatus_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_ elm_object_text_set(label, text); elm_object_content_set(popup, label); evas_object_show(label); + inst->cfg->netstatus.popup_label = label; e_comp_object_util_autoclose(popup, NULL, NULL, NULL); evas_object_show(popup); diff --git a/src/modules/sysinfo/sysinfo.h b/src/modules/sysinfo/sysinfo.h index b3dcb02b3..65fced322 100644 --- a/src/modules/sysinfo/sysinfo.h +++ b/src/modules/sysinfo/sysinfo.h @@ -189,6 +189,7 @@ struct _Config_Item { Evas_Object *o_gadget; Evas_Object *popup; + Evas_Object *popup_label; Evas_Object *configure; int poll_interval; int percent; @@ -202,6 +203,7 @@ struct _Config_Item { Evas_Object *o_gadget; Evas_Object *popup; + Evas_Object *popup_label; Evas_Object *configure; int poll_interval; int real; @@ -212,6 +214,7 @@ struct _Config_Item { Evas_Object *o_gadget; Evas_Object *popup; + Evas_Object *popup_label; Evas_Object *configure; Eina_Bool automax; Netstatus_Unit receive_units;