diff -r 000000000000 -r eb1f2e154e89 textinput/peninputarc/inc/pensrvcliinc/peninputanimclientobj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputarc/inc/pensrvcliinc/peninputanimclientobj.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,310 @@ +/* +* Copyright (c) 2006-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: Defination for peninput server +* +*/ + + +#ifndef C_CPENINPUTANIMOBJ_H +#define C_CPENINPUTANIMOBJ_H + +#include "rpeninputanim.h" + +#ifdef RD_TACTILE_FEEDBACK +class TTactileFeedbackArea; +#endif // RD_TACTILE_FEEDBACK + +class TAnimCmd; //animation command class + +/** + * An active object implementing high level interface for pen input animation + * + * + * @since S60 v4.0 + */ +class CPeninputAnimObj : public CActive + { +public: + /** + * factory creator. + * + * @since S60 v4.0 + * @aSpriteMember The sprite member assigned to the sprite + */ + static CPeninputAnimObj* NewL(TSpriteMember& aSpriteMember); + + /** + * Destructor + * + * @since S60 v4.0 + */ + ~CPeninputAnimObj(); + + /** + * From CActive + * Called when there is event in the queue + * + * @since S60 v4.0 + */ + void RunL(); + + /** + * From CActive + * will be called if RunL leaves + * + * @since S60 v4.0 + * @param aError The error number + */ + TInt RunError(TInt aError); + + /** + * From CActive + * will be called when Cancel is issued + * + * @since S60 v4.0 + */ + void DoCancel(); + + //new function + /** + * Add UI activation command to AO scheduler + * + * @since S60 v4.0 + * @aUiFalg The ui activation flag + * @aWaitFlag Flag indicates whther this command should be pended for user response + * @return ETrue if command added successfully. + */ + TBool AddActivationCmd(TBool aUiFlag, TBool aPendingFlag); + + /** + * Add UI size change command to AO scheduler + * + * @since S60 v4.0 + * @aSize The new UI size + * @return ETrue if command added successfully. + */ + TBool AddChangeSizeCmd(const TSize& aSize); + + /** + * Add set UI position command to AO scheduler + * + * @since S60 v4.0 + * @aPt The new UI position + * @return ETrue if command added successfully. + */ + TBool AddSetPosCmd(const TPoint& aPt); + + /** + * Add change sprite display mode command to AO scheduler + * + * @since S60 v4.0 + * @aMember The sprite member to be changed + * @return ETrue if command added successfully. + */ + TBool AddChangeDispModeCmd(TSpriteMember& aMember); + + /** + * Add update UI command to AO scheduler + * + * @since S60 v4.0 + * @aRect The rect to be updated + * @aUpdateFlag The full sprite updating flag. ETrue if whole sprite is updated. + * @return ETrue if command added successfully. + */ + TBool AddUpdateUiCmd(const TRect& aRect, TBool aUpdateFlag); + + /** + * + * @since S60 v4.0 + * @aArea The pointer which point to 1st TUpdateArea that need to be updated + * @aNum The count of TUpdateArea that need to be udpated + * @return ETrue if command added successfully. + */ + TBool AddUpdateUiCmd(TUpdateArea *aArea, TInt aNum); + + /** + * Add capture pointer command to AO scheduler + * + * @since S60 v4.0 + * @aFlag The capture flag + * @return ETrue if command added successfully. + */ + TBool AddCapturePointerCmd(TBool aFlag, TInt aCaptureCtrlID); + + + /** + * Add simulate event command to AO scheduler + * + * @since S60 v4.0 + * @aEvent The event + * @return ETrue if command added successfully. + */ + TBool AddSimulateEventCmd(const TRawEvent& aEvent); + + /** + * Execute simulate event command + * + * @aEvent The event + * @return ETrue if command added successfully. + */ + TBool ExecuteSimulateEventCmd( const TRawEvent& aEvent ); + + /** + * Add flush window session command + * + * @since S60 v4.0 + * @return ETrue if command added successfully. + */ + TBool AddFlushSessionCmd(); + + /** + * Excecute one pending command. Command may be pending due to waiting + * for user response. + * + * @since S60 v4.0 + */ + void ExeOnePendingAnimCmd(); + +#ifdef RD_TACTILE_FEEDBACK + /** + * Add register feedback area command + * + * @since S60 v4.0 + * @param aArea The feedback area data. + * @return ETrue if command added successfully. + */ + TBool AddRegisterFeedbackAreaCmd(const TTactileFeedbackArea& aArea,TBool aCmdFlag); + + // The API is not open yet + // TBool AddRegisterFeedbackAreaCmd(const RArray& aAreaList); + /** + * Add de-register feedback area command + * + * @since S60 v4.0 + * @param aArea The feedback area data. + * @return ETrue if command added successfully. + */ + TBool AddDeRegisterFeedbackAreaCmd(const TTactileFeedbackArea& aArea,TBool aCmdFlag); + + /** + * Add register feedback area command + * + * @since S60 v4.0 + * @param aArea The feedback area data. + * @return ETrue if command added successfully. + */ + TBool AddChangeFeedbackAreaCmd(const TTactileFeedbackArea& aArea,TBool aCmdFlag); + + /** + * Add register feedback area command + * + * @since S60 v4.0 + * @param aArea The feedback area data. + * @return ETrue if command added successfully. + */ + TBool AddChangeFeedbackTypeCmd(const TTactileFeedbackArea& aArea,TBool aCmdFlag); +#endif // RD_TACTILE_FEEDBACK + + TBool AddEnalbeSpriteCmd(TBool aFlag); + + RWindowGroup& WindowGroup(); + + void OnExiting(); + + void GetDSAState(TBool& aState); +private: + /** + * Default constructor. + * + * @since S60 v4.0 + */ + CPeninputAnimObj(TSpriteMember& aSpriteMember); + + /** + * 2nd phase constructor. + * + * @since S60 v4.0 + */ + void ConstructL(); + + /** + * execute animation command. + * + * @since S60 v4.0 + */ + void ExecuteAnimCommand(); + + /** + * Add an animation command to scheduler. + * + * @since S60 v4.0 + */ + void AddAnimCommand(TAnimCmd* aCmd); + + /** + * Set animation object active, let this object to be scheduled by AO scheduler. + * + * @since S60 v4.0 + */ + void SetObjActive(); + + /** + * construct pen input animation module. + * + * @since S60 v4.0 + */ + TInt ConstructAnimL(); + + //RWindowGroup& WindowGroup(); + +private: + /** + * Polymorphic sprite animation dll + */ + RAnimDll iAnimDll; + + /** + * Sprite animation client side interface + */ + RPeninputAnim iAnim; + + /** + * Sprite used by sprite anim + */ + RWsSprite iSprite; + + /** + * Sprite member belongs to the sprite. + */ + TSpriteMember& iSpriteMember; + + /** + * Animation command array. + */ + RPointerArray iAnimCmd; + + /** + * Window server session + */ + RWsSession iWsSession; + + /** + * Window group for sprite anim + */ + RWindowGroup iWindowGroup; + + TBool iOnExiting; + }; + +#endif //C_CPENINPUTANIMOBJ_H \ No newline at end of file