//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef IIMAGE_H #define IIMAGE_H #ifdef _WIN32 #pragma once #endif #include 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