IScheme: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
 
m (→‎See also: Unicodifying, replaced: See Also → See also)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This interface has major implementation with [[VGUI]].
This interface has major implementation with [[VGUI2]].
  //========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
  //========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
  //
  //
Line 50: Line 50:
  virtual Color [[GetColor]](const char *colorName, Color defaultColor) = 0;
  virtual Color [[GetColor]](const char *colorName, Color defaultColor) = 0;
  };
  };
class ISchemeManager: public IBaseInterface
{
public:
// loads a scheme from a file
// first scheme loaded becomes the default scheme, and all subsequent loaded scheme are derivitives of that
virtual HScheme [[LoadSchemeFromFile]](const char *fileName, const char *tag) = 0;
// reloads the scheme from the file - should only be used during development
virtual void [[ReloadSchemes]]() = 0;
// reloads scheme fonts
virtual void [[ReloadFonts]]() = 0;
// returns a handle to the default (first loaded) scheme
virtual HScheme [[GetDefaultScheme]]() = 0;
// returns a handle to the scheme identified by "tag"
virtual HScheme [[GetScheme]](const char *tag) = 0;
// returns a pointer to an image
virtual IImage *[[GetImage]](const char *imageName, bool hardwareFiltered) = 0;
virtual HTexture [[GetImageID]](const char *imageName, bool hardwareFiltered) = 0;
// This can only be called at certain times, like during paint()
// It will assert-fail if you call it at the wrong time...
// FIXME: This interface should go away!!! It's an icky back-door
// If you're using this interface, try instead to cache off the information
// in ApplySchemeSettings
virtual IScheme *[[GetIScheme]]( HScheme scheme ) = 0;
// unload all schemes
virtual void [[Shutdown]]( bool full = true ) = 0;
// gets the proportional coordinates for doing screen-size independant panel layouts
// use these for font, image and panel size scaling (they all use the pixel height of the display for scaling)
virtual int [[GetProportionalScaledValue]](int normalizedValue) = 0;
virtual int [[GetProportionalNormalizedValue]](int scaledValue) = 0;
};
#define VGUI_SCHEME_INTERFACE_VERSION "VGUI_Scheme010"
   
   
  } // namespace vgui
  } // namespace vgui
Line 100: Line 55:
   
   
  #endif // ISCHEME_H
  #endif // ISCHEME_H
==See also==
* [[ISurface]]
[[Category:Interfaces]]
[[Category:Interfaces]]

Latest revision as of 10:09, 8 January 2024

This interface has major implementation with VGUI2.

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef ISCHEME_H
#define ISCHEME_H

#ifdef _WIN32
#pragma once
#endif

#include <vgui/VGUI.h>
#include "interface.h"

class Color;

namespace vgui
{

typedef unsigned long HScheme;
typedef unsigned long HTexture;

class IBorder;
class IImage;

//-----------------------------------------------------------------------------
// Purpose: Holds all panel rendering data
//			This functionality is all wrapped in the Panel::GetScheme*() functions
//-----------------------------------------------------------------------------
class IScheme : public IBaseInterface
{
public:
	// gets a string from the default settings section
	virtual const char *GetResourceString(const char *stringName) = 0;

	// returns a pointer to an existing border
	virtual IBorder *GetBorder(const char *borderName) = 0;

	// returns a pointer to an existing font
	virtual HFont GetFont(const char *fontName, bool proportional = false) = 0;

	// inverse font lookup
	virtual char const *GetFontName( const HFont& font ) = 0;

	// colors
	virtual Color GetColor(const char *colorName, Color defaultColor) = 0;
};

} // namespace vgui


#endif // ISCHEME_H

See also