diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/cstrike/VGUI/career_box.h | |
| download | archived-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.h | 202 |
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 |