/*
 EVENT.DOX

 License CC0 PUBLIC DOMAIN

 To the extent possible under law, Mark J. Olesen has waived all copyright
 and related or neighboring rights to FDOSTUI Library. This work is published
 from: United States.
*/

/*! \file event.h
\brief Data structures for event handling
*/

/*!
\enum event_response
\brief response 

An event handler is required to respond to an event such as mouse
or keyboard.  The handler does not have to use the response values. Any
value can be used. Consequently, it is up to the caller to intrepret
and take action on the value.

The only caveat is the window manager ::wm_run_modal routine. This routine
will evaulate the response and exit the run loop if certain conditions
are met.

\see ::wm_run_modal

\var event_response::RESPONSE_CANCEL
	handler requests to cancel

\var event_response::RESPONSE_ACCEPT
	handler accepted (closure)

\var event_response::RESPONSE_CLOSE
	handler requests close

\var event_response::RESPONSE_HANDLED
	event was handled.
	no more processing needed.

\var event_response::RESPONSE_NONE
	event was ignored/not handled	
*/

/*!
\struct event_key
\brief container for a keyboard event

\var event_key::m_ascii
	ASCII code of key press

\var event_key::m_scan
	SCAN Code of key press

\see keyboard.h

*/

/*!
\enum mouse_state
\brief mouse state

\var mouse_state::MOUSE_BUTTON_NONE
	no buttons (mouse moved)

\var mouse_state::MOUSE_BUTTON_CLICKED
	button was clicked

\var mouse_state::MOUSE_BUTTON_DRAGGING
	button is still clicked/dragging

\var mouse_state::MOUSE_BUTTON_RELEASED
	button has been released
*/

/*!
\struct event_mouse
\brief container for a mouse event

\var event_mouse::m_pos_x
	x/row position of mouse

\var event_mouse::m_pos_y
	y/column position of mouse

\var event_mouse::m_state
	button state
*/

/*!
\struct event_resize
\brief container for a resize event

\var event_resize::m_len_x
	x length of window

\var event_resize::m_len_y
	y length of window
*/
