openbox/otk/label.hh
Dana Jansens 99cd843fc6 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.
2003-02-08 07:33:48 +00:00

60 lines
1.5 KiB
C++

// -*- 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(Widget *parent);
virtual ~Label();
inline const ustring& getText(void) const { return _text; }
void setText(const ustring &text);
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 calcDefaultSizes();
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;
};
}
#endif