source-engine/public/vgui_controls/KeyBindingHelpDialog.h

64 lines
1.5 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef KEYBINDINGHELPDIALOG_H
#define KEYBINDINGHELPDIALOG_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui_controls/Frame.h"
#include "vgui/KeyCode.h"
namespace vgui
{
class ListPanel;
class CKeyBoardEditorDialog;
//-----------------------------------------------------------------------------
// Purpose: Dialog for use in editing keybindings
//-----------------------------------------------------------------------------
class CKeyBindingHelpDialog : public Frame
{
DECLARE_CLASS_SIMPLE( CKeyBindingHelpDialog, Frame );
public:
CKeyBindingHelpDialog( Panel *parent, Panel *panelToView, KeyBindingContextHandle_t handle, KeyCode code, int modifiers );
~CKeyBindingHelpDialog();
virtual void OnCommand( char const *cmd );
virtual void OnKeyCodeTyped(vgui::KeyCode code);
// The key originally bound to help was pressed
void HelpKeyPressed();
private:
virtual void OnTick();
bool IsHelpKeyStillBeingHeld();
void PopulateList();
void GetMappingList( Panel *panel, CUtlVector< PanelKeyBindingMap * >& maps );
void AnsiText( char const *token, char *out, size_t buflen );
vgui::PHandle m_hPanel;
KeyBindingContextHandle_t m_Handle;
KeyCode m_KeyCode;
int m_Modifiers;
ListPanel *m_pList;
double m_flShowTime;
bool m_bPermanent;
DHANDLE< CKeyBoardEditorDialog > m_hKeyBindingsEditor;
};
}
#endif // KEYBINDINGHELPDIALOG_H