blob: cd9ef5a1276dad1d87fa61e3ab0fb6a794df3d4b (
plain)
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
|