Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

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


Modified Files:
      Tag: SPLIT
        Ecore_Evas.h ecore_evas.c 


Log Message:


more work on ecore

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Ecore_Evas.h,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -3 -r1.1.2.6 -r1.1.2.7
--- Ecore_Evas.h        8 Feb 2003 05:05:03 -0000       1.1.2.6
+++ Ecore_Evas.h        8 Feb 2003 07:03:41 -0000       1.1.2.7
@@ -48,24 +48,24 @@
    const char *ecore_evas_title_get(Ecore_Evas *ee);
    void        ecore_evas_name_class_set(Ecore_Evas *ee, const char *n, const char 
*c);
    void        ecore_evas_name_class_get(Ecore_Evas *ee, const char **n, const char 
**c);
-   void ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h);
-   void ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h);
-   void ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h);
-   void ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h);
-   void ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h);
-   void ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h);
-   void ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h);
-   void ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h);
-   void ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int hot_x, 
int hot_y);
-   void ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int *hot_x, 
int *hot_y);
-   void ecore_evas_layer_set(Ecore_Evas *ee, int layer);
-   int ecore_evas_layer_get(Ecore_Evas *ee);
+   void        ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h);
+   void        ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h);
+   void        ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h);
+   void        ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h);
+   void        ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h);
+   void        ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h);
+   void        ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h);
+   void        ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h);
+   void        ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int 
+hot_x, int hot_y);
+   void        ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int 
+*hot_x, int *hot_y);
+   void        ecore_evas_layer_set(Ecore_Evas *ee, int layer);
+   int         ecore_evas_layer_get(Ecore_Evas *ee);
    void        ecore_evas_focus_set(Ecore_Evas *ee, int on);
    int         ecore_evas_focus_get(Ecore_Evas *ee);
    void ecore_evas_iconified_set(Ecore_Evas *ee, int on);
    int ecore_evas_iconified_get(Ecore_Evas *ee);
-   void ecore_evas_borderless_set(Ecore_Evas *ee, int on);
-   int ecore_evas_borderless_get(Ecore_Evas *ee);
+   void        ecore_evas_borderless_set(Ecore_Evas *ee, int on);
+   int         ecore_evas_borderless_get(Ecore_Evas *ee);
    void        ecore_evas_override_set(Ecore_Evas *ee, int on);
    int         ecore_evas_override_get(Ecore_Evas *ee);
    void ecore_evas_maximized_set(Ecore_Evas *ee, int on);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas.c,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -3 -r1.1.2.6 -r1.1.2.7
--- ecore_evas.c        8 Feb 2003 05:05:04 -0000       1.1.2.6
+++ ecore_evas.c        8 Feb 2003 07:03:41 -0000       1.1.2.7
@@ -416,6 +416,10 @@
    ee->driver = strdup("software_x11");
    if (disp_name) ee->name = strdup(disp_name);
    
+   ee->prop.max.w = 32767;
+   ee->prop.max.h = 32767;
+   ee->prop.layer = 4;
+   
    /* init evas here */
    ee->evas = evas_new();
    evas_output_method_set(ee->evas, rmethod);
@@ -571,6 +575,7 @@
 int
 ecore_evas_rotation_get(Ecore_Evas *ee)
 {
+   return ee->rotation;
 }
 
 void
@@ -581,6 +586,7 @@
 int
 ecore_evas_shaped_get(Ecore_Evas *ee)
 {
+   return ee->shaped;
 }
 
 void
@@ -650,61 +656,135 @@
 void
 ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h)
 {
+   if (w < 0) w = 0;
+   if (h < 0) h = 0;
+   if ((ee->prop.min.w == w) && (ee->prop.min.h == h)) return;
+   ee->prop.min.w = w;
+   ee->prop.min.h = h;
+   ecore_x_window_prop_min_size_set(ee->x11.win_container, ee->prop.min.w, 
+ee->prop.min.h);
 }
 
 void
 ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h)
 {
+   if (w) *w = ee->prop.min.w;
+   if (h) *h = ee->prop.min.h;
 }
 
 void
 ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h)
 {
+   if (w < 0) w = 0;
+   if (h < 0) h = 0;
+   if ((ee->prop.max.w == w) && (ee->prop.max.h == h)) return;
+   ee->prop.max.w = w;
+   ee->prop.max.h = h;
+   ecore_x_window_prop_max_size_set(ee->x11.win_container, ee->prop.max.w, 
+ee->prop.max.h);
 }
 
 void
 ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h)
 {
+   if (w) *w = ee->prop.max.w;
+   if (h) *h = ee->prop.max.h;
 }
 
 void
 ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h)
 {
+   if (w < 0) w = 0;
+   if (h < 0) h = 0;
+   if ((ee->prop.base.w == w) && (ee->prop.base.h == h)) return;
+   ee->prop.base.w = w;
+   ee->prop.base.h = h;
+   ecore_x_window_prop_base_size_set(ee->x11.win_container, ee->prop.base.w, 
+ee->prop.base.h);
 }
 
 void
 ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h)
 {
+   if (w) *w = ee->prop.base.w;
+   if (h) *h = ee->prop.base.h;
 }
 
 void
 ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h)
 {
+   if (w < 1) w = 1;
+   if (h < 1) h = 1;
+   if ((ee->prop.step.w == w) && (ee->prop.step.h == h)) return;
+   ee->prop.step.w = w;
+   ee->prop.step.h = h;
+   ecore_x_window_prop_step_size_set(ee->x11.win_container, ee->prop.step.w, 
+ee->prop.step.h);
 }
 
 void
 ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h)
 {
+   if (w) *w = ee->prop.step.w;
+   if (h) *h = ee->prop.step.h;
 }
 
 void
 ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int hot_x, int 
