X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Frenderstyle.cc;h=de34e034615257dd03aee594c20cfe91f8b93cb3;hb=9da1f717949211f7136e85dba6f2dc0850118c27;hp=18c5324f18ecb528fea945969990f3cf3b38ba1d;hpb=23940f9e034af023af610c56e915a6044ea436ec;p=chaz%2Fopenbox diff --git a/otk/renderstyle.cc b/otk/renderstyle.cc index 18c5324f..de34e034 100644 --- a/otk/renderstyle.cc +++ b/otk/renderstyle.cc @@ -5,7 +5,259 @@ #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) +{ + _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-8", 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; +} + +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; +} + }