Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_box.c ewl_cell.c ewl_container.c ewl_embed.c ewl_entry.c 
        ewl_enums.h ewl_grid.c ewl_image.c ewl_misc.c ewl_misc.h 
        ewl_notebook.c ewl_object.c ewl_row.c ewl_scrollpane.c 
        ewl_seeker.c ewl_selectionbar.c ewl_spinner.c ewl_textarea.c 
        ewl_tree.c ewl_widget.c ewl_widget.h 


Log Message:
Moved widget realization to a queue, prevent big nasty stacks. Backed out an
earlier sizing policy change on how parents request their children's size.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_box.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -3 -r1.51 -r1.52
--- ewl_box.c   3 Jun 2003 04:00:38 -0000       1.51
+++ ewl_box.c   25 Aug 2003 19:40:42 -0000      1.52
@@ -647,13 +647,13 @@
         */
        if (EWL_BOX(c)->orientation == EWL_ORIENTATION_HORIZONTAL) {
                ewl_object_set_preferred_w(EWL_OBJECT(c), PREFERRED_W(c) +
-                               ewl_object_get_minimum_w(EWL_OBJECT(w)) +
+                               ewl_object_get_preferred_w(EWL_OBJECT(w)) +
                                space);
                ewl_container_prefer_largest(c, EWL_ORIENTATION_VERTICAL);
        }
        else {
                ewl_object_set_preferred_h(EWL_OBJECT(c), PREFERRED_H(c) +
-                               ewl_object_get_minimum_h(EWL_OBJECT(w)) +
+                               ewl_object_get_preferred_h(EWL_OBJECT(w)) +
                                space);
                ewl_container_prefer_largest(c, EWL_ORIENTATION_HORIZONTAL);
        }
