CrystalSpace

Public API Reference

csKeyboardDriver Class Reference

Generic Keyboard Driver. More...

#include <csutil/csinput.h>

Inheritance diagram for csKeyboardDriver:

List of all members.

Public Member Functions

virtual csPtr< iKeyComposerCreateKeyComposer ()
 Return an instance of the keyboard composer.
 csKeyboardDriver (iObjectRegistry *)
 Initialize keyboard interface.
virtual void DoKey (utf32_char codeRaw, utf32_char codeCooked, bool iDown, bool autoRepeat=false, csKeyCharType charType=csKeyCharTypeNormal)
 Call this routine to add a key down/up event to queue.
virtual bool GetKeyState (utf32_char codeRaw) const
 Query the state of a key.
const csKeyModifiersGetModifiersState () const
 Get the current state of all modifiers.
virtual uint32 GetModifierState (utf32_char codeRaw) const
 Query the state of a modifier key.
virtual
CS_EVENTHANDLER_NIL_CONSTRAINTS
void 
Reset ()
 Call to release all key down flags.
virtual void RestoreKeys ()
 Call to get the key down flags in sync with the actual pressed keys.
virtual csEventError SynthesizeCooked (iEvent *)
 Fills in the 'cooked' key code of an event with only a 'raw' key code.
virtual ~csKeyboardDriver ()
 Destructor.

Protected Member Functions

virtual void LostFocus ()
 Application lost focus.
virtual void SetKeyState (utf32_char codeRaw, bool iDown, bool autoRepeat)
 Set key state.
virtual void SynthesizeCooked (utf32_char codeRaw, const csKeyModifiers &modifiers, utf32_char &codeCooked)
 Generates a 'cooked' key code for a 'raw' key code from some simple rules.

Protected Attributes

csHash< bool, utf32_charkeyStates
 Key state array.

Detailed Description

Generic Keyboard Driver.

Keyboard driver should generate events and put them into an event queue. Also it tracks the current state of all keys.

Definition at line 99 of file csinput.h.


Constructor & Destructor Documentation

csKeyboardDriver::csKeyboardDriver ( iObjectRegistry  ) 

Initialize keyboard interface.

virtual csKeyboardDriver::~csKeyboardDriver (  )  [virtual]

Destructor.


Member Function Documentation

virtual csPtr<iKeyComposer> csKeyboardDriver::CreateKeyComposer (  )  [virtual]

Return an instance of the keyboard composer.

Remarks:
All composers are independent. Specifically, passing a dead key to one composer won't affect the result after the next keyboard event of any other composer.

Implements iKeyboardDriver.

virtual void csKeyboardDriver::DoKey ( utf32_char  codeRaw,
utf32_char  codeCooked,
bool  iDown,
bool  autoRepeat = false,
csKeyCharType  charType = csKeyCharTypeNormal 
) [virtual]

Call this routine to add a key down/up event to queue.

Parameters:
codeRaw 'Raw' code of the pressed key.
codeCooked 'Cooked' code of the pressed key.
iDown Whether the key is up or down.
autoRepeat Auto-repeat flag for the key event. Typically only used by the platform-specific keyboard agents.
charType When the cooked code is a character, it determines whether it is a normal, dead or composed character.

Implements iKeyboardDriver.

virtual bool csKeyboardDriver::GetKeyState ( utf32_char  codeRaw  )  const [virtual]

Query the state of a key.

All key codes are supported. Returns true if the key is pressed, false if not.

Implements iKeyboardDriver.

const csKeyModifiers& csKeyboardDriver::GetModifiersState (  )  const [inline, virtual]

Get the current state of all modifiers.

Implements iKeyboardDriver.

Definition at line 193 of file csinput.h.

virtual uint32 csKeyboardDriver::GetModifierState ( utf32_char  codeRaw  )  const [virtual]

Query the state of a modifier key.

Returns a bit field, where the nth bit is set if the nth modifier of a type is pressed. If a specific modifier is requested, e.g. CSKEY_SHIFT_LEFT, only the according bit is set. Otherwise, for a generic modifier (e.g. CSKEY_SHIFT), all distinct modifier keys of that type are represented.

Example: Test if any Alt key is pressed:

   bool pressed = (KeyboardDriver->GetModifierState(CSKEY_ALT) != 0);

Example: Test if the right Ctrl key is pressed:

   bool pressed = (KeyboardDriver->GetModifierState(CSKEY_CTRL_RIGHT) != 0);
Parameters:
codeRaw Raw code of the modifier key.
Returns:
Bit mask with the pressed modifiers.

Implements iKeyboardDriver.

virtual void csKeyboardDriver::LostFocus (  )  [inline, protected, virtual]

Application lost focus.

Implements csInputDriver.

Definition at line 128 of file csinput.h.

virtual CS_EVENTHANDLER_NIL_CONSTRAINTS void csKeyboardDriver::Reset (  )  [virtual]

Call to release all key down flags.

Implements iKeyboardDriver.

virtual void csKeyboardDriver::RestoreKeys (  )  [virtual]

Call to get the key down flags in sync with the actual pressed keys.

virtual void csKeyboardDriver::SetKeyState ( utf32_char  codeRaw,
bool  iDown,
bool  autoRepeat 
) [protected, virtual]

Set key state.

For example SetKey (CSKEY_UP, true). Called automatically by do_press and do_release.

virtual csEventError csKeyboardDriver::SynthesizeCooked ( iEvent  )  [virtual]

Fills in the 'cooked' key code of an event with only a 'raw' key code.

Implements iKeyboardDriver.

virtual void csKeyboardDriver::SynthesizeCooked ( utf32_char  codeRaw,
const csKeyModifiers modifiers,
utf32_char codeCooked 
) [protected, virtual]

Generates a 'cooked' key code for a 'raw' key code from some simple rules.


Member Data Documentation

Key state array.

Definition at line 104 of file csinput.h.


The documentation for this class was generated from the following file:

Generated for Crystal Space 2.0 by doxygen 1.6.1