summaryrefslogtreecommitdiff
path: root/game/client/cstrike/VGUI/career_button.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/cstrike/VGUI/career_button.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/client/cstrike/VGUI/career_button.cpp')
-rw-r--r--game/client/cstrike/VGUI/career_button.cpp189
1 files changed, 189 insertions, 0 deletions
diff --git a/game/client/cstrike/VGUI/career_button.cpp b/game/client/cstrike/VGUI/career_button.cpp
new file mode 100644
index 0000000..24bf779
--- /dev/null
+++ b/game/client/cstrike/VGUI/career_button.cpp
@@ -0,0 +1,189 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#include "cbase.h"
+
+#include <convar.h>
+#include "cdll_int.h"
+#include <ienginevgui.h>
+#include "filesystem.h"
+#include <vgui/ISystem.h>
+#include "career_button.h"
+
+#include <vgui_controls/Label.h>
+#include <vgui_controls/URLLabel.h>
+#include <vgui_controls/ComboBox.h>
+#include <vgui/ISurface.h>
+#include <vgui/ILocalize.h>
+#include <vgui_controls/ScrollBar.h>
+#include <vgui_controls/BuildGroup.h>
+#include <vgui_controls/ImageList.h>
+#include <vgui_controls/TextImage.h>
+#include <vgui_controls/Button.h>
+
+#include "KeyValues.h"
+
+using namespace vgui;
+
+#ifndef _DEBUG
+#define PROPORTIONAL_CAREER_FRAMES 1
+#endif
+
+//--------------------------------------------------------------------------------------------------------------
+//--------------------------------------------------------------------------------------------------------------
+CCareerButton::CCareerButton(vgui::Panel *parent, const char *buttonName, const char *buttonText, const char *image, bool textFirst) : BaseClass( parent, buttonName, "" )
+{
+ m_armedBorder = NULL;
+
+ m_textImage = new TextImage(buttonText);
+ m_image = scheme()->GetImage(image, true);
+ m_textFirst = textFirst;
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CCareerButton::SetImage( const char *image )
+{
+ m_image = scheme()->GetImage(image, true);
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CCareerButton::Paint()
+{
+ int buttonWide, buttonTall;
+ GetSize(buttonWide, buttonTall);
+
+ int imageWide, imageTall;
+ if ( m_image )
+ {
+ m_image->GetSize(imageWide, imageTall);
+ }
+ else
+ {
+ imageWide = imageTall = 0;
+ }
+
+ int textOffset = m_textPad;
+
+ if (m_textFirst)
+ {
+ if ( m_image )
+ {
+ m_image->SetPos(buttonWide - imageWide - m_imagePad, (buttonTall - imageTall)/2);
+ m_image->Paint();
+ }
+ }
+ else
+ {
+ if ( m_image )
+ {
+ m_image->SetPos(m_imagePad, (buttonTall - imageTall)/2);
+ m_image->Paint();
+ }
+ textOffset += imageWide + m_imagePad;
+ }
+
+ int textTall, textWide;
+ m_textImage->GetSize(textWide, textTall);
+
+ int textSpace = buttonWide - imageWide - m_imagePad - 2*m_textPad;
+
+ if ( IsEnabled() )
+ {
+ m_textImage->SetColor( m_textNormalColor );
+ }
+ else
+ {
+ m_textImage->SetColor( m_textDisabledColor );
+ }
+ m_textImage->SetPos(textOffset + (textSpace - textWide)/2, (buttonTall - textTall)/2);
+ m_textImage->Paint();
+
+ if (HasFocus() && IsEnabled() )
+ {
+ int x0, y0, x1, y1;
+ x0 = 3, y0 = 3, x1 = buttonWide - 4 , y1 = buttonTall - 2;
+ DrawFocusBorder(x0, y0, x1, y1);
+ }
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CCareerButton::SetArmedBorder(IBorder *border)
+{
+ m_armedBorder = border;
+ InvalidateLayout(false);
+}
+
+//--------------------------------------------------------------------------------------------------------------
+IBorder* CCareerButton::GetBorder(bool depressed, bool armed, bool selected, bool keyfocus)
+{
+ if ( /*_buttonBorderEnabled &&*/ armed && !depressed && IsEnabled() )
+ {
+ return m_armedBorder;
+ }
+
+ return BaseClass::GetBorder( depressed, armed, selected, keyfocus );
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CCareerButton::ApplySchemeSettings( vgui::IScheme *pScheme )
+{
+ BaseClass::ApplySchemeSettings( pScheme );
+
+ SetDefaultBorder( pScheme->GetBorder("CareerButtonBorder") );
+ SetDepressedBorder( pScheme->GetBorder("CareerButtonDepressedBorder") );
+ m_armedBorder = pScheme->GetBorder("CareerButtonArmedBorder");
+
+ m_textNormalColor = pScheme->GetColor( "Label.TextBrightColor", Color(255, 255, 255, 255) );
+ m_textDisabledColor = pScheme->GetColor( "Label.DisabledFgColor2", Color(128, 128, 128, 255) );
+ m_textImage->SetColor( m_textNormalColor );
+ if ( m_image )
+ {
+ m_image->SetColor( GetFgColor() );
+ }
+
+ m_textImage->SetFont( pScheme->GetFont( "Default", IsProportional() ) );
+
+ m_textPad = atoi(pScheme->GetResourceString( "CareerButtonTextPad" ));
+ m_imagePad = atoi(pScheme->GetResourceString( "CareerButtonImagePad" ));
+ if (IsProportional())
+ {
+ m_textPad = scheme()->GetProportionalScaledValueEx( GetScheme(),m_textPad);
+ m_imagePad = scheme()->GetProportionalScaledValueEx( GetScheme(),m_imagePad);
+ }
+
+ const int BufLen = 128;
+ char buf[BufLen];
+ GetText(buf, BufLen);
+ m_textImage->SetText(buf);
+ m_textImage->ResizeImageToContent();
+
+ int buttonWide, buttonTall;
+ GetSize(buttonWide, buttonTall);
+
+ int imageWide, imageTall;
+ if ( m_image )
+ {
+ m_image->GetSize(imageWide, imageTall);
+ }
+ else
+ {
+ imageWide = imageTall = 0;
+ }
+
+ int textSpace = buttonWide - imageWide - m_imagePad - 2*m_textPad;
+
+ int textWide, textTall;
+ m_textImage->GetContentSize(textWide, textTall);
+ if (textSpace < textWide)
+ m_textImage->SetSize(textSpace, textTall);
+
+ Color bgColor = pScheme->GetColor( "CareerButtonBG", Color(0, 0, 0, 0) );
+ SetDefaultColor( bgColor, bgColor );
+ SetArmedColor( bgColor, bgColor );
+ SetDepressedColor( bgColor, bgColor );
+}
+
+//--------------------------------------------------------------------------------------------------------------