A unique WinServer object is used to create and manage windows, serving as a kind of anchor for various inputs and events either coming from the system or the user. It's the interface between the lowest levels of the host system and Feelin. It gathers timers, window events, user inputs (mouse and keyboard), workbench drops to create a unique FEvent, which is dispatched through windows. It also adds several new features such as pop help and unactivable windows.
typedef struct FeelinEvent { uint32 Class; uint16 Code; bits16 Flags;
uint8 Key; bits16 Qualifier; uint8 DecodedChar;
uint16 MouseX; uint16 MouseY; uint32 Seconds; uint32 Micros;
FObject Target;
APTR Special; } FEvent;
Please consult the developer's guide for an explanation about events, and how they work in Feelin.
Class and Code are binded together: Code adding detailed information to a more general Class. Possible classes and codes are described in the developer's guide.
Flags are relative to Class and Code, they are described in the developer's guide.
User have the possibility to customise application keys (page up, next word, line end...). These keys are standard definitions such as "-repeat shift left" for next word. The following keys are currently mapped:
A copy of the current InputEvent's Qualifier.
Whenever possible, key code is decoded as a single character.
Any event you get will have the mouse coordinates in these fields. The coordinates are relative to the upper-left corner of the window in which the event occured.
The time values are copies of the current system clock time. Micros are in units of microseconds.
Pointer to the target object in which the event occured (e.g. the window most of the time).