{{fbdoc item="title" value="EVENT (message data from ScreenEvent)"}}----
Pre-defined structure (UDT) from fbgfx.bi used by [[KeyPgScreenevent|Screenevent]] to return event data 

{{fbdoc item="syntax"}}##
	#include once "fbgfx.bi"
	using fb
	[[KeyPgDim|dim]] //variable// [[KeyPgAs|as]] **Event**
##
{{fbdoc item="desc"}}
	Here we report the ##EVENT## structure for clarity:
	
	{{fbdoc item="filename" value="examples/manual/check/KeyPgScreenevent_1.bas"}}%%(freebasic)
Type EVENT Field = 1
	Type As Long
	Union
		Type
			scancode As Long
			ascii As Long
		End Type
		Type
			x As Long
			y As Long
			dx As Long
			dy As Long
		End Type
		button As Long
		z As Long
		w As Long
	End Union
End Type
%%
	
	The ##Type## field will contain the event type ID, while the remaining 4 integers will hold sensitive data to the event type. 
	
	__Event types__
		The event type is identified by an ID number returned into the first integer of the ##//event//## buffer (the ##.type## field in the ##EVENT## structure). Known event type IDs - and their values at time of writing - are:
	
		- ##EVENT_KEY_PRESS## (##1##) A key was pressed on the keyboard. The ##.scancode## field contains the platform independent scancode value for the key; if the key has an ascii representation, it is held into the ##.ascii## field, which otherwise has a value of 0.
		- ##EVENT_KEY_RELEASE## (##2##) A key was released on the keyboard. The ##.scancode## and ##.ascii## fields have the same meaning as with the ##EVENT_KEY_PRESS## event.
		- ##EVENT_KEY_REPEAT## (##3##) A key is being held down repeatedly. The ##.scancode## and ##.ascii## fields have the same meaning as with the ##EVENT_KEY_PRESS## event.
		- ##EVENT_MOUSE_MOVE## (##4##) The mouse was moved while it was on the program window. The ##.x## and ##.y## fields contain the new mouse position relative to the upper-left corner of the screen, while the ##.dx## and ##.dy## fields contain the motion deltas.
		- ##EVENT_MOUSE_BUTTON_PRESS## (##5##) One of the mouse buttons was pressed. The ##.button## field has one bit set identifying the button that was pressed; bit 0 identifies the left mouse button, bit 1 the right mouse button and bit 2 the middle mouse button.
		- ##EVENT_MOUSE_BUTTON_RELEASE## (##6##) One of the mouse buttons was released. The ##.button## field has the same meaning as with the ##EVENT_MOUSE_BUTTON_PRESS## event.
		- ##EVENT_MOUSE_DOUBLE_CLICK## (##7##)  One of the mouse buttons was double clicked. The ##.button## field has the same meaning as with the ##EVENT_MOUSE_BUTTON_PRESS## event.
		- ##EVENT_MOUSE_WHEEL## (##8##) The mouse wheel was used; the new wheel position is returned into the ##.z## field.
		- ##EVENT_MOUSE_ENTER## (##9##) The mouse was moved into the program window.
		- ##EVENT_MOUSE_EXIT## (##10##) The mouse was moved out of the program window.
		- ##EVENT_WINDOW_GOT_FOCUS## (##11##) The program window has got focus.
		- ##EVENT_WINDOW_LOST_FOCUS## (##12##) The program window has lost focus.
		- ##EVENT_WINDOW_CLOSE## (##13##) The user attempted to close the program window.
		- ##EVENT_MOUSE_HWHEEL## (##14##) The horizontal mouse wheel was used; the new horizontal wheel position is returned into the ##.w## field.
	
	The ##fbgfx.bi## header file contains a definition of the ##EVENT## user data type, so it is not necessary to declare it manually.

{{fbdoc item="ex"}}
	See example at ##[[KeyPgScreenevent|ScreenEvent]]##.

{{fbdoc item="lang"}}
	- In //[[CompilerDialects|lang fb]]//, the structure and constants are stored in the ##FB## ##[[KeyPgNamespace|Namespace]]##. This is not the case in other dialects.

{{fbdoc item="diff"}}
	- New to ""FreeBASIC""

{{fbdoc item="see"}}
	- ##[[KeyPgScreenevent|ScreenEvent]]##
	- [[ProPgEventHandling|Event Handling]]
	- [[GfxScancodes|Keyboard scancodes]]
	- [[DevRtlInkey|Keyboard Input]]

{{fbdoc item="back" value="CatPgGfxScreen|Screen Functions"}}