File: input.h

package info (click to toggle)
clanlib 0.5.4-1-6
  • links: PTS
  • area: main
  • in suites: woody
  • size: 10,320 kB
  • ctags: 10,893
  • sloc: cpp: 76,056; xml: 3,281; sh: 2,961; perl: 1,204; asm: 837; makefile: 775
file content (62 lines) | stat: -rw-r--r-- 1,684 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
	$Id: input.h,v 1.10 2001/09/22 15:52:12 plasmoid Exp $

	------------------------------------------------------------------------
	ClanLib, the platform independent game SDK.

	This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
	version 2. See COPYING for details.

	For a total list of contributers see CREDITS.

	See http://www.clanlib.org
	------------------------------------------------------------------------
*/

//! clanDisplay="Input"
//! header=display.h

#ifndef header_input
#define header_input

#include <vector>
#include "../../signals.h"
#include "key.h"

class CL_InputDevice;
class CL_Keyboard;

//: Input component class.
//- CL_Input is the access point to keyboards, joysticks and (mouse) pointers.
class CL_Input
{
public:
//! Construction:
	//: Input Destructor
	virtual ~CL_Input() { return; }

//! Attributes:
	//: List of keyboards available.
	static std::vector<CL_Keyboard *> keyboards;
	
	//: List of joysticks and gamepads available.
	static std::vector<CL_InputDevice *> joysticks;
	
	//: List of mice and digitizers available.
	static std::vector<CL_InputDevice *> pointers;

//! Signals:
	//: Signal signaled upon button press.
	//: The CL_Key contains coordinates as well as button code.
	static CL_Signal_v2<CL_InputDevice *, const CL_Key &> sig_button_press;

	//: Signal signaled upon button release.
	//: The CL_Key contains coordinates as well as button code.
	static CL_Signal_v2<CL_InputDevice *, const CL_Key &> sig_button_release;

	//: Signal signaled upon mouse move.
	//: Obsolete, please use CL_Mouse::sig_move instead of this signal!
	static CL_Signal_v3<CL_InputDevice *, int, int> sig_mouse_move;
};

#endif