mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#include <vgui/VGUI.h>
|
||||
#include <Color.h>
|
||||
|
||||
#include <vgui_controls/ImageList.h>
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include <tier0/memdbgon.h>
|
||||
|
||||
using namespace vgui;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: blank image, intentially draws nothing
|
||||
//-----------------------------------------------------------------------------
|
||||
class BlankImage : public IImage
|
||||
{
|
||||
public:
|
||||
virtual void Paint() {}
|
||||
virtual void SetPos(int x, int y) {}
|
||||
virtual void GetContentSize(int &wide, int &tall) { wide = 0; tall = 0; }
|
||||
virtual void GetSize(int &wide, int &tall) { wide = 0; tall = 0; }
|
||||
virtual void SetSize(int wide, int tall) {}
|
||||
virtual void SetColor(Color col) {}
|
||||
virtual bool Evict() { return false; }
|
||||
virtual int GetNumFrames() { return 0; }
|
||||
virtual void SetFrame( int nFrame ) {}
|
||||
virtual HTexture GetID() { return 0; }
|
||||
virtual void SetRotation( int iRotation ) { return; };
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Constructor
|
||||
//-----------------------------------------------------------------------------
|
||||
ImageList::ImageList(bool deleteImagesWhenDone)
|
||||
{
|
||||
m_bDeleteImagesWhenDone = deleteImagesWhenDone;
|
||||
AddImage(new BlankImage());
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Destructor
|
||||
//-----------------------------------------------------------------------------
|
||||
ImageList::~ImageList()
|
||||
{
|
||||
if (m_bDeleteImagesWhenDone)
|
||||
{
|
||||
// delete all the images, except for the first image (which is always the blank image)
|
||||
for (int i = 1; i < m_Images.Count(); i++)
|
||||
{
|
||||
delete m_Images[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: adds a new image to the list, returning the index it was placed at
|
||||
//-----------------------------------------------------------------------------
|
||||
int ImageList::AddImage(vgui::IImage *image)
|
||||
{
|
||||
return m_Images.AddToTail(image);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: sets an image at a specified index, growing and adding NULL images if necessary
|
||||
//-----------------------------------------------------------------------------
|
||||
void ImageList::SetImageAtIndex(int index, vgui::IImage *image)
|
||||
{
|
||||
// allocate more images if necessary
|
||||
while (m_Images.Count() <= index)
|
||||
{
|
||||
m_Images.AddToTail(NULL);
|
||||
}
|
||||
|
||||
m_Images[index] = image;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: returns the number of images
|
||||
//-----------------------------------------------------------------------------
|
||||
int ImageList::GetImageCount()
|
||||
{
|
||||
return m_Images.Count();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: gets an image, imageIndex is of range [0, GetImageCount)
|
||||
//-----------------------------------------------------------------------------
|
||||
vgui::IImage *ImageList::GetImage(int imageIndex)
|
||||
{
|
||||
return m_Images[imageIndex];
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: returns true if an index is valid
|
||||
//-----------------------------------------------------------------------------
|
||||
bool ImageList::IsValidIndex(int imageIndex)
|
||||
{
|
||||
return m_Images.IsValidIndex(imageIndex);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user