Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_box.c ewl_container.c ewl_container.h ewl_filedialog.h 
        ewl_fileselector.c ewl_fileselector.h ewl_floater.c 
        ewl_floater.h ewl_grid.h ewl_imenu.c ewl_menu_base.c 
        ewl_notebook.c ewl_notebook.h ewl_row.h ewl_selectionbar.h 
        ewl_selectionbook.h ewl_spectrum.h ewl_table.h ewl_text.h 
        ewl_textarea.h ewl_theme.c ewl_tooltip.h ewl_tree.c ewl_tree.h 
        ewl_widget.c ewl_window.h 


Log Message:
A variety of documentation, possible segv, and miscellaneous flailing fixes.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_box.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- ewl_box.c   3 Jan 2004 21:23:11 -0000       1.60
+++ ewl_box.c   14 Jan 2004 20:42:54 -0000      1.61
@@ -717,9 +717,6 @@
 
        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
         * orientation.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_container.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -3 -r1.57 -r1.58
--- ewl_container.c     3 Jan 2004 21:23:11 -0000       1.57
+++ ewl_container.c     14 Jan 2004 20:42:54 -0000      1.58
@@ -257,8 +257,11 @@
         * If the child isn't found, then this isn't it's parent.
         */
        if (!temp) {
+               /* FIXME: Test to see if this is correct. It doesn't seem that
+                * it should be.
                if (pc->clip_box)
                        evas_object_hide(pc->clip_box);
+                       */
                DRETURN(DLEVEL_STABLE);
        }
 
@@ -271,6 +274,8 @@
        if (ewd_list_is_empty(pc->children) && pc->clip_box)
                evas_object_hide(pc->clip_box);
 
+       ewl_widget_configure(EWL_WIDGET(pc));
+
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
@@ -285,18 +290,21 @@
 {
        int             old_w, old_h;
        int             new_w, new_h;
+       Ewl_Container  *c;
 
        DCHECK_PARAM_PTR("w", w);
 
        if (!size || ewl_in_realize_phase() || !REALIZED(w))
                DRETURN(DLEVEL_STABLE);
 
+       c = EWL_CONTAINER(w->parent);
+
        /*
         * 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
         * child resizes.
         */
-       if (HIDDEN(w) || !w->parent || !EWL_CONTAINER(w->parent)->child_resize)
+       if (HIDDEN(w) || !c || !c->child_resize)
                DRETURN(DLEVEL_STABLE);
 
        /*
@@ -309,8 +317,7 @@
         * Run the parents child resize function to allow it to update it's
         * preferred size.
         */
-       EWL_CONTAINER(w->parent)->child_resize(EWL_CONTAINER(w->parent),
-                       w, size, o);
+       c->child_resize(c, w, size, o);
 
        /*
         * Get the new preferred size of the parent to see if it changed.
@@ -322,10 +329,10 @@
         * The parent will only end up on the configure queue if it didn't
         * change size (ie. it's parent isn't on the configure queue).
         */
-       if (w->parent->parent)
-               ewl_widget_configure(w->parent->parent);
+       if (EWL_WIDGET(c)->parent)
+               ewl_widget_configure(EWL_WIDGET(c)->parent);
        else
-               ewl_widget_configure(w->parent);
+               ewl_widget_configure(EWL_WIDGET(c));
 }
 
 /**
@@ -606,6 +613,8 @@
        if (c->child_add && VISIBLE(w) && REALIZED(w))
                c->child_add(c, w);
 
+       ewl_widget_configure(EWL_WIDGET(c));
+
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_container.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- ewl_container.h     3 Jan 2004 21:23:11 -0000       1.29
+++ ewl_container.h     14 Jan 2004 20:42:54 -0000      1.30
@@ -52,6 +52,7 @@
 {
        Ewl_Widget       widget; /**< Inherit the basics of the widget. */
        Ewd_List        *children; /**< List of children that are contained. */
