diff options
Diffstat (limited to 'game/client/dod/VGUI/dodbutton.cpp')
| -rw-r--r-- | game/client/dod/VGUI/dodbutton.cpp | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/game/client/dod/VGUI/dodbutton.cpp b/game/client/dod/VGUI/dodbutton.cpp new file mode 100644 index 0000000..11e0ade --- /dev/null +++ b/game/client/dod/VGUI/dodbutton.cpp @@ -0,0 +1,99 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "cbase.h" +#include "dodbutton.h" + +#include <vgui/ISurface.h> +#include <vgui_controls/EditablePanel.h> + +// memdbgon must be the last include file in a .cpp file!!! +#include <tier0/memdbgon.h> + +using namespace vgui; + +//=============================================== +// CDODButtonShape - drawing class for dod button shape +//=============================================== +void CDODButtonShape::DrawShapedBorder( int x, int y, int wide, int tall, Color fgcolor ) +{ + int halfheight = tall / 3; + + surface()->DrawSetColor(fgcolor); + + // top + surface()->DrawLine( 0, 1, wide-1, 1 ); + + // left + surface()->DrawLine( 1, 1, 1, tall-1 ); + + // bottom + surface()->DrawLine( 0, tall-1, wide-halfheight, tall-1 ); + + // right + surface()->DrawLine( wide-1, 0, wide-1, tall-halfheight ); + + // diagonal + surface()->DrawLine( wide-1, tall-halfheight-1, wide-halfheight-1, tall-1 ); +} + +void CDODButtonShape::DrawShapedBackground( int x, int y, int wide, int tall, Color bgcolor ) +{ + int halfheight = tall / 3; + + if ( m_iWhiteTexture < 0 ) + { + m_iWhiteTexture = vgui::surface()->CreateNewTextureID(); + vgui::surface()->DrawSetTextureFile( m_iWhiteTexture, "vgui/white" , true, false); + } + + surface()->DrawSetColor(bgcolor); + surface()->DrawSetTexture( m_iWhiteTexture ); + + Vertex_t verts[5]; + + verts[0].Init( Vector2D( 0, 0 ) ); + verts[1].Init( Vector2D( wide-1, 0 ) ); + verts[2].Init( Vector2D( wide-1, tall-halfheight ) ); + verts[3].Init( Vector2D( wide-halfheight, tall-1 ) ); + verts[4].Init( Vector2D( 0, tall-1 ) ); + + surface()->DrawTexturedPolygon(5, verts); + + surface()->DrawSetTexture(0); +} + +//=============================================== +// CDODButton - shaped button +//=============================================== +void CDODButton::PaintBackground() +{ + int wide, tall; + GetSize(wide,tall); + DrawShapedBackground( 0, 0, wide, tall, GetBgColor() ); +} + +void CDODButton::PaintBorder() +{ + int wide, tall; + GetSize(wide,tall); + DrawShapedBorder( 0, 0, wide, tall, GetFgColor() ); +} + +//=============================================== +// CDODProgressBar - used for weapon stat bars +//=============================================== +void CDODProgressBar::ApplySchemeSettings(IScheme *pScheme) +{ + BaseClass::ApplySchemeSettings(pScheme); + + SetFgColor( GetSchemeColor("ClassMenuLight", pScheme ) ); + SetBgColor( GetSchemeColor("ClassMenuDark", pScheme ) ); + SetBarInset(0); + SetSegmentInfo( 0, 1 ); + SetBorder(NULL); +}
\ No newline at end of file |