@@ -676,7 +676,7 @@
        if (b->orientation == EWL_ORIENTATION_HORIZONTAL) {
                ewl_object_set_preferred_w(EWL_OBJECT(c),
                                PREFERRED_W(c) -
-                               ewl_object_get_minimum_w(EWL_OBJECT(w)) -
+                               ewl_object_get_preferred_w(EWL_OBJECT(w)) -
                                space);
 
                ewl_container_prefer_largest(c, EWL_ORIENTATION_VERTICAL);
@@ -684,7 +684,7 @@
        else {
                ewl_object_set_preferred_h(EWL_OBJECT(c),
                                PREFERRED_H(c) - 
-                               ewl_object_get_minimum_w(EWL_OBJECT(w)) -
+                               ewl_object_get_preferred_h(EWL_OBJECT(w)) -
                                space);
                ewl_container_prefer_largest(c, EWL_ORIENTATION_HORIZONTAL);
        }
@@ -704,6 +704,9 @@
        Box_Orientation *info;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
+
+       if (o == EWL_ORIENTATION_VERTICAL)
+               printf("Resizing:\t%p\t%d\n", w, size);
 
        /*
         * Get the appropriate dimension setting functions based on the
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_cell.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ewl_cell.c  3 Jun 2003 04:00:39 -0000       1.6
+++ ewl_cell.c  25 Aug 2003 19:40:42 -0000      1.7
@@ -92,8 +92,8 @@
        }
 
        ewl_object_set_preferred_size(EWL_OBJECT(c),
-                       ewl_object_get_minimum_w(EWL_OBJECT(w)),
-                       ewl_object_get_minimum_h(EWL_OBJECT(w)));
+                       ewl_object_get_preferred_w(EWL_OBJECT(w)),
+                       ewl_object_get_preferred_h(EWL_OBJECT(w)));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -105,8 +105,8 @@
        DENTER_FUNCTION(DLEVEL_STABLE);
 
        ewl_object_set_preferred_size(EWL_OBJECT(c),
-                       ewl_object_get_minimum_w(EWL_OBJECT(w)),
-                       ewl_object_get_minimum_h(EWL_OBJECT(w)));
+                       ewl_object_get_preferred_w(EWL_OBJECT(w)),
+                       ewl_object_get_preferred_h(EWL_OBJECT(w)));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_container.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- ewl_container.c     15 Jul 2003 22:00:16 -0000      1.38
+++ ewl_container.c     25 Aug 2003 19:40:42 -0000      1.39
@@ -290,6 +290,9 @@
 
        DCHECK_PARAM_PTR("w", w);
 
+       if (!size)
+               DRETURN(DLEVEL_STABLE);
+
        /*
         * If there is no parent to this widget, or it hasn't really changed
         * size just exit. Also exit if it has no function to be notified for
@@ -518,11 +521,11 @@
        DCHECK_PARAM_PTR("c", c);
 
        if (o == EWL_ORIENTATION_HORIZONTAL) {
-               get_size = ewl_object_get_minimum_w;
+               get_size = ewl_object_get_preferred_w;
                set_size = ewl_object_set_preferred_w;
        }
        else {
-               get_size = ewl_object_get_minimum_h;
+               get_size = ewl_object_get_preferred_h;
                set_size = ewl_object_set_preferred_h;
        }
 
@@ -611,7 +614,7 @@
        while ((child = ewd_list_goto_index(c->children, i))) {
                ewl_widget_reparent(child);
                if (VISIBLE(child))
-                       ewl_widget_realize(child);
+                       ewl_realize_request(child);
                i++;
        }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_embed.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ewl_embed.c 13 Jul 2003 05:52:49 -0000      1.1
+++ ewl_embed.c 25 Aug 2003 19:40:42 -0000      1.2
@@ -154,7 +154,8 @@
 
        w = EWL_WIDGET(emb);
 
-       ewl_widget_realize(w);
+       if (VISIBLE(w))
+               ewl_realize_request(w);
 
        if (w->fx_clip_box) {
                evas_object_clip_set(emb->smart, w->fx_clip_box);
@@ -364,7 +365,7 @@
                        ewl_object_request_y(child, CURRENT_Y(emb));
 
                cs = ewl_object_get_current_x(child) +
-                       ewl_object_get_minimum_w(child);
+                       ewl_object_get_preferred_w(child);
 
                /*
                 * Check the width and x position vs. embed width.
@@ -373,7 +374,7 @@
                        maxw = cs;
 
                cs = ewl_object_get_current_y(child) +
-                       ewl_object_get_minimum_h(child);
+                       ewl_object_get_preferred_h(child);
 
                /*
                 * Check the height and y position vs. embed height.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_entry.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -3 -r1.63 -r1.64
--- ewl_entry.c 12 Aug 2003 17:16:15 -0000      1.63
+++ ewl_entry.c 25 Aug 2003 19:40:42 -0000      1.64
@@ -606,8 +606,8 @@
 
        if (e->text == w) {
                ewl_object_set_preferred_size(EWL_OBJECT(c),
-                          ewl_object_get_minimum_w(EWL_OBJECT(w)),
-                          ewl_object_get_minimum_h(EWL_OBJECT(w)));
+                          ewl_object_get_preferred_w(EWL_OBJECT(w)),
+                          ewl_object_get_preferred_h(EWL_OBJECT(w)));
        }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -628,10 +628,10 @@
 
        if (o == EWL_ORIENTATION_HORIZONTAL)
                ewl_object_set_preferred_w(EWL_OBJECT(entry),
-                          ewl_object_get_minimum_w(text));
+                          ewl_object_get_preferred_w(text));
        else
                ewl_object_set_preferred_h(EWL_OBJECT(entry),
-                          ewl_object_get_minimum_h(text));
+                          ewl_object_get_preferred_h(text));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_enums.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- ewl_enums.h 3 Jun 2003 04:00:41 -0000       1.33
+++ ewl_enums.h 25 Aug 2003 19:40:42 -0000      1.34
@@ -138,6 +138,7 @@
        EWL_FLAGS_OBSCURED = 0x4,
        EWL_FLAGS_RECURSIVE = 0x8,
        EWL_FLAGS_CSCHEDULED = 0x10,
+       EWL_FLAGS_RSCHEDULED = 0x20,
 };
 
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_grid.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ewl_grid.c  3 Jun 2003 04:00:42 -0000       1.9
+++ ewl_grid.c  25 Aug 2003 19:40:42 -0000      1.10
@@ -531,7 +531,7 @@
                 * Calculate the amount of space the widget would need in this
                 * column.
                 */
-               temp = ewl_object_get_minimum_w(EWL_OBJECT(c)) /
+               temp = ewl_object_get_preferred_w(EWL_OBJECT(c)) /
                    (cdata->end_col - cdata->start_col + 1);
 
                /*
@@ -563,7 +563,7 @@
                 * Calculate the amount of space the widget would need in this
                 * row.
                 */
-               temp = ewl_object_get_minimum_h(EWL_OBJECT(c)) /
+               temp = ewl_object_get_preferred_h(EWL_OBJECT(c)) /
                    (cdata->end_row - cdata->start_row + 1);
 
                /*
@@ -610,12 +610,12 @@
                info = g->col_size;
                start_off = cdata->start_col;
                end_off = cdata->end_col;
-               widget_size = ewl_object_get_minimum_w;
+               widget_size = ewl_object_get_preferred_w;
        } else {
                info = g->row_size;
                start_off = cdata->start_row;
                end_off = cdata->end_row;
-               widget_size = ewl_object_get_minimum_h;
+               widget_size = ewl_object_get_preferred_h;
        }
 
        /*
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_image.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- ewl_image.c 13 Jul 2003 05:52:49 -0000      1.26
+++ ewl_image.c 25 Aug 2003 19:40:42 -0000      1.27
@@ -278,9 +278,9 @@
        else
                ewl_object_set_preferred_h(EWL_OBJECT(i), i->oh);
 
-       if (ewl_object_get_minimum_w(EWL_OBJECT(i)))
-               ewl_image_scale_to(i, ewl_object_get_minimum_w(EWL_OBJECT(i)),
-                               ewl_object_get_minimum_h(EWL_OBJECT(i)));
+       if (ewl_object_get_preferred_w(EWL_OBJECT(i)))
+               ewl_image_scale_to(i, ewl_object_get_preferred_w(EWL_OBJECT(i)),
+                               ewl_object_get_preferred_h(EWL_OBJECT(i)));
        else
                ewl_image_scale(i, i->sw, i->sh);
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_misc.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- ewl_misc.c  5 Aug 2003 20:24:06 -0000       1.33
+++ ewl_misc.c  25 Aug 2003 19:40:42 -0000      1.34
@@ -6,6 +6,7 @@
 char           *xdisplay = NULL;
 extern Ewd_List *ewl_embed_list;
 static Ewd_List *configure_list = NULL;
+static Ewd_List *realize_list = NULL;
 
 void            __ewl_init_parse_options(int argc, char **argv);
 void            __ewl_parse_option_array(int argc, char **argv);
@@ -39,6 +40,7 @@
        DENTER_FUNCTION(DLEVEL_STABLE);
 
        configure_list = ewd_list_new();
+       realize_list = ewd_list_new();
        __ewl_init_parse_options(argc, argv);
 
        ecore_init();
@@ -116,6 +118,18 @@
                DRETURN_INT(TRUE, DLEVEL_STABLE);
 
        /*
+        * First realize any widgets that require it, this looping should
+        * avoid deep recursion.
+        */
+       ewd_list_goto_first(realize_list);
+       while ((w = ewd_list_remove_first(realize_list))) {
+               if (VISIBLE(w) && !REALIZED(w)) {
+                       w->flags &= ~EWL_FLAGS_RSCHEDULED;
+                       ewl_widget_realize(EWL_WIDGET(w));
+               }
+       }
+
+       /*
         * Configure any widgets that need it.
         */
        while ((w = ewd_list_remove_first(configure_list))) {
@@ -128,21 +142,10 @@
        }
 
        /*
-        * Rerender each embed and realize them as necessary. Done after
-        * configuration to avoid multiple passes of the embed list when no
-        * new embeds have been created.
+        * Allow each embed to render itself.
         */
        ewd_list_goto_first(ewl_embed_list);
        while ((emb = ewd_list_next(ewl_embed_list)) != NULL) {
-               /*
-                * If we have any unrealized embeds at this point, we want to
-                * realize and configure them to layout the children correct.
-                */
-               if (VISIBLE(emb) && !REALIZED(emb)) {
-                       ewl_widget_realize(EWL_WIDGET(emb));
-                       ewl_widget_configure(EWL_WIDGET(emb));
-               }
-
                if (emb->evas)
                        evas_render(emb->evas);
        }
@@ -388,4 +391,41 @@
                ewd_list_remove(configure_list);
 
        DLEAVE_FUNCTION(DLEVEL_TESTING);
+}
+
+/**
+ * ewl_realize_request - schedule a widget to be realized at idle time
+ * @w: widget to schedule for realization
+ *
+ * Returns no value. Places a widget on the queue to be realized at a later
+ * time.
+ */
+void ewl_realize_request(Ewl_Widget *w)
+{
+       Ewl_Widget *search;
+
+       if (w->flags & EWL_FLAGS_RSCHEDULED)
+               return;
+
+       w->flags |= EWL_FLAGS_RSCHEDULED;
+
+       /*
+        * Search the list for a child widget of this widget.
+        */
+       ewd_list_goto_first(realize_list);
+       while ((search = ewd_list_current(realize_list))) {
+               Ewl_Widget *parent;
+
+               parent = search;
+               while ((parent = parent->parent)) {
+                       if (parent == w) {
+                               ewd_list_insert(realize_list, w);
+                               return;
+                       }
+               }
+
+               ewd_list_next(realize_list);
+       }
+
+       ewd_list_append(realize_list, w);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_misc.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- ewl_misc.h  7 Apr 2003 18:02:25 -0000       1.13
+++ ewl_misc.h  25 Aug 2003 19:40:42 -0000      1.14
@@ -13,5 +13,6 @@
 void            ewl_main_quit(void);
 void            ewl_configure_request(Ewl_Widget * w);
 void            ewl_configure_cancel_request(Ewl_Widget *w);
+void            ewl_realize_request(Ewl_Widget *w);
 
 #endif                         /* __EWL_MISC_H__ */
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_notebook.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- ewl_notebook.c      28 Jun 2003 06:50:32 -0000      1.28
+++ ewl_notebook.c      25 Aug 2003 19:40:42 -0000      1.29
@@ -605,7 +605,7 @@
                if (VISIBLE(n->tab_box))
                        ewl_object_set_preferred_w(EWL_OBJECT(c),
                                        PREFERRED_W(c) +
-                                       ewl_object_get_minimum_w(
+                                       ewl_object_get_preferred_w(
                                                EWL_OBJECT(n->tab_box)));
        }
        else {
@@ -619,7 +619,7 @@
                if (VISIBLE(n->tab_box))
                        ewl_object_set_preferred_h(EWL_OBJECT(c),
                                        PREFERRED_H(c) +
-                                       ewl_object_get_minimum_h(
+                                       ewl_object_get_preferred_w(
                                                EWL_OBJECT(n->tab_box)));
        }
 
@@ -650,7 +650,7 @@
                if (VISIBLE(n->tab_box))
                        ewl_object_set_preferred_w(EWL_OBJECT(c),
                                        PREFERRED_W(c) +
-                                       ewl_object_get_minimum_w(
+                                       ewl_object_get_preferred_w(
                                                EWL_OBJECT(n->tab_box)));
        }
        else {
@@ -664,7 +664,7 @@
                if (VISIBLE(n->tab_box))
                        ewl_object_set_preferred_h(EWL_OBJECT(c),
                                        PREFERRED_H(c) +
-                                       ewl_object_get_minimum_h(
+                                       ewl_object_get_preferred_w(
                                                EWL_OBJECT(n->tab_box)));
        }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_object.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- ewl_object.c        24 Jun 2003 05:09:58 -0000      1.38
+++ ewl_object.c        25 Aug 2003 19:40:42 -0000      1.39
@@ -191,8 +191,7 @@
        /*
         * Now update the widgets parent of the change in size.
         */
-       if (!(o->flags & EWL_FILL_POLICY_HSHRINK))
-               ewl_container_resize_child(EWL_WIDGET(o), new_size - old_size,
+       ewl_container_resize_child(EWL_WIDGET(o), new_size - old_size,
                                EWL_ORIENTATION_HORIZONTAL);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -230,8 +229,7 @@
        /*
         * Notify the parent widgets of the change in size.
         */
-       if (!(o->flags & EWL_FILL_POLICY_VSHRINK))
-               ewl_container_resize_child(EWL_WIDGET(o), new_size - old_size,
+       ewl_container_resize_child(EWL_WIDGET(o), new_size - old_size,
                                EWL_ORIENTATION_VERTICAL);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -826,17 +824,26 @@
  */
 void ewl_object_set_padding(Ewl_Object * o, int l, int r, int t, int b)
 {
+       int dh, dv;
+
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("o", o);
 
+       dh = (l - o->pad.l) + (r - o->pad.r);
+       dv = (t - o->pad.t) + (b - o->pad.t);
+
        o->pad.l = l;
        o->pad.r = r;
        o->pad.t = t;
        o->pad.b = b;
 
-       ewl_object_set_minimum_size(o, MINIMUM_W(o), MINIMUM_H(o));
-       ewl_object_set_maximum_size(o, MAXIMUM_W(o), MAXIMUM_H(o));
-       ewl_object_set_preferred_size(o, PREFERRED_W(o), PREFERRED_H(o));
+       /*
+        * Now update the widgets parent of the change in size.
+        */
+       ewl_container_resize_child(EWL_WIDGET(o), dh,
+                               EWL_ORIENTATION_HORIZONTAL);
+       ewl_container_resize_child(EWL_WIDGET(o), dv,
+                               EWL_ORIENTATION_VERTICAL);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_row.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- ewl_row.c   16 Jul 2003 20:31:20 -0000      1.12
+++ ewl_row.c   25 Aug 2003 19:40:42 -0000      1.13
@@ -192,14 +192,14 @@
        /*
         * Adjust the preferred height to the largest widget added.
         */
-       size = ewl_object_get_minimum_w(EWL_OBJECT(w));
-       if (!row->max || ewl_object_get_minimum_h(row->max) > size) {
+       size = ewl_object_get_preferred_w(EWL_OBJECT(w));
+       if (!row->max || ewl_object_get_preferred_w(row->max) > size) {
                row->max = EWL_OBJECT(w);
                ewl_object_set_preferred_h(EWL_OBJECT(c), size);
        }
 
        ewl_object_set_preferred_w(EWL_OBJECT(c), PREFERRED_W(c) +
-                       ewl_object_get_minimum_w(EWL_OBJECT(w)));
+                       ewl_object_get_preferred_w(EWL_OBJECT(w)));
 }
 
 static void
@@ -222,7 +222,7 @@
                         */
                        ewd_list_goto_first(c->children);
                        while ((child = ewd_list_next(c->children))) {
-                               h = ewl_object_get_minimum_h(child);
+                               h = ewl_object_get_preferred_h(child);
                                if (h > max_h) {
                                        max_h = h;
                                        row->max = child;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_scrollpane.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- ewl_scrollpane.c    24 Jun 2003 20:19:31 -0000      1.19
+++ ewl_scrollpane.c    25 Aug 2003 19:40:42 -0000      1.20
@@ -194,8 +194,8 @@
        /*
         * Get the space needed by the scrolbars.
         */
-       vs_width = ewl_object_get_minimum_w(EWL_OBJECT(s->vscrollbar));
-       hs_height = ewl_object_get_minimum_h(EWL_OBJECT(s->hscrollbar));
+       vs_width = ewl_object_get_preferred_w(EWL_OBJECT(s->vscrollbar));
+       hs_height = ewl_object_get_preferred_w(EWL_OBJECT(s->hscrollbar));
 
        /*
         * Determine the space used by the contents.
@@ -331,13 +331,13 @@
         */
        if (o == EWL_ORIENTATION_HORIZONTAL) {
                ewl_object_set_preferred_w(EWL_OBJECT(parent),
-                               ewl_object_get_minimum_w(EWL_OBJECT(s->box)) +
-                               ewl_object_get_minimum_w(EWL_OBJECT(s->vscrollbar)));
+                               ewl_object_get_preferred_w(EWL_OBJECT(s->box)) +
+                               ewl_object_get_preferred_h(EWL_OBJECT(s->vscrollbar)));
        }
        else
                ewl_object_set_preferred_h(EWL_OBJECT(parent),
-                               ewl_object_get_minimum_h(EWL_OBJECT(s->box)) +
-                               ewl_object_get_minimum_h(EWL_OBJECT(s->hscrollbar)));
+                               ewl_object_get_preferred_w(EWL_OBJECT(s->box)) +
+                               ewl_object_get_preferred_h(EWL_OBJECT(s->hscrollbar)));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_seeker.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- ewl_seeker.c        28 Jun 2003 06:50:32 -0000      1.40
+++ ewl_seeker.c        25 Aug 2003 19:40:42 -0000      1.41
@@ -1,7 +1,5 @@
 #include <Ewl.h>
 
-void            __ewl_seeker_realize(Ewl_Widget * w, void *ev_data,
-                                    void *user_data);
 void            __ewl_seeker_configure(Ewl_Widget * w, void *ev_data,
                                       void *user_data);
 void            __ewl_seeker_theme_update(Ewl_Widget * w, void *ev_data,
@@ -91,6 +89,7 @@
        s->dragbar = ewl_button_new(NULL);
        ewl_container_append_child(EWL_CONTAINER(s), s->dragbar);
        ewl_widget_set_appearance(EWL_WIDGET(s->dragbar), "dragbar");
+       ewl_widget_show(s->dragbar);
 
        /*
         * Set the starting orientation, range and values
@@ -103,8 +102,6 @@
        /*
         * Add necessary configuration callbacks
         */
-       ewl_callback_append(w, EWL_CALLBACK_REALIZE, __ewl_seeker_realize,
-                           NULL);
        ewl_callback_append(w, EWL_CALLBACK_CONFIGURE, __ewl_seeker_configure,
                            NULL);
        ewl_callback_append(w, EWL_CALLBACK_MOUSE_DOWN, __ewl_seeker_mouse_down,
@@ -311,22 +308,6 @@
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
-
-
-
-/*
- * Draw the representation of the seeker
- */
-void __ewl_seeker_realize(Ewl_Widget * w, void *ev_data, void *user_data)
-{
-       DENTER_FUNCTION(DLEVEL_STABLE);
-       DCHECK_PARAM_PTR("w", w);
-
-       ewl_widget_realize(EWL_SEEKER(w)->dragbar);
-
-       DLEAVE_FUNCTION(DLEVEL_STABLE);
-}
-
 
 /*
  * On a configure event we need to adjust the seeker to fit into it's new
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_selectionbar.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- ewl_selectionbar.c  13 Jul 2003 05:52:49 -0000      1.10
+++ ewl_selectionbar.c  25 Aug 2003 19:40:42 -0000      1.11
@@ -479,9 +479,9 @@
                        if (CURRENT_W(EWL_OBJECT(child)) < 2 ||
                            CURRENT_H(EWL_OBJECT(child)) < 2) {
                                ewl_object_request_size(EWL_OBJECT(child),
-                                                       ewl_object_get_minimum_w
+                                               ewl_object_get_preferred_w
                                                        (EWL_OBJECT(child)),
-                                                       ewl_object_get_minimum_h
+                                               ewl_object_get_preferred_h
                                                        (EWL_OBJECT(child)));
                        }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_spinner.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- ewl_spinner.c       28 Jun 2003 06:50:32 -0000      1.38
+++ ewl_spinner.c       25 Aug 2003 19:40:43 -0000      1.39
@@ -224,24 +224,23 @@
 
        if (w == s->entry) {
                ewl_object_set_preferred_w(EWL_OBJECT(c), PREFERRED_W(c) +
-                               ewl_object_get_minimum_w(EWL_OBJECT(w)));
+                               ewl_object_get_preferred_w(EWL_OBJECT(w)));
        }
        else if (s->button_increase && s->button_decrease) {
                ewl_object_set_preferred_w(EWL_OBJECT(c), PREFERRED_W(c) +
-                               MAX(ewl_object_get_minimum_w(EWL_OBJECT(
+                               MAX(ewl_object_get_preferred_w(EWL_OBJECT(
                                                        s->button_increase)),
-                                       ewl_object_get_minimum_w(EWL_OBJECT(
+                                       ewl_object_get_preferred_h(EWL_OBJECT(
                                                        s->button_decrease))));
        }
 
        if (s->entry && s->button_increase && s->button_decrease) {
                int size;
 
-               size = ewl_object_get_minimum_h(EWL_OBJECT(s->button_increase))
-                       + ewl_object_get_minimum_h(EWL_OBJECT(
-                                               s->button_decrease));
+               size = ewl_object_get_preferred_w(EWL_OBJECT(s->button_increase))
+                       + ewl_object_get_preferred_h(EWL_OBJECT(s->button_decrease));
                ewl_object_set_minimum_h(EWL_OBJECT(c),
-                       MAX(ewl_object_get_minimum_h(EWL_OBJECT(s->entry)),
+                       MAX(ewl_object_get_preferred_h(EWL_OBJECT(s->entry)),
                        size));
        }
 
@@ -262,19 +261,19 @@
                                        PREFERRED_W(c) + size);
                else if (s->button_increase && s->button_decrease) {
                        ewl_object_set_preferred_w(EWL_OBJECT(c),
-                               MAX(ewl_object_get_minimum_w(EWL_OBJECT(
+                               MAX(ewl_object_get_preferred_w(EWL_OBJECT(
                                                        s->button_increase)),
-                                       ewl_object_get_minimum_w(EWL_OBJECT(
+                                       ewl_object_get_preferred_w(EWL_OBJECT(
                                                        s->button_decrease))));
                }
        }
        else if (s->entry && s->button_increase && s->button_decrease) {
-               size = ewl_object_get_minimum_h(EWL_OBJECT(
+               size = ewl_object_get_preferred_h(EWL_OBJECT(
                                        s->button_increase)) +
-                       ewl_object_get_minimum_h(EWL_OBJECT(
+                       ewl_object_get_preferred_h(EWL_OBJECT(
                                                s->button_decrease));
                ewl_object_set_preferred_h(EWL_OBJECT(c),
-                       MAX(ewl_object_get_minimum_h(EWL_OBJECT(s->entry)),
+                       MAX(ewl_object_get_preferred_h(EWL_OBJECT(s->entry)),
                        size));
        }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_textarea.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- ewl_textarea.c      6 Aug 2003 03:14:23 -0000       1.12
+++ ewl_textarea.c      25 Aug 2003 19:40:43 -0000      1.13
@@ -206,13 +206,13 @@
                /*
                 * Set the default style
                 */
-               etox_context_set_style(ta->etox, style);
+               etox_context_set_style(etox_get_context(ta->etox), style);
                IF_FREE(style);
 
                /*
                 * Set the default color for the text.
                 */
-               etox_context_set_color(ta->etox, r, g, b, a);
+               etox_context_set_color(etox_get_context(ta->etox), r, g, b, a);
        }
 
        /*
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_tree.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- ewl_tree.c  5 Aug 2003 20:24:06 -0000       1.16
+++ ewl_tree.c  25 Aug 2003 19:40:43 -0000      1.17
@@ -477,12 +477,12 @@
 {
        int cw;
 
-       cw = ewl_object_get_minimum_w(EWL_OBJECT(w));
+       cw = ewl_object_get_preferred_w(EWL_OBJECT(w));
        if (cw > PREFERRED_W(c))
                ewl_object_set_preferred_w(EWL_OBJECT(c), cw);
 
        ewl_object_set_preferred_h(EWL_OBJECT(c), PREFERRED_H(c) +
-                       ewl_object_get_minimum_h(EWL_OBJECT(w)));
+                       ewl_object_get_preferred_h(EWL_OBJECT(w)));
 }
 
 static void
@@ -490,7 +490,7 @@
                Ewl_Orientation o)
 {
        if (o == EWL_ORIENTATION_HORIZONTAL) {
-               if (ewl_object_get_minimum_w(EWL_OBJECT(w)) > PREFERRED_W(c))
+               if (ewl_object_get_preferred_w(EWL_OBJECT(w)) > PREFERRED_W(c))
                        ewl_object_set_preferred_w(EWL_OBJECT(c),
                                        PREFERRED_W(c) + size);
                /* FIXME: Should we only grow this in order to reduce list
@@ -525,7 +525,7 @@
        y = CURRENT_Y(w);
        ewd_list_goto_first(c->children);
        while ((child = ewd_list_next(c->children))) {
-               h = ewl_object_get_minimum_h(child);
+               h = ewl_object_get_preferred_h(child);
                ewl_object_request_geometry(child, CURRENT_X(w), y,
                                CURRENT_W(w), h);
                y += h;
@@ -558,7 +558,7 @@
         * are lower nodes and rows.
         */
        ewl_object_request_geometry(child, CURRENT_X(w), CURRENT_Y(w),
-                       CURRENT_W(w), ewl_object_get_minimum_h(child));
+                       CURRENT_W(w), ewl_object_get_preferred_h(child));
        
        y = CURRENT_Y(w) + ewl_object_get_current_h(child);
        width = CURRENT_W(w) - CURRENT_X(w) + CURRENT_X(w);
@@ -568,7 +568,7 @@
         */
        while ((child = ewd_list_next(c->children))) {
                ewl_object_request_geometry(child, CURRENT_X(w), y, width,
-                               ewl_object_get_minimum_h(child));
+                               ewl_object_get_preferred_h(child));
                y += ewl_object_get_current_h(child);
        }
 
@@ -627,10 +627,10 @@
        if (node->expanded || w == node->row) {
                ewl_object_set_preferred_h(EWL_OBJECT(c),
                                PREFERRED_H(c) +
-                               ewl_object_get_minimum_h(EWL_OBJECT(w)));
+                               ewl_object_get_preferred_h(EWL_OBJECT(w)));
        }
 
-       width = ewl_object_get_minimum_w(EWL_OBJECT(w));
+       width = ewl_object_get_preferred_w(EWL_OBJECT(w));
        if (PREFERRED_W(c) < width)
                ewl_object_set_minimum_w(EWL_OBJECT(c), width);
 
@@ -650,10 +650,10 @@
        if (node->expanded || w == node->row) {
                ewl_object_set_preferred_h(EWL_OBJECT(c),
                                PREFERRED_H(c) -
-                               ewl_object_get_minimum_h(EWL_OBJECT(w)));
+                               ewl_object_get_preferred_h(EWL_OBJECT(w)));
        }
 
-       width = ewl_object_get_minimum_w(EWL_OBJECT(w));
+       width = ewl_object_get_preferred_w(EWL_OBJECT(w));
        if (PREFERRED_W(c) >= width)
                ewl_container_prefer_largest(c, EWL_ORIENTATION_HORIZONTAL);
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_widget.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -3 -r1.66 -r1.67
--- ewl_widget.c        6 Aug 2003 19:37:32 -0000       1.66
+++ ewl_widget.c        25 Aug 2003 19:40:43 -0000      1.67
@@ -172,19 +172,22 @@
  */
 void ewl_widget_show(Ewl_Widget * w)
 {
+       Ewl_Container *pc;
+
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("w", w);
 
-       if (HIDDEN(w) && w->parent && EWL_CONTAINER(w->parent)->child_add)
-               EWL_CONTAINER(w->parent)->child_add(EWL_CONTAINER(w->parent),
-                               w);
+       pc = EWL_CONTAINER(w->parent);
+       if (HIDDEN(w) && pc && pc->child_add)
+               pc->child_add(EWL_CONTAINER(w->parent), w);
 
        w->flags |= EWL_FLAGS_SHOWN;
 
-       if (w->parent && (REALIZED(w->parent) && !REALIZED(w)))
-               ewl_widget_realize(w);
 
-       ewl_callback_call(w, EWL_CALLBACK_SHOW);
+       if (REALIZED(w))
+               ewl_callback_call(w, EWL_CALLBACK_SHOW);
+       else
+               ewl_realize_request(w);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -199,12 +202,17 @@
  */
 void ewl_widget_hide(Ewl_Widget * w)
 {
+       Ewl_Container *pc;
+
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("w", w);
 
-       if (VISIBLE(w) && w->parent && EWL_CONTAINER(w->parent)->child_remove)
-               EWL_CONTAINER(w->parent)->child_remove(EWL_CONTAINER(w->parent),
-                               w);
+       if (HIDDEN(w))
+               DRETURN(DLEVEL_STABLE);
+
+       pc = EWL_CONTAINER(w->parent);
+       if (pc && pc->child_remove)
+               pc->child_remove(EWL_CONTAINER(w->parent), w);
 
        w->flags &= ~EWL_FLAGS_SHOWN;
 
@@ -891,7 +899,7 @@
        }
 
        if (REALIZED(pc) && VISIBLE(w) && !REALIZED(w))
-               ewl_widget_realize(w);
+               ewl_realize_request(w);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_widget.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- ewl_widget.h        16 Jul 2003 20:31:20 -0000      1.29
+++ ewl_widget.h        25 Aug 2003 19:40:43 -0000      1.30
@@ -1,10 +1,18 @@
 #ifndef __EWL_WIDGET_H__
 #define __EWL_WIDGET_H__
 
+/**
+ * @file ewl_widget.h
+ * Defines the widget class and it's accessor/modifier functions.
+ */
+
 typedef struct _ewl_widget Ewl_Widget;
 
 #define EWL_WIDGET(widget) ((Ewl_Widget *) widget)
 
+/**
+ * @struct Ewl_Widget
+ */
 struct _ewl_widget
 {
        /*
@@ -26,7 +34,7 @@
        char           *appearance;
        int             layer;
 
-       /*
+       /**
         * And these are for keeping track of the appearance, behavior
         * states of the widget and the data attached to the widget.
         */
@@ -34,7 +42,7 @@
        Ewd_Hash       *theme;
        Ewd_Hash       *data;
 
-       /*
+       /**
         * Flags for determining the current visibility of the widget as well
         * as if it has been realized
         */




-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to