+       Ewd_List        *hidden; /**< Invisible children that are contained. */
        Evas_Object     *clip_box; /**< Clip box to bound widgets inside. */
        Ewl_Child_Add    child_add; /**< Function called on child add */
        Ewl_Child_Add    child_remove; /**< Function called on child remove */
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_filedialog.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- ewl_filedialog.h    3 Jan 2004 21:23:11 -0000       1.8
+++ ewl_filedialog.h    14 Jan 2004 20:42:54 -0000      1.9
@@ -7,6 +7,11 @@
  */
 
 /**
+ * @themekey /filedialog/file
+ * @themekey /filedialog/group
+ */
+
+/**
  * The Ewl_Filedialog provides a filedialog
  */
 typedef struct Ewl_Filedialog Ewl_Filedialog;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_fileselector.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- ewl_fileselector.c  7 Jan 2004 17:04:58 -0000       1.30
+++ ewl_fileselector.c  14 Jan 2004 20:42:54 -0000      1.31
@@ -92,6 +92,7 @@
        w = EWL_WIDGET(fs);
 
        ewl_box_init(EWL_BOX(w), EWL_ORIENTATION_HORIZONTAL);
+       ewl_widget_set_appearance(w, "fileselector");
        ewl_box_set_homogeneous(EWL_BOX(w), TRUE);
        ewl_object_set_fill_policy(EWL_OBJECT(w), EWL_FLAG_FILL_SHRINK |
                                                  EWL_FLAG_FILL_FILL);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_fileselector.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- ewl_fileselector.h  16 Dec 2003 00:22:59 -0000      1.13
+++ ewl_fileselector.h  14 Jan 2004 20:42:54 -0000      1.14
@@ -7,6 +7,11 @@
  */
 
 /**
+ * @themekey /fileselector/file
+ * @themekey /fileselector/group
+ */
+
+/**
  * The Ewl_Fileselector_Row provides data for a single row
  */
 typedef struct _ewl_fileselector_row Ewl_Fileselector_Row;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_floater.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- ewl_floater.c       19 Nov 2003 20:18:34 -0000      1.15
+++ ewl_floater.c       14 Jan 2004 20:42:54 -0000      1.16
@@ -21,7 +21,6 @@
 
        ewl_floater_init(EWL_FLOATER(f), parent);
 
-
        DRETURN_PTR(EWL_WIDGET(f), DLEVEL_STABLE);
 }
 
@@ -60,6 +59,8 @@
         */
        ewl_callback_append(EWL_WIDGET(f->follows), EWL_CALLBACK_CONFIGURE,
                            ewl_floater_parent_configure_cb, w);
+       ewl_callback_append(EWL_WIDGET(f), EWL_CALLBACK_DESTROY,
+                           ewl_floater_parent_destroy_cb, w);
 
        f->x = CURRENT_X(EWL_OBJECT(parent));
        f->y = CURRENT_Y(EWL_OBJECT(parent));
@@ -117,8 +118,9 @@
         * Remove the callback attached to the configure event for the
         * followed widget.
         */
-       ewl_callback_del(f->follows, EWL_CALLBACK_CONFIGURE,
-                        ewl_floater_parent_configure_cb);
+       if (f->follows)
+               ewl_callback_del(f->follows, EWL_CALLBACK_CONFIGURE,
+                                ewl_floater_parent_configure_cb);
 
        /*
         * Set the widget that the floater follows.
@@ -189,3 +191,13 @@
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
+
+void
+ewl_floater_parent_destroy_cb(Ewl_Widget * w, void *ev_data, void *user_data)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       EWL_FLOATER(w)->follows = NULL;
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_floater.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- ewl_floater.h       19 Nov 2003 20:18:34 -0000      1.8
+++ ewl_floater.h       14 Jan 2004 20:42:54 -0000      1.9
@@ -50,6 +50,8 @@
  */
 void ewl_floater_parent_configure_cb(Ewl_Widget * w, void *ev_data,
                                     void *user_data);
+void ewl_floater_parent_destroy_cb(Ewl_Widget * w, void *ev_data,
+                                  void *user_data);
 void ewl_floater_reparent_cb(Ewl_Widget * parent, void *ev_data,
                             void *user_data);
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_grid.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ewl_grid.h  3 Jan 2004 21:23:11 -0000       1.5
+++ ewl_grid.h  14 Jan 2004 20:42:54 -0000      1.6
@@ -1,6 +1,11 @@
 #ifndef __EWL_GRID_H__
 #define __EWL_GRID_H__
 
