Free Electron
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
fe::ext::WindowEvent Class Reference

Generalized windowing event. More...

#include <WindowEvent.h>

Inheritance diagram for fe::ext::WindowEvent:
Inheritance graph
[legend]

Public Types

enum  Source {
  e_sourceNull = 0x0000,
  e_sourceMousePosition = 0x0001,
  e_sourceMouseButton = 0x0002,
  e_sourceKeyboard = 0x0004,
  e_sourceSystem = 0x0008,
  e_sourceUser = 0x0010,
  e_sourceJoy0 = 0x0100,
  e_sourceJoy1 = 0x0200,
  e_sourceJoy2 = 0x0400,
  e_sourceJoy3 = 0x0800,
  e_sourceWheel0 = 0x1000,
  e_sourceWheel1 = 0x2000,
  e_sourceWheel2 = 0x4000,
  e_sourceWheel3 = 0x8000,
  e_sourceAny = 0x7fffffff
}
 Source of a window event. More...
 
enum  Item {
  e_itemNull = 0x00,
  e_itemAny = 0x7fffffff,
  e_itemMove = 0x01,
  e_itemDrag = 0x02,
  e_itemLeft = 0x01,
  e_itemMiddle = 0x02,
  e_itemRight = 0x04,
  e_itemWheel = 0x08,
  e_keyBackspace = 0x08,
  e_keyTab = 0x09,
  e_keyLineFeed = 0x0A,
  e_keyCarriageReturn = 0x0D,
  e_keySpace = 0x20,
  e_keyEscape = 0x1B,
  e_keyDelete = 0x7F,
  e_keyAsciiMask = 0xFF,
  e_keyCursor = 0x100,
  e_keyCursorUp = 0x101,
  e_keyCursorDown = 0x102,
  e_keyCursorLeft = 0x103,
  e_keyCursorRight = 0x104,
  e_keyCursorMask = 0x107,
  e_keyFunction = 0x200,
  e_keyFunction1 = 0x201,
  e_keyFunction2 = 0x202,
  e_keyFunction3 = 0x203,
  e_keyFunction4 = 0x204,
  e_keyFunction5 = 0x205,
  e_keyFunction6 = 0x206,
  e_keyFunction7 = 0x207,
  e_keyFunction8 = 0x208,
  e_keyFunction9 = 0x209,
  e_keyFunction10 = 0x20A,
  e_keyFunction11 = 0x20B,
  e_keyFunction12 = 0x20C,
  e_keyFunctionMask = 0x20F,
  e_keyShift = 1<<24,
  e_keyCapLock = 1<<25,
  e_keyControl = 1<<26,
  e_keyAlt = 1<<27,
  e_keyModifiers,
  e_keyUsed = 0x1FFF,
  e_itemIdle = 0x01,
  e_itemResize = 0x02,
  e_itemExpose = 0x04,
  e_itemCloseWindow = 0x08,
  e_itemQuit = 0x10,
  e_itemPoll = 0x20,
  e_itemEnter = 0x40,
  e_itemExit = 0x80,
  e_windowClear = 0x01,
  e_windowSwapBuffers = 0x02,
  e_joyLeftStickX = 0x0000001,
  e_joyLeftStickY = 0x0000002,
  e_joyLeftPadX = 0x0000004,
  e_joyLeftPadY = 0x0000008,
  e_joyRightStickX = 0x0000010,
  e_joyRightStickY = 0x0000020,
  e_joyLeftTrigger = 0x0000040,
  e_joyRightTrigger = 0x0000080,
  e_joySelect = 0x0000100,
  e_joyBack = 0x0000100,
  e_joyGuide = 0x0000200,
  e_joyStart = 0x0000400,
  e_joyLeftUp = 0x0001000,
  e_joyLeftDown = 0x0002000,
  e_joyLeftLeft = 0x0004000,
  e_joyLeftRight = 0x0008000,
  e_joyLeftHigh = 0x0010000,
  e_joyLeftLow = 0x0020000,
  e_joyLeftDepress = 0x0040000,
  e_joyRightUp = 0x0100000,
  e_joyRightDown = 0x0200000,
  e_joyRightLeft = 0x0400000,
  e_joyRightRight = 0x0800000,
  e_joyRightHigh = 0x1000000,
  e_joyRightLow = 0x2000000,
  e_joyRightDepress = 0x4000000,
  e_joyAxes = 0x00000FF,
  e_joyButtons = 0xFF7F700,
  e_joyAny = 0xFF7F7FF,
  e_JoyWheel = e_joyLeftStickX,
  e_JoyClutch = e_joyLeftStickY,
  e_JoyGasPedal = e_joyRightStickX,
  e_JoyBrake = e_joyRightStickY,
  e_JoyShifterRight = e_joyLeftLow,
  e_JoyShifterLeft = e_joyRightLow
}
 Aspect of change in a window event. More...
 
