diff options
Diffstat (limited to 'public/vgui/IClientPanel.h')
| -rw-r--r-- | public/vgui/IClientPanel.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/public/vgui/IClientPanel.h b/public/vgui/IClientPanel.h new file mode 100644 index 0000000..ff96497 --- /dev/null +++ b/public/vgui/IClientPanel.h @@ -0,0 +1,94 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ICLIENTPANEL_H +#define ICLIENTPANEL_H + +#ifdef _WIN32 +#pragma once +#endif + +#include <vgui/VGUI.h> + +#ifdef GetClassName +#undef GetClassName +#endif + +class KeyValues; + +namespace vgui +{ + +class Panel; +class SurfaceBase; + +enum EInterfaceID +{ + ICLIENTPANEL_STANDARD_INTERFACE = 0, +}; + +//----------------------------------------------------------------------------- +// Purpose: Interface from vgui panels -> Client panels +// This interface cannot be changed without rebuilding all vgui projects +// Primarily this interface handles dispatching messages from core vgui to controls +// The additional functions are all their for debugging or optimization reasons +// To add to this later, use QueryInterface() to see if they support new interfaces +//----------------------------------------------------------------------------- +class IClientPanel +{ +public: + virtual VPANEL GetVPanel() = 0; + + // straight interface to Panel functions + virtual void Think() = 0; + virtual void PerformApplySchemeSettings() = 0; + virtual void PaintTraverse(bool forceRepaint, bool allowForce) = 0; + virtual void Repaint() = 0; + virtual VPANEL IsWithinTraverse(int x, int y, bool traversePopups) = 0; + virtual void GetInset(int &top, int &left, int &right, int &bottom) = 0; + virtual void GetClipRect(int &x0, int &y0, int &x1, int &y1) = 0; + virtual void OnChildAdded(VPANEL child) = 0; + virtual void OnSizeChanged(int newWide, int newTall) = 0; + + virtual void InternalFocusChanged(bool lost) = 0; + virtual bool RequestInfo(KeyValues *outputData) = 0; + virtual void RequestFocus(int direction) = 0; + virtual bool RequestFocusPrev(VPANEL existingPanel) = 0; + virtual bool RequestFocusNext(VPANEL existingPanel) = 0; + virtual void OnMessage(const KeyValues *params, VPANEL ifromPanel) = 0; + virtual VPANEL GetCurrentKeyFocus() = 0; + virtual int GetTabPosition() = 0; + + // for debugging purposes + virtual const char *GetName() = 0; + virtual const char *GetClassName() = 0; + + // get scheme handles from panels + virtual HScheme GetScheme() = 0; + // gets whether or not this panel should scale with screen resolution + virtual bool IsProportional() = 0; + // auto-deletion + virtual bool IsAutoDeleteSet() = 0; + // deletes this + virtual void DeletePanel() = 0; + + // interfaces + virtual void *QueryInterface(EInterfaceID id) = 0; + + // returns a pointer to the vgui controls baseclass Panel * + virtual Panel *GetPanel() = 0; + + // returns the name of the module this panel is part of + virtual const char *GetModuleName() = 0; + + virtual void OnTick() = 0; +}; + +} // namespace vgui + + +#endif // ICLIENTPANEL_H |