1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
/*
* $Id: x_imagelib_none.c,v 1.5 2003/07/05 12:13:03 h_minami Exp $
*/
#include "x_imagelib.h"
#include <X11/Xatom.h> /* XA_PIXMAP */
#include <kiklib/kik_debug.h>
/* --- global functions --- */
int
x_imagelib_display_opened(
Display * display
)
{
return 1 ;
}
int
x_imagelib_display_closed(
Display * display
)
{
return 1 ;
}
Pixmap
x_imagelib_load_file_for_background(
x_window_t * win ,
char * file_path ,
x_picture_modifier_t * pic_mod
)
{
return None ;
}
int
x_imagelib_root_pixmap_available(
Display * display
)
{
if( XInternAtom( display , "_XROOTPMAP_ID" , True))
{
return 1 ;
}
return 0 ;
}
Pixmap
x_imagelib_get_transparent_background(
x_window_t * win ,
x_picture_modifier_t * pic_mod
)
{
Atom id ;
int x ;
int y ;
int _x ;
int _y ;
u_int width ;
u_int height ;
Pixmap pixmap ;
Atom act_type ;
int act_format ;
u_long nitems ;
u_long bytes_after ;
u_char * prop ;
if( pic_mod && pic_mod->brightness != 100)
{
/*
* XXX
* image is never modified without Imlib.
*/
return None ;
}
if( ( id = XInternAtom( win->display , "_XROOTPMAP_ID" , True)) == None)
{
return None ;
}
if( ! x_window_get_visible_geometry( win , &x , &y , &_x , &_y , &width , &height))
{
return None ;
}
if( XGetWindowProperty( win->display , DefaultRootWindow(win->display) , id , 0 , 1 , False ,
XA_PIXMAP , &act_type , &act_format , &nitems , &bytes_after , &prop) != Success ||
prop == NULL)
{
return None ;
}
if( ! *prop)
{
XFree( prop) ;
return None ;
}
#ifdef __DEBUG
kik_debug_printf( KIK_DEBUG_TAG " root pixmap %d found.\n" , *prop) ;
#endif
pixmap = XCreatePixmap( win->display , win->my_window , ACTUAL_WIDTH(win) , ACTUAL_HEIGHT(win) ,
DefaultDepth( win->display , win->screen)) ;
XCopyArea( win->display , (*(Drawable*)prop) , pixmap , win->gc ,
x , y , width , height , _x , _y) ;
return pixmap ;
}
int x_imagelib_load_file(
Display * display,
char * path,
u_int32_t ** cardinal,
Pixmap * pixmap,
Pixmap * mask,
unsigned int * width,
unsigned int * height
)
{
return 0 ;
}
|