aboutsummaryrefslogtreecommitdiff
path: root/sp/src/public/vgui/IPanel.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/IPanel.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/IPanel.h')
-rw-r--r--sp/src/public/vgui/IPanel.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/sp/src/public/vgui/IPanel.h b/sp/src/public/vgui/IPanel.h
new file mode 100644
index 00000000..c81b229c
--- /dev/null
+++ b/sp/src/public/vgui/IPanel.h
@@ -0,0 +1,139 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IPANEL_H
+#define IPANEL_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include "tier1/interface.h"
+#include "tier1/utlvector.h"
+
+#ifdef SendMessage
+#undef SendMessage
+#endif
+
+class KeyValues;
+
+namespace vgui
+{
+
+class SurfacePlat;
+class IClientPanel;
+
+//!! must be removed
+class Panel;
+
+//-----------------------------------------------------------------------------
+// Purpose: interface from Client panels -> vgui panels
+//-----------------------------------------------------------------------------
+class IPanel : public IBaseInterface
+{
+public:
+ virtual void Init(VPANEL vguiPanel, IClientPanel *panel) = 0;
+
+ // methods
+ virtual void SetPos(VPANEL vguiPanel, int x, int y) = 0;
+ virtual void GetPos(VPANEL vguiPanel, int &x, int &y) = 0;
+ virtual void SetSize(VPANEL vguiPanel, int wide,int tall) = 0;
+ virtual void GetSize(VPANEL vguiPanel, int &wide, int &tall) = 0;
+ virtual void SetMinimumSize(VPANEL vguiPanel, int wide, int tall) = 0;
+ virtual void GetMinimumSize(VPANEL vguiPanel, int &wide, int &tall) = 0;
+ virtual void SetZPos(VPANEL vguiPanel, int z) = 0;
+ virtual int GetZPos(VPANEL vguiPanel) = 0;
+
+ virtual void GetAbsPos(VPANEL vguiPanel, int &x, int &y) = 0;
+ virtual void GetClipRect(VPANEL vguiPanel, int &x0, int &y0, int &x1, int &y1) = 0;
+ virtual void SetInset(VPANEL vguiPanel, int left, int top, int right, int bottom) = 0;
+ virtual void GetInset(VPANEL vguiPanel, int &left, int &top, int &right, int &bottom) = 0;
+
+ virtual void SetVisible(VPANEL vguiPanel, bool state) = 0;
+ virtual bool IsVisible(VPANEL vguiPanel) = 0;
+ virtual void SetParent(VPANEL vguiPanel, VPANEL newParent) = 0;
+ virtual int GetChildCount(VPANEL vguiPanel) = 0;
+ virtual VPANEL GetChild(VPANEL vguiPanel, int index) = 0;
+ virtual CUtlVector< VPANEL > &GetChildren( VPANEL vguiPanel ) = 0;
+ virtual VPANEL GetParent(VPANEL vguiPanel) = 0;
+ virtual void MoveToFront(VPANEL vguiPanel) = 0;
+ virtual void MoveToBack(VPANEL vguiPanel) = 0;
+ virtual bool HasParent(VPANEL vguiPanel, VPANEL potentialParent) = 0;
+ virtual bool IsPopup(VPANEL vguiPanel) = 0;
+ virtual void SetPopup(VPANEL vguiPanel, bool state) = 0;
+ virtual bool IsFullyVisible( VPANEL vguiPanel ) = 0;
+
+ // gets the scheme this panel uses
+ virtual HScheme GetScheme(VPANEL vguiPanel) = 0;
+ // gets whether or not this panel should scale with screen resolution
+ virtual bool IsProportional(VPANEL vguiPanel) = 0;
+ // returns true if auto-deletion flag is set
+ virtual bool IsAutoDeleteSet(VPANEL vguiPanel) = 0;
+ // deletes the Panel * associated with the vpanel
+ virtual void DeletePanel(VPANEL vguiPanel) = 0;
+
+ // input interest
+ virtual void SetKeyBoardInputEnabled(VPANEL vguiPanel, bool state) = 0;
+ virtual void SetMouseInputEnabled(VPANEL vguiPanel, bool state) = 0;
+ virtual bool IsKeyBoardInputEnabled(VPANEL vguiPanel) = 0;
+ virtual bool IsMouseInputEnabled(VPANEL vguiPanel) = 0;
+
+ // calculates the panels current position within the hierarchy
+ virtual void Solve(VPANEL vguiPanel) = 0;
+
+ // gets names of the object (for debugging purposes)
+ virtual const char *GetName(VPANEL vguiPanel) = 0;
+ virtual const char *GetClassName(VPANEL vguiPanel) = 0;
+
+ // delivers a message to the panel
+ virtual void SendMessage(VPANEL vguiPanel, KeyValues *params, VPANEL ifromPanel) = 0;
+
+ // these pass through to the IClientPanel
+ virtual void Think(VPANEL vguiPanel) = 0;
+ virtual void PerformApplySchemeSettings(VPANEL vguiPanel) = 0;
+ virtual void PaintTraverse(VPANEL vguiPanel, bool forceRepaint, bool allowForce = true) = 0;
+ virtual void Repaint(VPANEL vguiPanel) = 0;
+ virtual VPANEL IsWithinTraverse(VPANEL vguiPanel, int x, int y, bool traversePopups) = 0;
+ virtual void OnChildAdded(VPANEL vguiPanel, VPANEL child) = 0;
+ virtual void OnSizeChanged(VPANEL vguiPanel, int newWide, int newTall) = 0;
+
+ virtual void InternalFocusChanged(VPANEL vguiPanel, bool lost) = 0;
+ virtual bool RequestInfo(VPANEL vguiPanel, KeyValues *outputData) = 0;
+ virtual void RequestFocus(VPANEL vguiPanel, int direction = 0) = 0;
+ virtual bool RequestFocusPrev(VPANEL vguiPanel, VPANEL existingPanel) = 0;
+ virtual bool RequestFocusNext(VPANEL vguiPanel, VPANEL existingPanel) = 0;
+ virtual VPANEL GetCurrentKeyFocus(VPANEL vguiPanel) = 0;
+ virtual int GetTabPosition(VPANEL vguiPanel) = 0;
+
+ // used by ISurface to store platform-specific data
+ virtual SurfacePlat *Plat(VPANEL vguiPanel) = 0;
+ virtual void SetPlat(VPANEL vguiPanel, SurfacePlat *Plat) = 0;
+
+ // returns a pointer to the vgui controls baseclass Panel *
+ // destinationModule needs to be passed in to verify that the returned Panel * is from the same module
+ // it must be from the same module since Panel * vtbl may be different in each module
+ virtual Panel *GetPanel(VPANEL vguiPanel, const char *destinationModule) = 0;
+
+ virtual bool IsEnabled(VPANEL vguiPanel) = 0;
+ virtual void SetEnabled(VPANEL vguiPanel, bool state) = 0;
+
+ // Used by the drag/drop manager to always draw on top
+ virtual bool IsTopmostPopup( VPANEL vguiPanel) = 0;
+ virtual void SetTopmostPopup( VPANEL vguiPanel, bool state ) = 0;
+
+ // sibling pins
+ virtual void SetSiblingPin(VPANEL vguiPanel, VPANEL newSibling, byte iMyCornerToPin = 0, byte iSiblingCornerToPinTo = 0 ) = 0;
+
+};
+
+#define VGUI_PANEL_INTERFACE_VERSION "VGUI_Panel009"
+
+} // namespace vgui
+
+
+#endif // IPANEL_H