davemds pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/edgar.git/commit/?id=beec9a292d4ab5e404b9435fb6d319362132d772
commit beec9a292d4ab5e404b9435fb6d319362132d772 Author: davemds <[email protected]> Date: Sun Aug 31 16:26:57 2014 +0200 Set/calc better the obj size hints, also respect aspect_hints --- GADGETS/audio/__init__.py | 1 + GADGETS/audio/audio.edc | 1 + GADGETS/led_clock/__init__.py | 4 ++++ GADGETS/led_clock/led_clock.edc | 2 +- src/e_mod_edgar.c | 16 +++++++++++----- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/GADGETS/audio/__init__.py b/GADGETS/audio/__init__.py index e4c4a10..99b9ad6 100644 --- a/GADGETS/audio/__init__.py +++ b/GADGETS/audio/__init__.py @@ -47,6 +47,7 @@ class Gadget(e.Gadget): obj.signal_callback_add('mouse,down,2', 'over', self.speaker_click_cb) obj.signal_callback_add('mouse,wheel,*', 'over', self.speaker_wheel_cb) + obj.size_hint_aspect = evas.EVAS_ASPECT_CONTROL_BOTH , 16, 16 self.speaker_update(obj) def instance_destroyed(self, obj): diff --git a/GADGETS/audio/audio.edc b/GADGETS/audio/audio.edc index 527b53f..9589f11 100644 --- a/GADGETS/audio/audio.edc +++ b/GADGETS/audio/audio.edc @@ -293,6 +293,7 @@ collections { rel1.to: "players.box"; rel1.relative: 0.0 1.0; rel1.offset: 0 6; + align: 0.0 0.0; box { layout: "vertical"; padding: 0 6; diff --git a/GADGETS/led_clock/__init__.py b/GADGETS/led_clock/__init__.py index 98bb75f..2bb4e10 100644 --- a/GADGETS/led_clock/__init__.py +++ b/GADGETS/led_clock/__init__.py @@ -6,6 +6,7 @@ import datetime import random import e +from efl import evas from efl import edje from efl import ecore @@ -28,6 +29,9 @@ class Gadget(e.Gadget): obj.data['timer'] = timer obj.signal_callback_add('mouse,down,1', '*', self.led_click_cb) + + w, h = obj.size_min + obj.size_hint_aspect = evas.EVAS_ASPECT_CONTROL_BOTH , w, h return obj def instance_destroyed(self, obj): diff --git a/GADGETS/led_clock/led_clock.edc b/GADGETS/led_clock/led_clock.edc index a3d4977..6b91139 100644 --- a/GADGETS/led_clock/led_clock.edc +++ b/GADGETS/led_clock/led_clock.edc @@ -47,7 +47,7 @@ collections { } group { name: "e/gadgets/led_clock/main"; - + min: 74 21; parts { part { name: "bg"; diff --git a/src/e_mod_edgar.c b/src/e_mod_edgar.c index 666bb64..56ecf9a 100644 --- a/src/e_mod_edgar.c +++ b/src/e_mod_edgar.c @@ -562,7 +562,7 @@ _edgar_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style if (gc->location->site == E_GADCON_SITE_DESKTOP && gadget->opt_pop_on_desk) pop_on_desk = EINA_TRUE; - // TODO search in the E theme ("e/gadget/name/main") + // create the edje object (popup or main) obj = edje_object_add(gc->evas); group = pop_on_desk ? "popup" : "main"; if (!edgar_theme_edje_object_set(gadget, obj, group)) @@ -645,7 +645,8 @@ _edgar_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient) { Edgar_Py_Gadget *gadget = gcc->data; E_Gadcon_Orient generic; - Evas_Coord min_w, min_h; + Evas_Coord w, h, mw, mh; + Evas_Aspect_Control aspect; DBG("EDGAR: Gadcon Orient: %d", orient); switch (orient) @@ -684,9 +685,14 @@ _edgar_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient) // apply obj size hints edje_object_message_signal_process(gcc->o_base); - edje_object_size_min_calc(gcc->o_base, &min_w, &min_h); - e_gadcon_client_min_size_set(gcc, min_w, min_h); - e_gadcon_client_aspect_set(gcc, min_w, min_h); + evas_object_size_hint_min_get(gcc->o_base, &mw, &mh); + edje_object_size_min_restricted_calc(gcc->o_base, &w, &h, mw, mh); + e_gadcon_client_min_size_set(gcc, w, h); + + // also aspect hints if requested + evas_object_size_hint_aspect_get(gcc->o_base, &aspect, &w, &h); + if (aspect != EVAS_ASPECT_CONTROL_NONE) + e_gadcon_client_aspect_set(gcc, w, h); } static const char* --
