DDraceNetwork Documentation
Loading...
Searching...
No Matches
ui_rect.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_CLIENT_UI_RECT_H
4#define GAME_CLIENT_UI_RECT_H
5
6#include <base/color.h>
7#include <base/vmath.h>
8
9class IGraphics;
10
12{
14
15public:
16 static void Init(IGraphics *pGraphics) { ms_pGraphics = pGraphics; }
17
18 float x, y, w, h;
19
27 void HSplitMid(CUIRect *pTop, CUIRect *pBottom, float Spacing = 0.0f) const;
39 void HSplitTop(float Cut, CUIRect *pTop, CUIRect *pBottom) const;
51 void HSplitBottom(float Cut, CUIRect *pTop, CUIRect *pBottom) const;
59 void VSplitMid(CUIRect *pLeft, CUIRect *pRight, float Spacing = 0.0f) const;
71 void VSplitLeft(float Cut, CUIRect *pLeft, CUIRect *pRight) const;
83 void VSplitRight(float Cut, CUIRect *pLeft, CUIRect *pRight) const;
84
93 void Margin(vec2 Cut, CUIRect *pOtherRect) const;
100 void Margin(float Cut, CUIRect *pOtherRect) const;
107 void VMargin(float Cut, CUIRect *pOtherRect) const;
114 void HMargin(float Cut, CUIRect *pOtherRect) const;
115
122 bool Inside(vec2 Point) const;
123
137 void Draw(ColorRGBA Color, int Corners, float Rounding) const;
138 void Draw4(ColorRGBA ColorTopLeft, ColorRGBA ColorTopRight, ColorRGBA ColorBottomLeft, ColorRGBA ColorBottomRight, int Corners, float Rounding) const;
139
145 void DrawOutline(ColorRGBA Color) const;
146
152 vec2 TopLeft() const { return vec2(x, y); }
158 vec2 Size() const { return vec2(w, h); }
164 vec2 Center() const { return TopLeft() + Size() / 2.0f; }
165};
166
167#endif
Definition ui_rect.h:12
float h
Definition ui_rect.h:18
vec2 Size() const
Definition ui_rect.h:158
float y
Definition ui_rect.h:18
void Margin(vec2 Cut, CUIRect *pOtherRect) const
Definition ui_rect.cpp:139
static IGraphics * ms_pGraphics
Definition ui_rect.h:13
void HSplitMid(CUIRect *pTop, CUIRect *pBottom, float Spacing=0.0f) const
Definition ui_rect.cpp:9
void Draw(ColorRGBA Color, int Corners, float Rounding) const
Definition ui_rect.cpp:169
void HSplitTop(float Cut, CUIRect *pTop, CUIRect *pBottom) const
Definition ui_rect.cpp:32
vec2 TopLeft() const
Definition ui_rect.h:152
void VSplitLeft(float Cut, CUIRect *pLeft, CUIRect *pRight) const
Definition ui_rect.cpp:97
void HMargin(float Cut, CUIRect *pOtherRect) const
Definition ui_rect.cpp:159
void VSplitMid(CUIRect *pLeft, CUIRect *pRight, float Spacing=0.0f) const
Definition ui_rect.cpp:74
void HSplitBottom(float Cut, CUIRect *pTop, CUIRect *pBottom) const
Definition ui_rect.cpp:53
vec2 Center() const
Definition ui_rect.h:164
float w
Definition ui_rect.h:18
void DrawOutline(ColorRGBA Color) const
Definition ui_rect.cpp:179
void VMargin(float Cut, CUIRect *pOtherRect) const
Definition ui_rect.cpp:154
bool Inside(vec2 Point) const
Definition ui_rect.cpp:164
void VSplitRight(float Cut, CUIRect *pLeft, CUIRect *pRight) const
Definition ui_rect.cpp:118
float x
Definition ui_rect.h:18
void Draw4(ColorRGBA ColorTopLeft, ColorRGBA ColorTopRight, ColorRGBA ColorBottomLeft, ColorRGBA ColorBottomRight, int Corners, float Rounding) const
Definition ui_rect.cpp:174
static void Init(IGraphics *pGraphics)
Definition ui_rect.h:16
Definition color.h:182
Definition graphics.h:189
vector2_base< float > vec2
Definition vmath.h:161