X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Frenderstyle.cc;h=330870c6c7ad04212a741b9eebfe73449608131c;hb=d11291df3e9ef0173139a97bf6c77471ab3a4119;hp=18c5324f18ecb528fea945969990f3cf3b38ba1d;hpb=23940f9e034af023af610c56e915a6044ea436ec;p=chaz%2Fopenbox diff --git a/otk/renderstyle.cc b/otk/renderstyle.cc index 18c5324f..330870c6 100644 --- a/otk/renderstyle.cc +++ b/otk/renderstyle.cc @@ -5,7 +5,472 @@ #endif // HAVE_CONFIG_H #include "renderstyle.hh" +#include "display.hh" +#include "screeninfo.hh" namespace otk { +RenderStyle::RenderStyle(int screen, const std::string &stylefile) + : _screen(screen), + _file(stylefile) +{ +// pick one.. +//#define FIERON +#define MERRY + +#ifdef FIERON + _root_color = new RenderColor(_screen, 0x272a2f); + + _text_color_focus = new RenderColor(_screen, 0x272a2f); + _text_color_unfocus = new RenderColor(_screen, 0x676869); + + _button_color_focus = new RenderColor(_screen, 0x96ba86); + _button_color_unfocus = new RenderColor(_screen, 0x676869); + + _frame_border_color = new RenderColor(_screen, 0x181f24); + _frame_border_width = 1; + + _client_border_color_focus = new RenderColor(_screen, 0x858687); + _client_border_color_unfocus = new RenderColor(_screen, 0x555657); + _client_border_width = 1; + + _titlebar_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Vertical, + false, + 0x858687, + 0x373a3f, + 0x0, + 0x0); + _titlebar_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Vertical, + false, + 0x555657, + 0x171a1f, + 0x0, + 0x0); + + _label_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + true, + RenderTexture::Vertical, + false, + 0x96ba86, + 0x5a724c, + 0x181f24, + 0x0); + _label_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Sunken, + RenderTexture::Bevel1, + false, + RenderTexture::CrossDiagonal, + false, + 0x555657, + 0x272a2f, + 0x0, + 0x0); + + + _handle_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Vertical, + false, + 0x858687, + 0x373a3f, + 0x0, + 0x0); + _handle_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Vertical, + false, + 0x555657, + 0x171a1f, + 0x0, + 0x0); + + + _button_unpress_focus = new RenderTexture(_screen, + false, + RenderTexture::Raised, + RenderTexture::Bevel2, + false, + RenderTexture::CrossDiagonal, + false, + 0x858687, + 0x272a2f, + 0x0, + 0x0); + _button_unpress_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Raised, + RenderTexture::Bevel2, + false, + RenderTexture::CrossDiagonal, + false, + 0x555657, + 0x171a1f, + 0x0, + 0x0); + + _button_press_focus = new RenderTexture(_screen, + false, + RenderTexture::Sunken, + RenderTexture::Bevel2, + false, + RenderTexture::CrossDiagonal, + false, + 0x96ba86, + 0x5a724c, + 0x0, + 0x0); + _button_press_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Sunken, + RenderTexture::Bevel2, + false, + RenderTexture::CrossDiagonal, + false, + 0x555657, + 0x171a1f, + 0x0, + 0x0); + + _grip_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Vertical, + false, + 0x96ba86, + 0x5a724c, + 0x0, + 0x0); + _grip_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Vertical, + false, + 0x555657, + 0x171a1f, + 0x0, + 0x0); + + _label_font = new Font(_screen, "Arial,Sans-9:bold", true, 1, 0x40); + _label_justify = RightJustify; + + _max_mask = new PixmapMask(); + _max_mask->w = _max_mask->h = 8; + { + //char data[] = { 0x7e, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0x7e }; + char data [] = {0x00, 0x00, 0x18, 0x3c, 0x66, 0x42, 0x00, 0x00 }; + _max_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 8, 8); + } + + _icon_mask = new PixmapMask(); + _icon_mask->w = _icon_mask->h = 8; + { + //char data[] = { 0x00, 0x00, 0xc3, 0xe7, 0x7e, 0x3c, 0x18, 0x00 }; + char data[] = { 0x00, 0x00, 0x42, 0x66, 0x3c, 0x18, 0x00, 0x00 }; + _icon_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 8, 8); + } + + _alldesk_mask = new PixmapMask(); + _alldesk_mask->w = _alldesk_mask->h = 8; + { + //char data[] = { 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00 }; + char data[] = { 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00 }; + _alldesk_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 8, 8); + } + + _close_mask = new PixmapMask(); + _close_mask->w = _close_mask->h = 8; + { + //char data[] = { 0xc3, 0xe7, 0x7e, 0x3c, 0x3c, 0x7e, 0xe7, 0xc3 }; + char data[] = { 0x00, 0xc3, 0x66, 0x3c, 0x3c, 0x66, 0xc3, 0x00 }; + _close_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 8, 8); + } + + _bevel_width = 1; + _handle_width = 4; +#else +# ifdef MERRY + _root_color = new RenderColor(_screen, 0x7b756a); + + _text_color_focus = new RenderColor(_screen, 0xffffff); + _text_color_unfocus = new RenderColor(_screen, 0xffffff); + + _button_color_focus = new RenderColor(_screen, 0x222222); + _button_color_unfocus = new RenderColor(_screen, 0x333333); + + _frame_border_color = new RenderColor(_screen, 0x222222); + _frame_border_width = 1; + + _client_border_color_focus = new RenderColor(_screen, 0x858687); + _client_border_color_unfocus = new RenderColor(_screen, 0x555657); + _client_border_width = 0; + + _titlebar_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + _titlebar_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + + _label_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + true, + RenderTexture::Solid, + false, + //0x6a6973, + //0x6a6973, + 0x4c59a6, + 0x4c59a6, + 0x222222, + 0x0); + _label_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + true, + RenderTexture::Solid, + false, + 0xcdcac7, + 0xcdcac7, + 0xb0ada9, + 0x0); + + + _handle_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + _handle_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + + + _button_unpress_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + _button_unpress_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + + _button_press_focus = new RenderTexture(_screen, + false, + RenderTexture::Sunken, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + _button_press_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Sunken, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + + _grip_focus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + _grip_unfocus = new RenderTexture(_screen, + false, + RenderTexture::Flat, + RenderTexture::Bevel1, + false, + RenderTexture::Solid, + false, + 0xe6e6e6, + 0xe6e6e6, + 0x0, + 0x0); + + _label_font = new Font(_screen, "Arial,Sans-8", true, 1, 0x3e); + _label_justify = CenterJustify; + + _max_mask = new PixmapMask(); + _max_mask->w = _max_mask->h = 7; + { + char data [] = {0x7c, 0x44, 0x47, 0x47, 0x7f, 0x1f, 0x1f }; + _max_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 7, 7); + } + + _icon_mask = new PixmapMask(); + _icon_mask->w = _icon_mask->h = 7; + { + char data[] = {0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3e }; + _icon_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 7, 7); + } + + _alldesk_mask = new PixmapMask(); + _alldesk_mask->w = _alldesk_mask->h = 7; + { + char data[] = {0x00, 0x36, 0x36, 0x00, 0x36, 0x36, 0x00 }; + _alldesk_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 7, 7); + } + + _close_mask = new PixmapMask(); + _close_mask->w = _close_mask->h = 7; + { + char data[] = { 0x22, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x22 }; + _close_mask->mask = + XCreateBitmapFromData(**display, + display->screenInfo(_screen)->rootWindow(), + data, 7, 7); + } + + _bevel_width = 1; + _handle_width = 3; +# else +# error 1 +# endif +#endif +} + +RenderStyle::~RenderStyle() +{ + delete _root_color; + + delete _text_color_focus; + delete _text_color_unfocus; + + delete _button_color_focus; + delete _button_color_unfocus; + + delete _frame_border_color; + + delete _client_border_color_focus; + delete _client_border_color_unfocus; + + delete _titlebar_focus; + delete _titlebar_unfocus; + + delete _label_focus; + delete _label_unfocus; + + delete _handle_focus; + delete _handle_unfocus; + + delete _button_unpress_focus; + delete _button_unpress_unfocus; + delete _button_press_focus; + delete _button_press_unfocus; + + delete _grip_focus; + delete _grip_unfocus; + + delete _label_font; + + delete _max_mask; + delete _icon_mask; + delete _alldesk_mask; + delete _close_mask; +} + }