Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_embed.c ewl_events.c ewl_misc.c ewl_widget.c ewl_window.c 


Log Message:
Minor changes towards better embedding support. Fixed some re-ordering
problems when containers moved an added child to one of their existing child
containers.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_embed.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- ewl_embed.c 5 Nov 2003 08:29:33 -0000       1.12
+++ ewl_embed.c 8 Nov 2003 08:07:11 -0000       1.13
@@ -23,10 +23,8 @@
 void __ewl_embed_smart_add(Evas_Object *obj);
 void __ewl_embed_smart_del(Evas_Object *obj);
 void __ewl_embed_smart_layer_set(Evas_Object *obj, int l);
-void __ewl_embed_smart_raise(Evas_Object *obj);
-void __ewl_embed_smart_lower(Evas_Object *obj);
-void __ewl_embed_smart_stack_above(Evas_Object *obj, Evas_Object *above);
-void __ewl_embed_smart_stack_below(Evas_Object *obj, Evas_Object *below);
+void __ewl_embed_smart_layer_adjust(Evas_Object *obj);
+void __ewl_embed_smart_layer_adjust_rel(Evas_Object *obj, Evas_Object *above);
 void __ewl_embed_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
 void __ewl_embed_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
 void __ewl_embed_smart_show(Evas_Object *obj);
