/* ui/label.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_UI_LABEL_H__ #define __INCLUDED_UI_LABEL_H__ #include #include "ui/widget.h" namespace ui { /** * @brief a widget displaying a single line of text */ class Label : public Widget { public: Label(Widget *parent, const char *text = 0); ~Label(); /// set the text displayed by the label void set_text(const std::string &text); /// set the text displayed by the label void set_text(const char *text); /// set the text alignment void set_alignment(const unsigned int alignment); /// clear the label text void clear(); /// return the text displayed by the label inline const std::string &text() const { return label_text; } /// text alignment inline unsigned int alignment() const { return label_alignment; } /// print label description virtual void print(const size_t indent) const; protected: /// draw the label virtual void draw(); private: std::string label_text; unsigned int label_alignment; }; } #endif // __INCLUDED_UI_LABEL_H__