/* ui/tooltip.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_TOOLTIP_H__ #define __INCLUDED_UI_TOOLTIP_H__ #include "ui/label.h" namespace ui { /** * @brief a widget displaying a tooltip. * This class makes sure only one Tooltip is globally visible. */ class Tooltip : public Label { public: Tooltip(Widget *parent); virtual ~Tooltip(); /** * @brief resize the tooltip */ virtual void resize(); /** * @brief show the tooltip */ virtual void show(); /** * @brief hide the tooltip */ virtual void hide(); /** * @brief the tooltip that is currently visible, nullptr if no tooltip is currently shown * **/ static inline Tooltip *global() { return tooltip_global; } protected: /** * @brief draw the tooltip */ virtual void draw(); /** * @brief draw the tooltip background */ virtual void draw_background(); private: static Tooltip *tooltip_global; }; } #endif // __INCLUDED_UI_TOOLTIP_H__