X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Flabel.hh;h=cd9ef5a1276dad1d87fa61e3ab0fb6a794df3d4b;hb=77a46782db2996c0bc662c0f6d191df7a39c2cce;hp=ff1755d78fe82b143c85bf941a461bed7fb8ba0a;hpb=d8d9b42777ace234f3471918e1210062578f8188;p=chaz%2Fopenbox diff --git a/otk/label.hh b/otk/label.hh index ff1755d7..cd9ef5a1 100644 --- a/otk/label.hh +++ b/otk/label.hh @@ -3,30 +3,62 @@ #define __label_hh #include "widget.hh" +#include "ustring.hh" +#include "renderstyle.hh" +#include "font.hh" + +#include namespace otk { class Label : public Widget { public: - + Label(int screen, EventDispatcher *ed, int bevel = 3); Label(Widget *parent); - ~Label(); + virtual ~Label(); + + inline const ustring& text(void) const { return _text; } + void setText(const ustring &text); + + virtual inline bool isHighlighted() const { return _highlight; } + virtual void setHighlighted(bool h); + + RenderStyle::Justify horizontalJustify() const { return _justify_horz; } + virtual void setHorizontalJustify(RenderStyle::Justify j); + RenderStyle::Justify verticalJustify() const { return _justify_vert; } + virtual void setVerticalJustify(RenderStyle::Justify j); - inline const ustring &getText(void) const { return _text; } - void setText(const ustring &text) { _text = text; _dirty = true; } + const Font *font() const { return _font; } + virtual void setFont(const Font *f); - virtual void renderForeground(void); + virtual void styleChanged(const RenderStyle &style); + + virtual void renderForeground(Surface &surface); - virtual void setStyle(Style *style); +protected: + virtual void calcDefaultSizes(); + //! The color the label will use for rendering its text + RenderColor *_forecolor; + private: //! Text to be displayed in the label ustring _text; + //! Text to be displayed, parsed into its separate lines + std::vector _parsedtext; //! The actual text being shown, may be a subset of _text ustring _drawtext; + //! The font the text will be rendered with + const Font *_font; + //! The horizontal justification used for drawing text + RenderStyle::Justify _justify_horz; + //! The vertical justification used for drawing text + RenderStyle::Justify _justify_vert; //! The drawing offset for the text int _drawx; + //! If the widget is highlighted or not + bool _highlight; }; }