Planeshift
psControlManager Class Reference

Manages button functions and triggers. More...

#include <pscharcontrol.h>

Public Member Functions

const csPDelArray< psControl > & GetAllTriggers ()
 Get the full array of triggers. More...
 
psControlGetMappedTrigger (psControl::Device device, uint button, uint32 mods)
 Gets a mapped trigger for a device by button. More...
 
csArray< psControl * > * GetMappedTriggers (psControl::Device device, uint button)
 Gets all mapped triggers for a device by button ignoring mods. More...
 
psControlGetTrigger (const char *name)
 Gets a trigger from the master list by name. More...
 
bool HandleEvent (iEvent &event)
 
bool MapTrigger (const char *name, psControl::Device device, uint button, uint32 mods)
 Sets a trigger to the desired button. More...
 
void NewTrigger (const char *name, psControl::PressType type, psControl::TriggerFunction function)
 Creates a new trigger. More...
 
 psControlManager (iEventNameRegistry *eventname_reg, psTriggerHandler *handler)
 
void ResetAllTriggers ()
 Resets all mappings. More...
 
void ResetTrigger (psControl *trigger)
 Resets a trigger's mapping. More...
 
bool SetTriggerData (const char *name, const void *ptr)
 Assign 'ptr' to all psControls starting with 'name'. More...
 

Protected Types

typedef csHash< psControl *, uint > psControlMap
 Each device gets a hash map of buttons to triggers. More...
 

Protected Member Functions

csArray< psControl * > * GetArrayFromMap (const psControlMap &ctrlmap, uint button)
 Gets the controls from a map with the specified button. More...
 
void HandleButton (psControl::Device device, uint button, uint32 mods, bool newState)
 Handles an input event. More...
 

Static Protected Member Functions

static psControlGetFromMap (const psControlMap &ctrlmap, uint button, uint32 mods)
 Gets the control from a map with the specified button and mods (if not found, finds without mods) More...
 

Protected Attributes

csEventID event_key_down
 
csEventID event_key_up
 
csEventID event_mouse_down
 
csEventID event_mouse_up
 
psControlMap keyboard
 List of all keyboard triggers. More...
 
psControlMap mouse
 List of all mouse triggers. More...
 
csPDelArray< psControltriggers
 Master list of all triggers. More...
 

Detailed Description

Manages button functions and triggers.

Each game function which may be controled by a button has a psControl object called a "trigger". After creating a trigger using the NewTrigger() function, from psCharController::CreateKeys(), each trigger is assigned a name and a function to call back to when executed. MapTrigger() is used to set a trigger to a button combination (device + button + mods). A pointer to this is then stored in the psControlMap (hash map) for the device in question. Additional optional data can be assigned to a trigger using SetTriggerData(). (ex: modes/movements) When HandleEvent() receives an input event the device, button, and mods are determined. The trigger is retrieved from the map and the function is executed, passing itself and the button's state as arguments. The trigger function then takes this information and does whatever it does.

Definition at line 122 of file pscharcontrol.h.

Member Typedef Documentation

typedef csHash<psControl*,uint> psControlManager::psControlMap
protected

Each device gets a hash map of buttons to triggers.

Definition at line 157 of file pscharcontrol.h.

Constructor & Destructor Documentation

psControlManager::psControlManager ( iEventNameRegistry *  eventname_reg,
psTriggerHandler handler 
)

Member Function Documentation

const csPDelArray<psControl>& psControlManager::GetAllTriggers ( )
inline

Get the full array of triggers.

Definition at line 148 of file pscharcontrol.h.

csArray<psControl*>* psControlManager::GetArrayFromMap ( const psControlMap ctrlmap,
uint  button 
)
protected

Gets the controls from a map with the specified button.

static psControl* psControlManager::GetFromMap ( const psControlMap ctrlmap,
uint  button,
uint32  mods 
)
staticprotected

Gets the control from a map with the specified button and mods (if not found, finds without mods)

psControl* psControlManager::GetMappedTrigger ( psControl::Device  device,
uint  button,
uint32  mods 
)

Gets a mapped trigger for a device by button.

csArray<psControl*>* psControlManager::GetMappedTriggers ( psControl::Device  device,
uint  button 
)

Gets all mapped triggers for a device by button ignoring mods.

psControl* psControlManager::GetTrigger ( const char *  name)

Gets a trigger from the master list by name.

void psControlManager::HandleButton ( psControl::Device  device,
uint  button,
uint32  mods,
bool  newState 
)
protected

Handles an input event.

bool psControlManager::HandleEvent ( iEvent &  event)
bool psControlManager::MapTrigger ( const char *  name,
psControl::Device  device,
uint  button,
uint32  mods 
)

Sets a trigger to the desired button.

void psControlManager::NewTrigger ( const char *  name,
psControl::PressType  type,
psControl::TriggerFunction  function 
)

Creates a new trigger.

void psControlManager::ResetAllTriggers ( )

Resets all mappings.

void psControlManager::ResetTrigger ( psControl trigger)

Resets a trigger's mapping.

bool psControlManager::SetTriggerData ( const char *  name,
const void *  ptr 
)

Assign 'ptr' to all psControls starting with 'name'.

Member Data Documentation

csEventID psControlManager::event_key_down
protected

Definition at line 165 of file pscharcontrol.h.

csEventID psControlManager::event_key_up
protected

Definition at line 166 of file pscharcontrol.h.

csEventID psControlManager::event_mouse_down
protected

Definition at line 167 of file pscharcontrol.h.

csEventID psControlManager::event_mouse_up
protected

Definition at line 168 of file pscharcontrol.h.

psControlMap psControlManager::keyboard
protected

List of all keyboard triggers.

Definition at line 159 of file pscharcontrol.h.

psControlMap psControlManager::mouse
protected

List of all mouse triggers.

Definition at line 160 of file pscharcontrol.h.

csPDelArray<psControl> psControlManager::triggers
protected

Master list of all triggers.

Definition at line 162 of file pscharcontrol.h.


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