mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-10 02:39:35 +00:00
1
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef OPTIONSDIALOG_H
|
||||
#define OPTIONSDIALOG_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "vgui_controls/PropertyDialog.h"
|
||||
#include "vgui_controls/KeyRepeat.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Holds all the game option pages
|
||||
//-----------------------------------------------------------------------------
|
||||
class COptionsDialog : public vgui::PropertyDialog
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( COptionsDialog, vgui::PropertyDialog );
|
||||
|
||||
public:
|
||||
COptionsDialog(vgui::Panel *parent);
|
||||
~COptionsDialog();
|
||||
|
||||
void Run();
|
||||
virtual void Activate();
|
||||
|
||||
void OnKeyCodePressed( vgui::KeyCode code );
|
||||
|
||||
vgui::PropertyPage* GetOptionsSubMultiplayer( void ) { return m_pOptionsSubMultiplayer; }
|
||||
|
||||
MESSAGE_FUNC( OnGameUIHidden, "GameUIHidden" ); // called when the GameUI is hidden
|
||||
|
||||
private:
|
||||
class COptionsSubAudio *m_pOptionsSubAudio;
|
||||
class COptionsSubVideo *m_pOptionsSubVideo;
|
||||
vgui::PropertyPage *m_pOptionsSubMultiplayer;
|
||||
};
|
||||
|
||||
|
||||
#define OPTIONS_MAX_NUM_ITEMS 15
|
||||
|
||||
struct OptionData_t;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Holds all the game option pages
|
||||
//-----------------------------------------------------------------------------
|
||||
class COptionsDialogXbox : public vgui::Frame
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( COptionsDialogXbox, vgui::Frame );
|
||||
|
||||
public:
|
||||
COptionsDialogXbox( vgui::Panel *parent, bool bControllerOptions = false );
|
||||
~COptionsDialogXbox();
|
||||
|
||||
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
|
||||
virtual void ApplySettings( KeyValues *inResourceData );
|
||||
virtual void OnClose();
|
||||
virtual void OnKeyCodePressed( vgui::KeyCode code );
|
||||
virtual void OnCommand(const char *command);
|
||||
|
||||
virtual void OnKeyCodeReleased( vgui::KeyCode code);
|
||||
virtual void OnThink();
|
||||
|
||||
private:
|
||||
void HandleInactiveKeyCodePressed( vgui::KeyCode code );
|
||||
void HandleActiveKeyCodePressed( vgui::KeyCode code );
|
||||
void HandleBindKeyCodePressed( vgui::KeyCode code );
|
||||
|
||||
int GetSelectionLabel( void ) { return m_iSelection - m_iScroll; }
|
||||
|
||||
void ActivateSelection( void );
|
||||
void DeactivateSelection( void );
|
||||
|
||||
void ChangeSelection( int iChange );
|
||||
void UpdateFooter( void );
|
||||
void UpdateSelection( void );
|
||||
void UpdateScroll( void );
|
||||
|
||||
void UncacheChoices( void );
|
||||
void GetChoiceFromConvar( OptionData_t *pOption );
|
||||
void ChangeValue( float fChange );
|
||||
void UnbindOption( OptionData_t *pOption, int iLabel );
|
||||
|
||||
void UpdateValue( OptionData_t *pOption, int iLabel );
|
||||
void UpdateBind( OptionData_t *pOption, int iLabel, ButtonCode_t codeIgnore = BUTTON_CODE_INVALID, ButtonCode_t codeAdd = BUTTON_CODE_INVALID );
|
||||
void UpdateAllBinds( ButtonCode_t code );
|
||||
|
||||
void FillInDefaultBindings( void );
|
||||
|
||||
bool ShouldSkipOption( KeyValues *pKey );
|
||||
void ReadOptionsFromFile( const char *pchFileName );
|
||||
void SortOptions( void );
|
||||
|
||||
void InitializeSliderDefaults( void );
|
||||
|
||||
private:
|
||||
bool m_bControllerOptions;
|
||||
bool m_bOptionsChanged;
|
||||
bool m_bOldForceEnglishAudio;
|
||||
|
||||
CFooterPanel *m_pFooter;
|
||||
|
||||
CUtlVector<OptionData_t*> *m_pOptions;
|
||||
|
||||
bool m_bSelectionActive;
|
||||
OptionData_t *m_pSelectedOption;
|
||||
|
||||
int m_iSelection;
|
||||
int m_iScroll;
|
||||
int m_iSelectorYStart;
|
||||
int m_iOptionSpacing;
|
||||
int m_iNumItems;
|
||||
|
||||
int m_iXAxisState;
|
||||
int m_iYAxisState;
|
||||
float m_fNextChangeTime;
|
||||
|
||||
vgui::Panel *m_pOptionsSelectionLeft;
|
||||
vgui::Panel *m_pOptionsSelectionLeft2;
|
||||
vgui::Label *m_pOptionsUpArrow;
|
||||
vgui::Label *m_pOptionsDownArrow;
|
||||
|
||||
vgui::Label *(m_pOptionLabels[ OPTIONS_MAX_NUM_ITEMS ]);
|
||||
vgui::Label *(m_pValueLabels[ OPTIONS_MAX_NUM_ITEMS ]);
|
||||
vgui::AnalogBar *(m_pValueBars[ OPTIONS_MAX_NUM_ITEMS ]);
|
||||
|
||||
vgui::HFont m_hLabelFont;
|
||||
vgui::HFont m_hButtonFont;
|
||||
|
||||
Color m_SelectedColor;
|
||||
|
||||
vgui::CKeyRepeatHandler m_KeyRepeat;
|
||||
|
||||
int m_nButtonGap;
|
||||
};
|
||||
|
||||
#endif // OPTIONSDIALOG_H
|
||||
Reference in New Issue
Block a user