openbox/otk/renderstyle.hh

137 lines
3.9 KiB
C++
Raw Normal View History

2003-01-18 04:56:30 +00:00
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
#ifndef __renderstyle_hh
#define __renderstyle_hh
#include "rendertexture.hh"
2003-01-22 22:20:26 +00:00
#include "rendercolor.hh"
#include "font.hh"
2003-01-18 04:56:30 +00:00
2003-01-22 20:14:28 +00:00
#include <string>
namespace otk {
2003-01-23 00:08:50 +00:00
struct PixmapMask {
Pixmap mask;
unsigned int w, h;
PixmapMask() { mask = None; w = h = 0; }
};
2003-01-18 04:56:30 +00:00
class RenderStyle {
2003-01-20 17:14:32 +00:00
public:
enum TextJustify {
LeftJustify,
RightJustify,
CenterJustify
};
private:
int _screen;
2003-01-22 20:14:28 +00:00
std::string _file;
RenderColor *_root_color;
2003-01-20 17:14:32 +00:00
2003-01-22 22:20:26 +00:00
RenderColor *_text_color_focus;
RenderColor *_text_color_unfocus;
RenderColor *_button_color_focus;
RenderColor *_button_color_unfocus;
2003-01-20 17:14:32 +00:00
RenderColor *_frame_border_color;
2003-01-22 22:20:26 +00:00
int _frame_border_width;
2003-01-20 17:14:32 +00:00
RenderColor *_client_border_color_focus;
RenderColor *_client_border_color_unfocus;
int _client_border_width;
RenderTexture *_titlebar_focus;
RenderTexture *_titlebar_unfocus;
RenderTexture *_label_focus;
RenderTexture *_label_unfocus;
RenderTexture *_handle_focus;
RenderTexture *_handle_unfocus;
RenderTexture *_button_unpress_focus;
RenderTexture *_button_unpress_unfocus;
RenderTexture *_button_press_focus;
RenderTexture *_button_press_unfocus;
RenderTexture *_grip_focus;
RenderTexture *_grip_unfocus;
Font *_label_font;
TextJustify _label_justify;
2003-01-23 00:08:50 +00:00
PixmapMask *_max_mask;
PixmapMask *_icon_mask;
PixmapMask *_alldesk_mask;
2003-01-23 00:08:50 +00:00
PixmapMask *_close_mask;
2003-01-20 17:14:32 +00:00
int _handle_width;
int _bevel_width;
2003-01-22 20:14:28 +00:00
public:
RenderStyle(int screen, const std::string &stylefile);
virtual ~RenderStyle();
2003-01-22 22:46:16 +00:00
inline int screen() const { return _screen; }
inline RenderColor *rootColor() const { return _root_color; }
2003-01-22 20:14:28 +00:00
inline RenderColor *textFocusColor() const { return _text_color_focus; }
inline RenderColor *textUnfocusColor() const { return _text_color_unfocus; }
2003-01-22 22:20:26 +00:00
inline RenderColor *buttonFocusColor() const { return _button_color_focus; }
inline RenderColor *buttonUnfocusColor() const
{ return _button_color_unfocus; }
2003-01-22 20:14:28 +00:00
inline RenderColor *frameBorderColor() const { return _frame_border_color; }
2003-01-22 22:20:26 +00:00
inline int frameBorderWidth() const { return _frame_border_width; }
2003-01-22 20:14:28 +00:00
inline RenderColor *clientBorderFocusColor() const
{ return _client_border_color_focus; }
inline RenderColor *clientBorderUnfocusColor() const
{ return _client_border_color_unfocus; }
inline int clientBorderWidth() const { return _client_border_width; }
inline RenderTexture *titlebarFocusBackground() const
{ return _titlebar_focus; }
inline RenderTexture *titlebarUnfocusBackground() const
{ return _titlebar_unfocus; }
inline RenderTexture *labelFocusBackground() const { return _label_focus; }
inline RenderTexture *labelUnfocusBackground() const { return _label_unfocus;}
2003-01-22 22:20:26 +00:00
inline RenderTexture *handleFocusBackground() const { return _handle_focus; }
inline RenderTexture *handleUnfocusBackground() const
{ return _handle_unfocus; }
2003-01-22 20:14:28 +00:00
inline RenderTexture *buttonUnpressFocusBackground() const
{ return _button_unpress_focus; }
inline RenderTexture *buttonUnpressUnfocusBackground() const
{ return _button_unpress_unfocus; }
inline RenderTexture *buttonPressFocusBackground() const
{ return _button_press_focus; }
2003-01-22 22:46:16 +00:00
inline RenderTexture *buttonPressUnfocusBackground() const
2003-01-22 20:14:28 +00:00
{ return _button_press_unfocus; }
2003-01-23 00:08:50 +00:00
inline RenderTexture *gripFocusBackground() const { return _grip_focus; }
2003-01-22 20:14:28 +00:00
inline RenderTexture *gripUnfocusBackground() const { return _grip_unfocus; }
inline Font *labelFont() const { return _label_font; }
inline TextJustify labelTextJustify() const { return _label_justify; }
2003-01-23 00:08:50 +00:00
inline PixmapMask *maximizeMask() const { return _max_mask; }
inline PixmapMask *iconifyMask() const { return _icon_mask; }
inline PixmapMask *alldesktopsMask() const { return _alldesk_mask; }
2003-01-23 00:08:50 +00:00
inline PixmapMask *closeMask() const { return _close_mask; }
2003-01-22 20:14:28 +00:00
inline int handleWidth() const { return _handle_width; }
inline int bevelWidth() const { return _bevel_width; }
2003-01-18 04:56:30 +00:00
};
}
#endif // __rendertexture_hh