//
// Asura_Key_Combination.h
//
// Created by Kevin Lea - 05/10/2001 16:30:40
// 
// Copyright (C) 2001 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __ASURA_KEY_COMBINATION_H__
#define __ASURA_KEY_COMBINATION_H__


#define ASURA_MODIFIER_KEY_SHIFT 0x00000001
#define ASURA_MODIFIER_KEY_CTRL  0x00000002
#define ASURA_MODIFIER_KEY_ALL   0x00000003 //ORing of all of the above

//used for storing a key with one or more modifer keys , so it can be checked to see if it has been pressed
class Asura_Key_Combination
{
	public :	
		Asura_Key_Combination(){}
		Asura_Key_Combination(int key,int modifiers_to_press = 0,int modifiers_to_check = ASURA_MODIFIER_KEY_ALL);
		bool KeyPressed();
		bool DebouncedKeyPressed();
			

	private :
		bool CorrectModifiersPressed();

		int Key;
		int ModifiersToPress;
		int ModifiersToCheck;
	
};



#endif//__ASURA_KEY_COMBINATION_H__
