libdockapp: Add DAMakeShapeFromData() and DAMakeShapeFromFile() functions.
libdockapp supports shaped dockapps with the DASetShape() function, but this function requires as input a bitmap. Previously, there was no support for creating such a bitmap from XBM data without using Xlib directly. We add two functions, DAMakeShapeFromData(), which is a wrapper around XCreateBitmapFromData and allows developers to #include XBM data, and DAMakeShapeFromFile(), which is a wrapper around XReadBitmapfile and lets developers specify the path to an XBM file.
This commit is contained in:
parent
3281a28c2f
commit
1891366919
2 changed files with 47 additions and 0 deletions
|
@ -88,6 +88,41 @@ DAMakeShape(void)
|
||||||
1));
|
1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Pixmap
|
||||||
|
DAMakeShapeFromData(char *data, unsigned int width, unsigned int height)
|
||||||
|
{
|
||||||
|
return (XCreateBitmapFromData(DADisplay, DAWindow, data,
|
||||||
|
width, height));
|
||||||
|
}
|
||||||
|
|
||||||
|
Pixmap
|
||||||
|
DAMakeShapeFromFile(char *filename)
|
||||||
|
{
|
||||||
|
Pixmap shape;
|
||||||
|
unsigned int width, height;
|
||||||
|
int result, x_hot, y_hot;
|
||||||
|
|
||||||
|
result = XReadBitmapFile(DADisplay, DAWindow, filename, &width, &height,
|
||||||
|
&shape, &x_hot, &y_hot);
|
||||||
|
|
||||||
|
switch (result) {
|
||||||
|
case BitmapOpenFailed:
|
||||||
|
DAWarning("bitmap file %s cannot be opened.", filename);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BitmapFileInvalid:
|
||||||
|
DAWarning("bitmap file %s not valid.", filename);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BitmapNoMemory:
|
||||||
|
DAWarning("insufficient memory to open bitmap file %s.",
|
||||||
|
filename);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return shape;
|
||||||
|
}
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
DAMakePixmapFromData(char **data, Pixmap *pixmap, Pixmap *mask,
|
DAMakePixmapFromData(char **data, Pixmap *pixmap, Pixmap *mask,
|
||||||
unsigned short *width, unsigned short *height)
|
unsigned short *width, unsigned short *height)
|
||||||
|
|
|
@ -264,6 +264,18 @@ Pixmap DAMakePixmap(void);
|
||||||
*/
|
*/
|
||||||
Pixmap DAMakeShape(void);
|
Pixmap DAMakeShape(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DAMakeShapeFromData-
|
||||||
|
* Creates a shape pixmap suitable for use with DASetShape() from XBM data.
|
||||||
|
*/
|
||||||
|
Pixmap DAMakeShapeFromData(char *data, unsigned int width, unsigned int height);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DAMakeShapeFromFile-
|
||||||
|
* Creates a shape pixmap suitable for use with DASetShape() from an
|
||||||
|
* XBM file.
|
||||||
|
*/
|
||||||
|
Pixmap DAMakeShapeFromFile(char *filename);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DAMakePixmapFromData-
|
* DAMakePixmapFromData-
|
||||||
|
|
Loading…
Reference in a new issue