mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 12:06:07 +08:00
First version of the SOurce SDK 2013
This commit is contained in:
138
public/vgui_controls/KeyBoardEditorDialog.h
Normal file
138
public/vgui_controls/KeyBoardEditorDialog.h
Normal file
@ -0,0 +1,138 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
#ifndef KEYBOARDEDITORDIALOG_H
|
||||
#define KEYBOARDEDITORDIALOG_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "vgui_controls/Frame.h"
|
||||
#include "vgui_controls/PropertySheet.h"
|
||||
#include "vgui_controls/PropertyPage.h"
|
||||
|
||||
class VControlsListPanel;
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Dialog for use in editing keybindings
|
||||
//-----------------------------------------------------------------------------
|
||||
class CKeyBoardEditorPage : public EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CKeyBoardEditorPage, EditablePanel );
|
||||
|
||||
public:
|
||||
CKeyBoardEditorPage( Panel *parent, Panel *panelToEdit, KeyBindingContextHandle_t handle );
|
||||
~CKeyBoardEditorPage();
|
||||
|
||||
void SetKeybindingsSaveFile( char const *filename, char const *pathID = 0 );
|
||||
|
||||
virtual void OnKeyCodeTyped(vgui::KeyCode code);
|
||||
|
||||
virtual void ApplySchemeSettings( IScheme *scheme );
|
||||
|
||||
void OnSaveChanges();
|
||||
void OnRevert();
|
||||
void OnUseDefaults();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void OnPageHide();
|
||||
|
||||
virtual void OnCommand( char const *cmd );
|
||||
|
||||
void PopulateList();
|
||||
|
||||
void GetMappingList( Panel *panel, CUtlVector< PanelKeyBindingMap * >& maps );
|
||||
int GetMappingCount( Panel *panel );
|
||||
|
||||
void BindKey( vgui::KeyCode code );
|
||||
|
||||
// Trap row selection message
|
||||
MESSAGE_FUNC( ItemSelected, "ItemSelected" );
|
||||
MESSAGE_FUNC_INT( OnClearBinding, "ClearBinding", item );
|
||||
|
||||
void SaveMappings();
|
||||
void UpdateCurrentMappings();
|
||||
void RestoreMappings();
|
||||
void ApplyMappings();
|
||||
|
||||
protected:
|
||||
void AnsiText( char const *token, char *out, size_t buflen );
|
||||
|
||||
Panel *m_pPanel;
|
||||
KeyBindingContextHandle_t m_Handle;
|
||||
|
||||
VControlsListPanel *m_pList;
|
||||
|
||||
struct SaveMapping_t
|
||||
{
|
||||
SaveMapping_t();
|
||||
SaveMapping_t( const SaveMapping_t& src );
|
||||
|
||||
PanelKeyBindingMap *map;
|
||||
CUtlVector< BoundKey_t > current;
|
||||
CUtlVector< BoundKey_t > original;
|
||||
};
|
||||
|
||||
CUtlVector< SaveMapping_t * > m_Save;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Dialog for use in editing keybindings
|
||||
//-----------------------------------------------------------------------------
|
||||
class CKeyBoardEditorSheet : public PropertySheet
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CKeyBoardEditorSheet, PropertySheet );
|
||||
|
||||
public:
|
||||
CKeyBoardEditorSheet( Panel *parent, Panel *panelToEdit, KeyBindingContextHandle_t handle );
|
||||
|
||||
void SetKeybindingsSaveFile( char const *filename, char const *pathID = 0 );
|
||||
|
||||
void OnSaveChanges();
|
||||
void OnRevert();
|
||||
void OnUseDefaults();
|
||||
|
||||
protected:
|
||||
|
||||
vgui::PHandle m_hPanel;
|
||||
KeyBindingContextHandle_t m_Handle;
|
||||
bool m_bSaveToExternalFile;
|
||||
CUtlSymbol m_SaveFileName;
|
||||
CUtlSymbol m_SaveFilePathID;
|
||||
Color m_clrAlteredItem;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Dialog for use in editing keybindings
|
||||
//-----------------------------------------------------------------------------
|
||||
class CKeyBoardEditorDialog : public Frame
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CKeyBoardEditorDialog, Frame );
|
||||
|
||||
public:
|
||||
CKeyBoardEditorDialog( Panel *parent, Panel *panelToEdit, KeyBindingContextHandle_t handle );
|
||||
|
||||
void SetKeybindingsSaveFile( char const *filename, char const *pathID = 0 );
|
||||
|
||||
virtual void OnCommand( char const *cmd );
|
||||
|
||||
private:
|
||||
CKeyBoardEditorSheet *m_pKBEditor;
|
||||
|
||||
Button *m_pSave;
|
||||
Button *m_pCancel;
|
||||
Button *m_pRevert;
|
||||
Button *m_pUseDefaults;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // KEYBOARDEDITORDIALOG_H
|
Reference in New Issue
Block a user