hl2_src-leak-2017/src/public/vgui_controls/ImageList.h

57 lines
1.3 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef IMAGELIST_H
#define IMAGELIST_H
#ifdef _WIN32
#pragma once
#endif
#include <utlvector.h>
#include <vgui/VGUI.h>
#include <vgui/IImage.h>
namespace vgui
{
//-----------------------------------------------------------------------------
// Purpose: holds a collection of images
// used by controls so that images can be refered to by indices
//-----------------------------------------------------------------------------
class ImageList
{
public:
ImageList(bool deleteImagesWhenDone);
~ImageList();
// adds a new image to the list, returning the index it was placed at
int AddImage(vgui::IImage *image);
// returns the number of images
int GetImageCount();
// returns true if an index is valid
bool IsValidIndex(int imageIndex);
// sets an image at a specified index, growing and adding NULL images if necessary
void SetImageAtIndex(int index, vgui::IImage *image);
// gets an image, imageIndex is of range [0, GetImageCount)
// image index 0 is always the blank image
vgui::IImage *GetImage(int imageIndex);
private:
CUtlVector<vgui::IImage *> m_Images;
bool m_bDeleteImagesWhenDone;
};
} // namespace vgui
#endif // IMAGELIST_H