DDraceNetwork Documentation
Loading...
Searching...
No Matches
ui_listbox.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_LISTBOX_H
4#define GAME_CLIENT_UI_LISTBOX_H
5
6#include "ui_scrollregion.h"
7
14
15// Instances of CListBox must be static, as member addresses are used as UI item IDs
16class CListBox : private CUIElementBase
17{
18private:
39
40protected:
42
43public:
44 CListBox();
45 void Reset();
46
47 void DoHeader(const CUIRect *pRect, const char *pTitle, float HeaderHeight = 20.0f, float Spacing = 2.0f);
48 void DoAutoSpacing(float Spacing = 20.0f) { m_AutoSpacing = Spacing; }
49 void DoSpacing(float Spacing = 20.0f);
50 void DoStart(float RowHeight, int NumItems, int ItemsPerRow, int RowsPerScroll, int SelectedIndex, const CUIRect *pRect = nullptr, bool Background = true, int BackgroundCorners = IGraphics::CORNER_ALL, bool ForceShowScrollbar = false);
52 CListboxItem DoNextItem(const void *pId, bool Selected = false, float CornerRadius = 5.0f);
54 int DoEnd();
55
56 // Active state must be set before calling DoStart.
57 bool Active() const { return m_Active; }
58 void SetActive(bool Active) { m_Active = Active; }
59
60 bool WasItemSelected() const { return m_ListBoxItemSelected; }
62
63 bool ScrollbarShown() const { return m_ScrollbarShown; }
64 float ScrollbarWidth() const { return ScrollbarShown() ? ScrollbarWidthMax() : 0.0f; }
65 float ScrollbarWidthMax() const { return m_ScrollbarWidth; }
67 float ScrollbarMargin() const { return m_ScrollbarMargin; }
68 void SetScrollbarMargin(float Margin) { m_ScrollbarMargin = Margin; }
69};
70
71#endif
Definition ui_listbox.h:17
int m_ListBoxItemIndex
Definition ui_listbox.h:22
CListboxItem DoNextRow()
Definition ui_listbox.cpp:116
void SetActive(bool Active)
Definition ui_listbox.h:58
bool m_ScrollbarShown
Definition ui_listbox.h:31
void DoHeader(const CUIRect *pRect, const char *pTitle, float HeaderHeight=20.0f, float Spacing=2.0f)
Definition ui_listbox.cpp:31
bool m_HasHeader
Definition ui_listbox.h:37
int m_ListBoxSelectedIndex
Definition ui_listbox.h:23
float ScrollbarMargin() const
Definition ui_listbox.h:67
float ScrollbarWidth() const
Definition ui_listbox.h:64
bool m_ListBoxUpdateScroll
Definition ui_listbox.h:26
CUIRect m_RowView
Definition ui_listbox.h:20
float m_ScrollbarWidth
Definition ui_listbox.h:35
bool m_ListBoxItemActivated
Definition ui_listbox.h:30
void SetScrollbarMargin(float Margin)
Definition ui_listbox.h:68
CListboxItem DoNextItem(const void *pId, bool Selected=false, float CornerRadius=5.0f)
Definition ui_listbox.cpp:138
bool WasItemSelected() const
Definition ui_listbox.h:60
int m_ListBoxNewSelected
Definition ui_listbox.h:24
CScrollRegion m_ScrollRegion
Definition ui_listbox.h:33
int m_ListBoxNewSelOffset
Definition ui_listbox.h:25
bool ScrollbarShown() const
Definition ui_listbox.h:63
int DoEnd()
Definition ui_listbox.cpp:189
bool Active() const
Definition ui_listbox.h:57
bool WasItemActivated() const
Definition ui_listbox.h:61
int m_ListBoxNumItems
Definition ui_listbox.h:27
void DoSpacing(float Spacing=20.0f)
Definition ui_listbox.cpp:51
float m_ScrollbarMargin
Definition ui_listbox.h:36
CListboxItem DoSubheader()
Definition ui_listbox.cpp:182
void DoStart(float RowHeight, int NumItems, int ItemsPerRow, int RowsPerScroll, int SelectedIndex, const CUIRect *pRect=nullptr, bool Background=true, int BackgroundCorners=IGraphics::CORNER_ALL, bool ForceShowScrollbar=false)
Definition ui_listbox.cpp:58
void DoAutoSpacing(float Spacing=20.0f)
Definition ui_listbox.h:48
int m_BackgroundCorners
Definition ui_listbox.h:34
CUIRect m_ListBoxView
Definition ui_listbox.h:19
bool m_Active
Definition ui_listbox.h:38
void Reset()
Definition ui_listbox.cpp:18
void SetScrollbarWidth(float Width)
Definition ui_listbox.h:66
void ScrollToSelected()
Definition ui_listbox.h:51
float m_AutoSpacing
Definition ui_listbox.h:32
CListBox()
Definition ui_listbox.cpp:13
int m_ListBoxItemsPerRow
Definition ui_listbox.h:28
float ScrollbarWidthMax() const
Definition ui_listbox.h:65
float m_ListBoxRowHeight
Definition ui_listbox.h:21
bool m_ListBoxItemSelected
Definition ui_listbox.h:29
Definition ui_scrollregion.h:90
Definition ui.h:247
Definition ui_rect.h:11
@ CORNER_ALL
Definition graphics.h:461
Definition vmath.h:15
Definition ui_listbox.h:9
CUIRect m_Rect
Definition ui_listbox.h:12
bool m_Selected
Definition ui_listbox.h:11
bool m_Visible
Definition ui_listbox.h:10