textinput/peninputarc/inc/pensrvcliinc/peninputanimclientobj.h
changeset 0 eb1f2e154e89
child 6 6ceef9a83b1a
--- /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<TTactileFeedbackArea>& 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<TAnimCmd> 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