Zappy GUI
C++ graphic client: renderer, camera, network
Loading...
Searching...
No Matches
TooltipWidget.hpp
Go to the documentation of this file.
1
3
4
#pragma once
5
6
#include <string>
7
#include <vector>
8
9
#include "
IWidget.hpp
"
10
#include "raylib.h"
11
22
class
TooltipWidget
:
public
IWidget
{
23
public
:
24
enum class
Anchor
{
25
None
,
26
TopLeft
,
27
TopCenter
,
28
TopRight
,
29
MiddleLeft
,
30
Center
,
31
MiddleRight
,
32
BottomLeft
,
33
BottomCenter
,
34
BottomRight
,
35
};
36
37
TooltipWidget
() =
default
;
38
~TooltipWidget
()
override
=
default
;
39
40
// ── Content ────────────────────────────────────────────────────────────
42
TooltipWidget
&
addLine
(
const
std::string& text, Color color = WHITE);
43
45
TooltipWidget
&
addColoredLine
(
const
std::vector<std::string>& segments,
46
const
std::vector<Color>& colors);
47
49
TooltipWidget
&
clearLines
();
50
51
// ── Geometry ───────────────────────────────────────────────────────────
53
TooltipWidget
&
setPosition
(
float
x,
float
y);
54
57
TooltipWidget
&
setAnchor
(
Anchor
anchor,
float
margin = 10.0f);
58
60
TooltipWidget
&
setMinWidth
(
float
minWidth);
61
63
TooltipWidget
&
setExtraBottomPadding
(
float
px);
64
65
// ── Appearance ─────────────────────────────────────────────────────────
66
enum class
TextAlign
{
Left
,
Center
};
67
TooltipWidget
&
setTextAlign
(
TextAlign
align);
68
69
TooltipWidget
&
setBackgroundColor
(Color color);
70
TooltipWidget
&
setBackgroundAlpha
(
unsigned
char
alpha);
71
TooltipWidget
&
setBorderColor
(Color color);
72
TooltipWidget
&
setBorderThickness
(
int
thickness);
73
TooltipWidget
&
setPadding
(
int
padding);
74
75
// ── IWidget ────────────────────────────────────────────────────────────
76
void
draw
(
int
scaledFontSize)
const override
;
77
79
bool
handleInput
()
override
{
return
false
; }
80
83
Rectangle
getLastBounds
()
const
{
return
_lastBounds
; }
84
85
private
:
86
struct
Line
{
87
std::vector<std::string>
segments
;
88
std::vector<Color>
colors
;
89
};
90
91
std::vector<Line>
_lines
;
92
93
float
_x
= 0.0f;
94
float
_y
= 0.0f;
95
Anchor
_anchor
=
Anchor::None
;
96
float
_margin
= 10.0f;
97
float
_minWidth
= 0.0f;
98
float
_extraBottomPadding
= 0.0f;
99
100
Color
_bgColor
= {20, 25, 35, 220};
101
unsigned
char
_bgAlpha
= 220;
102
Color
_borderColor
= {60, 70, 90, 200};
103
int
_borderThickness
= 2;
104
int
_padding
= 12;
105
TextAlign
_textAlign
=
TextAlign::Left
;
106
107
mutable
Rectangle
_lastBounds
= {};
108
109
Vector2
_resolvePosition
(
float
boxWidth,
float
boxHeight)
const
;
110
};
IWidget.hpp
Interface for GUI widgets.
IWidget
Interface for GUI widgets.
Definition
IWidget.hpp:11
TooltipWidget
A configurable, stateful tooltip panel.
Definition
TooltipWidget.hpp:22
TooltipWidget::addLine
TooltipWidget & addLine(const std::string &text, Color color=WHITE)
Adds a single-color text line.
Definition
TooltipWidget.cpp:10
TooltipWidget::setExtraBottomPadding
TooltipWidget & setExtraBottomPadding(float px)
Adds extra blank space at the bottom of the box (e.g. to reserve room for a button).
Definition
TooltipWidget.cpp:52
TooltipWidget::setPosition
TooltipWidget & setPosition(float x, float y)
Absolute position. Sets anchor to None.
Definition
TooltipWidget.cpp:31
TooltipWidget::clearLines
TooltipWidget & clearLines()
Removes all lines.
Definition
TooltipWidget.cpp:25
TooltipWidget::_anchor
Anchor _anchor
Definition
TooltipWidget.hpp:95
TooltipWidget::_lines
std::vector< Line > _lines
Definition
TooltipWidget.hpp:91
TooltipWidget::_minWidth
float _minWidth
Definition
TooltipWidget.hpp:97
TooltipWidget::TooltipWidget
TooltipWidget()=default
TooltipWidget::setBorderColor
TooltipWidget & setBorderColor(Color color)
Definition
TooltipWidget.cpp:76
TooltipWidget::setTextAlign
TooltipWidget & setTextAlign(TextAlign align)
Definition
TooltipWidget.cpp:58
TooltipWidget::handleInput
bool handleInput() override
Always returns false — tooltip panels are display-only.
Definition
TooltipWidget.hpp:79
TooltipWidget::_borderThickness
int _borderThickness
Definition
TooltipWidget.hpp:103
TooltipWidget::_extraBottomPadding
float _extraBottomPadding
Definition
TooltipWidget.hpp:98
TooltipWidget::_lastBounds
Rectangle _lastBounds
Definition
TooltipWidget.hpp:107
TooltipWidget::_x
float _x
Definition
TooltipWidget.hpp:93
TooltipWidget::setAnchor
TooltipWidget & setAnchor(Anchor anchor, float margin=10.0f)
Auto-positioning relative to screen edges.
Definition
TooltipWidget.cpp:39
TooltipWidget::setMinWidth
TooltipWidget & setMinWidth(float minWidth)
Override minimum panel width (0 = fit to content).
Definition
TooltipWidget.cpp:46
TooltipWidget::Anchor
Anchor
Definition
TooltipWidget.hpp:24
TooltipWidget::Anchor::MiddleLeft
@ MiddleLeft
TooltipWidget::Anchor::TopRight
@ TopRight
TooltipWidget::Anchor::MiddleRight
@ MiddleRight
TooltipWidget::Anchor::Center
@ Center
TooltipWidget::Anchor::None
@ None
TooltipWidget::Anchor::BottomRight
@ BottomRight
TooltipWidget::Anchor::TopCenter
@ TopCenter
TooltipWidget::Anchor::BottomLeft
@ BottomLeft
TooltipWidget::Anchor::TopLeft
@ TopLeft
TooltipWidget::Anchor::BottomCenter
@ BottomCenter
TooltipWidget::_margin
float _margin
Definition
TooltipWidget.hpp:96
TooltipWidget::TextAlign
TextAlign
Definition
TooltipWidget.hpp:66
TooltipWidget::TextAlign::Left
@ Left
TooltipWidget::_bgColor
Color _bgColor
Definition
TooltipWidget.hpp:100
TooltipWidget::_y
float _y
Definition
TooltipWidget.hpp:94
TooltipWidget::setBackgroundColor
TooltipWidget & setBackgroundColor(Color color)
Definition
TooltipWidget.cpp:64
TooltipWidget::setPadding
TooltipWidget & setPadding(int padding)
Definition
TooltipWidget.cpp:88
TooltipWidget::setBackgroundAlpha
TooltipWidget & setBackgroundAlpha(unsigned char alpha)
Definition
TooltipWidget.cpp:70
TooltipWidget::_textAlign
TextAlign _textAlign
Definition
TooltipWidget.hpp:105
TooltipWidget::_resolvePosition
Vector2 _resolvePosition(float boxWidth, float boxHeight) const
Definition
TooltipWidget.cpp:94
TooltipWidget::draw
void draw(int scaledFontSize) const override
Draws the widget.
Definition
TooltipWidget.cpp:125
TooltipWidget::addColoredLine
TooltipWidget & addColoredLine(const std::vector< std::string > &segments, const std::vector< Color > &colors)
Adds a line with multiple colored segments (inline spans).
Definition
TooltipWidget.cpp:16
TooltipWidget::~TooltipWidget
~TooltipWidget() override=default
TooltipWidget::setBorderThickness
TooltipWidget & setBorderThickness(int thickness)
Definition
TooltipWidget.cpp:82
TooltipWidget::_padding
int _padding
Definition
TooltipWidget.hpp:104
TooltipWidget::_borderColor
Color _borderColor
Definition
TooltipWidget.hpp:102
TooltipWidget::getLastBounds
Rectangle getLastBounds() const
Returns the bounding rectangle for the last drawn frame. Useful for positioning sibling widgets (e....
Definition
TooltipWidget.hpp:83
TooltipWidget::_bgAlpha
unsigned char _bgAlpha
Definition
TooltipWidget.hpp:101
TooltipWidget::Line
Definition
TooltipWidget.hpp:86
TooltipWidget::Line::segments
std::vector< std::string > segments
Definition
TooltipWidget.hpp:87
TooltipWidget::Line::colors
std::vector< Color > colors
Definition
TooltipWidget.hpp:88
gui
src
renderer
raylib_helpers
TooltipWidget.hpp
Generated by
1.9.8