crystalspace.jbind.interfaces.iutil.event
Interface iEventOutlet
- All Superinterfaces:
- iBase, iPointer
- All Known Implementing Classes:
- csEventOutlet, csEventOutlet
- public interface iEventOutlet
- extends iBase
The iEventOutlet is the interface to an object that is provided by an event
queue to every event plug when it registers itself. Any event plug will
interact with event outlet to put events into system queue and so on. The
event queue is responsible for detecting potentially conflicting situations
when several event plugs may generate a event from same original event (e.g.
a key press will cause several keydown events coming from several event
source plugins). In this case the event sources are queried for how strong
their "wish" to generate certain types of events is, and the one with the
strongest "wish" wins. Then the respective outlet is set up such that any
unwanted events coming from 'disqualified' event plugs are discarded.
- Author:
- Java wrapper - Quentin Anciaux, c++ version -
http://crystal.sourceforge.net/docs/online/devapi/structiEventOutlet.php
Method Summary |
void |
broadcast(int iCode)
Put a broadcast event into event queue. |
void |
broadcast(int iCode,
iPointer iInfo)
Put a broadcast event into event queue. |
iEvent |
createEvent()
Create a event object on behalf of the event queue. |
void |
immediateBroadcast(int iCode,
iPointer iInfo)
This is a special routine which is called for example when the application
is going to be suspended (suspended means "frozen", that is, application
is forced to not run for some time). |
void |
joystick(int iNumber,
int iButton,
boolean iDown,
int x,
int y)
Put a joystick event into event queue. iNumber is joystick number (from 0
to CS_MAX_JOYSTICK_COUNT-1). |
void |
key(int codeRaw,
int codeCooked,
boolean iDown)
Put a keyboard event into event queue. |
void |
mouse(int iButton,
boolean iDown,
int x,
int y)
Put a mouse event into event queue. |
void |
post(iEvent event)
Put a previously created event into system event queue. |
broadcast
public void broadcast(int iCode)
- Put a broadcast event into event queue. This is a generalized way to put
any broadcast event into the system event queue. Command code may be used
to tell user application that application's focused state has changed
(cscmdFocusChanged), that a graphics context has been resized
(cscmdContextResize), that it has been closed (cscmdContextClose), to
finish the application immediately (cscmdQuit) and so on. Implemented in
csEventOutlet.
- Parameters:
iCode
-
broadcast
public void broadcast(int iCode,
iPointer iInfo)
- Put a broadcast event into event queue. This is a generalized way to put
any broadcast event into the system event queue. Command code may be used
to tell user application that application's focused state has changed
(cscmdFocusChanged), that a graphics context has been resized
(cscmdContextResize), that it has been closed (cscmdContextClose), to
finish the application immediately (cscmdQuit) and so on. Implemented in
csEventOutlet.
- Parameters:
iCode
- iInfo
-
createEvent
public iEvent createEvent()
- Create a event object on behalf of the event queue. A general function for
generating publicly any type of event. Since all events for a particular
event queue should be created from the same heap, you should generate
first a event object (through CreateEvent method) then you fill it
whatever you like and finally you insert it into the event queue with the
Post() method. Implemented in csEventOutlet. Referenced by
csApp::CreateEvent().
- Returns:
immediateBroadcast
public void immediateBroadcast(int iCode,
iPointer iInfo)
- This is a special routine which is called for example when the application
is going to be suspended (suspended means "frozen", that is, application
is forced to not run for some time). This happens for example when user
switches away from a full-screen application on any OS with MGL canvas
driver, or when it presses
with the OS/2 DIVE driver, or in any other drivers that supports forced
pausing of applications. This generates a `normal' broadcast event with
given command code; the crucial difference is that the event is being
delivered to all clients immediately. The reason is that the application
is frozen right after returning from this routine thus it will get the
next chance to process any events only after it will be resumed (which is
kind of too late to process this kind of events). Implemented in
csEventOutlet.
- Parameters:
iCode
- iInfo
-
joystick
public void joystick(int iNumber,
int iButton,
boolean iDown,
int x,
int y)
- Put a joystick event into event queue. iNumber is joystick number (from 0
to CS_MAX_JOYSTICK_COUNT-1). If iButton == 0, this is a joystick move
event and iDown is ignored. Otherwise an joystick up/down event is
generated. iButton can be from 1 to CS_MAX_JOYSTICK_BUTTONS (or 0 for a
joystick move event). Implemented in csEventOutlet.
- Parameters:
iNumber
- iButton
- iDown
- x
- y
-
key
public void key(int codeRaw,
int codeCooked,
boolean iDown)
- Put a keyboard event into event queue. Note that iKey is the key code,
either the alphanumeric symbol that is emmited by the given key when no
shift keys/modes are active (e.g. 'a', 'b', '.', '/' and so on) or one of
CSKEY_XXX values (with value above 255) and the iChar parameter is the
translated key, after applying all modeshift keys. Never assume that any
of these two codes is always less 127, not being 255 or 224 -- these are
common mistakes for English-speaking programmers. if you pass -1 as
character code, the iChar argument is computed using an simple internal
translation table that takes care of Control/Shift/Alt for English
characters. But in general it is hardly advised your driver to make the
conversion using OS-specific National Language Support subsystem so that
national characters are properly supported. Implemented in csEventOutlet.
- Parameters:
codeRaw
- codeCooked
- iDown
-
mouse
public void mouse(int iButton,
boolean iDown,
int x,
int y)
- Put a mouse event into event queue. If iButton == 0, this is a mouse
motion event, and iDown argument is ignored. Otherwise an mousedown or
mouseup event is generated at respective location. iButton can be in the
range from 1 to CS_MAX_MOUSE_BUTTONS (or 0 for mouse move event).
Implemented in csEventOutlet.
- Parameters:
iButton
- iDown
- x
- y
-
post
public void post(iEvent event)
- Put a previously created event into system event queue. NOTE: YOU SHOULD
PASS HERE ONLY OBJECTS THAT WERE CREATED VIA CreateEvent() FUNCTION! IF
YOU PASS ARBITRARY EVENTS CREATED BY YOUR PROGRAM/PLUGIN IN SOME
ENVIRONMENTS IT WILL CRASH! Implemented in csEventOutlet. Referenced by
csApp::Post().
- Parameters:
event
-