Seaside/SpyCustom/IScheme.h
2021-06-16 16:10:20 +03:00

85 lines
2.0 KiB
C++

#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