//====== Copyright © 1996-2005, 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