#ifndef IVGUI_H #define IVGUI_H #ifdef _WIN32 #pragma once #endif #include "interface.h" #include "VGUI.h" #include "IAppSystem.h" class KeyValues; namespace vgui { typedef unsigned long HPanel; typedef int HContext; enum { DEFAULT_VGUI_CONTEXT = ((vgui::HContext)~0) }; typedef unsigned long HPanel; class IVGui : public IAppSystem { public: virtual void Start() = 0; virtual void Stop() = 0; virtual bool IsRunning() = 0; virtual void RunFrame() = 0; virtual void ShutdownMessage(unsigned int shutdownID) = 0; virtual VPANEL AllocPanel() = 0; virtual void FreePanel(VPANEL panel) = 0; virtual void DPrintf(PRINTF_FORMAT_STRING const char* format, ...) = 0; virtual void DPrintf2(PRINTF_FORMAT_STRING const char* format, ...) = 0; virtual void SpewAllActivePanelNames() = 0; virtual HPanel PanelToHandle(VPANEL panel) = 0; virtual VPANEL HandleToPanel(HPanel index) = 0; virtual void MarkPanelForDeletion(VPANEL panel) = 0; virtual void AddTickSignal(VPANEL panel, int intervalMilliseconds = 0) = 0; virtual void RemoveTickSignal(VPANEL panel) = 0; virtual void PostMessage(VPANEL target, KeyValues* params, VPANEL from, float delaySeconds = 0.0f) = 0; virtual HContext CreateContext() = 0; virtual void DestroyContext(HContext context) = 0; virtual void AssociatePanelWithContext(HContext context, VPANEL pRoot) = 0; virtual void ActivateContext(HContext context) = 0; virtual void SetSleep(bool state) = 0; virtual bool GetShouldVGuiControlSleep() = 0; virtual void SetVRMode(bool bVRMode) = 0; virtual bool GetVRMode() = 0; virtual void AddTickSignalToHead(VPANEL panel, int intervalMilliseconds = 0) = 0; }; #define VGUI_IVGUI_INTERFACE_VERSION "VGUI_ivgui008" }; #endif