enum  State {
  e_stateForceSigned = -1,
  e_stateNull = 0x00,
  e_statePress = 0x01,
  e_stateRelease = 0x02,
  e_stateRepeat = 0x04,
  e_stateAny = 0x7fffffff,
  e_state2ClickGeneric = 0x00,
  e_state2ClickSingle = 0x01,
  e_state2ClickDouble = 0x02,
  e_state2ClickTriple = 0x03,
  e_state2NoRelease = 0x04
}
 Effect of change in a window event. More...
 
enum  MouseButtons {
  e_mbNone = 0x00,
  e_mbLeft = 0x01,
  e_mbMiddle = 0x02,
  e_mbRight = 0x04,
  e_mbAll = 0x07,
  e_mbAny = 0x7fffffff
}
 State of the mouse buttons during an event. More...
 

Public Member Functions

virtual void addFunctors (void)
 Called at instantiation to add functors. More...
 
virtual void initializeRecord (void)
 Called at instantiation to initialize attributes. More...
 
bool operator== (const WindowEvent &other) const
 
bool operator< (const WindowEvent &other) const
 
Source source (void) const
 
void setSource (Source value)
 
Item item (void) const
 
void setItem (Item value)
 
State state (void) const
 
void setState (State value)
 
State state2 (void) const
 
void setState2 (State value)
 
I32 mouseX (void) const
 
void setMouseX (I32 value)
 
I32 mouseY (void) const
 
void setMouseY (I32 value)
 
MouseButtons mouseButtons (void) const
 
void setMouseButtons (MouseButtons value)
 
void reset (void)
 
void getMousePosition (I32 *pMx, I32 *pMy) const
 
void setMousePosition (I32 mx, I32 my)
 
void setSIS (Source source, Item item, State state)
 
BWORD matchesSource (Source sourceMask) const
 
BWORD matchesItem (Item itemMask) const
 
BWORD matchesItemUnmodified (Item itemMask) const
 
BWORD matchesState (State stateMask) const
 
BWORD is (Source sourceMask, Item itemMask, State stateMask) const
 
BWORD is (const WindowEvent &mask) const
 
BWORD is (const Mask &mask) const
 
BWORD isUnmodified (Source sourceMask, Item itemMask, State stateMask) const
 
BWORD isModified (void)
 
BWORD isModifiedBy (Item itemMask)
 
BWORD isNull (void) const
 
BWORD isExpose (void) const
 
BWORD isResize (void) const
 
BWORD isCloseWindow (void) const
 
BWORD isIdleMouse (void) const
 
BWORD isPoll (void) const
 
BWORD isContinuous (void) const
 
BWORD isMouseEnter (void) const
 
BWORD isMouseExit (void) const
 
BWORD isMouseMotion (void) const
 
BWORD isMouseMove (void) const
 
BWORD isMouseDrag (void) const
 
BWORD isKeyboard () const
 
BWORD isKeyPress (Item key) const
 
