Enlightenment CVS committal

Author  : moom
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_container.c etk_notebook.c etk_notebook.h etk_object.c 
        etk_table.h 


Log Message:
* [Object] Fix etk_object_notification_callback_remove()
* [Notebook] Fix the notebook to make it work with recent Etk_Container changes


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_container.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- etk_container.c     26 Mar 2007 21:12:33 -0000      1.17
+++ etk_container.c     30 Mar 2007 14:13:55 -0000      1.18
@@ -27,6 +27,7 @@
 static void _etk_container_property_set(Etk_Object *object, int property_id, 
Etk_Property_Value *value);
 static void _etk_container_property_get(Etk_Object *object, int property_id, 
Etk_Property_Value *value);
 static void _etk_container_child_added_cb(Etk_Object *object, Etk_Widget 
*child, void *data);
+static void _etk_container_child_removed_cb(Etk_Object *object, Etk_Widget 
*child, void *data);
 static void _etk_container_child_parent_changed_cb(Etk_Object *object, const 
char *property_name, void *data);
 
 static Etk_Signal *_etk_container_signals[ETK_CONTAINER_NUM_SIGNALS];
@@ -257,6 +258,7 @@
    container->border_width = 0;
    
    etk_signal_connect("child-added", ETK_OBJECT(container), 
ETK_CALLBACK(_etk_container_child_added_cb), NULL);
+   etk_signal_connect("child-removed", ETK_OBJECT(container), 
ETK_CALLBACK(_etk_container_child_removed_cb), NULL);
 }
 
 /* Destroys the container */
@@ -324,6 +326,17 @@
    
    etk_object_notification_callback_add(ETK_OBJECT(child), "parent",
          _etk_container_child_parent_changed_cb, container);
+}
+
+/* Called when a child is removed from the container */
+static void _etk_container_child_removed_cb(Etk_Object *object, Etk_Widget 
*child, void *data)
+{
+   Etk_Container *container;
+   
+   if (!(container = ETK_CONTAINER(object)) || !child)
+      return;
+   
+   etk_object_notification_callback_remove(ETK_OBJECT(child), "parent", 
_etk_container_child_parent_changed_cb);
 }
 
 /* Called when a child of the container is reparented */
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_notebook.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- etk_notebook.c      22 Mar 2007 19:36:52 -0000      1.35
+++ etk_notebook.c      30 Mar 2007 14:13:55 -0000      1.36
@@ -32,12 +32,12 @@
 static void _etk_notebook_size_allocate(Etk_Widget *widget, Etk_Geometry 
geometry);
 static void _etk_notebook_tab_bar_size_request(Etk_Widget *widget, Etk_Size 
*size);
 static void _etk_notebook_tab_bar_size_allocate(Etk_Widget *widget, 
Etk_Geometry geometry);
+static void _etk_notebook_frame_size_request(Etk_Widget *widget, Etk_Size 
*size);
+static void _etk_notebook_frame_size_allocate(Etk_Widget *widget, Etk_Geometry 
geometry);
 static void _etk_notebook_child_add(Etk_Container *container, Etk_Widget 
*widget);
 static void _etk_notebook_child_remove(Etk_Container *container, Etk_Widget 
*widget);
 static Evas_List *_etk_notebook_children_get(Etk_Container *container);
 
-static void _etk_notebook_frame_child_added_cb(Etk_Object *object, Etk_Widget 
*child, void *data);
-static void _etk_notebook_frame_child_removed_cb(Etk_Object *object, 
Etk_Widget *child, void *data);
 static void _etk_notebook_tab_toggled_cb(Etk_Object *object, void *data);
 static void _etk_notebook_tab_bar_focused_cb(Etk_Object *object, void *data);
 static void _etk_notebook_tab_bar_unfocused_cb(Etk_Object *object, void *data);
