//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #include "cbase.h" #include "dodbutton.h" #include #include // memdbgon must be the last include file in a .cpp file!!! #include 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); }