BWORD isKeyRepeat (Item key) const
 
BWORD isKeyRelease (Item key) const
 
BWORD isKeyTyped (Item key) const
 
BWORD isMouseButton (Item item=e_itemAny) const
 
BWORD isMousePress (Item item=e_itemAny) const
 
BWORD isMouseRelease (Item item=e_itemAny) const
 
BWORD isMouseWheel (void) const
 
BWORD isClear (void) const
 
BWORD isSwap (void) const
 
BWORD isSystem (void) const
 
BWORD isUser (void) const
 
BWORD isJoy (void) const
 
BWORD isJoyAxis (void) const
 
BWORD isJoyButton (void) const
 
BWORD usesModifiers (void) const
 Returns TRUE if item can be affected by shift/control/caplock. More...
 
- Public Member Functions inherited from fe::ext::RecordView
void setName (const String &name)
 
const String verboseName (void) const
 
void bind (sp< Scope > &rspScope)
 Associate with a Scope. More...
 
void bind (hp< Scope > &rhpScope)
 Associate with a Scope by Handle. More...
 
hp< Scope > & scope (void)
 Return associated Scope. More...
 
void unbind (void)
 Disassociate with any Record. More...
 
void bind (const Record record, BWORD weak=FALSE)
 Associate with a specific Record. More...
 
void bind (const WeakRecord weakRecord, BWORD weak=FALSE)
 Associate with a specific WeakRecord. More...
 
void setWeakRecord (const WeakRecord weakRecord)
 Associate with a specific WeakRecord. More...
 
virtual void produce (Record &rRecord)
 Produce a Record using all the attributes. More...
 
virtual void finalize (Record &rRecord)
 Finalize a Record using all the attributes. More...
 
Record createRecord (void)
 Create a Record using all the attributes. More...
 
WeakRecord record (void) const
 Access the record by weak (fast) reference. More...
 
sp< Layout > layout (void)
 Access a Layout of all the attributes. More...
 
void dump (void)
 Spew attributes and state for the bound Record. More...
 
virtual void finalizeRecord (void)
 Called right after instantiation to finalize complex attributes. More...
 
void setName (const String &name)
 
const String verboseName (void) const
 
void bind (sp< Scope > &rspScope)
 Associate with a Scope. More...
 
void bind (hp< Scope > &rhpScope)
 Associate with a Scope by Handle. More...
 
hp< Scope > & scope (void)
 Return associated Scope. More...
 
void bind (const sp< RecordArray > &rspRecordArray)
 Associate with a specific RecordArray. More...
 
void unbind (void)
 Disassociate with any Record or RecordArray. More...
 
void bind (const Record record, BWORD weak=FALSE)
 Associate with a specific Record. More...
 
void bind (const WeakRecord weakRecord, BWORD weak=FALSE)
 
void setIndex (U32 index)
 Set the index into the bound RecordArray. More...
 
BWORD step (void)
 Step through the records in the array. More...
 
U32 index (void)
 Return the current index into the RecordArray. More...
 
virtual void produce (Record &rRecord)
 Produce a Record using all the attributes. More...
 
virtual void finalize (Record &rRecord)
 Finalize a Record using all the attributes. More...
 
Record createRecord (void)
 Create a Record using all the attributes. More...
 
WeakRecord record (void) const
 Access the record by weak (fast) reference. More...
 
sp< Layout > layout (void)
 Access a Layout of all the attributes. More...
 
void dump (void)
 Spew attributes and state for the bound Record. More...
 
virtual void finalizeRecord (void)
 Called right after instantiation to finalize complex attributes. More...
 
- Public Member Functions inherited from fe::AccessorSet
 AccessorSet (sp< Scope > spScope)
 
virtual FE_UWORD size (void) const
 
virtual BaseAccessoroperator[] (FE_UWORD index)
 
bool operator== (const AccessorSet &a_aset) const
 
bool operator< (const AccessorSet &a_aset) const
 