@@ -45,7 +45,7 @@
 static void _etk_notebook_tab_bar_mouse_wheel_cb(Etk_Object *object, 
Etk_Event_Mouse_Wheel *event, void *data);
 
 static void _etk_notebook_tab_bar_create(Etk_Notebook *notebook);
-static Etk_Notebook_Page *_etk_notebook_page_create(Etk_Notebook *notebook, 
const char *tab_label, Etk_Widget *page_child);
+static Etk_Notebook_Page *_etk_notebook_page_create(Etk_Notebook *notebook, 
Evas_List *after, const char *tab_label, Etk_Widget *child);
 static void _etk_notebook_page_switch(Etk_Notebook *notebook, 
Etk_Notebook_Page *page);
 
 static Etk_Signal *_etk_notebook_signals[ETK_NOTEBOOK_NUM_SIGNALS];
@@ -61,20 +61,20 @@
  * @brief Gets the type of an Etk_Notebook
  * @return Returns the type of an Etk_Notebook
  */
-Etk_Type *etk_notebook_type_get()
+Etk_Type *etk_notebook_type_get(void)
 {
    static Etk_Type *notebook_type = NULL;
 
    if (!notebook_type)
    {
       notebook_type = etk_type_new("Etk_Notebook", ETK_CONTAINER_TYPE, 
sizeof(Etk_Notebook),
-         ETK_CONSTRUCTOR(_etk_notebook_constructor), 
ETK_DESTRUCTOR(_etk_notebook_destructor));
+            ETK_CONSTRUCTOR(_etk_notebook_constructor), 
ETK_DESTRUCTOR(_etk_notebook_destructor));
    
       _etk_notebook_signals[ETK_NOTEBOOK_PAGE_CHANGED_SIGNAL] = 
etk_signal_new("current-page-changed",
-         notebook_type, -1, etk_marshaller_VOID__VOID, NULL, NULL);
+            notebook_type, -1, etk_marshaller_VOID__VOID, NULL, NULL);
       
       etk_type_property_add(notebook_type, "tabs-visible", 
ETK_NOTEBOOK_TABS_VISIBLE_PROPERTY,
-         ETK_PROPERTY_BOOL, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_bool(ETK_TRUE));
+            ETK_PROPERTY_BOOL, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_bool(ETK_TRUE));
       
       notebook_type->property_set = _etk_notebook_property_set;
       notebook_type->property_get = _etk_notebook_property_get;
@@ -87,7 +87,7 @@
  * @brief Creates a new notebook widget
  * @return Returns the new notebook
  */
-Etk_Widget *etk_notebook_new()
+Etk_Widget *etk_notebook_new(void)
 {
    return etk_widget_new(ETK_NOTEBOOK_TYPE, "theme-group", "notebook", NULL);
 }
@@ -106,9 +106,8 @@
    if (!notebook)
       return -1;
    
-   if (!(new_page = _etk_notebook_page_create(notebook, tab_label, 
page_child)))
+   if (!(new_page = _etk_notebook_page_create(notebook, NULL, tab_label, 
page_child)))
       return -1;
-   notebook->pages = evas_list_prepend(notebook->pages, new_page);
    return 0;
 }
 
@@ -122,13 +121,14 @@
 int etk_notebook_page_append(Etk_Notebook *notebook, const char *tab_label, 
Etk_Widget *page_child)
 {
    Etk_Notebook_Page *new_page;
+   Evas_List *after;
    
    if (!notebook)
       return -1;
    
-   if (!(new_page = _etk_notebook_page_create(notebook, tab_label, 
page_child)))
+   after = evas_list_last(notebook->pages);
+   if (!(new_page = _etk_notebook_page_create(notebook, after, tab_label, 
page_child)))
       return -1;
-   notebook->pages = evas_list_append(notebook->pages, new_page);
    return evas_list_count(notebook->pages) - 1;
 }
 
@@ -137,7 +137,7 @@
  * @param notebook a notebook
  * @param tab_label the text to set to the tab's label
  * @param page_child the child of the new page. This widget will be shown when 
