74 lines
1.8 KiB
C++
74 lines
1.8 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef IIMAGE_H
|
|
#define IIMAGE_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "VGUI.h"
|
|
|
|
class Color;
|
|
|
|
namespace vgui {
|
|
|
|
typedef unsigned long HTexture;
|
|
|
|
enum iimage_rotation_t {
|
|
ROTATED_UNROTATED = 0,
|
|
ROTATED_CLOCKWISE_90,
|
|
ROTATED_ANTICLOCKWISE_90,
|
|
ROTATED_FLIPPED,
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Interface to drawing an image
|
|
//-----------------------------------------------------------------------------
|
|
class IImage {
|
|
public:
|
|
// Call to Paint the image
|
|
// Image will draw within the current panel context at the specified
|
|
// position
|
|
virtual void Paint() = 0;
|
|
|
|
// Set the position of the image
|
|
virtual void SetPos(int x, int y) = 0;
|
|
|
|
// Gets the size of the content
|
|
virtual void GetContentSize(int &wide, int &tall) = 0;
|
|
|
|
// Get the size the image will actually draw in (usually defaults to the
|
|
// content size)
|
|
virtual void GetSize(int &wide, int &tall) = 0;
|
|
|
|
// Sets the size of the image
|
|
virtual void SetSize(int wide, int tall) = 0;
|
|
|
|
// Set the draw color
|
|
virtual void SetColor(Color col) = 0;
|
|
|
|
// virtual destructor
|
|
virtual ~IImage() {}
|
|
|
|
// not for general purpose use
|
|
// evicts the underlying image from memory if refcounts permit, otherwise
|
|
// ignored returns true if eviction occurred, otherwise false
|
|
virtual bool Evict() = 0;
|
|
|
|
virtual int GetNumFrames() = 0;
|
|
virtual void SetFrame(int nFrame) = 0;
|
|
virtual HTexture GetID() = 0;
|
|
|
|
virtual void SetRotation(int iRotation) = 0;
|
|
};
|
|
|
|
} // namespace vgui
|
|
|
|
#endif // IIMAGE_H
|