Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/tooltip.h')
-rw-r--r--src/ui/tooltip.h61
1 files changed, 61 insertions, 0 deletions
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__