bool bind (const WeakRecord a_record)
 
void bind (sp< Scope > spScope)
 
virtual void populate (sp< Layout > spLayout)
 
void enforceHaving (const AccessorSet &a_other)
 
bool bindCheck (sp< Layout > spLayout)
 
bool check (sp< LayoutSB > spLayout)
 
bool check (sp< LayoutAV > spLayout)
 
bool bindCheck (sp< RecordArray > spRA)
 
bool check (sp< RecordArray > spRA)
 
bool check (const WeakRecord &a_record)
 
bool check (const Record &a_record)
 
void check (const WeakRecord a_record, const char *a_annotation)
 
void enforce (const String &a_ifHas)
 
void filter (sp< RecordGroup > rg_output, sp< RecordGroup > rg_input)
 
hp< Scopescope (void)
 
void filter (std::vector< Record > &a_records, sp< RecordGroup > rg_input)
 
const t_bitset & bitset (void) const
 
void setBitset (const t_bitset &a_bs)
 
void add (BaseAccessor &a_accessor, const String &a_attribute)
 
void add (BaseAccessor &a_accessor)
 
void attach (const WeakRecord &a_record)
 
- Public Member Functions inherited from fe::Component
const Stringname (void) const
 Return the components chosen name. More...
 
const String verboseName (void) const
 Return the annotated chosen name. More...
 
void setName (const String &name)
 Rename the component to anything you want. More...
 
hp< Registryregistry (void) const
 Get the Registry that created this component. More...
 
void adjoin (sp< Component > spComponent)
 Tie this component's lifetime to another. More...
 
sp< Componentcreate (const String &implementation, BWORD quiet=FALSE) const
 Convienience function to registry()->create() More...
 
void disjoin (void)
 Untie component from Hub, if connected. More...
 
void setLibrary (sp< Library > spLibrary)
 Store a reference to the library used to instantiate this component. More...
 
sp< Librarylibrary (void)
 Get the library that created the component. More...
 
void setSingleton (BWORD set)
 Specify whether component is a singleton. More...
 
BWORD isSingleton (void)
 Return whether component is a singleton. More...
 
virtual void acquire (void)
 Specialized reference increment. More...
 
virtual void release (void)
 Specialized reference decrement. More...
 
- Public Member Functions inherited from fe::Handled< Component >
const hp< Component > & getHandle (void) const
 Get a safe handle to this object. More...
 
- Public Member Functions inherited from fe::Protectable
virtual I32 protection (void) const
 
virtual void protect (void)
 
virtual void unprotect (void)
 
virtual Protectableclone (Protectable *pInstance=NULL)
 
- Public Member Functions inherited from fe::Counted
virtual void acquire (int &rCount)
 Increment the reference count (and get the count) More...
 
virtual void abandon (void)
 Decrement the reference count. More...
 
int count (void) const
 Return the count of references. More...
 
void setName (const String &)
 
void trackReference (void *pReference, String what)
 
void untrackReference (void *pReference)
 
void registerRegion (void *pT, U32 bytes)
 
- Public Member Functions inherited from fe::Initialized
void initializeAll (void)
 
void setActive (bool a_active)
 

Static Public Member Functions

static WindowEvent::Mask stringToMask (const String &a_string)
 
- Static Public Member Functions inherited from fe::ext::RecordView
template<typename T >
static void registerFactory (sp< Scope > spScope)
 Indicate a RecordFactoryI for a Scope. More...
 
static sp< RecordGrouploadRecordGroup (sp< Scope > spScope, String filename, BWORD a_binary=FALSE)
 Load a RecordGroup from a file. More...
 
static sp< RecordGrouploadRecordGroupFromBuffer (sp< Scope > spScope, String buffer, BWORD a_binary=FALSE)
 Serialize a RecordGroup from a string. More...
 
static void saveRecordGroup (sp< Scope > spScope, sp< RecordGroup > &rspRecordGroup, String filename, BWORD a_binary=FALSE)
 Save a RecordGroup to a file. More...
 
