forked from enlightenment/enlightenment
mem gadget: respect the aspect ratio of the theme
I really don't like this implementation (taken from the clock gadget). If you know a better way to get the aspect from an elm layout please let me know
This commit is contained in:
parent
0b1fc0e368
commit
30c81ac188
|
@ -109,6 +109,37 @@ sysinfo_memusage_remove(Instance *inst)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_memusage_eval_instance_aspect(Instance *inst)
|
||||
{
|
||||
Evas_Coord w, h;
|
||||
Evas_Coord sw = 0, sh = 0;
|
||||
Evas_Object *owner, *ed;
|
||||
|
||||
owner = e_gadget_site_get(inst->o_main);
|
||||
switch (e_gadget_site_orient_get(owner))
|
||||
{
|
||||
case E_GADGET_SITE_ORIENT_HORIZONTAL:
|
||||
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)
|
||||
{
|
||||
|
@ -122,6 +153,7 @@ _memusage_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED)
|
|||
elm_box_pack_end(inst->o_main, inst->cfg->memusage.o_gadget);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -176,7 +208,6 @@ memusage_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_U
|
|||
*id = inst->cfg->id;
|
||||
inst->o_main = elm_box_add(parent);
|
||||
E_EXPAND(inst->o_main);
|
||||
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _memusage_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _memusage_removed_cb, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
|
Loading…
Reference in New Issue