@@ -143,9 +141,11 @@
        if (!embedded_smart) {
                embedded_smart = evas_smart_new(name, __ewl_embed_smart_add,
                        __ewl_embed_smart_del, __ewl_embed_smart_layer_set,
-                       __ewl_embed_smart_raise, __ewl_embed_smart_lower,
-                       __ewl_embed_smart_stack_above,
-                       __ewl_embed_smart_stack_below, __ewl_embed_smart_move,
+                       __ewl_embed_smart_layer_adjust,
+                       __ewl_embed_smart_layer_adjust,
+                       __ewl_embed_smart_layer_adjust_rel,
+                       __ewl_embed_smart_layer_adjust_rel,
+                       __ewl_embed_smart_move,
                        __ewl_embed_smart_resize, __ewl_embed_smart_show,
                        __ewl_embed_smart_hide, __ewl_embed_smart_color_set,
                        __ewl_embed_smart_clip_set,
@@ -441,55 +441,42 @@
 
 void __ewl_embed_smart_layer_set(Evas_Object *obj, int l)
 {
-       DENTER_FUNCTION(DLEVEL_STABLE);
-
-       /*
-        * FIXME: Need to relayer the EWL stuff, this will require some work.
-        */
-
-       DLEAVE_FUNCTION(DLEVEL_STABLE);
-}
+       Ewl_Embed *emb;
 
-void __ewl_embed_smart_raise(Evas_Object *obj)
-{
        DENTER_FUNCTION(DLEVEL_STABLE);
 
-       /*
-        * FIXME: Need to relayer the EWL stuff, this will require some work.
-        */
+       emb = evas_object_smart_data_get(obj);
+       ewl_widget_set_layer(EWL_WIDGET(emb), l);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
-void __ewl_embed_smart_lower(Evas_Object *obj)
+void __ewl_embed_smart_layer_adjust(Evas_Object *obj)
 {
-       DENTER_FUNCTION(DLEVEL_STABLE);
-
-       /*
-        * FIXME: Need to relayer the EWL stuff, this will require some work.
-        */
-
-       DLEAVE_FUNCTION(DLEVEL_STABLE);
-}
+       int l;
+       Ewl_Embed *emb;
 
-void __ewl_embed_smart_stack_above(Evas_Object *obj, Evas_Object *above)
-{
        DENTER_FUNCTION(DLEVEL_STABLE);
 
-       /*
-        * FIXME: Need to relayer the EWL stuff, this will require some work.
-        */
+       l = evas_object_layer_get(obj);
+
+       emb = evas_object_smart_data_get(obj);
+       ewl_widget_set_layer(EWL_WIDGET(emb), l);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
-void __ewl_embed_smart_stack_below(Evas_Object *obj, Evas_Object *below)
+void __ewl_embed_smart_layer_adjust_rel(Evas_Object *obj, Evas_Object *rel)
 {
+       int l;
+       Ewl_Embed *emb;
+
        DENTER_FUNCTION(DLEVEL_STABLE);
 
-       /*
-        * FIXME: Need to relayer the EWL stuff, this will require some work.
-        */
+       l = evas_object_layer_get(obj);
+
+       emb = evas_object_smart_data_get(obj);
+       ewl_widget_set_layer(EWL_WIDGET(emb), l);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_events.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- ewl_events.c        29 Sep 2003 21:46:50 -0000      1.39
+++ ewl_events.c        8 Nov 2003 08:07:11 -0000       1.40
@@ -136,7 +136,6 @@
        ev = _ev;
 
        window = ewl_window_find_window(ev->win);
-
        if (!window)
                DRETURN_INT(TRUE, DLEVEL_STABLE);
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_misc.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -3 -r1.49 -r1.50
--- ewl_misc.c  5 Nov 2003 06:29:14 -0000       1.49
+++ ewl_misc.c  8 Nov 2003 08:07:11 -0000       1.50
@@ -466,34 +466,39 @@
  */
 void ewl_realize_request(Ewl_Widget *w)
 {
-       Ewl_Widget *search;
-
        DENTER_FUNCTION(DLEVEL_STABLE);
 
        if (ewl_object_has_queued(EWL_OBJECT(w), EWL_FLAG_QUEUED_RSCHEDULED))
                DRETURN(DLEVEL_STABLE);
 
+       if (!ewl_object_get_flags(EWL_OBJECT(w), EWL_FLAG_PROPERTY_TOPLEVEL)) {
+               if (w->parent && !REALIZED(w->parent))
+                       DRETURN(DLEVEL_STABLE);
+       }
+
        ewl_object_add_queued(EWL_OBJECT(w), EWL_FLAG_QUEUED_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;
+       ewd_list_append(realize_list, w);
+}
 
-               parent = search;
-               while ((parent = parent->parent)) {
-                       if (parent == w) {
-                               ewd_list_insert(realize_list, w);
+void ewl_child_add_place(Ewl_Widget *w)
+{
+       if (ewl_object_get_flags(EWL_OBJECT(w), EWL_FLAG_PROPERTY_TOPLEVEL))
+               ewd_list_append(child_add_list, w);
+       else {
+               Ewl_Widget *p;
+
+               ewd_list_goto_first(child_add_list);
+               while ((p = ewd_list_current(child_add_list))) {
+                       if (ewl_container_parent_of(p, w)) {
+                               ewd_list_insert(child_add_list, w);
                                DRETURN(DLEVEL_STABLE);
                        }
+                       else
+                               ewd_list_next(child_add_list);
                }
-
-               ewd_list_next(realize_list);
        }
-
-       ewd_list_append(realize_list, w);
+       ewd_list_prepend(child_add_list, w);
 }
 
 void ewl_realize_queue()
@@ -514,8 +519,10 @@
                        ewl_object_remove_queued(EWL_OBJECT(w),
                                        EWL_FLAG_QUEUED_RSCHEDULED);
                        ewl_widget_realize(EWL_WIDGET(w));
-                       ewd_list_prepend(child_add_list, w);
+
                }
+
+               ewl_child_add_place(w);
        }
 
        /*
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_widget.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -3 -r1.82 -r1.83
--- ewl_widget.c        28 Oct 2003 05:05:20 -0000      1.82
+++ ewl_widget.c        8 Nov 2003 08:07:11 -0000       1.83
@@ -35,10 +35,8 @@
                                     void *user_data);
 void            __ewl_widget_child_destroy(Ewl_Widget * w, void *ev_data,
                                                void *user_data);
-/* FIXME: Enable with Edje
 static void     __ewl_widget_mouse_move(Ewl_Widget * w, void *ev_data,
                                     void *user_data);
- */
 
 void __ewl_widget_get_theme_padding(Ewl_Widget *w, int *l, int *r, int *t,
                int *b);
@@ -103,11 +101,8 @@
                            NULL);
        ewl_callback_append(w, EWL_CALLBACK_MOUSE_UP, __ewl_widget_mouse_up,
                            NULL);
-       /*
-        * FIXME: Enable this when edje themes are used
        ewl_callback_append(w, EWL_CALLBACK_MOUSE_MOVE, __ewl_widget_mouse_move,
                            NULL);
-        */
 
        ewl_widget_set_appearance(w, appearance);
 
@@ -1128,6 +1123,14 @@
                ewl_callback_call(w, EWL_CALLBACK_CLICKED);
        } else
                ewl_widget_set_state(w, "normal");
+}
+
+static void
+__ewl_widget_mouse_move(Ewl_Widget *w, void *ev_data, void *user_data)
+{
+       if (w->theme_object) {
+               edje_object_signal_emit(w->theme_object, "mouse,move", "EWL");
+       }
 }
 
 void
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_window.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -3 -r1.62 -r1.63
--- ewl_window.c        5 Nov 2003 08:29:33 -0000       1.62
+++ ewl_window.c        8 Nov 2003 08:07:11 -0000       1.63
@@ -195,7 +195,6 @@
        ewl_embed_init(EWL_EMBED(w));
        ewl_widget_set_appearance(EWL_WIDGET(w), "window");
        ewl_object_set_fill_policy(EWL_OBJECT(w), EWL_FLAG_FILL_FILL);
-
        w->title = strdup("EWL!");
 
        ewl_callback_prepend(EWL_WIDGET(w), EWL_CALLBACK_REALIZE,
@@ -216,6 +215,8 @@
                             __ewl_window_configure, NULL);
 
        LAYER(w) = -1000;
+       ewd_list_append(ewl_window_list, w);
+
        ewd_list_append(ewl_window_list, w);
 
        DRETURN_INT(TRUE, DLEVEL_STABLE);




-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to