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*

-- 


Reply via email to