/* ui/scrollpane.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_SCROLLPANE_H__ #define __INCLUDED_UI_SCROLLPANE_H__ #include "ui/widget.h" #include "ui/definitions.h" namespace ui { /// a widget displaying centered text class ScrollPane : public Widget { public: ScrollPane(Widget *parent, ui::Text &text); ~ScrollPane(); /* -- inspectors ------------------------------------------- */ /// current scroll position inline int scroll() const { return scrollpane_scroll; } /// text alignment inline unsigned int alignment() const { return scrollpane_alignment; } /// set text alignment void set_alignment(const unsigned int alignment); /* -- mutators --------------------------------------------- */ /// set scroll void set_scroll(int scroll); /// increase scroll void inc_scroll(int scroll); /// decrease scroll void dec_scroll(int scroll); protected: /// draw the scroll pane virtual void draw(); private: ui::Text &scrollpane_text; int scrollpane_scroll; unsigned int scrollpane_alignment; }; } #endif // __INCLUDED_UI_SCROLLPANE_H__