/* ui/modelview.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_MODELVIEW_H__ #define __INCLUDED_UI_MODELVIEW_H__ #include "ui/widget.h" namespace ui { class ModelView : public Widget { public: ModelView(Widget *parent, const char *modelname=0); ~ModelView(); inline std::string const &modelname() const { return modelview_modelname; } inline math::Color const &color() const { return modelview_color; } void set_modelname(const std::string & modelname); void set_modelname(const char *modelname); void set_color(const math::Color &color); /// print modelview description virtual void print(const size_t indent) const; /** * @brief set the zoom out factor * @param zoom the new zoom factor * The zoom factor will be clamped to the range [1.0-10.0] * 1.0 is not zoomed out, 10.0 is zoomed out by a factor of 10 */ void set_zoom(const float zoom); protected: /// draw the widget virtual void draw(); /// draw border void draw_border(); /// keypress event handler virtual bool on_keypress(const int key, const unsigned int modifier); private: std::string modelview_modelname; math::Color modelview_color; float modelview_zoom; }; } #endif // __INCLUDED_UI_MODELVIEW_H__