forked from hitmen047/Source-PlusPlus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathControls.h
161 lines (138 loc) · 3.56 KB
/
Controls.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//===========================================================================//
#ifndef CONTROLS_H
#define CONTROLS_H
#ifdef _WIN32
#pragma once
#endif
#include <vgui/VGUI.h>
#include <vgui/IPanel.h>
#include <vstdlib/IKeyValuesSystem.h>
#include "tier1/interface.h"
#include "vgui/MouseCode.h"
#include "vgui/KeyCode.h"
#include "tier3/tier3.h"
namespace vgui
{
// handles the initialization of the vgui interfaces
// interfaces (listed below) are first attempted to be loaded from primaryProvider, then secondaryProvider
// moduleName should be the name of the module that this instance of the vgui_controls has been compiled into
bool VGui_InitInterfacesList( const char *moduleName, CreateInterfaceFn *factoryList, int numFactories );
// returns the name of the module as specified above
const char *GetControlsModuleName();
class IPanel;
class IInput;
class ISchemeManager;
class ISurface;
class ISystem;
class IVGui;
//-----------------------------------------------------------------------------
// Backward compat interfaces, use the interfaces grabbed in tier3
// set of accessor functions to vgui interfaces
// the appropriate header file for each is listed above the item
//-----------------------------------------------------------------------------
// #include <vgui/IInput.h>
inline vgui::IInput *input()
{
return g_pVGuiInput;
}
// #include <vgui/IScheme.h>
inline vgui::ISchemeManager *scheme()
{
return g_pVGuiSchemeManager;
}
// #include <vgui/ISurface.h>
inline vgui::ISurface *surface()
{
return g_pVGuiSurface;
}
// #include <vgui/ISystem.h>
inline vgui::ISystem *system()
{
return g_pVGuiSystem;
}
// #include <vgui/IVGui.h>
inline vgui::IVGui *ivgui()
{
return g_pVGui;
}
// #include <vgui/IPanel.h>
inline vgui::IPanel *ipanel()
{
return g_pVGuiPanel;
}
// predeclare all the vgui control class names
class AnalogBar;
class AnimatingImagePanel;
class AnimationController;
class BuildModeDialog;
class Button;
class CheckButton;
class CheckButtonList;
class CircularProgressBar;
template< class T >class CvarToggleCheckButton;
class ComboBox;
class DirectorySelectDialog;
class Divider;
class EditablePanel;
class FileOpenDialog;
class Frame;
class GraphPanel;
class HTML;
class ImagePanel;
class Label;
class ListPanel;
class ListViewPanel;
class Menu;
class MenuBar;
class MenuButton;
class MenuItem;
class MessageBox;
class Panel;
class PanelListPanel;
class ProgressBar;
class ProgressBox;
class PropertyDialog;
class PropertyPage;
class PropertySheet;
class QueryBox;
class RadioButton;
class RichText;
class ScalableImagePanel;
class ScrollBar;
class ScrollBarSlider;
class SectionedListPanel;
class Slider;
class Splitter;
class TextEntry;
class ToggleButton;
class BaseTooltip;
class TextTooltip;
class TreeView;
class CTreeViewListControl;
class URLLabel;
class WizardPanel;
class WizardSubPanel;
// vgui controls helper classes
class BuildGroup;
class FocusNavGroup;
class IBorder;
class IImage;
class Image;
class ImageList;
class TextImage;
} // namespace vgui
// hotkeys disabled until we work out exactly how we want to do them
#define VGUI_HOTKEYS_ENABLED
//#define VGUI_DRAW_HOTKEYS_ENABLED
#define USING_BUILD_FACTORY( className ) \
extern className *g_##className##LinkerHack; \
className *g_##className##PullInModule = g_##className##LinkerHack;
#define USING_BUILD_FACTORY_ALIAS( className, factoryName ) \
extern className *g_##factoryName##LinkerHack; \
className *g_##factoryName##PullInModule = g_##factoryName##LinkerHack;
#endif // CONTROLS_H