Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
CGUIScrollBarVertical.h
Go to the documentation of this file.
1/* Copyright (C) 2021 Wildfire Games.
2 * This file is part of 0 A.D.
3 *
4 * 0 A.D. is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * 0 A.D. is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18/*
19 A GUI Scrollbar, this class doesn't present all functionality
20 to the scrollbar, it just controls the drawing and a wrapper
21 for interaction with it.
22*/
23
24#ifndef INCLUDED_CGUISCROLLBARVERTICAL
25#define INCLUDED_CGUISCROLLBARVERTICAL
26
27#include "IGUIScrollBar.h"
28
29/**
30 * Vertical implementation of IGUIScrollBar
31 *
32 * @see IGUIScrollBar
33 */
35{
36public:
38 virtual ~CGUIScrollBarVertical();
39
40public:
41 /**
42 * Draw the scroll-bar
43 */
44 virtual void Draw(CCanvas2D& canvas);
45
46 /**
47 * If an object that contains a scrollbar has got messages, send
48 * them to the scroll-bar and it will see if the message regarded
49 * itself.
50 *
51 * @see IGUIObject#HandleMessage()
52 */
53 virtual void HandleMessage(SGUIMessage& Message);
54
55 /**
56 * Set m_Pos with g_mouse_x/y input, i.e. when dragging.
57 */
58 virtual void SetPosFromMousePos(const CVector2D& mouse);
59
60 /**
61 * @see IGUIScrollBar#HoveringButtonMinus
62 */
63 virtual bool HoveringButtonMinus(const CVector2D& mouse);
64
65 /**
66 * @see IGUIScrollBar#HoveringButtonPlus
67 */
68 virtual bool HoveringButtonPlus(const CVector2D& mouse);
69
70 /**
71 * Set Right Aligned
72 * @param align Alignment
73 */
74 void SetRightAligned(const bool& align) { m_RightAligned = align; }
75
76 /**
77 * Get the rectangle of the actual BAR.
78 * @return Rectangle, CRect
79 */
80 virtual CRect GetBarRect() const;
81
82 /**
83 * Get the rectangle of the outline of the scrollbar, every component of the
84 * scroll-bar should be inside this area.
85 * @return Rectangle, CRect
86 */
87 virtual CRect GetOuterRect() const;
88
89protected:
90 /**
91 * Should the scroll bar proceed to the left or to the right of the m_X value.
92 * Notice, this has nothing to do with where the owner places it.
93 */
95};
96
97#endif // INCLUDED_CGUISCROLLBARVERTICAL
Definition: Canvas2D.h:36
Vertical implementation of IGUIScrollBar.
Definition: CGUIScrollBarVertical.h:35
void SetRightAligned(const bool &align)
Set Right Aligned.
Definition: CGUIScrollBarVertical.h:74
virtual CRect GetOuterRect() const
Get the rectangle of the outline of the scrollbar, every component of the scroll-bar should be inside...
Definition: CGUIScrollBarVertical.cpp:158
virtual bool HoveringButtonMinus(const CVector2D &mouse)
Definition: CGUIScrollBarVertical.cpp:172
virtual CRect GetBarRect() const
Get the rectangle of the actual BAR.
Definition: CGUIScrollBarVertical.cpp:134
virtual void Draw(CCanvas2D &canvas)
Draw the scroll-bar.
Definition: CGUIScrollBarVertical.cpp:50
bool m_RightAligned
Should the scroll bar proceed to the left or to the right of the m_X value.
Definition: CGUIScrollBarVertical.h:94
virtual void HandleMessage(SGUIMessage &Message)
If an object that contains a scrollbar has got messages, send them to the scroll-bar and it will see ...
Definition: CGUIScrollBarVertical.cpp:129
virtual ~CGUIScrollBarVertical()
Definition: CGUIScrollBarVertical.cpp:30
CGUIScrollBarVertical(CGUI &pGUI)
Definition: CGUIScrollBarVertical.cpp:25
virtual bool HoveringButtonPlus(const CVector2D &mouse)
Definition: CGUIScrollBarVertical.cpp:185
virtual void SetPosFromMousePos(const CVector2D &mouse)
Set m_Pos with g_mouse_x/y input, i.e.
Definition: CGUIScrollBarVertical.cpp:34
The main object that represents a whole GUI page.
Definition: CGUI.h:61
Rectangle class used for screen rectangles.
Definition: Rect.h:31
Definition: Vector2D.h:32
The GUI Scroll-bar, used everywhere there is a scroll-bar in the game.
Definition: IGUIScrollBar.h:155
Message send to IGUIObject::HandleMessage() in order to give life to Objects manually with a derived ...
Definition: SGUIMessage.h:68