Add initial FnixLib development implementation
This commit is contained in:
commit
84742ae38e
33 files changed
+3340
No files matched your search
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* FnixLib - cola de eventos.
|
||||
*
|
||||
* Además de las consultas de estado de input.h, cada ventana guarda los
|
||||
* eventos recibidos en una cola que el programa puede vaciar con
|
||||
* fnix_window_poll_event(). La cola conserva como máximo los 256 eventos más
|
||||
* recientes: si el programa no la consulta, los más antiguos se descartan.
|
||||
*/
|
||||
#ifndef FNIX_EVENTS_H
|
||||
#define FNIX_EVENTS_H
|
||||
|
||||
#include "fnix/input.h"
|
||||
#include "fnix/types.h"
|
||||
|
||||
FNIX_BEGIN_DECLS
|
||||
|
||||
typedef enum FnixEventType {
|
||||
FNIX_EVENT_NONE = 0,
|
||||
FNIX_EVENT_WINDOW_CLOSE, /* el usuario pidió cerrar la ventana */
|
||||
FNIX_EVENT_FOCUS_GAINED,
|
||||
FNIX_EVENT_FOCUS_LOST,
|
||||
FNIX_EVENT_KEY_DOWN, /* usa key y repeat */
|
||||
FNIX_EVENT_KEY_UP, /* usa key */
|
||||
FNIX_EVENT_MOUSE_BUTTON_DOWN, /* usa button, x, y */
|
||||
FNIX_EVENT_MOUSE_BUTTON_UP, /* usa button, x, y */
|
||||
FNIX_EVENT_MOUSE_MOVE, /* usa x, y */
|
||||
FNIX_EVENT_MOUSE_WHEEL /* usa wheel, x, y */
|
||||
} FnixEventType;
|
||||
|
||||
/* Solo son significativos los campos indicados para cada tipo; el resto vale 0. */
|
||||
typedef struct FnixEvent {
|
||||
FnixEventType type;
|
||||
FnixKey key;
|
||||
bool repeat; /* KEY_DOWN generado por autorepeat */
|
||||
FnixMouseButton button;
|
||||
int x, y;
|
||||
int wheel; /* +1 arriba, -1 abajo */
|
||||
} FnixEvent;
|
||||
|
||||
/* Saca el evento más antiguo de la cola. Devuelve false si está vacía. */
|
||||
bool fnix_window_poll_event(FnixWindow *window, FnixEvent *event);
|
||||
|
||||
FNIX_END_DECLS
|
||||
|
||||
#endif /* FNIX_EVENTS_H */
|
||||
Reference in new issue
Block a user