Enlightenment CVS committal

Author  : pfritz
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_embed.c ewl_embed.h ewl_enums.h ewl_window.c ewl_window.h 


Log Message:
- rename Ewl_Embed_Evas_Window to Ewl_Embed_Window (API break)
- add ewl_window_transient_for_foreign()

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_embed.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -3 -r1.109 -r1.110
--- ewl_embed.c 6 Feb 2007 13:42:17 -0000       1.109
+++ ewl_embed.c 7 Feb 2007 04:03:27 -0000       1.110
@@ -198,7 +198,7 @@
  * through standard evas functions.
  */
 Evas_Object *
-ewl_embed_evas_set(Ewl_Embed *emb, Evas *evas, Ewl_Embed_Evas_Window 
*evas_window)
+ewl_embed_evas_set(Ewl_Embed *emb, Evas *evas, Ewl_Embed_Window *evas_window)
 {
        Ewl_Widget *w;
        Ecore_List *paths;
@@ -1107,7 +1107,7 @@
  * @brief Find an ewl embed by its evas window
  */
 Ewl_Embed *
-ewl_embed_evas_window_find(Ewl_Embed_Evas_Window *window)
+ewl_embed_evas_window_find(Ewl_Embed_Window *window)
 {
        Ewl_Embed *retemb;
 
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_embed.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- ewl_embed.h 4 Jan 2007 05:09:47 -0000       1.40
+++ ewl_embed.h 7 Feb 2007 04:03:27 -0000       1.41
@@ -33,7 +33,7 @@
 /**
 * Typedef and abstract out embedded evas windows
 */
-typedef void *Ewl_Embed_Evas_Window;
+typedef void *Ewl_Embed_Window;
 
 /**
  * @def EWL_EMBED(widget)
@@ -42,10 +42,10 @@
 #define EWL_EMBED(widget) ((Ewl_Embed *) widget)
 
 /**
-* @def EWL_EMBED_EVAS_WINDOW(window)
-* @brief Typecast a pointer to an Evas_Window
+* @def EWL_EMBED_WINDOW(window)
+* @brief Typecast a pointer to an evas window
 */
-#define EWL_EMBED_EVAS_WINDOW(window) ((Ewl_Embed_Evas_Window *)window)
+#define EWL_EMBED_WINDOW(window) ((Ewl_Embed_Window *)window)
 
 /**
  * @brief The class inheriting from Ewl_Container that acts as a top level
@@ -93,7 +93,7 @@
 const char     *ewl_embed_engine_name_get(Ewl_Embed *embed);
 void            ewl_embed_shutdown(void);
 Evas_Object    *ewl_embed_evas_set(Ewl_Embed *emb, Evas *evas,
-                                  Ewl_Embed_Evas_Window *evas_window);
+                                       Ewl_Embed_Window *evas_window);
 
 void            ewl_embed_focus_set(Ewl_Embed *embed, int f);
 int             ewl_embed_focus_get(Ewl_Embed *embed);
@@ -129,7 +129,7 @@
                                           int z, int dir, unsigned int mods);
 
 void            ewl_embed_font_path_add(char *path);
-Ewl_Embed      *ewl_embed_evas_window_find(Ewl_Embed_Evas_Window *win);
+Ewl_Embed      *ewl_embed_evas_window_find(Ewl_Embed_Window *win);
 Ewl_Embed      *ewl_embed_widget_find(Ewl_Widget *w);
 void            ewl_embed_object_cache(Ewl_Embed *e, Evas_Object *obj);
 Evas_Object    *ewl_embed_object_request(Ewl_Embed *e, char *type);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_enums.h,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -3 -r1.69 -r1.70
--- ewl_enums.h 4 Jan 2007 05:09:47 -0000       1.69
+++ ewl_enums.h 7 Feb 2007 04:03:27 -0000       1.70
@@ -254,7 +254,9 @@
        EWL_WINDOW_OVERRIDE = 0x10,             /**< Window override setting */
        EWL_WINDOW_FULLSCREEN = 0x20,           /**< Window is fullscreen */
        EWL_WINDOW_DIALOG = 0x40,               /**< Window has no max and min 
buttons */
-       EWL_WINDOW_MODAL = 0x80                 /**< Window is modal */
+       EWL_WINDOW_MODAL = 0x80,                /**< Window is modal */
+       EWL_WINDOW_TRANSIENT = 0x100,           /**< Window is transient for */
+       EWL_WINDOW_TRANSIENT_FOREIGN = 0x200    /**< Window is transient for */
 };
 
 /**
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_window.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- ewl_window.c        6 Feb 2007 13:42:17 -0000       1.70
+++ ewl_window.c        7 Feb 2007 04:03:27 -0000       1.71
@@ -418,9 +418,22 @@
        DCHECK_PARAM_PTR("win", win);
        DCHECK_TYPE("win", win, EWL_WINDOW_TYPE);
 
-       win->transient = forwin;
+       win->transient.ewl = forwin;
+       win->flags &= ~EWL_WINDOW_TRANSIENT_FOREIGN;
 
-       if (forwin && win->window) {
+       /* if there is no forwin remove the transient for state
+        * and update the window, if it already exists */
+       if (!forwin) {
+               win->flags &= ~EWL_WINDOW_TRANSIENT;
+               if (win->window)
+                       ewl_engine_window_transient_for(win);
+
+               DRETURN(DLEVEL_STABLE);
+       }
+
+       win->flags |= EWL_WINDOW_TRANSIENT;
+
+       if (win->window) {
                if (forwin->window)
                        ewl_engine_window_transient_for(win);
                else
@@ -429,7 +442,28 @@
                                            ewl_window_cb_realize_transient,
                                            win);
        }
-       else if (win->window) 
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+/**
+ * @param win: window to set transient
+ * @param forwin: the window to be transient for
+ * @return Returns no value.
+ * @brief Sets a window to be transient for another window.
+ */
+void
+ewl_window_transient_for_foreign(Ewl_Window *win, Ewl_Embed_Window *forwin)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("win", win);
+       DCHECK_TYPE("win", win, EWL_WINDOW_TYPE);
+
+       win->transient.foreign = forwin;
+       win->flags |= EWL_WINDOW_TRANSIENT_FOREIGN;
+       win->flags &= ~EWL_WINDOW_TRANSIENT;
+
+       if (win->window) 
                ewl_engine_window_transient_for(win);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -678,9 +712,12 @@
        DCHECK_PARAM_PTR("w", w);
        DCHECK_TYPE("w", w, EWL_WIDGET_TYPE);
 
-       if (EWL_WINDOW(w)->transient)
+       if (EWL_WINDOW(w)->flags & EWL_WINDOW_TRANSIENT)
                ewl_window_transient_for(EWL_WINDOW(w),
-                                        EWL_WINDOW(w)->transient);
+                                        EWL_WINDOW(w)->transient.ewl);
+       else if (EWL_WINDOW(w)->flags & EWL_WINDOW_TRANSIENT_FOREIGN)
+               ewl_window_transient_for_foreign(EWL_WINDOW(w),
+                                        EWL_WINDOW(w)->transient.foreign);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -708,7 +745,7 @@
        /*
         * Make sure the window is still transient for the realized window.
         */
-       if (EWL_WIDGET(win->transient) == w)
+       if (EWL_WIDGET(win->transient.ewl) == w)
                ewl_window_transient_for(win, EWL_WINDOW(w));
 
        /*
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_window.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- ewl_window.h        4 Jan 2007 05:09:48 -0000       1.27
+++ ewl_window.h        7 Feb 2007 04:03:27 -0000       1.28
@@ -45,7 +45,10 @@
        Ewl_Embed embed; /**< Inherits from the Ewl_Embed class */
 
        void *window; /**< Provides a window for drawing */
-       Ewl_Window *transient; /**< Window to be transient for */
+       union {
+               Ewl_Window *ewl;                
+               Ewl_Embed_Window *foreign;
+       } transient; /**< Window to be transient for */
 
        char *title; /**< The current title on the provided window */
        char *name; /**< Current name on the provided window */
@@ -73,6 +76,8 @@
 void            ewl_window_raise(Ewl_Window *win);
 void            ewl_window_lower(Ewl_Window *win);
 void            ewl_window_transient_for(Ewl_Window *win, Ewl_Window *forwin);
+void            ewl_window_transient_for_foreign(Ewl_Window *win, 
+                                                   Ewl_Embed_Window *forwin);
 void            ewl_window_modal_for(Ewl_Window *win, Ewl_Window *forwin);
 void            ewl_window_keyboard_grab_set(Ewl_Window *win, int grab);
 int             ewl_window_keyboard_grab_get(Ewl_Window *win);



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to