all repos — openbox @ 17d63184998b747e1a0554dc4364a36238b039e1

openbox fork - make it a bit more like ryudo

 hardcode some bitmap masks
Dana Jansens danakj@orodu.net
commit

17d63184998b747e1a0554dc4364a36238b039e1

parent

11f59d7925068357e24ca743c23019f671e6a5d7

4 files changed, 104 insertions(+), 1 deletions(-)

jump to
M otk/focuslabel.ccotk/focuslabel.cc

@@ -31,6 +31,8 @@

void FocusLabel::renderForeground() { + otk::Widget::renderForeground(); + const Font *ft = style()->labelFont(); RenderColor *text_color = (isFocused() ? style()->textFocusColor() : style()->textUnfocusColor());
M otk/label.ccotk/label.cc

@@ -27,6 +27,8 @@

void Label::renderForeground(void) { + otk::Widget::renderForeground(); + const Font *ft = style()->labelFont(); unsigned int sidemargin = style()->bevelWidth() * 2;
M otk/renderstyle.ccotk/renderstyle.cc

@@ -5,6 +5,8 @@ # include "../config.h"

#endif // HAVE_CONFIG_H #include "renderstyle.hh" +#include "display.hh" +#include "screeninfo.hh" namespace otk {

@@ -166,6 +168,82 @@ 0x0,

0x0); _label_font = new Font(_screen, "Arial,Sans-9:bold", true, 1, 0x40); + + XImage *image = XCreateImage(**display, + display->screenInfo(_screen)->visual(), + 2, XYBitmap, 0, NULL, 8, 8, 0, 0); + assert(image); + + _max_mask = new PixmapMask(); + _max_mask->w = _max_mask->h = 8; + { + unsigned char data[] = { + 0,1,1,1,1,1,1,0, + 1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,1,1, + 1,1,0,0,0,0,1,1, + 1,1,0,0,0,0,1,1, + 1,1,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1, + 0,1,1,1,1,1,1,0 }; + image->data = (char*)data; + XPutImage(**display, _max_mask->mask, DefaultGC(**display, _screen), + image, 0, 0, 0, 0, 8, 8); + } + + _icon_mask = new PixmapMask(); + _icon_mask->w = _icon_mask->h = 8; + { + unsigned char data[] = { + 0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0, + 1,1,0,0,0,0,1,1, + 1,1,1,0,0,1,1,1, + 0,1,1,1,1,1,1,0, + 0,0,1,1,1,1,0,0, + 0,0,0,1,1,0,0,0, + 0,0,0,0,0,0,0,0 }; + image->data = (char*)data; + XPutImage(**display, _icon_mask->mask, DefaultGC(**display, _screen), + image, 0, 0, 0, 0, 8, 8); + } + + _stick_mask = new PixmapMask(); + _stick_mask->w = _stick_mask->h = 8; + { + unsigned char data[] = { + 0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0, + 0,0,0,1,1,0,0,0, + 0,0,1,1,1,1,0,0, + 0,0,1,1,1,1,0,0, + 0,0,0,1,1,0,0,0, + 0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0 }; + image->data = (char*)data; + XPutImage(**display, _stick_mask->mask, DefaultGC(**display, _screen), + image, 0, 0, 0, 0, 8, 8); + } + + _close_mask = new PixmapMask(); + _close_mask->w = _close_mask->h = 8; + { + unsigned char data[] = { + 1,1,0,0,0,0,1,1, + 1,1,1,0,0,1,1,1, + 0,1,1,1,1,1,1,0, + 0,0,1,1,1,1,0,0, + 0,0,1,1,1,1,0,0, + 0,1,1,1,1,1,1,0, + 1,1,1,0,0,1,1,1, + 1,1,0,0,0,0,1,1 }; + image->data = (char*)data; + XPutImage(**display, _close_mask->mask, DefaultGC(**display, _screen), + image, 0, 0, 0, 0, 8, 8); + } + + image->data = NULL; + XDestroyImage(image); } RenderStyle::~RenderStyle()

@@ -199,6 +277,11 @@ delete _grip_focus;

delete _grip_unfocus; delete _label_font; + + delete _max_mask; + delete _icon_mask; + delete _stick_mask; + delete _close_mask; } }
M otk/renderstyle.hhotk/renderstyle.hh

@@ -10,6 +10,12 @@ #include <string>

namespace otk { +struct PixmapMask { + Pixmap mask; + unsigned int w, h; + PixmapMask() { mask = None; w = h = 0; } +}; + class RenderStyle { public: enum TextJustify {

@@ -55,6 +61,11 @@

Font *_label_font; TextJustify _label_justify; + PixmapMask *_max_mask; + PixmapMask *_icon_mask; + PixmapMask *_stick_mask; + PixmapMask *_close_mask; + int _handle_width; int _bevel_width;

@@ -101,12 +112,17 @@ { return _button_press_focus; }

inline RenderTexture *buttonPressUnfocusBackground() const { return _button_press_unfocus; } - inline RenderTexture *gripdFocusBackground() const { return _grip_focus; } + inline RenderTexture *gripFocusBackground() const { return _grip_focus; } inline RenderTexture *gripUnfocusBackground() const { return _grip_unfocus; } inline Font *labelFont() const { return _label_font; } inline TextJustify labelTextJustify() const { return _label_justify; } + inline PixmapMask *maximizeMask() const { return _max_mask; } + inline PixmapMask *iconifyMask() const { return _icon_mask; } + inline PixmapMask *stickyMask() const { return _stick_mask; } + inline PixmapMask *closeMask() const { return _close_mask; } + inline int handleWidth() const { return _handle_width; } inline int bevelWidth() const { return _bevel_width; } };