From b19afea9427dde861c990236ab11e23edfeb267c Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 18 Jul 2020 14:49:13 +0200 Subject: Completed ui library tooltip implementation. --- src/ui/tooltip.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/ui/tooltip.h (limited to 'src/ui/tooltip.h') diff --git a/src/ui/tooltip.h b/src/ui/tooltip.h new file mode 100644 index 0000000..2345973 --- /dev/null +++ b/src/ui/tooltip.h @@ -0,0 +1,61 @@ +/* + 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); + ~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(); + + private: + + static Tooltip *tooltip_global; +}; + +} + +#endif // __INCLUDED_UI_TOOLTIP_H__ -- cgit v1.2.3