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