/* 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; } /// current scroll offset inline int offset() const { return scrollpane_offset; } /// text alignment inline unsigned int alignment() const { return scrollpane_alignment; } /* -- mutators --------------------------------------------- */ /// set scroll void set_scroll(const int scroll); /// set scroll offset void set_offset(const int offset); /// increase scroll void inc_scroll(const int scroll); /// decrease scroll void dec_scroll(const int scroll); /// set text alignment void set_alignment(const unsigned int alignment); protected: /// draw the scroll pane virtual void draw(); /** * @brief mousehweel event handler * */ virtual bool on_mousewheel(const math::Vector2f & direction); private: ui::Text &scrollpane_text; int scrollpane_scroll; int scrollpane_offset; unsigned int scrollpane_alignment; }; } #endif // __INCLUDED_UI_SCROLLPANE_H__