#ifndef ISCHEME_H #define ISCHEME_H #ifdef _WIN32 #pragma once #endif #include "VGUI.h" #include "interface.h" class Color; class KeyValues; namespace vgui { typedef unsigned long HScheme; typedef unsigned long HTexture; class IBorder; class IImage; class IScheme : public IBaseInterface { public: virtual const char* GetResourceString(const char* stringName) = 0; virtual IBorder* GetBorder(const char* borderName) = 0; virtual HFont GetFont(const char* fontName, bool proportional = false) = 0; virtual char const* GetFontName(const HFont& font) = 0; virtual Color GetColor(const char* colorName, Color defaultColor) = 0; virtual int GetBorderCount() const = 0; virtual IBorder* GetBorderAtIndex(int iIndex) = 0; virtual int GetFontCount() const = 0; virtual HFont GetFontAtIndex(int iIndex) = 0; virtual const KeyValues* GetColorData() const = 0; }; class ISchemeManager : public IBaseInterface { public: virtual HScheme LoadSchemeFromFile(const char* fileName, const char* tag) = 0; virtual void ReloadSchemes() = 0; virtual void ReloadFonts() = 0; virtual HScheme GetDefaultScheme() = 0; virtual HScheme GetScheme(const char* tag) = 0; virtual IImage* GetImage(const char* imageName, bool hardwareFiltered) = 0; virtual HTexture GetImageID(const char* imageName, bool hardwareFiltered) = 0; virtual IScheme* GetIScheme(HScheme scheme) = 0; virtual void Shutdown(bool full = true) = 0; virtual int GetProportionalScaledValue(int normalizedValue) = 0; virtual int GetProportionalNormalizedValue(int scaledValue) = 0; virtual HScheme LoadSchemeFromFileEx(VPANEL sizingPanel, const char* fileName, const char* tag) = 0; virtual int GetProportionalScaledValueEx(HScheme scheme, int normalizedValue) = 0; virtual int GetProportionalNormalizedValueEx(HScheme scheme, int scaledValue) = 0; virtual bool DeleteImage(const char* pImageName) = 0; }; #define VGUI_SCHEME_INTERFACE_VERSION "VGUI_Scheme010" } #endif