the page is set as the current one
- * @param position the position (0 being the first) where the new page will be 
inserted. @n
+ * @param position the position (starting from 0) where the new page will be 
inserted. @n
  * If @a position <= 0, the page will be prepended.
  * If @a position >= etk_notebook_num_pages_get(notebook), the page will be 
appended.
  * @return Returns the position of the new page (i.e. @a position in this 
case), or -1 on failure
@@ -145,29 +145,30 @@
 int etk_notebook_page_insert(Etk_Notebook *notebook, const char *tab_label, 
Etk_Widget *page_child, int position)
 {
    Etk_Notebook_Page *new_page;
+   Evas_List *after;
    
    if (!notebook)
       return -1;
    
-   if (position < 0)
+   if (position <= 0)
       return etk_notebook_page_prepend(notebook, tab_label, page_child);
    else if (position >= etk_notebook_num_pages_get(notebook))
       return etk_notebook_page_append(notebook, tab_label, page_child);
    else
    {
-      if (!(new_page = _etk_notebook_page_create(notebook, tab_label, 
page_child)))
+      after = evas_list_nth(notebook->pages, position - 1);
+      if (!(new_page = _etk_notebook_page_create(notebook, after, tab_label, 
page_child)))
          return -1;
-      notebook->pages = evas_list_prepend_relative(notebook->pages, new_page, 
evas_list_nth(notebook->pages, position));
+      return position;
    }
-   return position;
 }
 
 /**
- * @brief Removes from the notebook the page corresponding to the index, after 
having unpacked the child of the page
+ * @brief Removes from the notebook the page corresponding to the index. The 
child of the widget will just be unpacked,
+ * not destroyed
  * @param notebook a notebook
- * @param page_num the index of the page to remove
- * @return Returns the child that was packed in the page, or NULL if the page 
had no child
- * @note This function does not destroy the child of the page, it just unpack 
it
+ * @param page_num the index of the page to remove (starting from 0)
+ * @return Returns the child that has been unpacked from the page, or NULL if 
the page had no child
  */
 Etk_Widget *etk_notebook_page_remove(Etk_Notebook *notebook, int page_num)
 {
@@ -179,8 +180,8 @@
       return NULL;
    
    page = l->data;
-   child = etk_bin_child_get(ETK_BIN(page->frame));
-   etk_bin_child_set(ETK_BIN(page->frame), NULL);
+   child = page->child;
+   etk_widget_parent_set(child, NULL);
    etk_object_destroy(ETK_OBJECT(page->frame));
    etk_object_destroy(ETK_OBJECT(page->tab));
    
@@ -197,7 +198,6 @@
    notebook->pages = evas_list_remove_list(notebook->pages, l);
    free(page);
    
-   
    if (notebook->current_page != new_current)
    {
       notebook->current_page = NULL;
@@ -207,6 +207,8 @@
          
etk_signal_emit(_etk_notebook_signals[ETK_NOTEBOOK_PAGE_CHANGED_SIGNAL], 
ETK_OBJECT(notebook), NULL);
    }
    
+   if (child)
+      etk_signal_emit_by_name("child-removed", ETK_OBJECT(notebook), NULL, 
child);
    etk_widget_size_recalc_queue(ETK_WIDGET(notebook));
    return child;
 }
@@ -259,9 +261,9 @@
 }
 
 /**
- * @brief Gets the index of the page containing the child widget
+ * @brief Gets the index of the page containing the specified widget
  * @param notebook a notebook
- * @param child the child widget of the page which we want to get the index of
+ * @param child the child widget of the page which you want to get the index of
  * @return Returns the index of the page or -1 if the page is not found
  */
 int etk_notebook_page_index_get(Etk_Notebook *notebook, Etk_Widget *child)
@@ -274,9 +276,9 @@
      return -1;
    
    for (l = notebook->pages, i = 0; l; l = l->next, i++)