+/*
+ * @themekey /grid/file
+ * @themekey /grid/group
+ */
+
 typedef struct Ewl_Grid_Info Ewl_Grid_Info;
 
 struct Ewl_Grid_Info
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_imenu.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- ewl_imenu.c 19 Nov 2003 20:18:34 -0000      1.14
+++ ewl_imenu.c 14 Jan 2004 20:42:54 -0000      1.15
@@ -44,6 +44,18 @@
        ewl_callback_prepend(EWL_WIDGET(menu), EWL_CALLBACK_SELECT,
                            ewl_imenu_expand_cb, NULL);
 
+       /*
+        * Create the popup menu portion of the widget.
+        */
+       menu->base.popup = ewl_floater_new(EWL_WIDGET(menu));
+       ewl_widget_set_appearance(EWL_WIDGET(menu->base.popup), "imenu");
+       ewl_box_set_orientation(EWL_BOX(menu->base.popup),
+                               EWL_ORIENTATION_VERTICAL);
+       ewl_object_set_fill_policy(EWL_OBJECT(menu->base.popup),
+                                  EWL_FLAG_FILL_NONE);
+       ewl_object_set_alignment(EWL_OBJECT(menu->base.popup),
+                                EWL_FLAG_ALIGN_LEFT | EWL_FLAG_ALIGN_TOP);
+
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
@@ -57,51 +69,25 @@
 
        menu = EWL_IMENU(w);
 
-       /*
-        * Create the popup menu portion of the menu. Do this prior to
-        * initializing the rest of the fields to avoid the add callback being
-        * called.
-        */
-       menu->base.popup = ewl_floater_new(EWL_WIDGET(menu));
-       ewl_callback_append(menu->base.popup, EWL_CALLBACK_DESTROY,
-                       ewl_imenu_floater_destroy_cb, menu);
-       ewl_widget_set_appearance(EWL_WIDGET(menu->base.popup), "imenu");
-       ewl_box_set_orientation(EWL_BOX(menu->base.popup),
-                       EWL_ORIENTATION_VERTICAL);
-       ewl_object_set_fill_policy(EWL_OBJECT(menu->base.popup),
-                                  EWL_FLAG_FILL_NONE);
-       ewl_object_set_alignment(EWL_OBJECT(menu->base.popup),
-                                EWL_FLAG_ALIGN_LEFT | EWL_FLAG_ALIGN_TOP);
-
-       emb = ewl_embed_find_by_widget(w);
-       ewl_container_append_child(EWL_CONTAINER(emb), menu->base.popup); 
+       if (!REALIZED(menu->base.popup)) {
+               emb = ewl_embed_find_by_widget(w);
+               ewl_container_append_child(EWL_CONTAINER(emb),
+                                          menu->base.popup); 
+       }
 
        /*
         * Position the popup menu relative to the menu.
         */
-       if (EWL_MENU_ITEM(w)->submenu)
+       if (EWL_MENU_ITEM(w)->submenu) {
                ewl_floater_set_position(EWL_FLOATER(menu->base.popup),
                                         CURRENT_W(w), 0);
+       }
        else {
                ewl_floater_set_position(EWL_FLOATER(menu->base.popup), 0,
                                         CURRENT_H(w));
-               ewl_object_set_minimum_w(EWL_OBJECT(menu->base.popup),
-                                            CURRENT_W(menu));
        }
 