hot_y)
 {
+   int x, y;
+   
+   if (!file)
+     {
+       if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
+       if (ee->prop.cursor.file) free(ee->prop.cursor.file);
+       ee->prop.cursor.object = NULL;
+       ee->prop.cursor.file = NULL;
+       ee->prop.cursor.layer = 0;
+       ee->prop.cursor.hot.x = 0;
+       ee->prop.cursor.hot.y = 0;
+       ecore_x_window_cursor_show(ee->x11.win, 1);
+       return;
+     }
+   ecore_x_window_cursor_show(ee->x11.win, 0);
+   if (!ee->prop.cursor.object) ee->prop.cursor.object = 
+evas_object_image_add(ee->evas);
+   if (ee->prop.cursor.file) free(ee->prop.cursor.file);
+   ee->prop.cursor.file = strdup(file);
+   ee->prop.cursor.layer = layer;
+   ee->prop.cursor.hot.x = hot_x;
+   ee->prop.cursor.hot.y = hot_y;   
+   evas_pointer_output_xy_get(ee->evas, &x, &y);
+   evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
+   evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255);
+   evas_object_move(ee->prop.cursor.object, 
+                   x - ee->prop.cursor.hot.x,
+                   y - ee->prop.cursor.hot.y);
+   evas_object_image_file_set(ee->prop.cursor.object, ee->prop.cursor.file, NULL);
+   evas_object_image_size_get(ee->prop.cursor.object, &x, &y);
+   evas_object_resize(ee->prop.cursor.object, x, y);
+   evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y);
+   evas_object_pass_events_set(ee->prop.cursor.object, 1);
+   if (evas_pointer_inside_get(ee->evas))
+     evas_object_show(ee->prop.cursor.object);
 }
 
 void
 ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int *hot_x, int *hot_y)
 {
+   if (file) *file = ee->prop.cursor.file;
+   if (layer) *layer = ee->prop.cursor.layer;
+   if (hot_x) *hot_x = ee->prop.cursor.hot.x;
+   if (hot_y) *hot_y = ee->prop.cursor.hot.y;
 }
 
 void
 ecore_evas_layer_set(Ecore_Evas *ee, int layer)
 {
+   if (ee->prop.layer == layer) return;
+   ee->prop.layer = layer;
+   ecore_x_window_prop_layer_set(ee->x11.win_container, ee->prop.layer);
 }
 
 int
 ecore_evas_layer_get(Ecore_Evas *ee)
 {
+   return ee->prop.layer;
 }
 
 void
@@ -722,21 +802,28 @@
 void
 ecore_evas_iconified_set(Ecore_Evas *ee, int on)
 {
+   printf("ecore_evas_iconified_set() does not do anything yet.\n");
 }
 
 int
 ecore_evas_iconified_get(Ecore_Evas *ee)
 {
+   return ee->prop.iconified;
 }
 
 void
 ecore_evas_borderless_set(Ecore_Evas *ee, int on)
 {
+   if (((ee->prop.borderless) && (on)) ||
+       ((!ee->prop.borderless) && (!on))) return;
+   ee->prop.borderless = on;
+   ecore_x_window_prop_borderless_set(ee->x11.win_container, ee->prop.borderless);
 }
 
 int
 ecore_evas_borderless_get(Ecore_Evas *ee)
 {
+   return ee->prop.borderless;
 }
 
 void
@@ -756,6 +843,12 @@
        ecore_x_window_prop_name_class_set(ee->x11.win_container, ee->prop.name, 
ee->prop.clas);
        if (ee->func.fn_delete_request)
          ecore_x_window_prop_delete_request_set(ee->x11.win_container, 1);
+       ecore_x_window_prop_min_size_set(ee->x11.win_container, ee->prop.min.w, 
+ee->prop.min.h);
+       ecore_x_window_prop_max_size_set(ee->x11.win_container, ee->prop.max.w, 
+ee->prop.max.h);
+       ecore_x_window_prop_base_size_set(ee->x11.win_container, ee->prop.base.w, 
+ee->prop.base.h);
+       ecore_x_window_prop_step_size_set(ee->x11.win_container, ee->prop.step.w, 
+ee->prop.step.h);
+       ecore_x_window_prop_borderless_set(ee->x11.win_container, ee->prop.borderless);
+       ecore_x_window_prop_layer_set(ee->x11.win_container, ee->prop.layer);
      }
    ecore_x_window_reparent(ee->x11.win, ee->x11.win_container, 0, 0);  
    ecore_x_window_show(ee->x11.win);
@@ -820,9 +913,30 @@
 void
 ecore_evas_avoid_damage_set(Ecore_Evas *ee, int on)
 {
+   Evas_Engine_Info_Software_X11 *einfo;
+   
+   ee->prop.avoid_damage = on;   
+   einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas);
+   if (einfo)
+     {
+       if (ee->prop.avoid_damage)
+         {
+            einfo->info.drawable = ee->x11.pmap;
+            einfo->info.drawable = ee->x11.mask;
+            evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+            evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
+         }
+       else
+         {
+            einfo->info.drawable = ee->x11.win;
+            einfo->info.drawable = ee->x11.mask;
+            evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+         }
+     }
 }
 
 int
 ecore_evas_avoid_damage_get(Ecore_Evas *ee)
 {
+   return ee->prop.avoid_damage;
 }




-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to