//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================

#ifndef KEYREPEAT_H
#define KEYREPEAT_H
#ifdef _WIN32
#pragma once
#endif

namespace vgui
{

enum KEYREPEAT_ALIASES
{
	KR_ALIAS_UP,
	KR_ALIAS_DOWN,
	KR_ALIAS_LEFT,
	KR_ALIAS_RIGHT,

	FM_NUM_KEYREPEAT_ALIASES,
};

class CKeyRepeatHandler
{
public:
	CKeyRepeatHandler();

	void			Reset();
	void			KeyDown( vgui::KeyCode code );
	void			KeyUp( vgui::KeyCode code );
	vgui::KeyCode	KeyRepeated();
	void			SetKeyRepeatTime( vgui::KeyCode code, float flRepeat );

private:
	bool			m_bAliasDown[MAX_JOYSTICKS][FM_NUM_KEYREPEAT_ALIASES];
	float			m_flRepeatTimes[FM_NUM_KEYREPEAT_ALIASES];
	float			m_flNextKeyRepeat[MAX_JOYSTICKS];
	bool			m_bHaveKeyDown;
};


} // namespace vgui

#endif // KEYREPEAT_H