-   {      
+   {
       page = l->data;
-      if (etk_bin_child_get(ETK_BIN(page->frame)) == child)
+      if (page->child == child)
          return i;
    }
    
@@ -328,7 +330,7 @@
 /**
  * @brief Sets the label of a tab of the notebook
  * @param notebook a notebook
- * @param page_num the index of the page you want to set the tab label of
+ * @param page_num the index of the page you want to set the tab-label of
  * @param tab_label the new label of the tab
  */
 void etk_notebook_page_tab_label_set(Etk_Notebook *notebook, int page_num, 
const char *tab_label)
@@ -336,7 +338,7 @@
    Etk_Notebook_Page *page;
    
    if (!notebook || !(page = evas_list_nth(notebook->pages, page_num)))
-      return;   
+      return;
    etk_button_label_set(ETK_BUTTON(page->tab), tab_label);
 }
 
@@ -351,15 +353,15 @@
    Etk_Notebook_Page *page;
 
    if (!notebook || !(page = evas_list_nth(notebook->pages, page_num)))
-     return NULL;      
+     return NULL;
    return etk_button_label_get(ETK_BUTTON(page->tab));
 }
 
 /**
- * @brief Sets the child of a tab of the notebook.
+ * @brief Sets the child of the tab of a notebook's page
  * For example, you can set a hbox containing an icon, a text label and a 
close button
  * @param notebook a notebook
- * @param page_num the index of the page you want to set the tab widget
+ * @param page_num the index of the page you want to set the tab-widget of
  * @param tab_widget the new widget to use as the child of the tab
  */
 void etk_notebook_page_tab_widget_set(Etk_Notebook *notebook, int page_num, 
Etk_Widget *tab_widget)
@@ -372,9 +374,9 @@
 }
 
 /**
- * @brief Gets the child of a tab of the notebook
+ * @brief Gets the child of the tab of a notebook's page
  * @param notebook a notebook
- * @param page_num the index of the page you want to get the tab widget
+ * @param page_num the index of the page you want to get the tab-widget of
  * @return Returns the child of the tab, or NULL on failure
  */
 Etk_Widget *etk_notebook_page_tab_widget_get(Etk_Notebook *notebook, int 
page_num)
@@ -389,7 +391,7 @@
 /**
  * @brief Sets the child of a page of the notebook. This widget will be shown 
when the page is set as the current one
  * @param notebook a notebook
- * @param page_num the number of the page that you want to set the child
+ * @param page_num the index of the page that you want to set the child of
  * @param child the new widget to display when the corresponding tab is 
activated
  */
 void etk_notebook_page_child_set(Etk_Notebook *notebook, int page_num, 
Etk_Widget *child)
@@ -398,13 +400,27 @@
    
    if (!notebook || !(page = evas_list_nth(notebook->pages, page_num)))
       return;
-   etk_bin_child_set(ETK_BIN(page->frame), child);
+   
+   if (page->child)
+   {
+      etk_signal_emit_by_name("child-removed", ETK_OBJECT(notebook), NULL, 
page->child);
+      etk_widget_parent_set(page->child, NULL);
+      page->child = NULL;
+   }
+   
+   if (child)
+   {
+      page->child = child;
+      etk_widget_parent_set(child, page->frame);
+      etk_signal_emit_by_name("child-added", ETK_OBJECT(notebook), NULL, 
child);
+   }
+   etk_widget_size_recalc_queue(ETK_WIDGET(notebook));
 }
 
 /**
  * @brief Gets the child of a page of the notebook
  * @param notebook a notebook
- * @param page_num the number of the page that you want to get the child
+ * @param page_num the index of the page that you want to get the child of
  * @return Returns the child of the corresponding page, or NULL on failure
  */
 Etk_Widget *etk_notebook_page_child_get(Etk_Notebook *notebook, int page_num)
@@ -413,13 +429,13 @@
    
    if (!notebook || !(page = evas_list_nth(notebook->pages, page_num)))
       return NULL;
