You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
67 lines
1.7 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef ANIMATINGIMAGEPANEL_H
|
||
|
#define ANIMATINGIMAGEPANEL_H
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <utlvector.h>
|
||
|
#include <vgui_controls/Panel.h>
|
||
|
|
||
|
namespace vgui
|
||
|
{
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose: Animating image
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class AnimatingImagePanel : public Panel
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE( AnimatingImagePanel, Panel );
|
||
|
|
||
|
public:
|
||
|
AnimatingImagePanel(Panel *parent, const char *name);
|
||
|
|
||
|
// Add an image to the end of the list of animations
|
||
|
// image - pointer to the image to add to the end of the list
|
||
|
virtual void AddImage(IImage *image);
|
||
|
|
||
|
// Load a set of animations by name.
|
||
|
// baseName - The name of the animations without their frame number or file extension, (e.g. c1.tga becomes just c.)
|
||
|
// framecount: number of frames in the animation
|
||
|
virtual void LoadAnimation(const char *baseName, int frameCount);
|
||
|
|
||
|
virtual void StartAnimation();
|
||
|
virtual void StopAnimation();
|
||
|
virtual void ResetAnimation(int frame = 0);
|
||
|
|
||
|
protected:
|
||
|
virtual void OnTick();
|
||
|
virtual void PerformLayout();
|
||
|
virtual void PaintBackground();
|
||
|
|
||
|
virtual void GetSettings(KeyValues *outResourceData);
|
||
|
virtual void ApplySettings(KeyValues *inResourceData);
|
||
|
virtual const char *GetDescription();
|
||
|
|
||
|
private:
|
||
|
int m_iCurrentImage;
|
||
|
int m_iNextFrameTime;
|
||
|
int m_iFrameTimeMillis;
|
||
|
CUtlVector<IImage *> m_Frames;
|
||
|
char *m_pImageName;
|
||
|
bool m_bAnimating;
|
||
|
bool m_bFiltered;
|
||
|
bool m_bScaleImage;
|
||
|
};
|
||
|
|
||
|
}; // namespace vgui
|
||
|
|
||
|
#endif // ANIMATINGIMAGEPANEL_H
|