summaryrefslogtreecommitdiff
path: root/otk/label.hh
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-02-08 07:33:48 +0000
committerDana Jansens <danakj@orodu.net>2003-02-08 07:33:48 +0000
commit99cd843fc6dc7a7f55b6c90fd1162f233853aad2 (patch)
tree42b25c02cbf984fe29b378e9d0dbfbca1436c87b /otk/label.hh
parentd2df40965bbf042e062b65d6adc12bc158d503eb (diff)
Brand spankin new widgets for otk (Label and Button).
Add a new Size class. Rect, Point, and Size are immutable classes. Size uses *UNSIGNED* ints. This is causing me headaches * a bajillion right now, so we'll see about that.
Diffstat (limited to 'otk/label.hh')
-rw-r--r--otk/label.hh39
1 files changed, 30 insertions, 9 deletions
diff --git a/otk/label.hh b/otk/label.hh
index 9c32e544..1b31ae79 100644
--- a/otk/label.hh
+++ b/otk/label.hh
@@ -3,33 +3,54 @@
#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(Widget *parent);
- ~Label();
+ virtual ~Label();
- inline const ustring &getText(void) const { return _text; }
- void setText(const ustring &text) { _text = text; _dirty = true; }
+ inline const ustring& getText(void) const { return _text; }
+ void setText(const ustring &text);
- virtual void renderForeground(void);
+ 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);
- virtual void update();
+ const Font *font() const { return _font; }
+ virtual void setFont(const Font *f);
- void fitString(const std::string &str);
- void fitSize(int w, int h);
+ virtual void calcDefaultSizes();
- virtual void setStyle(RenderStyle *style);
+ virtual void styleChanged(const RenderStyle &style);
+
+ virtual void renderForeground(Surface &surface);
+protected:
+ //! 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;
};