-       ewl_callback_del(w, EWL_CALLBACK_SELECT, ewl_imenu_expand_cb);
-
-       DLEAVE_FUNCTION(DLEVEL_STABLE);
-}
-
-void ewl_imenu_floater_destroy_cb(Ewl_Widget * w, void *ev_data, void *user_data)
-{
-       Ewl_IMenu *menu = user_data;
-
-       DENTER_FUNCTION(DLEVEL_STABLE);
-
-       if (menu->base.popup == w)
-               menu->base.popup = NULL;
+       ewl_widget_show(menu->base.popup);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_menu_base.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- ewl_menu_base.c     3 Jan 2004 21:23:11 -0000       1.22
+++ ewl_menu_base.c     14 Jan 2004 20:42:54 -0000      1.23
@@ -266,6 +266,10 @@
        ewl_container_append_child(EWL_CONTAINER(menu->popup), menu->popbox);
        ewl_widget_show(menu->popup);
 
+       if (EWL_MENU_ITEM(w)->submenu)
+               ewl_object_set_minimum_w(EWL_OBJECT(menu->popup),
+                                        CURRENT_W(menu));
+
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
@@ -292,7 +296,8 @@
 
        menu = EWL_MENU_BASE(w);
 
-       ewl_widget_destroy(menu->popup);
+       if (menu->popup)
+               ewl_widget_destroy(menu->popup);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_notebook.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -3 -r1.42 -r1.43
--- ewl_notebook.c      3 Jan 2004 21:23:11 -0000       1.42
+++ ewl_notebook.c      14 Jan 2004 20:42:54 -0000      1.43
@@ -577,7 +577,9 @@
        i = 0;
        ewd_list_goto_first(c->children);
        while ((child = ewd_list_next(c->children))) {
-               if (child != n->tab_box) {
+               if (child != n->tab_box &&
+                               ewl_object_get_flags(EWL_OBJECT(child),
+                                               EWL_FLAG_QUEUED_DSCHEDULED)) {
                        if (i == t)
                                break;
                        i++;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_notebook.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- ewl_notebook.h      3 Jan 2004 21:23:11 -0000       1.18
+++ ewl_notebook.h      14 Jan 2004 20:42:54 -0000      1.19
@@ -1,6 +1,11 @@
 #ifndef __EWL_NOTEBOOK_H__
 #define __EWL_NOTEBOOK_H__
 
+/*
+ * @themekey /notebook/file
+ * @themekey /notebook/group
+ */
+
 typedef struct Ewl_Notebook Ewl_Notebook;
 
 #define EWL_NOTEBOOK(notebook) ((Ewl_Notebook *) notebook)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_row.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- ewl_row.h   9 Dec 2003 21:24:03 -0000       1.13
+++ ewl_row.h   14 Jan 2004 20:42:54 -0000      1.14
@@ -5,6 +5,11 @@
 #define EWL_ROW(t) ((Ewl_Row *)t)
 
 /*
+ * @themekey /row/file
+ * @themekey /row/group
+ */
+
+/*
  * Tree rows layout cells in a left to right fashion.
  */
 struct _ewl_row
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_selectionbar.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ewl_selectionbar.h  19 Nov 2003 20:18:35 -0000      1.5
+++ ewl_selectionbar.h  14 Jan 2004 20:42:54 -0000      1.6
@@ -2,6 +2,11 @@
 #ifndef __EWL_SELECTIONBAR_H__
 #define __EWL_SELECTIONBAR_H__
 
+/*
+ * @themekey /selectionbar/file
+ * @themekey /selectionbar/group
+ */
+
 typedef struct _ewl_selectionbar Ewl_Selectionbar;
 
 #define EWL_SELECTIONBAR(selectionbar) ((Ewl_Selectionbar *) selectionbar)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_selectionbook.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ewl_selectionbook.h 25 Nov 2003 07:47:29 -0000      1.4
+++ ewl_selectionbook.h 14 Jan 2004 20:42:54 -0000      1.5
@@ -3,6 +3,11 @@
 #define __EWL_SELECTIONBOOK_H__
 
 
+/*
+ * @themekey /selectionbook/file
+ * @themekey /selectionbook/group
+ */
+
 typedef struct _ewl_sbook_page Ewl_SbookPage;
 
 #define EWL_SBOOKPAGE(sbook_page) ((Ewl_SbookPage *) sbook_page)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_spectrum.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ewl_spectrum.h      25 Nov 2003 07:47:29 -0000      1.3
+++ ewl_spectrum.h      14 Jan 2004 20:42:54 -0000      1.4
@@ -1,6 +1,11 @@
 #ifndef _EWL_SPECTRUM_H
 #define _EWL_SPECTRUM_H
 
+/*
+ * @themekey /spectrum/file
+ * @themekey /spectrum/group
+ */
+
 enum {
        PICK_MODE_RGB_RED,
        PICK_MODE_RGB_GREEN,
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_table.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- ewl_table.h 19 Nov 2003 20:18:36 -0000      1.16
+++ ewl_table.h 14 Jan 2004 20:42:54 -0000      1.17
@@ -2,6 +2,11 @@
 #ifndef __EWL_TABLE_H__
 #define __EWL_TABLE_H__
 
+/*
+ * @themekey /table/file
+ * @themekey /table/group
+ */
+
 typedef struct Ewl_Table Ewl_Table;
 
 #define EWL_TABLE(table) ((Ewl_Table *)table)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_text.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- ewl_text.h  19 Nov 2003 20:18:36 -0000      1.27
+++ ewl_text.h  14 Jan 2004 20:42:54 -0000      1.28
@@ -10,6 +10,11 @@
  */
 
 /**
+ * @themekey /text/file
+ * @themekey /text/group
+ */
+
+/**
  * Inherits from the Ewl_Widget and provides single line text display.
  */
 typedef struct Ewl_Text Ewl_Text;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_textarea.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ewl_textarea.h      19 Nov 2003 20:18:36 -0000      1.9
+++ ewl_textarea.h      14 Jan 2004 20:42:54 -0000      1.10
@@ -10,6 +10,11 @@
  */
 
 /**
+ * @themekey /textarea/file
+ * @themekey /textarea/group
+ */
+
+/**
  * Provides for layout of text across multiple lines, as well as formatting
  * portions of the text in different ways, and wrapping around obstacles.
  */
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_theme.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -3 -r1.50 -r1.51
--- ewl_theme.c 3 Jan 2004 21:23:11 -0000       1.50
+++ ewl_theme.c 14 Jan 2004 20:42:54 -0000      1.51
@@ -58,7 +58,7 @@
 
        snprintf(theme_path, PATH_MAX, "%s/.e/ewl/themes/%s", home, theme_name);
 
-       if (((stat(theme_path, &st)) == 0) || S_ISDIR(st.st_mode)) {
+       if (((stat(theme_path, &st)) == 0) && S_ISDIR(st.st_mode)) {
                snprintf(theme_db_path, PATH_MAX, "%s/theme.db", theme_path);
 
                theme_db = e_db_open_read(theme_db_path);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_tooltip.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ewl_tooltip.h       30 Dec 2003 18:05:22 -0000      1.4
+++ ewl_tooltip.h       14 Jan 2004 20:42:54 -0000      1.5
@@ -1,6 +1,11 @@
 #ifndef __EWL_TOOLTIP_H__
 #define __EWL_TOOLTIP_H__
 
+/*
+ * @themekey /tooltip/file
+ * @themekey /tooltip/group
+ */
+
 typedef struct _ewl_tooltip Ewl_Tooltip;
 
 #define EWL_TOOLTIP(tt) ((Ewl_Tooltip *) tt)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_tree.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- ewl_tree.c  10 Dec 2003 01:24:07 -0000      1.31
+++ ewl_tree.c  14 Jan 2004 20:42:54 -0000      1.32
@@ -1,18 +1,5 @@
 #include "Ewl.h"
 
-void ewl_tree_node_configure_cb(Ewl_Widget * w, void *ev_data,
-                            void *user_data);
-void ewl_tree_node_clicked_cb(Ewl_Widget * w, void *ev_data,
-                          void *user_data);
-
-void ewl_tree_node_add_cb(Ewl_Container *c, Ewl_Widget *w);
-void ewl_tree_node_remove_cb(Ewl_Container *c, Ewl_Widget *w);
-void ewl_tree_node_resize_cb(Ewl_Container *c, Ewl_Widget *w, int size,
-                            Ewl_Orientation o);
-
-
-void ewl_tree_row_select_cb(Ewl_Widget *w, void *ev_data, void *user_data);
-
 /**
  * @param columns: the number of columns to display
  * @return Returns NULL on failure, a new tree widget on success.
@@ -171,6 +158,7 @@
        ewl_widget_show(row);
 
        EWL_TREE_NODE(node)->tree = tree;
+       EWL_TREE_NODE(node)->row = row;
        ewl_container_append_child(EWL_CONTAINER(node), row);
 
        /*
@@ -436,10 +424,9 @@
                DRETURN(DLEVEL_STABLE);
 
        ewd_list_goto_first(EWL_CONTAINER(node)->children);
-       ewd_list_next(EWL_CONTAINER(node)->children);
-
        while ((w = ewd_list_next(EWL_CONTAINER(node)->children))) {
-               ewl_widget_hide(w);
+               if (w != node->row)
+                       ewl_widget_hide(w);
        }
 
        node->expanded = EWL_TREE_NODE_COLLAPSED;
@@ -470,10 +457,10 @@
                DRETURN(DLEVEL_STABLE);
 
        ewd_list_goto_first(EWL_CONTAINER(node)->children);
-       ewd_list_next(EWL_CONTAINER(node)->children);
-
-       while ((w = ewd_list_next(EWL_CONTAINER(node)->children)))
-               ewl_widget_show(w);
+       while ((w = ewd_list_next(EWL_CONTAINER(node)->children))) {
+               if (w != node->row)
+                       ewl_widget_show(w);
+       }
 
        ewl_widget_set_state(EWL_WIDGET(node), "expanded");
 
@@ -580,11 +567,8 @@
 
        node = EWL_TREE_NODE(c);
 
-       if (node->expanded || w == node->row) {
-               ewl_object_set_preferred_h(EWL_OBJECT(c),
-                               PREFERRED_H(c) -
+       ewl_object_set_preferred_h(EWL_OBJECT(c), PREFERRED_H(c) -
                                ewl_object_get_preferred_h(EWL_OBJECT(w)));
-       }
 
        width = ewl_object_get_preferred_w(EWL_OBJECT(w));
        if (PREFERRED_W(c) >= width)
@@ -603,14 +587,12 @@
 
        node = EWL_TREE_NODE(c);
 
-       if (node->expanded || (w == ewd_list_goto_first(c->children))) {
-               if (o == EWL_ORIENTATION_HORIZONTAL)
-                       ewl_object_set_preferred_w(EWL_OBJECT(c),
-                                       PREFERRED_W(c) + size);
-               else
-                       ewl_object_set_preferred_h(EWL_OBJECT(c),
-                                       PREFERRED_H(c) + size);
-       }
+       if (o == EWL_ORIENTATION_HORIZONTAL)
+               ewl_object_set_preferred_w(EWL_OBJECT(c),
+                                          PREFERRED_W(c) + size);
+       else
+               ewl_object_set_preferred_h(EWL_OBJECT(c),
+                                          PREFERRED_H(c) + size);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_tree.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- ewl_tree.h  25 Nov 2003 07:47:29 -0000      1.16
+++ ewl_tree.h  14 Jan 2004 20:42:54 -0000      1.17
@@ -9,6 +9,11 @@
  * @{
  */
 
+/**
+ * @themekey /tree/file
+ * @themekey /tree/group
+ */
+
 typedef struct Ewl_Tree Ewl_Tree;
 
 /**
@@ -84,6 +89,22 @@
 void ewl_tree_set_row_expand(Ewl_Row *row, Ewl_Tree_Node_Flags expanded);
 Ewl_Row *ewl_tree_find_row(Ewl_Tree *tree, int row);
 
+/*
+ * Internally used callbacks, override at your own risk.
+ */
+void ewl_tree_node_configure_cb(Ewl_Widget * w, void *ev_data,
+                            void *user_data);
+void ewl_tree_node_clicked_cb(Ewl_Widget * w, void *ev_data,
+                          void *user_data);
+
+void ewl_tree_node_add_cb(Ewl_Container *c, Ewl_Widget *w);
+void ewl_tree_node_remove_cb(Ewl_Container *c, Ewl_Widget *w);
+void ewl_tree_node_resize_cb(Ewl_Container *c, Ewl_Widget *w, int size,
+                            Ewl_Orientation o);
+
+
+void ewl_tree_row_select_cb(Ewl_Widget *w, void *ev_data, void *user_data);
+
 /**
  * @}
  */
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_widget.c,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -3 -r1.95 -r1.96
--- ewl_widget.c        3 Jan 2004 21:23:11 -0000       1.95
+++ ewl_widget.c        14 Jan 2004 20:42:54 -0000      1.96
@@ -525,10 +525,9 @@
                                ewl_realize_request(w);
                        }
                }
-       }
 
-       if (p)
                ewl_widget_configure(p);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -1102,7 +1101,6 @@
         * First find it's parent embed so we can destroy the evas objects.
         */
        emb = ewl_embed_find_by_widget(w);
-       ewl_embed_remove_tab_order(emb, w);
 
        /*
         * Destroy the clip box used for fx.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_window.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- ewl_window.h        30 Dec 2003 18:05:22 -0000      1.26
+++ ewl_window.h        14 Jan 2004 20:42:54 -0000      1.27
@@ -11,6 +11,11 @@
  */
 
 /**
+ * @themekey /window/file
+ * @themekey /window/group
+ */
+
+/**
  * The window structure is mostly a container for holding widgets and a
  * wrapper around the xlib window.
  */




-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to