diff -r 4ea6f81c838a -r 0e9bb658ef58 widgetmodel/alfwidgetmodel/inc/alfeventoutput.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgetmodel/alfwidgetmodel/inc/alfeventoutput.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,344 @@ +/* +* 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 output events, including custom events. +* +*/ + + +#ifndef ALFEVENTOUTPUT_H +#define ALFEVENTOUTPUT_H + + +#include +#include +#include + +#include +#include +using namespace osncore; + +#include +using namespace std; + +#ifdef RD_TACTILE_FEEDBACK +#include +#endif // RD_TACTILE_FEEDBACK + +namespace Alf + { + +class CAlfWidgetControl; +class AlfReferenceToVisual; +class IAlfVariantType; +class AlfAttribute; +class IAlfEventOutputSignalSubscriber; +class IAlfAppEventListener; + +/** + * Event output. Internal. + */ +OSN_NONSHARABLE_CLASS( AlfEventOutput ) + { +public: + + /** + * If the event is to be broadcast, aTargetWidget is set to an empty string. + */ + AlfEventOutput(int aEventType, int aEventID, const char* aTargetWidget, unsigned int aDelay ); + + ~AlfEventOutput(); + +public: + /** + * Executes the event output. + */ + void execute( const CAlfWidgetControl& aControl, const TAlfEvent& aEvent ); + +private: + AlfEventOutput(); + +public: // data + + int mEventType; // either custom or key event + int mEventID; + UString mTargetWidget; // Empty string if the event is to be broadcast. + unsigned int mDelay; + }; + +/** + * Event cancel output. Internal. + */ +OSN_NONSHARABLE_CLASS( AlfEventCancelOutput ) + { +public: + /** + * constructor. + */ + AlfEventCancelOutput( const char* aTargetWidget, int aEventID, bool aCancelAll ); + + ~AlfEventCancelOutput(); + +public: + /** + * Executes the event output. + */ + void execute( const CAlfWidgetControl& aControl ); + /** + * returns target widget id. + */ + inline const UString& targetWidget() const + { + return mTargetWidget; + } + +private: + /** + * cancels the excecution. + */ + AlfEventCancelOutput(); + +private: // data + + UString mTargetWidget; + int mEventID; + bool mCancelAll; + }; + +/** + * Animation Event cancel output. Internal. + */ +OSN_NONSHARABLE_CLASS( AlfAnimationCancelOutput ) + { +public: + /** + * constructor. + */ + AlfAnimationCancelOutput(const char* aElementName,const char* aVisualName, TAlfOp aOperation, bool aCancelAll ); + /** + * destructor. + */ + ~AlfAnimationCancelOutput(); + +public: + /** + * excecutes the command. + */ + void execute( CAlfWidgetControl& aControl, int aDataID ); + +private: + /** + * constructor + */ + AlfAnimationCancelOutput(); + + +private: // data + + auto_ptr mVisualRef; + TAlfOp mOperation; + bool mCancelAll; + }; + + +OSN_NONSHARABLE_CLASS( AlfWidgetAttributeOutput ) + { +public: + /** + * Constructor. + */ + AlfWidgetAttributeOutput( AlfAttribute& aAttribute, + const char* aWidgetId ); + + ~AlfWidgetAttributeOutput(); + +public: + /** + * Executes the event output. + */ + void execute( CAlfWidgetControl& aControl ); + +private: + /** + * constructor + */ + AlfWidgetAttributeOutput(); + +private: // data + AlfAttribute* mAttr; + + // Reference to outside widget + UString mWidgetId; + }; + +/** + * State change output. Internal. + */ +OSN_NONSHARABLE_CLASS( AlfStateChangeOutput ) + { +public: + /** + * constructor. + * + * @exception Alf::AlfWidgetException value osncore::EInvalidWidget + * if aTaretWidget is NULL or empty + * @exception Alf::AlfWidgetException value osncore::EInvalidArgument + * if aDisableStates and aEnableStates have a common bit set + */ + AlfStateChangeOutput( const char* aTargetWidget, uint aEnableStates, uint aDisableStates ); + + ~AlfStateChangeOutput(); + +public: + /** + * Executes the event output. + */ + void execute( const CAlfWidgetControl& aControl ); + + /** + * returns target widget id. + */ + inline const UString& targetWidget() const + { + return mTargetWidget; + } + +private: // data + + UString mTargetWidget; + uint mEnableStates; + uint mDisableStates; + }; + + +#ifdef RD_TACTILE_FEEDBACK +OSN_NONSHARABLE_CLASS( AlfTactileOutput ) + { +public: + + /** + * Constructor. + */ + AlfTactileOutput( TTouchLogicalFeedback aFeedbackType ); + + /** + * Destructor. + */ + ~AlfTactileOutput(); + +public: + + /** + * Executes the event output. + */ + void execute(); + +private: + + /** + * Constructor. + */ + AlfTactileOutput(); + +private: // data + + TTouchLogicalFeedback mFeedbackType; + + }; + +#endif // RD_TACTILE_FEEDBACK + +/** + * Event output signal. + */ +OSN_NONSHARABLE_CLASS( AlfEventOutputSignal ) + { +public: + explicit AlfEventOutputSignal( IAlfEventOutputSignalSubscriber& aSubscriber ); + + ~AlfEventOutputSignal(); + + /** + * Executes the event output. + */ + void execute(); + +private: // data + IAlfEventOutputSignalSubscriber* mSubscriber; + }; + +OSN_NONSHARABLE_CLASS( AlfEventPasserOutput) + { +public: + + /** + * Constructor. + */ + AlfEventPasserOutput( const char* aSourceWidget , const char* aTargetWidget ); + + /** + * Constructor. Occurred event is mapped to a new event (specified by aNewEventId) + */ + AlfEventPasserOutput::AlfEventPasserOutput( const char* aSourceWidget , const char* aTargetWidget, + int aNewEventId , int aNewEventCustomData ); + /** + * Destructor. + */ + ~AlfEventPasserOutput(); + +public: + + /** + * Executes the event output. + */ + void execute( const CAlfWidgetControl* aControl , const TAlfEvent& aEvent ); + +private: + + /** + * Constructor. + */ + AlfEventPasserOutput(); + +private: // data + + const char* mSourceWidget; + const char* mTargetWidget; + bool mEventMappingData; + int mNewEventId; + int mNewEventCustomData; + }; + +/** + * Application Event output. + */ +OSN_NONSHARABLE_CLASS( AlfAppEventOutput ) + { +public: + explicit AlfAppEventOutput( const UString& aCmd, IAlfAppEventListener& aAppEvent ); + + ~AlfAppEventOutput(); + + /** + * Executes the event output. + */ + void execute(const TAlfEvent& aEvent); + +private: // data + IAlfAppEventListener* mAppEvent; + UString mCmd; + }; + + } // namespace Alf + +#endif // ALFEVENTOUTPUT_H