mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-26 22:31:05 +00:00
fc44582726
While the key escape sequences are xterm-specific, they are only the default and preliminary provision has been made for overriding them. However, no override mechanism has been implemented beyond using dynamic table lookup.
79 lines
1.4 KiB
Objective-C
79 lines
1.4 KiB
Objective-C
#ifndef __qwaq_event_h
|
|
#define __qwaq_event_h
|
|
|
|
typedef enum {
|
|
qe_mousedown = 0x0001,
|
|
qe_mouseup = 0x0002,
|
|
qe_mouseclick= 0x0004,
|
|
qe_mousemove = 0x0008,
|
|
qe_mouseauto = 0x0010,
|
|
} qwaq_mouse_event;
|
|
|
|
typedef enum {
|
|
qe_keydown = 0x0020,
|
|
} qwaq_key_event;
|
|
|
|
typedef enum {
|
|
qe_command = 0x0200, // application level command
|
|
qe_broadcast = 0x0400,
|
|
} qwaq_message_event;
|
|
|
|
typedef enum {
|
|
qe_none = 0x0000,
|
|
qe_mouse = 0x001f,
|
|
qe_key = 0x0020,
|
|
qe_system = 0x01c0,
|
|
qe_message = 0xfe00,
|
|
|
|
qe_focused = qe_key | qe_command,
|
|
qe_positional = qe_mouse,
|
|
} qwaq_event_mask;
|
|
|
|
typedef enum {
|
|
qc_valid,
|
|
qc_exit,
|
|
qc_error,
|
|
} qwaq_command;
|
|
|
|
typedef struct qwaq_mevent_s {
|
|
int x, y;
|
|
int buttons; // current button state
|
|
int click;
|
|
} qwaq_mevent_t;
|
|
|
|
typedef struct qwaq_kevent_s {
|
|
int code;
|
|
int shift;
|
|
} qwaq_kevent_t;
|
|
|
|
typedef struct qwaq_message_s {
|
|
qwaq_command command;
|
|
} qwaq_message_t;
|
|
|
|
typedef struct qwaq_event_s {
|
|
int what;
|
|
double when; // NOTE: 1<<32 based
|
|
union {
|
|
qwaq_kevent_t key;
|
|
qwaq_mevent_t mouse;
|
|
qwaq_message_t message;
|
|
};
|
|
} qwaq_event_t;
|
|
|
|
#ifdef __QFCC__ // don't want C gcc to see this :)
|
|
@protocol HandleEvent
|
|
-handleEvent: (struct qwaq_event_s *) event;
|
|
@end
|
|
|
|
@protocol HandleFocusedEvent <HandleEvent>
|
|
-takeFocus;
|
|
-loseFocus;
|
|
@end
|
|
|
|
@protocol HandleMouseEvent <HandleEvent>
|
|
-(struct Rect_s *)getRect;
|
|
@end
|
|
|
|
#endif
|
|
|
|
#endif//__qwaq_event_h
|