/* in_event.h input event handling Copyright (C) 2001 Bill Currie Author: Bill Currie Date: 2001/8/9 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to: Free Software Foundation, Inc. 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA */ #ifndef __QF_in_event_h #define __QF_in_event_h #include "QF/qtypes.h" #include "QF/joystick.h" // needed for JOY_MAX_AXES typedef struct { int x, y; unsigned int buttons; } IE_mouse_event_t; typedef struct { int key_code; qboolean pressed; } IE_key_event_t; typedef struct { int devid; int axis; int value; } IE_axis_event_t; typedef struct { int devid; int button; int state; } IE_button_event_t; typedef struct { int devid; } IE_device_event_t; typedef enum { ie_none, ie_gain_focus, ie_lose_focus, ie_add_device, ie_remove_device, ie_mouse, ie_key, ie_axis, ie_button, } IE_event_type; typedef struct { IE_event_type type; uint64_t when; union { IE_mouse_event_t mouse; IE_key_event_t key; IE_axis_event_t axis; IE_button_event_t button; IE_device_event_t device; }; } IE_event_t; typedef int ie_handler_t (const IE_event_t *, void *data); int IE_Send_Event (const IE_event_t *event); int IE_Add_Handler (ie_handler_t *event_handler, void *data); void IE_Remove_Handler (int handle); void IE_Set_Focus (int handle); #endif//__QF_in_event_h