otk/label.hh (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- #ifndef __label_hh #define __label_hh #include "widget.hh" #include "ustring.hh" #include "renderstyle.hh" #include "font.hh" #include <vector> namespace otk { class Label : public Widget { public: Label(int screen, EventDispatcher *ed, int bevel = 3); Label(Widget *parent); 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); const Font *font() const { return _font; } virtual void setFont(const Font *f); virtual void styleChanged(const RenderStyle &style); virtual void renderForeground(Surface &surface); 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<ustring> _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; }; } #endif |