-   return etk_bin_child_get(ETK_BIN(page->frame));
+   return page->child;
 }
 
 /**
- * @brief Sets whethet the tab bar should be visible or not
+ * @brief Sets whether the tab-bar of the notebook should be visible or not
  * @param notebook a notebook
- * @param tabs_visible if @a tabs_visible is ETK_FALSE, the tab bar will be 
hidden
+ * @param tabs_visible if @a tabs_visible is ETK_FALSE, the tab-bar will be 
hidden. Otherwise, it will be shown
  */
 void etk_notebook_tabs_visible_set(Etk_Notebook *notebook, Etk_Bool 
tabs_visible)
 {
@@ -445,7 +461,7 @@
 }
 
 /**
- * @brief Gets whether the tab bar is visible or not
+ * @brief Gets whether or not the tab-bar is visible
  * @param notebook a notebook
  * @return Returns ETK_TRUE if the tab bar is visible, ETK_FALSE otherwise
  */
@@ -612,7 +628,7 @@
    }
 }
 
-/* Resizes the notebook's tab bar to the allocated size */
+/* Resizes the notebook's tab-bar to the allocated size */
 static void _etk_notebook_tab_bar_size_allocate(Etk_Widget *widget, 
Etk_Geometry geometry)
 {
    Etk_Notebook *notebook;
@@ -646,12 +662,41 @@
    }
 }
 
+/* Calculates the ideal size of a notebook's page-frame */
+static void _etk_notebook_frame_size_request(Etk_Widget *widget, Etk_Size 
*size)
+{
+   Etk_Notebook_Page *page;
+   
+   if (!widget || !(page = etk_object_data_get(ETK_OBJECT(widget), 
"_Etk_Notebook::Page")) || !size)
+      return;
+   
+   if (page->child)
+      etk_widget_size_request(page->child, size);
+   else
+   {
+      size->w = 0;
+      size->h = 0;
+   }
+}
+
+/* Resizes the notebook's page-frame to the allocated size */
+static void _etk_notebook_frame_size_allocate(Etk_Widget *widget, Etk_Geometry 
geometry)
+{
+   Etk_Notebook_Page *page;
+   
+   if (!widget || !(page = etk_object_data_get(ETK_OBJECT(widget), 
"_Etk_Notebook::Page")))
+      return;
+   
+   if (page->child)
+      etk_widget_size_allocate(page->child, geometry);
+}
+
 /* Adds a child to the notebook */
 static void _etk_notebook_child_add(Etk_Container *container, Etk_Widget 
*widget)
 {
    if (!container || !widget)
       return;
-   etk_notebook_page_append(ETK_NOTEBOOK(container), _("Tab"), widget);
+   etk_notebook_page_append(ETK_NOTEBOOK(container), NULL, widget);
 }
 
 /* Removes a child from the notebook */
@@ -682,7 +727,7 @@
    for (l = notebook->pages; l; l = l->next)
    {
       page = l->data;
-      children = evas_list_append(children, 
etk_bin_child_get(ETK_BIN(page->frame)));
+      children = evas_list_append(children, page->child);
    }
    return children;
 }
@@ -693,26 +738,6 @@
  *
  **************************/
 
-/* Called when a child is added to a page frame */
-static void _etk_notebook_frame_child_added_cb(Etk_Object *object, Etk_Widget 
*child, void *data)
-{
-   Etk_Object *notebook;
-   
-   if (!(notebook = ETK_OBJECT(data)))
-      return;
-   etk_signal_emit_by_name("child-added", notebook, NULL, child);
-}
-
-/* Called when a child is removed from a page frame */
-static void _etk_notebook_frame_child_removed_cb(Etk_Object *object, 
Etk_Widget *child, void *data)
-{
-   Etk_Object *notebook;
-   
-   if (!(notebook = ETK_OBJECT(data)))
-      return;
-   etk_signal_emit_by_name("child-removed", notebook, NULL, child);
-}
-
 /* Called when a tab is toggled (activated or deactivated) */
 static void _etk_notebook_tab_toggled_cb(Etk_Object *object, void *data)
 {
@@ -824,36 +849,44 @@
 }
 
 /* Creates a new page for the notebook */
-static Etk_Notebook_Page *_etk_notebook_page_create(Etk_Notebook *notebook, 
const char *tab_label, Etk_Widget *page_child)
+static Etk_Notebook_Page *_etk_notebook_page_create(Etk_Notebook *notebook, 
Evas_List *after, const char *tab_label, Etk_Widget *child)
 {
-   Etk_Notebook_Page *new_page, *prev_page;
+   Etk_Notebook_Page *new_page, *p;
    
    if (!notebook)
       return NULL;
    
    new_page = malloc(sizeof(Etk_Notebook_Page));
-   prev_page = notebook->pages ? notebook->pages->data : NULL;
+   p = notebook->pages ? notebook->pages->data : NULL;
+   if (after)
+      notebook->pages = evas_list_append_relative_list(notebook->pages, 
new_page, after);
+   else
+      notebook->pages = evas_list_prepend(notebook->pages, new_page);
+   
    new_page->tab = etk_widget_new(ETK_RADIO_BUTTON_TYPE,
       "theme-group", "tab", "theme-parent", notebook, "label", tab_label, 
"repeat-mouse-events", ETK_TRUE,
-      "group", prev_page ? 
etk_radio_button_group_get(ETK_RADIO_BUTTON(prev_page->tab)) : NULL, NULL);
+      "group", p ? etk_radio_button_group_get(ETK_RADIO_BUTTON(p->tab)) : 
NULL, NULL);
    etk_object_data_set(ETK_OBJECT(new_page->tab), "_Etk_Notebook::Page", 
new_page);
    etk_widget_parent_set(new_page->tab, ETK_WIDGET(notebook->tab_bar));
    etk_widget_internal_set(new_page->tab, ETK_TRUE);
    etk_widget_show(new_page->tab);
    etk_signal_connect("toggled", ETK_OBJECT(new_page->tab), 
ETK_CALLBACK(_etk_notebook_tab_toggled_cb), notebook);
    
-   new_page->frame = etk_widget_new(ETK_BIN_TYPE, "theme-parent", notebook,
+   new_page->frame = etk_widget_new(ETK_WIDGET_TYPE, "theme-parent", notebook,
       "theme-group", notebook->tab_bar_visible ? "frame" : NULL, NULL);
+   etk_object_data_set(ETK_OBJECT(new_page->frame), "_Etk_Notebook::Page", 
new_page);
    etk_widget_parent_set(new_page->frame, ETK_WIDGET(notebook));
    etk_widget_internal_set(new_page->frame, ETK_TRUE);
    etk_widget_hide(new_page->frame);
+   new_page->frame->size_request = _etk_notebook_frame_size_request;
+   new_page->frame->size_allocate = _etk_notebook_frame_size_allocate;
    
-   etk_signal_connect("child-added", ETK_OBJECT(new_page->frame),
-      ETK_CALLBACK(_etk_notebook_frame_child_added_cb), notebook);
-   etk_signal_connect("child-removed", ETK_OBJECT(new_page->frame),
-      ETK_CALLBACK(_etk_notebook_frame_child_removed_cb), notebook);
-   
-   etk_bin_child_set(ETK_BIN(new_page->frame), page_child);
+   new_page->child = child;
+   if (child)
+   {
+      etk_widget_parent_set(child, new_page->frame);
+      etk_signal_emit_by_name("child-added", ETK_OBJECT(notebook), NULL, 
child);
+   }
    
    if (!notebook->current_page)
       _etk_notebook_page_switch(notebook, new_page);
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_notebook.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- etk_notebook.h      19 Aug 2006 19:18:03 -0000      1.19
+++ etk_notebook.h      30 Mar 2007 14:13:55 -0000      1.20
@@ -16,7 +16,7 @@
 /**
  * @defgroup Etk_Notebook Etk_Notebook
  * @brief The Etk_Notebook widget is a container that can contain several 
widgets in different pages
-  * accessible through tabs
+ * accessible through tabs
  * @{
  */
 
@@ -27,12 +27,18 @@
 /** Checks if the object is an Etk_Notebook */
 #define ETK_IS_NOTEBOOK(obj)    (ETK_OBJECT_CHECK_TYPE((obj), 
ETK_NOTEBOOK_TYPE))
 
-/** @brief A page of a notebook */
+
+/**
+ * @internal
+ * @brief A page of a notebook
+ * @structinfo
+ */
 typedef struct Etk_Notebook_Page
 {
    /* private: */
    Etk_Widget *tab;
    Etk_Widget *frame;
+   Etk_Widget *child;
 } Etk_Notebook_Page;
 
 /**
@@ -53,8 +59,9 @@
    Etk_Notebook_Page *current_page;
 };
 
-Etk_Type *etk_notebook_type_get();
-Etk_Widget *etk_notebook_new();
+
+Etk_Type   *etk_notebook_type_get(void);
+Etk_Widget *etk_notebook_new(void);
 
 int         etk_notebook_page_prepend(Etk_Notebook *notebook, const char 
*tab_label, Etk_Widget *page_child);
 int         etk_notebook_page_append(Etk_Notebook *notebook, const char 
*tab_label, Etk_Widget *page_child);
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_object.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- etk_object.c        22 Mar 2007 19:36:52 -0000      1.35
+++ etk_object.c        30 Mar 2007 14:13:55 -0000      1.36
@@ -646,7 +646,7 @@
  */
 void etk_object_notification_callback_remove(Etk_Object *object, const char 
*property_name, void (*callback)(Etk_Object *object, const char *property_name, 
void *data))
 {
-   Evas_List *l;
+   Evas_List *l, *next;
    Evas_List **list;
    Etk_Notification_Callback *remove_callback;
 
@@ -655,10 +655,10 @@
    if (!(list = evas_hash_find(object->notification_callbacks, property_name)))
       return;
 
-   for (l = *list; l; )
+   for (l = *list; l; l = next)
    {
       remove_callback = l->data;
-      l = l->next;
+      next = l->next;
       if (remove_callback->callback == callback)
       {
          /* If the object is calling the notification-callbacks, we can't 
remove the callback from the list, or it may
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_table.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- etk_table.h 25 Mar 2007 18:22:01 -0000      1.9
+++ etk_table.h 30 Mar 2007 14:13:55 -0000      1.10
@@ -24,9 +24,9 @@
  * in both directions or not at all */
 typedef enum Etk_Table_Homogeneous
 {
-   ETK_TABLE_NOT_HOMOGENEOUS = 0,       /** The table is not homogeneous: its 
cells could have different size */
-   ETK_TABLE_HHOMOGENEOUS = 1 << 0,     /** The table is homogeneous 
horizontally. all its cells have the same width */
-   ETK_TABLE_VHOMOGENEOUS = 1 << 1,     /** The table is homogeneous 
vertically. all its cells have the same height */
+   ETK_TABLE_NOT_HOMOGENEOUS = 0,       /**< The table is not homogeneous: its 
cells could have different size */
+   ETK_TABLE_HHOMOGENEOUS = 1 << 0,     /**< The table is homogeneous 
horizontally. all its cells have the same width */
+   ETK_TABLE_VHOMOGENEOUS = 1 << 1,     /**< The table is homogeneous 
vertically. all its cells have the same height */
    ETK_TABLE_HOMOGENEOUS = ETK_TABLE_HHOMOGENEOUS | ETK_TABLE_VHOMOGENEOUS   
/**< Equivalent to ETK_TABLE_HHOMOGENEOUS | ETK_TABLE_VHOMOGENEOUS */
 } Etk_Table_Homogeneous;
 



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to