Event Class Reference


Detailed Description

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>

Inheritance diagram for Event:
Inheritance graph
[legend]

List of all members.

Public Types

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
}
enum   { kAxisCount = 12 }
enum   Axis {
  kDeltaX = 0, kDeltaY, kNormalizedWinX, kNormalizedWinY,
  kLastAxis
}
 

Possible float values stored in this event eg.

More...
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, BUTTON_Tab, BUTTON_Linefeed, BUTTON_Clear,
  BUTTON_Return, BUTTON_Pause, BUTTON_Scroll_Lock, BUTTON_Sys_Req,
  BUTTON_Escape, BUTTON_Delete, BUTTON_Home, BUTTON_Left,
  BUTTON_Up, BUTTON_Right, BUTTON_Down, BUTTON_Prior,
  BUTTON_Page_Up, BUTTON_Next, BUTTON_Page_Down, BUTTON_End,
  BUTTON_Begin, BUTTON_Select, BUTTON_Print, BUTTON_Execute,
  BUTTON_Insert, BUTTON_Undo, BUTTON_Redo, BUTTON_Menu,
  BUTTON_Find, BUTTON_Cancel, BUTTON_Help, BUTTON_Break,
  BUTTON_Mode_switch, BUTTON_Script_switch, BUTTON_Num_Lock, BUTTON_KP_Space,
  BUTTON_KP_Tab, BUTTON_KP_Enter, BUTTON_KP_F1, 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,
  BUTTON_KP_Multiply, BUTTON_KP_Add, BUTTON_KP_Separator, 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,
  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, BUTTON_Shift,
  BUTTON_Control, BUTTON_Caps_Lock, BUTTON_Shift_Lock, BUTTON_Meta,
  BUTTON_Alt, BUTTON_Super, BUTTON_Hyper, BUTTON_First_Modifier = BUTTON_Shift,
  BUTTON_Last_Modifier = BUTTON_Hyper, BUTTON_Last
}

Public Member Functions

  Event (const EventType eventType, const unsigned int button=BUTTON_None)
EventType  getType () const
unsigned int  getSubType () const
bool  isAction () const
void  setValue (int whichValue, float newValue)
float  getValue (int whichValue)
void  setButtonValue (int whichButton, bool buttonIsDown)
bool  getButtonValue (int whichButton)
const EventButtonState getButtonState () const
void  setButtonState (const EventButtonState &)
const ModifierState getModifierState () const
void  setModifierState (const ModifierState &)
void  setTime (double time)
double  getTime () const
void  setString (const awString::IString &s)
const awString::IString &  getString () const
void  setNativeEvent (const NativeEvent &event)
const NativeEvent *  getNativeEvent () const

Protected Member Functions

virtual  ~Event ()
  Reference counted objects should be kept out of the stack.

Member Enumeration Documentation

enum EventType
Enumerator:
NONE 
BUTTONDOWN 
BUTTONUP 

Any event that changes a button state to down.

SCROLLWHEEL 

Any event that changes a button state to up.

DOUBLECLICK 

Any event that changes the scroll wheel status.

MOVE 

means the current button changed, but myButtonState does not change.

RESIZE 

Any event that affects a change in axis values.

FRAME 

Placeholder for Window-affecting events, eg.

window resize, minimize, push, etc.

WARP 
QUIT 
MENU 
SETFOCUS 
KILLFOCUS 
IDLE_START 
IDLE_END 
REDRAW 
WAKEUP 

Usually a direct result of a window system repaint request.

LEAVE 

Effectively a no-op to wakeup anyone waiting on the event queue.

In a the normal draw loop scenario this is equivalent to REDRAW.

SPACEMOUSE 

Mouse has left the window.

MESSAGE 

Generated by the application, not user actions.

anonymous enum
Enumerator:
kAxisCount 
         {
        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

Enumerator:
kDeltaX 
kDeltaY 
kNormalizedWinX 
kNormalizedWinY 
kLastAxis 
enum Button
Enumerator:
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 
BUTTON_Tab 
BUTTON_Linefeed 
BUTTON_Clear 
BUTTON_Return 
BUTTON_Pause 
BUTTON_Scroll_Lock 
BUTTON_Sys_Req 
BUTTON_Escape 
BUTTON_Delete 
BUTTON_Home 
BUTTON_Left 
BUTTON_Up 
BUTTON_Right 
BUTTON_Down 
BUTTON_Prior 
BUTTON_Page_Up 
BUTTON_Next 
BUTTON_Page_Down 
BUTTON_End 
BUTTON_Begin 
BUTTON_Select 
BUTTON_Print 
BUTTON_Execute 
BUTTON_Insert 
BUTTON_Undo 
BUTTON_Redo 
BUTTON_Menu 
BUTTON_Find 
BUTTON_Cancel 
BUTTON_Help 
BUTTON_Break 
BUTTON_Mode_switch 
BUTTON_Script_switch 
BUTTON_Num_Lock 
BUTTON_KP_Space 
BUTTON_KP_Tab 
BUTTON_KP_Enter 
BUTTON_KP_F1 
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 
BUTTON_KP_Multiply 
BUTTON_KP_Add 
BUTTON_KP_Separator 
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 
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 
BUTTON_Shift 
BUTTON_Control 
BUTTON_Caps_Lock 
BUTTON_Shift_Lock 
BUTTON_Meta 
BUTTON_Alt 
BUTTON_Super 
BUTTON_Hyper 
BUTTON_First_Modifier 
BUTTON_Last_Modifier 
BUTTON_Last 
                { 
        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
    };

Constructor & Destructor Documentation

Event ( const EventType  eventType,
const unsigned int  button = BUTTON_None 
) [explicit]
virtual ~Event ( ) [protected, virtual]

Reference counted objects should be kept out of the stack.


Member Function Documentation

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;
}

Event Event Event Event Event Event Event Event Event Event
Event Event Event Event Event Event Event Event Event Event