Event listening


Classes

struct  SAL_reg_key
 Connects key's with Gui objects. More...
struct  SAL_keyboard_item
 Data of an pressed key. More...
struct  SAL_keyboard_items
 Keyboard configuration data. More...
struct  SAL_mouse_items
 Mouse data. More...

Functions

bool remove_key (SAL_keyboard_item item, SAL_keyboard_item target)
 Match maker for pend_key deletion.
int SAL_start_event_listener (int &mouse_delay, int &keyboard_delay)
 Start the event listener.
int SAL_event_listener (void *unused)
 Event listener thread.
int SAL_mouse_listener (void *unused)
 Mouse listener.
int SAL_keyboard_listener (void *unused)
 Keyboard listener.
int SAL_search_object (int x, int y, SAL_gui_object *&target)
 Search gui object.
int SAL_search_object (Uint16 unicode, SAL_gui_object *&target)
 Search gui object.
int salSetActionHandler (int(*action)(int action_id))
 Change action handler.
int salSetMouseHandler (int(*mouse)(int x, int y, char button, char clicks))
 Change mouse handler.
int salSetKeyboardHandler (int(*keyboard)(SDLKey key, SDLMod mod))
 Change keyboard handler.

Variables

salList< SAL_reg_keyregistered_keys
 Keys thar are registered to gui objects.
salList< SAL_keyboard_itempend_keys
 Keys that are pressed.
SDL_mutex * keyboard_mutex
 Prevents type artifacts.
SAL_keyboard_items keyboard
 Keyboard preferences.
SAL_mouse_items mouse
 Mouse data.

Detailed Description

The core of event listening and handling
All the events that come into the application are handled here
Note: Event handlers are written by the lib users them self and are not part of the library

Function Documentation

bool remove_key ( SAL_keyboard_item  item,
SAL_keyboard_item  target 
)

Match maker for pend_key deletion.

Note:
Defined internaly.
Parameters:
item entry from salList
target entry that is searched for
Used by the salList remove function

Definition at line 138 of file SAL_eventhandler.cpp.

References SAL_keyboard_item::key.

Referenced by SAL_event_listener().

int SAL_event_listener ( void *  unused  ) 

int SAL_keyboard_listener ( void *  unused  ) 

Keyboard listener.

Note:
Defined internaly.

Calls the Event handler and Keyboard handler.

Parameters:
unused Not used.
Waits for time out and then processes the key presses.

Definition at line 353 of file SAL_eventhandler.cpp.

References SAL_int_event::action_handler, SAL_int_event::active_object, SAL_keyboard_items::delay, SAL_intern::event, SAL_gui_object::func, SAL_structure::internal, SAL_gui_functions::key_down, keyboard, SAL_action_handler::keyboard, keyboard_mutex, and pend_keys.

Referenced by SAL_event_listener().

int SAL_mouse_listener ( void *  unused  ) 

Mouse listener.

Note:
Defined internaly.

Calls the Event handler and Mouse handler.

Parameters:
unused Not used.
Waits for time out and then processes the mouse clicks.

Definition at line 324 of file SAL_eventhandler.cpp.

References SAL_action_handler::action, SAL_int_event::action_handler, SAL_mouse_items::active, SAL_mouse_items::button, SAL_mouse_items::clicks, SAL_mouse_items::delay, SAL_intern::event, SAL_gui_object::func, SAL_gui_object::id, SAL_structure::internal, mouse, SAL_action_handler::mouse, SAL_gui_functions::released, SAL_mouse_items::selected, SAL_mouse_items::x, and SAL_mouse_items::y.

Referenced by SAL_event_listener().

int SAL_search_object ( Uint16  unicode,
SAL_gui_object *&  target 
)

Search gui object.

Note:
Defined internaly.
Parameters:
unicode Keyboard key code.
target Returns target if found.
Search for an object by unicode and return it by target.

Definition at line 444 of file SAL_eventhandler.cpp.

References registered_keys.

int SAL_search_object ( int  x,
int  y,
SAL_gui_object *&  target 
) [inline]

Search gui object.

Note:
Defined internaly.
Parameters:
x X position of mouse.
y Y position of mouse.
target Returns target if found.
Search for an object at location (X,Y) and return it by target.

Definition at line 400 of file SAL_eventhandler.cpp.

Referenced by SAL_event_listener().

int SAL_start_event_listener ( int &  mouse_delay,
int &  keyboard_delay 
)

Start the event listener.

Note:
Defined internaly.
Parameters:
mouse_delay default mouse delay time
keyboard_delay default keyboard delay time
Starts the eventlistener and parses on the 2 param's

Definition at line 154 of file SAL_eventhandler.cpp.

References SAL_mouse_items::delay, SAL_keyboard_items::delay, SAL_intern::event, SAL_structure::internal, keyboard, mouse, SAL_event_listener(), salError(), and SAL_int_event::thread.

Referenced by SAL().

int salSetActionHandler ( int(*)(int action_id)  action  ) 

Change action handler.

Parameters:
action New action handler.
Change current user defined action handler to a new one.

Definition at line 468 of file SAL_eventhandler.cpp.

References SAL_action_handler::action, SAL_int_event::action_handler, SAL_intern::event, and SAL_structure::internal.

int salSetKeyboardHandler ( int(*)(SDLKey key, SDLMod mod)  keyboard  ) 

Change keyboard handler.

Parameters:
keyboard New keyboard handler
Change current user defined keyboard handler to a new one

Definition at line 501 of file SAL_eventhandler.cpp.

References SAL_int_event::action_handler, SAL_intern::event, SAL_structure::internal, and SAL_action_handler::keyboard.

int salSetMouseHandler ( int(*)(int x, int y, char button, char clicks)  mouse  ) 

Change mouse handler.

Parameters:
mouse New mouse handler.
/Change current user defined mouse handler to a new one.

Definition at line 485 of file SAL_eventhandler.cpp.

References SAL_int_event::action_handler, SAL_intern::event, SAL_structure::internal, and SAL_action_handler::mouse.


Variable Documentation

Keyboard preferences.

Note:
Defined internaly.

Definition at line 102 of file SAL_eventhandler.cpp.

Referenced by SAL_event_listener(), SAL_keyboard_listener(), and SAL_start_event_listener().

Mouse data.

Note:
Defined internaly.

Definition at line 125 of file SAL_eventhandler.cpp.

Referenced by SAL_event_listener(), SAL_mouse_listener(), and SAL_start_event_listener().

Keys that are pressed.

Note:
Defined internaly.
This list contains keys that are pressed. The items are later on read when the key on the keyboard get's released.

Definition at line 82 of file SAL_eventhandler.cpp.

Referenced by SAL_event_listener(), and SAL_keyboard_listener().

Keys thar are registered to gui objects.

Note:
Defined internaly.
Gui objects can register a key that will activate it. These key's and objects are recorded in this list.

Definition at line 59 of file SAL_eventhandler.cpp.

Referenced by SAL_search_object().