template<typename T >
static void registerFactory (sp< Scope > spScope)
 Indicate a RecordFactoryI for a Scope. More...
 
static sp< RecordGrouploadRecordGroup (sp< Scope > spScope, String filename, BWORD a_binary=FALSE)
 Load the root RecordGroup from a file. More...
 
static sp< RecordGrouploadRecordGroupFromBuffer (sp< Scope > spScope, String buffer, BWORD a_binary=FALSE)
 
static void saveRecordGroup (sp< Scope > spScope, sp< RecordGroup > &rspRecordGroup, String filename, BWORD a_binary=FALSE)
 Save the root RecordGroup to a file. More...
 
- Static Public Member Functions inherited from fe::Counted
static String reportTracker (void)
 
static U32 trackerCount (void)
 

Public Attributes

Functor< I32 > eventSource
 
Functor< I32 > eventItem
 
Functor< I32 > eventState
 
Functor< I32 > eventState2
 
Functor< I32 > eventMouseX
 
Functor< I32 > eventMouseY
 
Functor< I32 > eventMouseButtons
 
- Public Attributes inherited from fe::ext::RecordView
Accessor< int > count
 

Additional Inherited Members

- Protected Types inherited from fe::Initialized
typedef void(* InitializeFunction) (Initialized *)
 
- Protected Member Functions inherited from fe::ext::RecordView
void add (BaseAccessor &rFunctor, const char *name)
 Add an attribute Functor. More...
 
void add (BaseAccessor &rFunctor, const char *name)
 Add an attribute Functor. More...
 
- Protected Member Functions inherited from fe::Handled< Component >
void abandonHandle (void)
 
- Protected Member Functions inherited from fe::Counted
int releaseInternal (void)
 Decrement the reference count. More...
 
void suppressReport (void)
 
- Protected Member Functions inherited from fe::Initialized
void addInitializer (InitializeFunction function)
 
- Protected Attributes inherited from fe::AccessorSet
hp< Scopem_hpScope
 
Array< BaseAccessor * > m_accessors
 
t_bitset m_bitset
 
WeakRecord m_optional_record
 

Detailed Description

Generalized windowing event.

This is a convenience class to access a window event Record.

Instead of a massive enumeration, the events are interpreted into a useful triple: source/item/state. This is not only more manageable, but it lets you process events with simple masks.

The source is where the event originated.

The item is the aspect of the source that was affected.

The state is how the aspect was affected. A few events merit a second state value, given by state2.

The mouse positions and button states are also available for most events. Not all events necessarily merit mouse information.

Several simple convenience functions of the form is*() are provided to check common events or event masks.

Member Enumeration Documentation

◆ Item

Aspect of change in a window event.

◆ MouseButtons

State of the mouse buttons during an event.

◆ Source

Source of a window event.

◆ State

Effect of change in a window event.

Member Function Documentation

◆ addFunctors()

virtual void fe::ext::WindowEvent::addFunctors ( void  )
inlinevirtual

Called at instantiation to add functors.

In addition to using add() to explicitly adding all the functors for a particular class, the implementation of this function should first call addFunctors() for all directly inherited classes that are indirectly or directly derived from RecordView().

Implements fe::ext::RecordView.

◆ initializeRecord()

virtual void fe::ext::WindowEvent::initializeRecord ( void  )
inlinevirtual

Called at instantiation to initialize attributes.

In addition to setting any attributes, the implementation of this function should first call initializeRecord() for all directly inherited classes that are indirectly or directly derived from RecordView().

Functors can be used as accessors at this point.

Reimplemented from fe::ext::RecordView.

References fe::operator==().

◆ usesModifiers()

BWORD fe::ext::WindowEvent::usesModifiers ( void  ) const
inline

Returns TRUE if item can be affected by shift/control/caplock.


The documentation for this class was generated from the following files: