Enlightenment CVS committal

Author  : moom16
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/lib


Modified Files:
        etk_button.c etk_canvas.c etk_check_button.c etk_entry.c 
        etk_frame.c etk_menu.c etk_paned.c etk_paned.h etk_widget.c 


Log Message:
* Improve the stacking of widgets
* Fix the menus
* Clean a bit the code
* Fix some small bugs


===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_button.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_button.c        11 Feb 2006 00:28:33 -0000      1.10
+++ etk_button.c        11 Feb 2006 14:21:13 -0000      1.11
@@ -367,7 +367,6 @@
 
    if (!(button = ETK_BUTTON(data)) || (child != ETK_WIDGET(button->image)))
       return;
-
    button->image = NULL;
    _etk_button_child_create(button);
 }
@@ -483,7 +482,6 @@
 
    if (button->image)
    {
-      printf("_etk_button_child_create with image: %p\n", button);
       if (!button->alignment)
       {
          button->alignment = etk_alignment_new(button->xalign, button->yalign, 
0.0, 0.0);
@@ -493,6 +491,7 @@
       etk_container_add(ETK_CONTAINER(button), button->alignment);
       etk_widget_show(button->alignment);
 
+      /* TODO: do we really need to destroy the hbox?? */ 
       if (button->hbox)
       {
          etk_container_remove(ETK_CONTAINER(button->hbox), 
ETK_WIDGET(button->image));
@@ -504,12 +503,11 @@
       etk_widget_pass_events_set(button->hbox, ETK_TRUE);
       etk_container_add(ETK_CONTAINER(button->alignment), button->hbox);
       etk_widget_show(button->hbox);
+      etk_signal_connect("child_removed", ETK_OBJECT(button->hbox), 
ETK_CALLBACK(_etk_button_image_removed_cb), button);
 
       etk_box_pack_start(ETK_BOX(button->hbox), ETK_WIDGET(button->image), 
ETK_FALSE, ETK_FALSE, 0);
       etk_widget_pass_events_set(ETK_WIDGET(button->image), ETK_TRUE);
       etk_widget_size_request_set(ETK_WIDGET(button->image), 16, 16);
-      /* TODO: destroy the image of the button ?
-      etk_signal_connect("remove", ETK_OBJECT(button->hbox), 
ETK_CALLBACK(_etk_button_image_removed_cb), button); */
       etk_widget_show(ETK_WIDGET(button->image));
 
       if (button->label)
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_canvas.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- etk_canvas.c        15 Jan 2006 11:07:16 -0000      1.7
+++ etk_canvas.c        11 Feb 2006 14:21:13 -0000      1.8
@@ -12,6 +12,7 @@
 static void _etk_canvas_constructor(Etk_Canvas *canvas);
 static void _etk_canvas_size_allocate(Etk_Widget *widget, Etk_Geometry 
geometry);
 static void _etk_canvas_realize_cb(Etk_Object *object, void *data);
+static void _etk_canvas_unrealize_cb(Etk_Object *object, void *data);
 
 /**************************
  *
@@ -28,9 +29,7 @@
    static Etk_Type *canvas_type = NULL;
 
    if (!canvas_type)
-   {
       canvas_type = etk_type_new("Etk_Canvas", ETK_WIDGET_TYPE, 
sizeof(Etk_Canvas), ETK_CONSTRUCTOR(_etk_canvas_constructor), NULL);
-   }
 
    return canvas_type;
 }
@@ -84,6 +83,7 @@
    canvas->clip = NULL;
    ETK_WIDGET(canvas)->size_allocate = _etk_canvas_size_allocate;
    etk_signal_connect("realize", ETK_OBJECT(canvas), 
ETK_CALLBACK(_etk_canvas_realize_cb), NULL);
+   etk_signal_connect("unrealize", ETK_OBJECT(canvas), 
ETK_CALLBACK(_etk_canvas_unrealize_cb), NULL);
 }
 
 /* Moves and resizes the clip of the canvas */
@@ -117,4 +117,16 @@
    etk_widget_clip_set(ETK_WIDGET(canvas), canvas->clip);
 }
 
+/* Called when the canvas is unrealized */
+static void _etk_canvas_unrealize_cb(Etk_Object *object, void *data)
+{
+   Etk_Canvas *canvas;
+   
+   if (!(canvas = ETK_CANVAS(object)))
+      return;
+   
+   etk_widget_clip_unset(ETK_WIDGET(canvas));
+   evas_object_del(canvas->clip);
+}
+
 /** @} */
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_check_button.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_check_button.c  15 Jan 2006 11:07:16 -0000      1.3
+++ etk_check_button.c  11 Feb 2006 14:21:13 -0000      1.4
@@ -22,9 +22,7 @@
    static Etk_Type *check_button_type = NULL;
 
    if (!check_button_type)
-   {
       check_button_type = etk_type_new("Etk_Check_Button", 
ETK_TOGGLE_BUTTON_TYPE, sizeof(Etk_Check_Button), NULL, NULL);
-   }
 
    return check_button_type;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_entry.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- etk_entry.c 15 Jan 2006 11:07:16 -0000      1.11
+++ etk_entry.c 11 Feb 2006 14:21:13 -0000      1.12
@@ -130,7 +130,6 @@
    entry->editable_object = etk_editable_text_object_add(evas);
    evas_object_show(entry->editable_object);
    etk_widget_theme_object_swallow(entry_widget, "text_area", 
entry->editable_object);
-   etk_widget_member_object_add(entry_widget, entry->editable_object);
 }
 
 /* Called when the entry is unrealized */
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_frame.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_frame.c 2 Dec 2005 21:57:55 -0000       1.3
+++ etk_frame.c 11 Feb 2006 14:21:13 -0000      1.4
@@ -124,7 +124,6 @@
 {
    if (!frame)
       return;
-
    free(frame->label);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_menu.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- etk_menu.c  11 Feb 2006 00:28:33 -0000      1.6
+++ etk_menu.c  11 Feb 2006 14:21:13 -0000      1.7
@@ -114,8 +114,8 @@
       _etk_menu_mouse_move_handler = 
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_MOVE, _etk_menu_mouse_move_cb, 
menu);
       ecore_x_window_show(_etk_menu_input_window);
       ecore_x_keyboard_grab(_etk_menu_input_window);
-      /* TODO: fixme pointer_grab!!
-      ecore_x_pointer_grab(_etk_menu_input_window); */
+      /* TODO: fixme pointer_grab!! */
+      ecore_x_pointer_grab(_etk_menu_input_window);
 
       _etk_menu_root_popup_timestamp = ecore_x_current_time_get();
       _etk_menu_root = menu;
@@ -160,8 +160,8 @@
    if (menu == _etk_menu_root)
    {
       ecore_x_keyboard_ungrab();
-      /* TODO: pointer grab, fixme!!
-      ecore_x_pointer_ungrab(); */
+      /* TODO: pointer grab, fixme!! */
+      ecore_x_pointer_ungrab();
       ecore_x_window_hide(_etk_menu_input_window);
       ecore_event_handler_del(_etk_menu_mouse_up_handler);
       ecore_event_handler_del(_etk_menu_mouse_move_handler);
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_paned.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- etk_paned.c 11 Feb 2006 00:28:33 -0000      1.6
+++ etk_paned.c 11 Feb 2006 14:21:13 -0000      1.7
@@ -25,15 +25,14 @@
 static void _etk_hpaned_size_allocate(Etk_Widget *widget, Etk_Geometry 
geometry);
 static void _etk_vpaned_size_allocate(Etk_Widget *widget, Etk_Geometry 
geometry);
 static void _etk_paned_child_add(Etk_Container *container, Etk_Widget *widget);
-static void _etk_paned_child_remove(Etk_Container *container, Etk_Widget 
*widget);;
+static void _etk_paned_child_remove(Etk_Container *container, Etk_Widget 
*widget);
+static Evas_List *_etk_paned_children_get(Etk_Container *container);
 
 static void _etk_paned_separator_mouse_in_cb(Etk_Object *object, 
Etk_Event_Mouse_In_Out *event, void *data);
 static void _etk_paned_separator_mouse_out_cb(Etk_Object *object, 
Etk_Event_Mouse_In_Out *event, void *data);
 static void _etk_paned_separator_mouse_up_cb(Etk_Object *object, 
Etk_Event_Mouse_Up_Down *event, void *data);
 static void _etk_paned_separator_mouse_down_cb(Etk_Object *object, 
Etk_Event_Mouse_Up_Down *event, void *data);
 static void _etk_paned_separator_mouse_move_cb(Etk_Object *object, 
Etk_Event_Mouse_Move *event, void *data);
-static void _etk_paned_child_realize_cb(Etk_Object *object, void *data);
-static void _etk_paned_child_removed_cb(Etk_Object *object, void 
*removed_child, void *data);
 
 static void _etk_hpaned_position_calc(Etk_Paned *paned);
 static void _etk_vpaned_position_calc(Etk_Paned *paned);
@@ -147,12 +146,11 @@
    paned->expand1 = expand;
    if (child)
    {
-      /* TODO: con_remove */
       if (child->parent && ETK_IS_CONTAINER(child->parent))
          etk_container_remove(ETK_CONTAINER(child->parent), child);
-
-      etk_signal_connect("realize", ETK_OBJECT(child), 
ETK_CALLBACK(_etk_paned_child_realize_cb), paned);
       etk_widget_parent_set(child, ETK_WIDGET(paned));
+      
+      etk_widget_raise(paned->separator);
    }
 }
 
@@ -175,9 +173,9 @@
    {
       if (child->parent && ETK_IS_CONTAINER(child))
          etk_container_remove(ETK_CONTAINER(child->parent), child);
-
-      etk_signal_connect("realize", ETK_OBJECT(child), 
ETK_CALLBACK(_etk_paned_child_realize_cb), paned);
       etk_widget_parent_set(child, ETK_WIDGET(paned));
+      
+      etk_widget_raise(paned->separator);
    }
 }
 
@@ -236,8 +234,7 @@
    paned->child2 = NULL;
    ETK_CONTAINER(paned)->child_add = _etk_paned_child_add;
    ETK_CONTAINER(paned)->child_remove = _etk_paned_child_remove;
-
-   etk_signal_connect("child_removed", ETK_OBJECT(paned), 
ETK_CALLBACK(_etk_paned_child_removed_cb), NULL);
+   ETK_CONTAINER(paned)->children_get = _etk_paned_children_get;
 }
 
 /* Initializes the default values of the hpaned */
@@ -460,6 +457,13 @@
    etk_widget_size_recalc_queue(ETK_WIDGET(paned));
 }
 
+/* Returns the children of the paned */
+static Evas_List *_etk_paned_children_get(Etk_Container *container)
+{
+   /* TODO: implement etk_paned_children_get */
+   return NULL;
+}
+
 /**************************
  *
  * Callbacks and handlers
@@ -535,23 +539,6 @@
    etk_widget_redraw_queue(ETK_WIDGET(paned));
 }
 
-/* Called when a child of the paned is realized */
-static void _etk_paned_child_realize_cb(Etk_Object *object, void *data)
-{
-   Etk_Paned *paned;
-   
-   if (!(paned = ETK_PANED(data)))
-      return;
-   /* TODO access to event_object to raise the paned separa */
-   etk_widget_member_object_raise(ETK_WIDGET(paned), 
paned->separator->event_object);
-}
-
-/* Called when a child of the paned is removed */
-static void _etk_paned_child_removed_cb(Etk_Object *object, void 
*removed_child, void *data)
-{
-   etk_signal_disconnect("realize", ETK_OBJECT(removed_child), 
ETK_CALLBACK(_etk_paned_child_realize_cb));
-}
-
 /**************************
  *
  * Private functions
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_paned.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_paned.h 19 Dec 2005 13:30:32 -0000      1.3
+++ etk_paned.h 11 Feb 2006 14:21:13 -0000      1.4
@@ -3,6 +3,7 @@
 #define _ETK_PANED_H_
 
 #include "etk_container.h"
+#include <Evas.h>
 #include "etk_types.h"
 
 /**
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_widget.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- etk_widget.c        11 Feb 2006 13:19:15 -0000      1.25
+++ etk_widget.c        11 Feb 2006 14:21:13 -0000      1.26
@@ -13,7 +13,6 @@
 #include "etk_marshallers.h"
 #include "etk_signal.h"
 #include "etk_signal_callback.h"
-#include "etk_dnd.h"
 
 /**
  * @addtogroup Etk_Widget
@@ -118,11 +117,8 @@
 static void _etk_widget_child_add(Etk_Widget *parent, Etk_Widget *child);
 static void _etk_widget_child_remove(Etk_Widget *parent, Etk_Widget *child);
 static void _etk_widget_object_add_to_smart(Etk_Widget *widget, Evas_Object 
*object);
-static void _etk_widget_object_remove_from_smart(Etk_Widget *widget, 
Evas_Object *object);
 
 static Evas_List *_etk_widget_member_object_find(Etk_Widget *widget, 
Evas_Object *object);
-static Evas_List *_etk_widget_child_object_find(Etk_Widget *widget, 
Evas_Object *object);
-
 static void _etk_widget_member_object_intercept_show_cb(void *data, 
Evas_Object *obj);
 static void _etk_widget_member_object_intercept_hide_cb(void *data, 
Evas_Object *obj);
 
@@ -718,27 +714,43 @@
 /**
  * @brief Raises a widget: it will be above all the other widgets that have 
the same parent
  * @param widget the widget to raise
- * @note It will have an effect only if the widget is realized
  */
-/* TODO: widget raise */
 void etk_widget_raise(Etk_Widget *widget)
 {
-   if (!widget || !widget->parent || !widget->event_object)
+   Evas_List *l;
+   
+   if (!widget || !widget->parent)
       return;
-   etk_widget_member_object_raise(widget->parent, widget->event_object);
+   
+   if ((l = evas_list_find_list(widget->parent->children, widget)))
+   {
+      widget->parent->children = 
evas_list_remove_list(widget->parent->children, l);
+      widget->parent->children = evas_list_append(widget->parent->children, 
widget);
+   }
+   
+   if (widget->event_object)
+      evas_object_raise(widget->event_object);
 }
 
 /**
  * @brief Lowers a widget: it will be below all the other widgets that have 
the same parent
  * @param widget the widget to lower
- * @note It will have an effect only if the widget is realized
  */
-/* TODO: widget lower */
 void etk_widget_lower(Etk_Widget *widget)
 {
-   if (!widget || !widget->parent || !widget->event_object)
+   Evas_List *l;
+   
+   if (!widget || !widget->parent)
       return;
-   etk_widget_member_object_lower(widget->parent, widget->event_object);
+   
+   if ((l = evas_list_find_list(widget->parent->children, widget)))
+   {
+      widget->parent->children = 
evas_list_remove_list(widget->parent->children, l);
+      widget->parent->children = evas_list_prepend(widget->parent->children, 
widget);
+   }
+   
+   if (widget->event_object)
+      evas_object_lower(widget->event_object);
 }
 
 /**
@@ -1282,13 +1294,12 @@
  * @param widget a widget
  * @param object the object to raise
  */
-/* TODO member raise */
 void etk_widget_member_object_raise(Etk_Widget *widget, Evas_Object *object)
 {
    if (!widget || !object)
       return;
 
-   if (_etk_widget_member_object_find(widget, object) || 
_etk_widget_child_object_find(widget, object))
+   if (_etk_widget_member_object_find(widget, object))
       evas_object_raise(object);
 }
 
@@ -1297,13 +1308,12 @@
  * @param widget a widget
  * @param object the object to lower
  */
-/* TODO member lower */
 void etk_widget_member_object_lower(Etk_Widget *widget, Evas_Object *object)
 {
    if (!widget || !object)
       return;
 
-   if (_etk_widget_member_object_find(widget, object) || 
_etk_widget_child_object_find(widget, object))
+   if (_etk_widget_member_object_find(widget, object))
       evas_object_lower(object);
 }
 
@@ -1313,14 +1323,12 @@
  * @param object the object to restack
  * @param above the object above which @a object will be stacked 
  */
-/* TODO member above */
 void etk_widget_member_object_stack_above(Etk_Widget *widget, Evas_Object 
*object, Evas_Object *above)
 {
    if (!widget || !above || (object == above))
       return;
 
-   if ((_etk_widget_member_object_find(widget, object) || 
_etk_widget_child_object_find(widget, object)) &&
-      (_etk_widget_member_object_find(widget, above) || 
_etk_widget_child_object_find(widget, above)))
+   if (_etk_widget_member_object_find(widget, object) && 
_etk_widget_member_object_find(widget, above))
       evas_object_stack_above(object, above);
 }
 
@@ -1330,14 +1338,12 @@
  * @param object the object to restack
  * @param below the object below which @a object will be stacked 
  */
-/* TODO member below */
 void etk_widget_member_object_stack_below(Etk_Widget *widget, Evas_Object 
*object, Evas_Object *below)
 {
    if (!widget || !below || (object == below))
       return;
    
-   if ((_etk_widget_member_object_find(widget, object) || 
_etk_widget_child_object_find(widget, object)) &&
-      (_etk_widget_member_object_find(widget, below) || 
_etk_widget_child_object_find(widget, below)))
+   if (_etk_widget_member_object_find(widget, object) && 
_etk_widget_member_object_find(widget, below))
       evas_object_stack_below(object, below);
 }
 
@@ -1600,6 +1606,8 @@
    for (i = 0; i < widget->dnd_files_num; i++)
       free(widget->dnd_files[i]);
    free(widget->dnd_files);
+   if (widget->accepts_dnd)
+      _etk_widget_dnd_widgets = evas_list_remove(_etk_widget_dnd_widgets, 
widget);
    
    free(widget->theme_file);
    free(widget->theme_group);
@@ -2230,24 +2238,6 @@
    return NULL;
 }
 
-/* Finds if an evas object is the event object of a child of the widget */
-static Evas_List *_etk_widget_child_object_find(Etk_Widget *widget, 
Evas_Object *object)
-{
-   Evas_List *l;
-   Etk_Widget *child;
-   
-   if (!widget || !object)
-      return NULL;
-   
-   for (l = widget->children; l; l = l->next)
-   {
-      child = ETK_WIDGET(l->data);
-      if (child->event_object == object)
-         return l;
-   }
-   return NULL;
-}
-
 /* Called when a member object requests to be shown. Shows it only if all the 
parents are visible */
 static void _etk_widget_member_object_intercept_show_cb(void *data, 
Evas_Object *obj)
 {




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to