mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-28 17:13:03 +00:00
93 lines
2.1 KiB
C
93 lines
2.1 KiB
C
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef DOD_RANDOM_BUTTON_H
|
||
|
#define DOD_RANDOM_BUTTON_H
|
||
|
|
||
|
#include "dodmouseoverpanelbutton.h"
|
||
|
|
||
|
// CDODRandomButton - has the lower left corner cut out
|
||
|
// and does mouseover
|
||
|
|
||
|
/*
|
||
|
|
||
|
|''''''''''''''''|
|
||
|
| 9. Random |
|
||
|
\_______________|
|
||
|
*/
|
||
|
|
||
|
template <class T>
|
||
|
class CDODRandomButton : public CDODMouseOverButton<T>
|
||
|
{
|
||
|
private:
|
||
|
//DECLARE_CLASS_SIMPLE( CDODRandomButton, CDODMouseOverButton );
|
||
|
|
||
|
public:
|
||
|
CDODRandomButton(vgui::Panel *parent, const char *panelName, T *templatePanel ) :
|
||
|
CDODMouseOverButton<T>( parent, panelName, templatePanel )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
virtual void PaintBackground();
|
||
|
virtual void PaintBorder();
|
||
|
};
|
||
|
|
||
|
//===============================================
|
||
|
// CDODRandomButton - differently shaped button
|
||
|
//===============================================
|
||
|
template <class T>
|
||
|
void CDODRandomButton<T>::PaintBackground()
|
||
|
{
|
||
|
int wide, tall;
|
||
|
this->GetSize(wide,tall);
|
||
|
|
||
|
int inset = tall;
|
||
|
|
||
|
if ( CDODRandomButton<T>::m_iWhiteTexture < 0 )
|
||
|
{
|
||
|
CDODRandomButton<T>::m_iWhiteTexture = vgui::surface()->CreateNewTextureID();
|
||
|
vgui::surface()->DrawSetTextureFile( CDODRandomButton<T>::m_iWhiteTexture, "vgui/white" , true, false);
|
||
|
}
|
||
|
|
||
|
surface()->DrawSetColor(this->GetBgColor());
|
||
|
surface()->DrawSetTexture( CDODRandomButton<T>::m_iWhiteTexture );
|
||
|
|
||
|
Vertex_t verts[4];
|
||
|
|
||
|
verts[0].Init( Vector2D( 0, 0 ) );
|
||
|
verts[1].Init( Vector2D( wide-1, 0 ) );
|
||
|
verts[2].Init( Vector2D( wide-1, tall-1 ) );
|
||
|
verts[3].Init( Vector2D( inset, tall-1 ) );
|
||
|
|
||
|
surface()->DrawTexturedPolygon(4, verts);
|
||
|
}
|
||
|
|
||
|
template <class T>
|
||
|
void CDODRandomButton<T>::PaintBorder()
|
||
|
{
|
||
|
int wide, tall;
|
||
|
this->GetSize(wide,tall);
|
||
|
|
||
|
int inset = tall;
|
||
|
|
||
|
surface()->DrawSetColor(this->GetFgColor());
|
||
|
|
||
|
// top
|
||
|
surface()->DrawLine( 0, 1, wide-1, 1 );
|
||
|
|
||
|
// left
|
||
|
surface()->DrawLine( 1, 1, inset-1, tall-1 );
|
||
|
|
||
|
// bottom
|
||
|
surface()->DrawLine( inset-1, tall-1, wide-1, tall-1 );
|
||
|
|
||
|
// right
|
||
|
surface()->DrawLine( wide-1, 0, wide-1, tall-1 );
|
||
|
}
|
||
|
|
||
|
#endif //DOD_RANDOM_BUTTON_H
|