void Basemenu::drawItem(int index, bool highlight, bool clear,
int x, int y, unsigned int w, unsigned int h) {
+ fprintf(stderr, "DRAW ITEM\n");
BasemenuItem *item = find(index);
if (! item) return;
}
if (dotext && text) {
+ fprintf(stderr, "FONT: %s\nTEXT: %s\n", style->f_font->name().c_str(), text);
style->f_font->drawString(menu.frame, text_x, text_y,
(highlight ? style->h_text :
(item->isEnabled() ? style->f_text :
#endif // XFT
_font(0),
_fontset(0),
- _fontset_extents(0),
- _cache(0),
- _item(0) {
+ _fontset_extents(0) {
_valid = init();
}
#endif // XFT
_font(0),
_fontset(0),
- _fontset_extents(0),
- _cache(0),
- _item(0) {
+ _fontset_extents(0) {
string int_xlfd;
if (xlfd.empty())
int_xlfd = _fallback_font;
XFreeFontSet(_display, _fontset);
if (_font)
XFreeFont(_display, _font);
-
- if (_item)
- _cache->release(_item);
}
}
#endif // XFT
- if (! _cache)
- _cache = color.display()->gcCache();
- if (! _item)
- _item = _cache->find(color, _font, GXcopy, ClipByChildren);
+ BGCCache *_cache = color.display()->gcCache();
+ BGCCacheItem *_item = _cache->find(color, _font, GXcopy, ClipByChildren);
assert(_cache);
assert(_item);
XDrawString(_display, d, _item->gc(),
x, _font->ascent + y,
string.c_str(), string.size());
+
+ _cache->release(_item);
}
bool createFont(void);
bool parseFontString(const std::string &xlfd);
- mutable BGCCache *_cache;
- mutable BGCCacheItem *_item;
-
bool _valid;
public: