diff -r 4ea6f81c838a -r 0e9bb658ef58 widgetmodel/alfwidgetmodel/inc/alfeventinput.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgetmodel/alfwidgetmodel/inc/alfeventinput.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,171 @@ +/* +* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Class for various input events, including custom events. +* +*/ + + +#ifndef ALFEVENTINPUT_H +#define ALFEVENTINPUT_H + +#include +#include +#include +#include +class TAlfEvent; + +using namespace std; +using namespace osncore; + +namespace Alf + { + +class CAlfWidgetControl; +class AlfReferenceToVisual; +class AlfAttribute; + +// bit definitions in the received key events +enum + { + eventBitLeftAlt =0x00000004, + eventBitRightAlt =0x00000008, + eventBitAlt =0x00000010, + eventBitLeftCtrl =0x00000020, + eventBitRightCtrl =0x00000040, + eventBitCtrl =0x00000080, + eventBitLeftShift =0x00000100, + eventBitRightShift =0x00000200, + eventBitShift =0x00000400, + eventBitLeftFunc =0x00000800, + eventBitRightFunc =0x00001000, + eventBitFunc =0x00002000, + eventBitCapsLock =0x00004000, + eventBitNumLock =0x00008000, + eventBitScrollLock =0x00010000 + }; + +/** + * Event input, which may be either a custom event or a key event. + * Internal. + */ +OSN_NONSHARABLE_CLASS( AlfEventInput ) + { +public: +public: + /** + * accepts the event. + */ + bool accept( const TAlfEvent& aEvent ) const; + +public: // data + AlfEventInput(int, int, int, int); + // Event type flags, combination of EventTypeFlags values + int mEventTypeFlags; + // Key or custom event id + int mEventID; + // Custom event data, if used + int mEventData; + // Key event modifiers + int mKeyEventModifiers; + }; + +/** + * Pointer event input. + * Internal. + */ +OSN_NONSHARABLE_CLASS( AlfPointerEventInput ) //: public CBase + { +public: + /** + * constructor. + */ + AlfPointerEventInput(const char* aElementName, const char* aVisualName, + WidgetPointerEvent aEvent ); + + /** + * Destructor. + */ + virtual ~AlfPointerEventInput(); + +public: + /** + * accept the event. + */ + bool accept( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ) const; + +private: + AlfPointerEventInput(); + +private: // data + + auto_ptr mVisualRef; + WidgetPointerEvent mEvent; + }; +OSN_NONSHARABLE_CLASS( AlfWidgetAttributeInput ) + { +public: + /** + * Constructor. + */ + AlfWidgetAttributeInput( AlfAttribute& aAttribute, + const char* aElementId ); + + ~AlfWidgetAttributeInput(); + +public: + /** + * Executes the event output. + */ + void execute( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ); + + bool accept(const TAlfEvent& aEvent) const; + +private: + /** + * constructor + */ + AlfWidgetAttributeInput(); + +private: // data + AlfAttribute* mAttr; + // Reference to element + UString mElementId; + }; +OSN_NONSHARABLE_CLASS( AlfEventPasserInput ) + { +public: + /** + * Constructor. + */ + AlfEventPasserInput( int aEventId, int aEventData ); + + ~AlfEventPasserInput(); + +public: + + bool accept(const TAlfEvent& aEvent) const; + +private: + /** + * constructor + */ + AlfEventPasserInput(); + +private: // data + int mEventId; + int mEventData; + }; + } // namespace Alf + +#endif // ALFEVENTINPUT_H