From 39ed87570bdb2f86969d4be821c94b722dc71179 Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Wed, 26 Jun 2013 15:22:04 -0700 Subject: First version of the SOurce SDK 2013 --- mp/src/vgui2/vgui_controls/ImageList.cpp | 106 +++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 mp/src/vgui2/vgui_controls/ImageList.cpp (limited to 'mp/src/vgui2/vgui_controls/ImageList.cpp') diff --git a/mp/src/vgui2/vgui_controls/ImageList.cpp b/mp/src/vgui2/vgui_controls/ImageList.cpp new file mode 100644 index 00000000..3778478b --- /dev/null +++ b/mp/src/vgui2/vgui_controls/ImageList.cpp @@ -0,0 +1,106 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include +#include + +#include + +// memdbgon must be the last include file in a .cpp file!!! +#include + +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); +} + -- cgit v1.2.3