Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_evas


Modified Files:
        Ecore_Evas.h ecore_evas_private.h ecore_evas_x.c 


Log Message:


extra ecore_x and ecore_evas features for e17.. :)

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Ecore_Evas.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- Ecore_Evas.h        22 Oct 2004 03:41:48 -0000      1.5
+++ Ecore_Evas.h        23 Nov 2004 15:17:53 -0000      1.6
@@ -58,9 +58,15 @@
 /* engine/target specific init calls */
 Ecore_Evas     *ecore_evas_software_x11_new(const char *disp_name, 
Ecore_X_Window parent, int x, int y, int w, int h);
 Ecore_X_Window  ecore_evas_software_x11_window_get(Ecore_Evas *ee);
+Ecore_X_Window  ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee);
+void            ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int 
on);
+int             ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee);
    
 Ecore_Evas     *ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window 
parent, int x, int y, int w, int h);
 Ecore_X_Window  ecore_evas_gl_x11_window_get(Ecore_Evas *ee);
+Ecore_X_Window  ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee);
+void            ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on);
+int             ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee);
 
 Ecore_Evas     *ecore_evas_fb_new(char *disp_name, int rotation, int w, int h);
 
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_private.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ecore_evas_private.h        20 Oct 2004 17:51:29 -0000      1.7
+++ ecore_evas_private.h        23 Nov 2004 15:17:54 -0000      1.8
@@ -85,6 +85,7 @@
       Ecore_X_Pixmap mask;
       Ecore_X_GC     gc;
       Region         damages;
+      unsigned char  direct_resize : 1;
    } x;
 #endif   
 #ifdef BUILD_ECORE_EVAS_FB
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_x.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- ecore_evas_x.c      19 Nov 2004 08:25:04 -0000      1.28
+++ ecore_evas_x.c      23 Nov 2004 15:17:54 -0000      1.29
@@ -356,7 +356,7 @@
        ee->w = e->w;
        ee->h = e->h;
        if (e->win == ee->engine.x.win_container)
-         ecore_x_window_resize(ee->engine.x.win, ee->w, ee->h);
+         ecore_x_window_move_resize(ee->engine.x.win, 0, 0, ee->w, ee->h);
        if ((ee->rotation == 90) || (ee->rotation == 270))
          {
             evas_output_size_set(ee->evas, ee->h, ee->w);
@@ -618,12 +618,70 @@
 _ecore_evas_resize(Ecore_Evas *ee, int w, int h)
 {
    ecore_x_window_resize(ee->engine.x.win_container, w, h);
+   if (ee->engine.x.direct_resize)
+     {
+       ecore_x_window_move_resize(ee->engine.x.win, 0, 0, w, h);
+       if ((ee->w != w) || (ee->h != h))
+         {
+            ee->w = w;
+            ee->h = h;
+            if ((ee->rotation == 90) || (ee->rotation == 270))
+              {
+                 evas_output_size_set(ee->evas, ee->h, ee->w);
+                 evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+              }
+            else
+              {
+                 evas_output_size_set(ee->evas, ee->w, ee->h);
+                 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+              }
+            if (ee->prop.avoid_damage)
+              {
+                 ecore_evas_avoid_damage_set(ee, 0);
+                 ecore_evas_avoid_damage_set(ee, 1);
+              }
+            if (ee->shaped)
+              {
+                 ecore_evas_shaped_set(ee, 0);
+                 ecore_evas_shaped_set(ee, 1);
+              }
+         }
+     }
 }
 
 static void
 _ecore_evas_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
 {
    ecore_x_window_move_resize(ee->engine.x.win_container, x, y, w, h);
+   if (ee->engine.x.direct_resize)
+     {
+       ecore_x_window_move_resize(ee->engine.x.win, 0, 0, w, h);
+       if ((ee->w != w) || (ee->h != h))
+         {
+            ee->w = w;
+            ee->h = h;
+            if ((ee->rotation == 90) || (ee->rotation == 270))
+              {
+                 evas_output_size_set(ee->evas, ee->h, ee->w);
+                 evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+              }
+            else
+              {
+                 evas_output_size_set(ee->evas, ee->w, ee->h);
+                 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+              }
+            if (ee->prop.avoid_damage)
+              {
+                 ecore_evas_avoid_damage_set(ee, 0);
+                 ecore_evas_avoid_damage_set(ee, 1);
+              }
+            if (ee->shaped)
+              {
+                 ecore_evas_shaped_set(ee, 0);
+                 ecore_evas_shaped_set(ee, 1);
+              }
+         }
+     }
 }
 
 static void
@@ -965,7 +1023,7 @@
        int rw, rh;
        
        ecore_x_window_size_get(0, &rw, &rh);
-       ecore_x_window_resize(ee->engine.x.win, rw, rh);
+       ecore_x_window_move_resize(ee->engine.x.win, 0, 0, rw, rh);
        ecore_x_window_reparent(ee->engine.x.win, 0, 0, 0);
        ecore_x_window_raise(ee->engine.x.win);
        ecore_x_window_show(ee->engine.x.win);
@@ -988,13 +1046,13 @@
        
        ecore_x_window_size_get(ee->engine.x.win_container, &pw, &ph);
        ecore_x_window_reparent(ee->engine.x.win, ee->engine.x.win_container, 
0, 0);
-       ecore_x_window_resize(ee->engine.x.win, pw, ph);
+       ecore_x_window_move_resize(ee->engine.x.win, 0, 0, pw, ph);
        ecore_x_window_shape_mask_set(ee->engine.x.win, 0);
        if (ee->should_be_visible) 
ecore_x_window_show(ee->engine.x.win_container);
        ee->w = pw;
        ee->h = ph;
      }
-   ecore_x_window_resize(ee->engine.x.win, ee->w, ee->h);
+   ecore_x_window_move_resize(ee->engine.x.win, 0, 0, ee->w, ee->h);
    if ((ee->rotation == 90) || (ee->rotation == 270))
      {
        evas_output_size_set(ee->evas, ee->h, ee->w);
@@ -1250,6 +1308,56 @@
 #endif   
 }
 
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+Ecore_X_Window
+ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+   return ee->engine.x.win;
+#else
+   return 0;
+#endif   
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+void
+ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int on)
+{
+#ifdef BUILD_ECORE_X
+   ee->engine.x.direct_resize = on;
+#else
+   return;
+#endif   
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+int
+ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+   return ee->engine.x.direct_resize;
+#else
+   return 0;
+#endif   
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
 Ecore_Evas *
 ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, 
                      int x, int y, int w, int h)
@@ -1390,3 +1498,49 @@
    return 0;
 #endif
 }
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+Ecore_X_Window
+ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+   return ee->engine.x.win;
+#else
+   return 0;
+#endif   
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+void
+ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on)
+{
+#ifdef BUILD_ECORE_X
+   ee->engine.x.direct_resize = on;
+#else
+   return;
+#endif   
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+int
+ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+   return ee->engine.x.direct_resize;
+#else
+   return 0;
+#endif   
+}
+




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to