8 WMRetainPixmap(WMPixmap
*pixmap
)
18 WMReleasePixmap(WMPixmap
*pixmap
)
22 if (pixmap
->refCount
<1) {
23 XFreePixmap(pixmap
->screen
->display
, pixmap
->pixmap
);
25 XFreePixmap(pixmap
->screen
->display
, pixmap
->mask
);
32 WMCreatePixmapFromXPixmaps(WMScreen
*scrPtr
, Pixmap pixmap
, Pixmap mask
,
33 int width
, int height
, int depth
)
37 pixPtr
= malloc(sizeof(WMPixmap
));
41 pixPtr
->screen
= scrPtr
;
42 pixPtr
->pixmap
= pixmap
;
44 pixPtr
->width
= width
;
45 pixPtr
->height
= height
;
46 pixPtr
->depth
= depth
;
56 WMCreatePixmapFromFile(WMScreen
*scrPtr
, char *fileName
)
61 image
= RLoadImage(scrPtr
->rcontext
, fileName
, 0);
65 pixPtr
= WMCreatePixmapFromRImage(scrPtr
, image
, 127);
74 WMCreatePixmapFromRImage(WMScreen
*scrPtr
, RImage
*image
, int threshold
)
79 if (!RConvertImageMask(scrPtr
->rcontext
, image
, &pixmap
, &mask
,
84 pixPtr
= malloc(sizeof(WMPixmap
));
88 pixPtr
->screen
= scrPtr
;
89 pixPtr
->pixmap
= pixmap
;
91 pixPtr
->width
= image
->width
;
92 pixPtr
->height
= image
->height
;
93 pixPtr
->depth
= scrPtr
->depth
;
101 WMCreateBlendedPixmapFromFile(WMScreen
*scrPtr
, char *fileName
, RColor
*color
)
107 image
= RLoadImage(scrPtr
->rcontext
, fileName
, 0);
111 RCombineImageWithColor(image
, color
);
113 pixPtr
= WMCreatePixmapFromRImage(scrPtr
, image
, 0);
115 RDestroyImage(image
);
122 WMCreatePixmapFromXPMData(WMScreen
*scrPtr
, char **data
)
127 image
= RGetImageFromXPMData(scrPtr
->rcontext
, data
);
131 pixPtr
= WMCreatePixmapFromRImage(scrPtr
, image
, 127);
133 RDestroyImage(image
);
140 WMGetPixmapXID(WMPixmap
*pixmap
)
142 return pixmap
->pixmap
;
146 WMGetPixmapMaskXID(WMPixmap
*pixmap
)
153 WMGetPixmapSize(WMPixmap
*pixmap
)
157 size
.width
= pixmap
->width
;
158 size
.height
= pixmap
->height
;
165 WMGetSystemPixmap(WMScreen
*scr
, int image
)
169 return WMRetainPixmap(scr
->buttonArrow
);
171 case WSIHighlightedReturnArrow
:
172 return WMRetainPixmap(scr
->pushedButtonArrow
);
174 case WSIScrollerDimple
:
175 return WMRetainPixmap(scr
->scrollerDimple
);
178 return WMRetainPixmap(scr
->leftArrow
);
180 case WSIHighlightedArrowLeft
:
181 return WMRetainPixmap(scr
->hiLeftArrow
);
184 return WMRetainPixmap(scr
->rightArrow
);
186 case WSIHighlightedArrowRight
:
187 return WMRetainPixmap(scr
->hiRightArrow
);
190 return WMRetainPixmap(scr
->upArrow
);
192 case WSIHighlightedArrowUp
:
193 return WMRetainPixmap(scr
->hiUpArrow
);
196 return WMRetainPixmap(scr
->downArrow
);
198 case WSIHighlightedArrowDown
:
199 return WMRetainPixmap(scr
->hiDownArrow
);