Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_widget.c 


Log Message:
Use the new data fields in edje (thanks raster!) to add back in the padding and
inset fields for EWL's widgets. Buttons now look a little better, but will
probably get tweaked more later.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_widget.c,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -3 -r1.65 -r1.66
--- ewl_widget.c        5 Aug 2003 20:24:06 -0000       1.65
+++ ewl_widget.c        6 Aug 2003 19:37:32 -0000       1.66
@@ -40,6 +40,10 @@
                                     void *user_data);
  */
 
+void __ewl_widget_get_theme_padding(Ewl_Widget *w, int *l, int *r, int *t,
+               int *b);
+void __ewl_widget_get_theme_insets(Ewl_Widget *w, int *l, int *r, int *t,
+               int *b);
 static inline void __ewl_widget_theme_destroy(Ewl_Widget *w);
 static inline void __ewl_widget_cleanup_fx_clip(Ewl_Widget *w);
 
@@ -723,9 +727,15 @@
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("w", w);
 
+       /*
+        * Get and save the current insets and padding of the widget, this
+        * will be used to calculate any added at runtime.
+        */
        if (w->theme_object) {
+               __ewl_widget_get_theme_insets(w, &i_l, &i_r, &i_t, &i_b);
+               __ewl_widget_get_theme_padding(w, &p_l, &p_r, &p_t, &p_b);
+
                /* FIXME: No edje equivalent yet.
-               ebits_get_insets(w->theme_object, &i_l, &i_r, &i_t, &i_b);
                ebits_get_padding(w->theme_object, &p_l, &p_r, &p_t, &p_b);
                */
        }
@@ -797,6 +807,7 @@
                /* FIXME: More edje growing pains
                ebits_get_insets(w->theme_object, &l, &r, &t, &b);
                */
+               __ewl_widget_get_theme_insets(w, &l, &r, &t, &b);
                ewl_object_set_insets(EWL_OBJECT(w), l + i_l, r + i_r, t + i_t,
                                b + i_b);
 
@@ -804,6 +815,7 @@
                 * FIXME: More edje growing pains
                ebits_get_padding(w->theme_object, &l, &r, &t, &b);
                */
+               __ewl_widget_get_theme_padding(w, &l, &r, &t, &b);
                ewl_object_set_padding(EWL_OBJECT(w), l + p_l, r + p_r, t + p_t,
                                b + p_b);
 
@@ -960,6 +972,72 @@
                evas_object_clip_unset(w->theme_object);
                evas_object_del(w->theme_object);
                w->theme_object = NULL;
+       }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void
+__ewl_widget_get_theme_padding(Ewl_Widget *w, int *l, int *r, int *t, int *b)
+{
+       const char *key;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       /*
+        * Read in the padding values from the edje file
+        */
+       key = edje_object_data_get(w->theme_object, "pad/left");
+       if (key && l) {
+               *l = atoi(key);
+       }
+
+       key = edje_object_data_get(w->theme_object, "pad/right");
+       if (key && r) {
+               *r = atoi(key);
+       }
+
+       key = edje_object_data_get(w->theme_object, "pad/top");
+       if (key && t) {
+               *t = atoi(key);
+       }
+
+       key = edje_object_data_get(w->theme_object, "pad/bottom");
+       if (key && b) {
+               *b = atoi(key);
+       }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void
+__ewl_widget_get_theme_insets(Ewl_Widget *w, int *l, int *r, int *t, int *b)
+{
+       const char *key;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       /*
+        * Read in the inset values from the edje file
+        */
+       key = edje_object_data_get(w->theme_object, "inset/left");
+       if (key && l) {
+               *l = atoi(key);
+       }
+
+       key = edje_object_data_get(w->theme_object, "inset/right");
+       if (key && r) {
+               *r = atoi(key);
+       }
+
+       key = edje_object_data_get(w->theme_object, "inset/top");
+       if (key && t) {
+               *t = atoi(key);
+       }
+
+       key = edje_object_data_get(w->theme_object, "inset/bottom");
+       if (key && b) {
+               *b = atoi(key);
        }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to