aboutsummaryrefslogtreecommitdiff
path: root/sp/src/public/vgui_controls/Controls.h
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /sp/src/public/vgui_controls/Controls.h
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/public/vgui_controls/Controls.h')
-rw-r--r--sp/src/public/vgui_controls/Controls.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/sp/src/public/vgui_controls/Controls.h b/sp/src/public/vgui_controls/Controls.h
new file mode 100644
index 00000000..7a77abaa
--- /dev/null
+++ b/sp/src/public/vgui_controls/Controls.h
@@ -0,0 +1,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