summaryrefslogtreecommitdiff
path: root/game/client/cstrike/VGUI/career_box.h
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_box.h
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_box.h')
-rw-r--r--game/client/cstrike/VGUI/career_box.h202
1 files changed, 202 insertions, 0 deletions
diff --git a/game/client/cstrike/VGUI/career_box.h b/game/client/cstrike/VGUI/career_box.h
new file mode 100644
index 0000000..7506308
--- /dev/null
+++ b/game/client/cstrike/VGUI/career_box.h
@@ -0,0 +1,202 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+// Author: Matthew D. Campbell ([email protected]), 2003
+
+#ifndef CAREER_BOX_H
+#define CAREER_BOX_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <KeyValues.h>
+#include <vgui_controls/Frame.h>
+#include <vgui_controls/Label.h>
+#include <vgui_controls/Button.h>
+#include <vgui_controls/TextEntry.h>
+#include "weapon_csbase.h"
+#include "buy_presets/buy_presets.h"
+#include "buypreset_listbox.h"
+#include "buypreset_weaponsetlabel.h"
+
+class ConVarToggleCheckButton;
+
+//--------------------------------------------------------------------------------------------------------------
+/**
+ * Base class for career popup dialogs (handles custom backgrounds, etc)
+ */
+class CCareerBaseBox : public vgui::Frame
+{
+public:
+ CCareerBaseBox(vgui::Panel *parent, const char *panelName, bool loadResources = true, bool useCareerButtons = false );
+ virtual void ShowWindow();
+ void DoModal();
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void PaintBackground();
+ virtual void PaintBorder();
+ virtual void PerformLayout();
+ void SetLabelText( const char *text );
+ void SetLabelText( const wchar_t *text );
+ void SetCancelButtonAsDefault();
+ vgui::Button * GetOkButton() { return m_pOkButton; }
+ virtual vgui::Panel *CreateControlByName(const char *controlName);
+
+private:
+ typedef vgui::Frame BaseClass;
+ vgui::Button *m_pOkButton;
+ vgui::Button *m_pCancelButton;
+ vgui::Dar<vgui::Button *> m_buttons;
+ vgui::Dar<ConVarToggleCheckButton *> m_conVarCheckButtons;
+
+ Color m_bgColor;
+ Color m_borderColor;
+ vgui::Label *m_pTextLabel;
+ bool m_cancelFocus;
+
+protected:
+ void SetLabelVisible( bool visible ) { m_pTextLabel->SetVisible( visible ); }
+ virtual void OnKeyCodeTyped( vgui::KeyCode code );
+ virtual void OnCommand( const char *command ); ///< Handle button presses
+ void AddButton( vgui::Button *pButton ); ///< Add a button to our list of buttons for rollover sounds
+};
+
+//--------------------------------------------------------------------------------------------------------------
+/**
+ * Popup dialog with functionality similar to QueryBox, bot with different layout
+ */
+class CCareerQueryBox : public CCareerBaseBox
+{
+public:
+ CCareerQueryBox(vgui::Panel *parent, const char *panelName, const char *resourceName = NULL);
+ CCareerQueryBox(const char *title, const char *labelText, const char *panelName, vgui::Panel *parent = NULL);
+ CCareerQueryBox(const wchar_t *title, const wchar_t *labelText, const char *panelName, vgui::Panel *parent = NULL);
+
+ virtual ~CCareerQueryBox();
+
+private:
+ typedef CCareerBaseBox BaseClass;
+};
+
+//--------------------------------------------------------------------------------------------------------------
+/**
+ * Popup dialog for selecting and editing a primary weapon (ammo to buy, side-availability)
+ */
+class CWeaponSelectBox : public CCareerBaseBox
+{
+public:
+ CWeaponSelectBox( vgui::Panel *parent, WeaponSet *pWeaponSet, bool isSecondary );
+
+ virtual ~CWeaponSelectBox();
+
+ virtual void ActivateBuildMode();
+
+ void UpdateClips();
+
+protected:
+ virtual void OnCommand( const char *command );
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+
+private:
+ void PopulateControls();
+ void SetClipsVisible( bool visible );
+
+ CSWeaponID GetSelectedWeaponID();
+
+ typedef CCareerBaseBox BaseClass;
+ vgui::ComboBox *m_pClips; ///< Number of clips to purchase
+ vgui::Label *m_pBullets; ///< Label showing "M of N Bullets"
+
+ WeaponSet *m_pWeaponSet; ///< WeaponSet being edited
+ bool m_isSecondary; ///< is this weapon primary or secondary?
+ BuyPresetListBox *m_pListBox; ///< List of weapons from which to choose
+
+ int m_numWeapons;
+ CSWeaponID *m_weaponIDs;
+};
+
+//--------------------------------------------------------------------------------------------------------------
+/**
+ * Base class for editing grenades and equipment
+ */
+class CBaseSelectBox : public CCareerBaseBox
+{
+ typedef CCareerBaseBox BaseClass;
+
+public:
+ CBaseSelectBox( vgui::Panel *parent, const char *panelName, bool loadResources = true ) : BaseClass( parent, panelName, loadResources ) {}
+
+ virtual void OnControlChanged() = 0;
+};
+
+//--------------------------------------------------------------------------------------------------------------
+/**
+ * Popup dialog for editing grenades in a buy preset fallback
+ */
+class CGrenadeSelectBox : public CBaseSelectBox
+{
+ typedef CBaseSelectBox BaseClass;
+
+public:
+ CGrenadeSelectBox( vgui::Panel *parent, WeaponSet *pWeaponSet );
+
+ void OnControlChanged(); ///< Updates item costs
+
+private:
+ WeaponSet *m_pWeaponSet; ///< WeaponSet being edited
+
+ // Equipment controls
+ vgui::ComboBox *m_pHEGrenade;
+ EquipmentLabel *m_pHEGrenadeImage;
+ vgui::Label *m_pHELabel;
+
+ vgui::ComboBox *m_pSmokeGrenade;
+ EquipmentLabel *m_pSmokeGrenadeImage;
+ vgui::Label *m_pSmokeLabel;
+
+ vgui::ComboBox *m_pFlashbangs;
+ EquipmentLabel *m_pFlashbangImage;
+ vgui::Label *m_pFlashLabel;
+
+ virtual void OnCommand( const char *command );
+};
+
+//--------------------------------------------------------------------------------------------------------------
+/**
+ * Popup dialog for selecting an equipment set
+ */
+class CEquipmentSelectBox : public CBaseSelectBox
+{
+ typedef CBaseSelectBox BaseClass;
+
+public:
+ CEquipmentSelectBox( vgui::Panel *parent, WeaponSet *pWeaponSet );
+
+ void OnControlChanged();
+
+private:
+ WeaponSet *m_pWeaponSet; ///< WeaponSet being edited
+
+ // Equipment controls
+ vgui::ComboBox *m_pKevlar;
+ vgui::Label *m_pKevlarLabel;
+ EquipmentLabel *m_pKevlarImage;
+
+ vgui::ComboBox *m_pHelmet;
+ vgui::Label *m_pHelmetLabel;
+ EquipmentLabel *m_pHelmetImage;
+
+ vgui::ComboBox *m_pDefuser;
+ vgui::Label *m_pDefuserLabel;
+ EquipmentLabel *m_pDefuserImage;
+
+ vgui::ComboBox *m_pNightvision;
+ vgui::Label *m_pNightvisionLabel;
+ EquipmentLabel *m_pNightvisionImage;
+
+ virtual void OnCommand( const char *command );
+};
+
+#endif // CAREER_BOX_H