An Event describes the change of state of the "input device".
Where "input device" is really a collection of one or more physical input devices (keyboard, mouse, tablet...) and marginal aspects of the context of that input (a window).
#include <Event.h>
enum EventType |
{ NONE=0, BUTTONDOWN, BUTTONUP, SCROLLWHEEL, DOUBLECLICK, MOVE, RESIZE, FRAME, WARP, QUIT, MENU, SETFOCUS, KILLFOCUS, IDLE_START, IDLE_END, REDRAW, WAKEUP, LEAVE, SPACEMOUSE, MESSAGE };
anonymous enum |
{ kAxisCount = 12, // Number of possible analog values stored // in an event. Use this with myAxisValues // below. // eg. mouse position is considered 2 axes: x & y // eg. pen may be considered 4 axes: x, y, // and two tilt angles };
enum Axis |
Possible float values stored in this event eg.
mouse produces two values, x and y eg. tablet pen may produce tilt angles and pressure as well
{ kDeltaX = 0, kDeltaY, kNormalizedWinX, kNormalizedWinY, kLastAxis };
enum Button |
{ BUTTON_None, BUTTON_Unknown, BUTTON_a, BUTTON_b, BUTTON_c, BUTTON_d, BUTTON_e, BUTTON_f, BUTTON_g, BUTTON_h, BUTTON_i, BUTTON_j, BUTTON_k, BUTTON_l, BUTTON_m, BUTTON_n, BUTTON_o, BUTTON_p, BUTTON_q, BUTTON_r, BUTTON_s, BUTTON_t, BUTTON_u, BUTTON_v, BUTTON_w, BUTTON_x, BUTTON_y, BUTTON_z, BUTTON_A, BUTTON_B, BUTTON_C, BUTTON_D, BUTTON_E, BUTTON_F, BUTTON_G, BUTTON_H, BUTTON_I, BUTTON_J, BUTTON_K, BUTTON_L, BUTTON_M, BUTTON_N, BUTTON_O, BUTTON_P, BUTTON_Q, BUTTON_R, BUTTON_S, BUTTON_T, BUTTON_U, BUTTON_V, BUTTON_W, BUTTON_X, BUTTON_Y, BUTTON_Z, BUTTON_0, BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_4, BUTTON_5, BUTTON_6, BUTTON_7, BUTTON_8, BUTTON_9, BUTTON_bracketleft, BUTTON_bracketright, BUTTON_braceleft, BUTTON_braceright, BUTTON_backslash, BUTTON_bar, BUTTON_asciicircum, BUTTON_asciitilde, BUTTON_underscore, BUTTON_grave, BUTTON_quoteleft, BUTTON_exclam, BUTTON_quotedbl, BUTTON_numbersign, BUTTON_dollar, BUTTON_percent, BUTTON_ampersand, BUTTON_apostrophe, BUTTON_quoteright, BUTTON_parenleft, BUTTON_parenright, BUTTON_asterisk, BUTTON_plus, BUTTON_comma, BUTTON_minus, BUTTON_period, BUTTON_slash, BUTTON_colon, BUTTON_semicolon, BUTTON_less, BUTTON_equal, BUTTON_greater, BUTTON_question, BUTTON_at, BUTTON_LMB, BUTTON_MMB, BUTTON_RMB, BUTTON_SCROLLUP, BUTTON_SCROLLDOWN, BUTTON_Space, BUTTON_BackSpace, /* back space, back char */ BUTTON_Tab, BUTTON_Linefeed, /* Linefeed, LF */ BUTTON_Clear, BUTTON_Return, /* Return, enter */ BUTTON_Pause, /* Pause, hold */ BUTTON_Scroll_Lock, BUTTON_Sys_Req, BUTTON_Escape, BUTTON_Delete, /* Delete, rubout */ /* Cursor control & motion */ BUTTON_Home, BUTTON_Left, /* left arrow */ BUTTON_Up, /* up arrow */ BUTTON_Right, /* right arrow */ BUTTON_Down, /* down arrow */ BUTTON_Prior, /* Prior, previous */ BUTTON_Page_Up, BUTTON_Next, /* Next */ BUTTON_Page_Down, BUTTON_End, /* EOL */ BUTTON_Begin, /* BOL */ /* Misc Functions */ BUTTON_Select, /* Select, mark */ BUTTON_Print, BUTTON_Execute, /* Execute, run, do */ BUTTON_Insert, /* Insert, insert here */ BUTTON_Undo, /* Undo, oops */ BUTTON_Redo, /* redo, again */ BUTTON_Menu, BUTTON_Find, /* Find, search */ BUTTON_Cancel, /* Cancel, stop, abort, exit */ BUTTON_Help, /* Help */ BUTTON_Break, BUTTON_Mode_switch, /* Character set switch */ BUTTON_Script_switch, /* Alias for mode_switch */ BUTTON_Num_Lock, /* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ BUTTON_KP_Space, /* space */ BUTTON_KP_Tab, BUTTON_KP_Enter, /* enter */ BUTTON_KP_F1, /* PF1, KP_A, ... */ BUTTON_KP_F2, BUTTON_KP_F3, BUTTON_KP_F4, BUTTON_KP_Home, BUTTON_KP_Left, BUTTON_KP_Up, BUTTON_KP_Right, BUTTON_KP_Down, BUTTON_KP_Prior, BUTTON_KP_Page_Up, BUTTON_KP_Next, BUTTON_KP_Page_Down, BUTTON_KP_End, BUTTON_KP_Begin, BUTTON_KP_Insert, BUTTON_KP_Delete, BUTTON_KP_Equal, /* equals */ BUTTON_KP_Multiply, BUTTON_KP_Add, BUTTON_KP_Separator, /* separator, often comma */ BUTTON_KP_Subtract, BUTTON_KP_Decimal, BUTTON_KP_Divide, BUTTON_KP_0, BUTTON_KP_1, BUTTON_KP_2, BUTTON_KP_3, BUTTON_KP_4, BUTTON_KP_5, BUTTON_KP_6, BUTTON_KP_7, BUTTON_KP_8, BUTTON_KP_9, /* * Auxilliary Functions; note the duplicate definitions for left and right * function keys; Sun keyboards and a few other manufactures have such * function key groups on the left and/or right sides of the keyboard. * We've not found a keyboard with more than 35 function keys total. */ BUTTON_F1, BUTTON_F2, BUTTON_F3, BUTTON_F4, BUTTON_F5, BUTTON_F6, BUTTON_F7, BUTTON_F8, BUTTON_F9, BUTTON_F10, BUTTON_F11, BUTTON_F12, BUTTON_F13, BUTTON_F14, BUTTON_F15, BUTTON_F16, BUTTON_F17, BUTTON_F18, BUTTON_F19, BUTTON_F20, BUTTON_F21, BUTTON_F22, BUTTON_F23, BUTTON_F24, BUTTON_F25, BUTTON_F26, BUTTON_F27, BUTTON_F28, BUTTON_F29, BUTTON_F30, BUTTON_F31, BUTTON_F32, BUTTON_F33, BUTTON_F34, BUTTON_F35, /* Modifiers */ BUTTON_Shift, /* Left and Right shift */ BUTTON_Control, /* Left and Right control */ BUTTON_Caps_Lock, /* Caps lock */ BUTTON_Shift_Lock, /* Shift lock */ BUTTON_Meta, /* Left and Right meta */ BUTTON_Alt, /* Left and Right alt */ BUTTON_Super, /* Left and Right super */ BUTTON_Hyper, /* Left and Right hyper */ BUTTON_First_Modifier = BUTTON_Shift, BUTTON_Last_Modifier = BUTTON_Hyper, BUTTON_Last };
virtual ~Event | ( | ) | [protected, virtual] |
Reference counted objects should be kept out of the stack.
Event::EventType getType | ( | ) | const [inline] |
{
return myType;
}
unsigned int getSubType | ( | ) | const [inline] |
{
return myCurrentButton;
}
bool isAction | ( | ) | const [inline] |
{ return BUTTONDOWN == myType || BUTTONUP == myType || DOUBLECLICK == myType || SCROLLWHEEL == myType || MOVE == myType || LEAVE == myType; }
void setValue | ( | int | whichValue, |
float | newValue | ||
) | [inline] |
{ myAxisValues[whichValue] = newValue; }
float getValue | ( | int | whichValue | ) | [inline] |
{
return myAxisValues[whichValue];
}
void setButtonValue | ( | int | whichButton, |
bool | buttonIsDown | ||
) | [inline] |
{ myButtonState.setBit( whichButton, buttonIsDown ); }
bool getButtonValue | ( | int | whichButton | ) | [inline] |
{
return myButtonState[whichButton];
}
const EventButtonState & getButtonState | ( | ) | const [inline] |
{
return myButtonState;
}
void setButtonState | ( | const EventButtonState & | rhs | ) | [inline] |
{ myButtonState = rhs; }
const ModifierState & getModifierState | ( | ) | const [inline] |
{
return myModifierState;
}
void setModifierState | ( | const ModifierState & | rhs | ) | [inline] |
{ myModifierState = rhs; }
void setTime | ( | double | time | ) | [inline] |
{ myTime = time; }
double getTime | ( | ) | const [inline] |
{
return myTime;
}
void setString | ( | const awString::IString & | s | ) | [inline] |
{ myString = s; }
const awString::IString & getString | ( | ) | const [inline] |
{
return myString;
}
void setNativeEvent | ( | const NativeEvent & | event | ) |
const NativeEvent * getNativeEvent | ( | ) | const [inline] |
{
return myNativeEvent;
}