X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Frenderstyle.cc;fp=otk%2Frenderstyle.cc;h=0000000000000000000000000000000000000000;hb=a52a6d96d701c993896f276e4198003317632aaf;hp=482f33034c1222e679bfd92c028737c026a8db7c;hpb=a36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6;p=chaz%2Fopenbox diff --git a/otk/renderstyle.cc b/otk/renderstyle.cc deleted file mode 100644 index 482f3303..00000000 --- a/otk/renderstyle.cc +++ /dev/null @@ -1,697 +0,0 @@ -// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- - -#include "config.h" - -#include "renderstyle.hh" -#include "display.hh" -#include "screeninfo.hh" - -#include - -namespace otk { - -RenderStyle **RenderStyle::_styles = 0; -std::list *RenderStyle::_notifies = 0; - -void RenderStyle::initialize() -{ - int screens = ScreenCount(**display); - _styles = new RenderStyle*[screens]; - for (int i = 0; i < screens; ++i) { - _styles[i] = new RenderStyle(); - defaultStyle(_styles[i], i); - } - _notifies = new std::list[screens]; -} - -void RenderStyle::destroy() -{ - int screens = ScreenCount(**display); - for (int i = 0; i < screens; ++i) - delete _styles[i]; - delete [] _styles; - delete [] _notifies; -} - -void RenderStyle::registerNotify(int screen, StyleNotify *n) -{ - assert(screen >= 0 && screen < ScreenCount(**display)); - _notifies[screen].push_back(n); -} - -void RenderStyle::unregisterNotify(int screen, StyleNotify *n) -{ - assert(screen >= 0 && screen < ScreenCount(**display)); - _notifies[screen].remove(n); -} - -RenderStyle *RenderStyle::style(int screen) -{ - assert(screen >= 0 && screen < ScreenCount(**display)); - return _styles[screen]; -} - -bool RenderStyle::setStyle(int screen, const ustring &stylefile) -{ - RenderStyle *s = new RenderStyle(); - if (!loadStyle(s, screen, stylefile)) { - delete s; - return false; - } - delete _styles[screen]; - _styles[screen] = s; - - std::list::iterator it, end = _notifies[screen].end(); - for (it = _notifies[screen].begin(); it != end; ++it) - (*it)->styleChanged(*s); - return true; -} - -bool RenderStyle::loadStyle(RenderStyle *s, int screen, - const ustring &stylefile) -{ - s->_screen = screen; - s->_file = stylefile; -// pick one.. -#define FIERON -//#define MERRY - -#ifdef FIERON - s->_root_args = "#272a2f"; - - s->_text_color_focus = new RenderColor(screen, 0x272a2f); - s->_text_color_unfocus = new RenderColor(screen, 0x676869); - - s->_button_color_focus = new RenderColor(screen, 0x96ba86); - s->_button_color_unfocus = new RenderColor(screen, 0x676869); - - s->_frame_border_color = new RenderColor(screen, 0x181f24); - s->_frame_border_width = 1; - - s->_client_border_color_focus = new RenderColor(screen, 0x858687); - s->_client_border_color_unfocus = new RenderColor(screen, 0x555657); - s->_client_border_width = 1; - - s->_titlebar_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0x858687, - 0x373a3f, - 0x0, - 0x0); - s->_titlebar_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0x555657, - 0x171a1f, - 0x0, - 0x0); - - s->_label_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - true, - RenderTexture::Vertical, - false, - 0x96ba86, - 0x5a724c, - 0x181f24, - 0x0); - s->_label_unfocus = new RenderTexture(screen, - false, - RenderTexture::Sunken, - RenderTexture::Bevel1, - false, - RenderTexture::CrossDiagonal, - false, - 0x555657, - 0x272a2f, - 0x0, - 0x0); - - s->_handle_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0x858687, - 0x373a3f, - 0x0, - 0x0); - s->_handle_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0x555657, - 0x171a1f, - 0x0, - 0x0); - - s->_button_unpress_focus = new RenderTexture(screen, - false, - RenderTexture::Raised, - RenderTexture::Bevel2, - false, - RenderTexture::CrossDiagonal, - false, - 0x858687, - 0x272a2f, - 0x0, - 0x0); - s->_button_unpress_unfocus = new RenderTexture(screen, - false, - RenderTexture::Raised, - RenderTexture::Bevel2, - false, - RenderTexture::CrossDiagonal, - false, - 0x555657, - 0x171a1f, - 0x0, - 0x0); - - s->_button_press_focus = new RenderTexture(screen, - false, - RenderTexture::Sunken, - RenderTexture::Bevel2, - false, - RenderTexture::CrossDiagonal, - false, - 0x96ba86, - 0x5a724c, - 0x0, - 0x0); - s->_button_press_unfocus = new RenderTexture(screen, - false, - RenderTexture::Sunken, - RenderTexture::Bevel2, - false, - RenderTexture::CrossDiagonal, - false, - 0x555657, - 0x171a1f, - 0x0, - 0x0); - - s->_grip_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0x96ba86, - 0x5a724c, - 0x0, - 0x0); - s->_grip_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0x555657, - 0x171a1f, - 0x0, - 0x0); - - s->_label_font = new Font(screen, "Arial,Sans-9:bold", true, 1, 0x40); - s->_label_justify = RightBottomJustify; - - s->_max_mask = new PixmapMask(); - s->_max_mask->w = s->_max_mask->h = 8; - { - //char data[] = { 0x7e, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0x7e }; - char data [] = {0x00, 0x00, 0x18, 0x3c, 0x66, 0x42, 0x00, 0x00 }; - s->_max_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 8, 8); - } - - s->_icon_mask = new PixmapMask(); - s->_icon_mask->w = s->_icon_mask->h = 8; - { - //char data[] = { 0x00, 0x00, 0xc3, 0xe7, 0x7e, 0x3c, 0x18, 0x00 }; - char data[] = { 0x00, 0x00, 0x42, 0x66, 0x3c, 0x18, 0x00, 0x00 }; - s->_icon_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 8, 8); - } - - s->_alldesk_mask = new PixmapMask(); - s->_alldesk_mask->w = s->_alldesk_mask->h = 8; - { - //char data[] = { 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00 }; - char data[] = { 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00 }; - s->_alldesk_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 8, 8); - } - - s->_close_mask = new PixmapMask(); - s->_close_mask->w = s->_close_mask->h = 8; - { - //char data[] = { 0xc3, 0xe7, 0x7e, 0x3c, 0x3c, 0x7e, 0xe7, 0xc3 }; - char data[] = { 0x00, 0xc3, 0x66, 0x3c, 0x3c, 0x66, 0xc3, 0x00 }; - s->_close_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 8, 8); - } - - s->_bevel_width = 1; - s->_handle_width = 4; -#else -# ifdef MERRY - s->_root_args = "#7b756a"; - - s->_text_color_focus = new RenderColor(screen, 0xffffff); - s->_text_color_unfocus = new RenderColor(screen, 0xffffff); - - s->_button_color_focus = new RenderColor(screen, 0x222222); - s->_button_color_unfocus = new RenderColor(screen, 0x333333); - - s->_frame_border_color = new RenderColor(screen, 0x222222); - s->_frame_border_width = 1; - - s->_client_border_color_focus = new RenderColor(screen, 0x858687); - s->_client_border_color_unfocus = new RenderColor(screen, 0x555657); - s->_client_border_width = 0; - - s->_titlebar_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - s->_titlebar_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0xe6e6e6, - 0xd9d9d9, - 0x0, - 0x0); - - s->_label_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - true, - RenderTexture::Vertical, - false, - //0x6a6973, - //0x6a6973, - 0x4c59a6, - 0x5a6dbd, - 0x222222, - 0x0); - //urg this ain't so hot - s->_label_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - true, - RenderTexture::Vertical, - false, - 0xb4b2ad, - 0xc3c1bc, - 0x6a696a, - 0x0); - - - s->_handle_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0xe6e6e6, - 0xd9d9d9, - 0x0, - 0x0); - s->_handle_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - - - s->_button_unpress_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - s->_button_unpress_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - - s->_button_press_focus = new RenderTexture(screen, - false, - RenderTexture::Sunken, - RenderTexture::Bevel2, - false, - RenderTexture::Vertical, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - s->_button_press_unfocus = new RenderTexture(screen, - false, - RenderTexture::Sunken, - RenderTexture::Bevel2, - false, - RenderTexture::Vertical, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - - s->_grip_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Vertical, - false, - 0xe6e6e6, - 0xd9d9d9, - 0x0, - 0x0); - s->_grip_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0xe6e6e6, - 0xe6e6e6, - 0x0, - 0x0); - - s->_label_font = new Font(screen, "Arial,Sans-8", true, 1, 0x3e); - s->_label_justify = CenterJustify; - - s->_max_mask = new PixmapMask(); - s->_max_mask->w = s->_max_mask->h = 7; - { - char data [] = {0x7c, 0x44, 0x47, 0x47, 0x7f, 0x1f, 0x1f }; - s->_max_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 7, 7); - } - - s->_icon_mask = new PixmapMask(); - s->_icon_mask->w = s->_icon_mask->h = 7; - { - char data[] = { 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3e }; - s->_icon_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 7, 7); - } - - s->_alldesk_mask = new PixmapMask(); - s->_alldesk_mask->w = s->_alldesk_mask->h = 7; - { - char data[] = {0x00, 0x36, 0x36, 0x00, 0x36, 0x36, 0x00 }; - s->_alldesk_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 7, 7); - } - - s->_close_mask = new PixmapMask(); - s->_close_mask->w = s->_close_mask->h = 7; - { - char data[] = { 0x22, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x22 }; - s->_close_mask->mask = - XCreateBitmapFromData(**display, - display->screenInfo(screen)->rootWindow(), - data, 7, 7); - } - - s->_bevel_width = 1; - s->_handle_width = 3; -# else -# error 1 -# endif -#endif - - return true; -} - -void RenderStyle::defaultStyle(RenderStyle *s, int screen) -{ - s->_screen = screen; - s->_file = ""; - - s->_root_args = "#000000"; - s->_text_color_focus = new RenderColor(screen, 0xffffff); - s->_text_color_unfocus = new RenderColor(screen, 0xffffff); - s->_button_color_focus = new RenderColor(screen, 0xffffff); - s->_button_color_unfocus = new RenderColor(screen, 0xffffff); - s->_frame_border_color = new RenderColor(screen, 0); - s->_frame_border_width = 1; - s->_client_border_color_focus = new RenderColor(screen, 0); - s->_client_border_color_unfocus = new RenderColor(screen, 0); - s->_client_border_width = 1; - s->_titlebar_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - s->_titlebar_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - - s->_label_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - true, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - s->_label_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - - s->_handle_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - s->_handle_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - - s->_button_unpress_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - true, - RenderTexture::Solid, - false, - 0, 0, 0xffffff, 0); - s->_button_unpress_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - - s->_button_press_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - true, - RenderTexture::Solid, - false, - 0, 0, 0xffffff, 0); - s->_button_press_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - - s->_grip_focus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - s->_grip_unfocus = new RenderTexture(screen, - false, - RenderTexture::Flat, - RenderTexture::Bevel1, - false, - RenderTexture::Solid, - false, - 0, 0, 0, 0); - - s->_label_font = new Font(screen, "Sans-9", false, 0, 0); - s->_label_justify = LeftTopJustify; - - s->_max_mask = new PixmapMask(); - s->_max_mask->w = s->_max_mask->h = 0; - s->_max_mask->mask = None; - - s->_icon_mask = new PixmapMask(); - s->_icon_mask->w = s->_icon_mask->h = 0; - s->_icon_mask->mask = None; - - s->_alldesk_mask = new PixmapMask(); - s->_alldesk_mask->w = s->_alldesk_mask->h = 0; - s->_alldesk_mask->mask = 0; - - s->_close_mask = new PixmapMask(); - s->_close_mask->w = s->_close_mask->h = 8; - s->_close_mask->mask = 0; - - s->_bevel_width = 1; - s->_handle_width = 4; -} - -RenderStyle::~RenderStyle() -{ - assert(_text_color_focus); - delete _text_color_focus; - assert(_text_color_unfocus); - delete _text_color_unfocus; - - assert(_button_color_focus); - delete _button_color_focus; - assert(_button_color_unfocus); - delete _button_color_unfocus; - - assert(_frame_border_color); - delete _frame_border_color; - - assert(_client_border_color_focus); - delete _client_border_color_focus; - assert(_client_border_color_unfocus); - delete _client_border_color_unfocus; - - assert(_titlebar_focus); - delete _titlebar_focus; - assert(_titlebar_unfocus); - delete _titlebar_unfocus; - - assert(_label_focus); - delete _label_focus; - assert(_label_unfocus); - delete _label_unfocus; - - assert(_handle_focus); - delete _handle_focus; - assert(_handle_unfocus); - delete _handle_unfocus; - - assert(_button_unpress_focus); - delete _button_unpress_focus; - assert(_button_unpress_unfocus); - delete _button_unpress_unfocus; - assert(_button_press_focus); - delete _button_press_focus; - assert(_button_press_unfocus); - delete _button_press_unfocus; - - assert(_grip_focus); - delete _grip_focus; - assert(_grip_unfocus); - delete _grip_unfocus; - - assert(_label_font); - delete _label_font; - - assert(_max_mask); - delete _max_mask; - assert(_icon_mask); - delete _icon_mask; - assert(_alldesk_mask); - delete _alldesk_mask; - assert(_close_mask); - delete _close_mask; -} - -}