Enlightenment CVS committal

Author  : xcomputerman
Project : e17
Module  : proto

Dir     : e17/proto/esmart/src/trans


Modified Files:
        esmart_trans.c 


Log Message:
Forgot this one


===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/esmart/src/trans/esmart_trans.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- esmart_trans.c      8 Nov 2003 20:19:15 -0000       1.1
+++ esmart_trans.c      8 Nov 2003 20:25:33 -0000       1.2
@@ -29,6 +29,86 @@
 static void _esmart_trans_x11_clip_set(Evas_Object *o, Evas_Object *clip);
 static void _esmart_trans_x11_clip_unset(Evas_Object *o);
 
+/**
+ * Stolen from ev and iconbar, hopefully this should be shareable now
+ */
+static Evas_Object *
+_esmart_trans_x11_pixmap_get(Evas *evas, Evas_Object *old,
+                        int x, int y, int w, int h)
+{
+  Atom            prop,type; 
+  int             format;
+  unsigned long   length,after;
+  unsigned char  *data;
+  Evas_Object    *new=NULL;
+  Pixmap          p;
+
+  if(old)
+    evas_object_del(old);
+
+  if((prop=XInternAtom(ecore_x_display_get(),"_XROOTPMAP_ID",True))!=None)
+  {
+    int ret=XGetWindowProperty(ecore_x_display_get(), 
+                              RootWindow(ecore_x_display_get(), 0),
+                               prop, 0L, 1L, False, AnyPropertyType, &type,
+                               &format,&length, &after,&data);
+    if((ret==Success)&&(type==XA_PIXMAP)&&((p=*((Pixmap *)data))!=None)) {
+      Imlib_Image  im;
+      unsigned int pw,ph, pb,pd;
+      int          px,py;
+      Window       win_dummy;
+      Status       st;
+
+      st=XGetGeometry(ecore_x_display_get(),p,&win_dummy, &px,&py,&pw,&ph, &pb, &pd);
+      if(st&&(pw>0)&&(ph>0)) {
+#  ifdef NOIR_DEBUG
+        fprintf(stderr,"bg_ebg_trans: transparency update %3d,%3d %3dx%3d\n",x,y,w,h);
+#  endif
+
+        imlib_context_set_display(ecore_x_display_get());
+        
imlib_context_set_visual(DefaultVisual(ecore_x_display_get(),DefaultScreen(ecore_x_display_get())));
+        
imlib_context_set_colormap(DefaultColormap(ecore_x_display_get(),DefaultScreen(ecore_x_display_get())));
+        imlib_context_set_drawable(*((Pixmap *)data));
+
+        im=imlib_create_image_from_drawable(0,x,y,w,h,1);
+        imlib_context_set_image(im);
+        imlib_image_set_format("argb");
+        new=evas_object_image_add(evas);
+        evas_object_image_alpha_set(new,0);
+        evas_object_image_size_set(new,w,h);   /* thanks rephorm */
+        evas_object_image_data_copy_set(new,imlib_image_get_data_for_reading_only());
+        imlib_free_image();
+
+        evas_object_image_fill_set(new,0,0,w,h);
+        evas_object_resize(new,w,h);
+        evas_object_move(new,0,0);
+        evas_object_layer_set(new,-9999);
+        evas_object_image_data_update_add(new,0,0,w,h);
+        evas_object_show(new); }
+#if 1
+      else  /* this can happen with e16 */
+        fprintf(stderr,"bg_ebg_trans: got invalid pixmap from root-window, 
ignoring...\n");
+#endif
+    }
+    else
+      fprintf(stderr,"bg_ebg_trans: could not read root-window property 
_XROOTPMAP_ID...\n"); }
+  else
+    fprintf(stderr,"bg_ebg_trans: could not get XAtom _XROOTPMAP_ID...\n");
+
+  if(!new) {  /* fallback if no root pixmap is found */
+#if 1
+    fprintf(stderr,"bg_ebg_trans: cannot create transparency pixmap, no valid 
wallpaper set.\n");
+#endif
+    new=evas_object_rectangle_add(evas);
+    evas_object_resize(new,w,h);
+    evas_object_move(new,0,0);
+    evas_object_layer_set(new,-9999);
+    evas_object_color_set(new, 127,127,127, 255);
+    evas_object_show(new); }
+
+    return new; 
+}
+
 /* keep a global copy of this, so it only has to be created once */
 void
 esmart_trans_x11_freshen(Evas_Object *o, int x, int y, int w, int h)
@@ -37,7 +117,7 @@
   if((data = evas_object_smart_data_get(o)))
   {
       data->obj =
-      transparency_get_pixmap(evas_object_evas_get(data->clip),
+      _esmart_trans_x11_pixmap_get(evas_object_evas_get(data->clip),
        data->obj, x, y, w, h);
       evas_object_pass_events_set(data->obj, 1);
       evas_object_clip_set(data->obj, data->clip);
@@ -241,81 +321,3 @@
     evas_object_clip_unset(data->clip);
 }
 
-/**
- * Stolen from ev and iconbar, hopefully this should be shareable now
- */
-static Evas_Object *
-transparency_get_pixmap(Evas *evas, Evas_Object *old,
-                        int x, int y, int w, int h)
-{
-  Atom            prop,type; 
-  int             format;
-  unsigned long   length,after;
-  unsigned char  *data;
-  Evas_Object    *new=NULL;
-  Pixmap          p;
-
-  if(old)
-    evas_object_del(old);
-
-  if((prop=XInternAtom(ecore_x_display_get(),"_XROOTPMAP_ID",True))!=None)
-  {
-    int ret=XGetWindowProperty(ecore_x_display_get(), 
-                              RootWindow(ecore_x_display_get(), 0),
-                               prop, 0L, 1L, False, AnyPropertyType, &type,
-                               &format,&length, &after,&data);
-    if((ret==Success)&&(type==XA_PIXMAP)&&((p=*((Pixmap *)data))!=None)) {
-      Imlib_Image  im;
-      unsigned int pw,ph, pb,pd;
-      int          px,py;
-      Window       win_dummy;
-      Status       st;
-
-      st=XGetGeometry(ecore_x_display_get(),p,&win_dummy, &px,&py,&pw,&ph, &pb, &pd);
-      if(st&&(pw>0)&&(ph>0)) {
-#  ifdef NOIR_DEBUG
-        fprintf(stderr,"bg_ebg_trans: transparency update %3d,%3d %3dx%3d\n",x,y,w,h);
-#  endif
-
-        imlib_context_set_display(ecore_x_display_get());
-        
imlib_context_set_visual(DefaultVisual(ecore_x_display_get(),DefaultScreen(ecore_x_display_get())));
-        
imlib_context_set_colormap(DefaultColormap(ecore_x_display_get(),DefaultScreen(ecore_x_display_get())));
-        imlib_context_set_drawable(*((Pixmap *)data));
-
-        im=imlib_create_image_from_drawable(0,x,y,w,h,1);
-        imlib_context_set_image(im);
-        imlib_image_set_format("argb");
-        new=evas_object_image_add(evas);
-        evas_object_image_alpha_set(new,0);
-        evas_object_image_size_set(new,w,h);   /* thanks rephorm */
-        evas_object_image_data_copy_set(new,imlib_image_get_data_for_reading_only());
-        imlib_free_image();
-
-        evas_object_image_fill_set(new,0,0,w,h);
-        evas_object_resize(new,w,h);
-        evas_object_move(new,0,0);
-        evas_object_layer_set(new,-9999);
-        evas_object_image_data_update_add(new,0,0,w,h);
-        evas_object_show(new); }
-#if 1
-      else  /* this can happen with e16 */
-        fprintf(stderr,"bg_ebg_trans: got invalid pixmap from root-window, 
ignoring...\n");
-#endif
-    }
-    else
-      fprintf(stderr,"bg_ebg_trans: could not read root-window property 
_XROOTPMAP_ID...\n"); }
-  else
-    fprintf(stderr,"bg_ebg_trans: could not get XAtom _XROOTPMAP_ID...\n");
-
-  if(!new) {  /* fallback if no root pixmap is found */
-#if 1
-    fprintf(stderr,"bg_ebg_trans: cannot create transparency pixmap, no valid 
wallpaper set.\n");
-#endif
-    new=evas_object_rectangle_add(evas);
-    evas_object_resize(new,w,h);
-    evas_object_move(new,0,0);
-    evas_object_layer_set(new,-9999);
-    evas_object_color_set(new, 127,127,127, 255);
-    evas_object_show(new); }
-
-  return new; }




-------------------------------------------------------
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