textinput/peninputarc/inc/pensrvcliinc/peninputanimcommand.h
changeset 0 eb1f2e154e89
child 8 6ceef9a83b1a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputanimcommand.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,481 @@
+/*
+* 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_CPENINPUTANIM_CMD_H
+#define C_CPENINPUTANIM_CMD_H
+#include <e32def.h>
+#include <e32cmn.h>
+#include <w32std.h>
+//pen input animation client
+class RPeninputAnim;
+#include "peninputcmdparamext.h"
+const TInt KMaxNum = 1;
+/**
+ * Class for handling animation command. This is the base class for all command
+ * 
+ *
+ * @since S60 v4.0
+ */
+class TAnimCmd  
+{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command
+     * @param aReayFlag The waiting flag indicats whether this command should be 
+     * executed immediately. Deafult value is ETrue, i.e, execute the command.
+     */    
+    TAnimCmd(RPeninputAnim& aAnim,TBool aReayFlag = ETrue);
+    
+    /**
+     * Set command waiting flag.
+     *
+     * @since S60 v4.0
+     * @param aFlag new waiting flag
+     */            
+    inline void SetReady(TBool aFlag); 
+    
+    /**
+     * Test whether this command is executable now.
+     *
+     * @since S60 v4.0
+     * @return ETrue if command is ready to run
+     */    
+    inline TBool Ready() const;
+    
+    /**
+     * Execute the command
+     *
+     * @since S60 v4.0
+     * @return ETrue if command has been executed successfully.
+     */     
+    virtual TBool ExecuteAnimCommand() const;                
+protected:
+    /**
+     * animation object which execute the command. Not owned.
+     */       	
+	RPeninputAnim& iAnim;
+	/**
+	 * flags tells whether this command can be execute immediately
+	 */
+	TBool iReady; 
+} ;
+   
+
+//class TAnimActivateUiCmd
+/**
+ * Class for handling animation activation/deactivation command. 
+ * 
+ *
+ * @since S60 v4.0
+ */
+class TAnimActivateUiCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command     
+     * @param aUiFlag The UI activation flag
+     * @param aReadyFlag indicates whether this command is ready. Default value is false
+     */   
+	TAnimActivateUiCmd(RPeninputAnim& aAnim,TBool aUiFlag,TBool aReadyFlag = EFalse);
+	
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.     
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * The activation flag.
+	 */
+	TBool iActiveFlag;		
+	};
+	
+
+/**
+ * Class for handling changing animation sprite size command. 
+ * 
+ *
+ * @since S60 v4.0
+ */	
+class TAnimChangeSizeCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command     
+     * @param aSize The new sprite size
+     */   
+	TAnimChangeSizeCmd(RPeninputAnim& aAnim,const TSize& aSize);
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.          
+     */     
+ 	virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * sprite new size
+	 */
+	TSize iSize;		
+	};
+	
+/**
+ * Class for handling set animation sprite position command. 
+ * 
+ *
+ * @since S60 v4.0
+ */		
+class TAnimSetPosCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command          
+     * @param aPt The new position
+     */   
+	TAnimSetPosCmd(RPeninputAnim& aAnim,const TPoint& aPt);
+	
+	/**
+	 * Execute the command
+	 *
+	 * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.     	 
+	 */     
+	virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * The new sprite position
+	 */
+	TPoint iPos;		
+	};
+
+/**
+ * Class for handling change animation sprite display mode command. 
+ * 
+ *
+ * @since S60 v4.0
+ */		
+class TAnimChangeDispModeCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command          
+     * @param aSprite The sprite which needs to be changed.
+     * @param aMember The sprite member to be changed.
+     */   
+	TAnimChangeDispModeCmd(RPeninputAnim& aAnim,
+							RWsSprite& aSprite,TSpriteMember& aMember);
+	/**
+	 * Execute the command
+	 *
+	 * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.     	 
+	 */     
+	virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * The sprite to be changed.
+	 */
+	RWsSprite& iSprite;
+	
+	/**
+	 * The sprite member to be changed.
+	 */	
+	TSpriteMember& iSpriteMember;		
+};
+	
+	
+/**
+ * Class for handling update animation sprite command. 
+ * 
+ *
+ * @since S60 v4.0
+ */		    
+class TAnimUpdateUiRectCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command          
+     * @param aRect The rect to be updated
+     * @param aFullFlag Flag indicates whether full sprite should be updated. 
+     */   
+	TAnimUpdateUiRectCmd(RPeninputAnim& aAnim,
+									const TRect& aRect,TBool aFullFlag);
+	
+    /**
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation client which executes the command
+     * @param aArea* The pointer point to 1st TUpdateArea that need to be udpated
+     * @param aNum The count of TUpdateArea that need to be updated
+     */   
+    TAnimUpdateUiRectCmd(RPeninputAnim& aAnim, TUpdateArea *aArea, TInt aNum);
+
+    /**
+     * Destructor. 
+     *
+     * @since S60 v4.0
+     */   
+    ~TAnimUpdateUiRectCmd();
+
+    /**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	   * @return ETrue if command has been executed successfully.          
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+
+private:
+	  /**
+	   * The rect to be updated
+	   */
+	  mutable RArray<TUpdateArea> iArea;
+	/**
+	 * The flag for full sprite updating. iRect is ignored if this flag is true
+	 */
+	TBool iFullUpdateFlag;		
+	
+	TInt iRectNum;
+	};
+	
+/**
+ * Class for handling capture pointer command. 
+ * 
+ *
+ * @since S60 v4.0
+ */			
+class TAnimCapturePtCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command          
+     * @param aFlag flag indicates capturing or releasing the point capture
+     */   
+	TAnimCapturePtCmd(RPeninputAnim& aAnim,TBool aFlag, TInt aCaptureCtrlID);
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.          
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * The capture flag
+	 */
+	TBool iCaptureFlag;		
+	
+	TInt iCaptureCtrlID;
+	};	
+	
+/**
+ * Class for handling ignoring simuated event command. 
+ * 
+ *
+ * @since S60 v4.0
+ */			
+class TAnimSimulateEventCmd : public TAnimCmd
+	{
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command          
+     * @param aFlag The flag
+     */   
+	TAnimSimulateEventCmd(RPeninputAnim& aAnim,const TRawEvent& aEvent);
+	
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.          
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * Event to be simulated. 
+	 */
+	TRawEvent iEvent; 
+	};			
+	
+/**
+ * Class for handling flush ws session command. 
+ * 
+ *
+ * @since S60 v4.0
+ */			
+class TAnimFlushWsSessionCmd : public TAnimCmd
+	{
+public:		
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command          
+     * @aWs The session to be flushed
+     */   
+	TAnimFlushWsSessionCmd(RPeninputAnim& aAnim,RWsSession& aWs);
+	
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.          
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * The window session.
+	 */
+	RWsSession& iWs;		
+	};			
+
+#ifdef RD_TACTILE_FEEDBACK
+//class TAnimFeedbackAreaCmd
+/**
+ * Class for handling register/de-register feedback area command
+ * 
+ *
+ * @since S60 v4.0
+ */
+ 
+class TAnimFeedbackAreaCmd : public TAnimCmd
+	{
+public:
+    enum TFeedbackAreaOpEnum
+        {
+        TFeedbackAreaOpAdd,
+        TFeedbackAreaOpRemove,
+        TFeedbackAreaOpChange,
+        TFeedbackTypeOpChange
+        };
+
+public:
+    /**
+     * Default constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command     
+     * @param aArea The feedback area data
+     * @param aOp command op tells whether register or deregister area.
+     * @param aReplyFlag Flag tells how the command sent to server.
+     */   
+	  TAnimFeedbackAreaCmd(RPeninputAnim& aAnim,
+	                       const TTactileFeedbackArea& aArea,
+	                       TFeedbackAreaOpEnum aOp,
+	                       TBool aReplyFlag);
+
+    /**
+     * The constructor is not open yet. 
+     *  constructor. 
+     *
+     * @since S60 v4.0
+     * @param aAnim The animation cliet which executes the command     
+     * @param aArea The feedback area data
+     * @param aOp command op tells whether register or deregister area.
+     * @param aReplyFlag Flag tells how the command sent to server.     
+     */   
+     /*TAnimFeedbackAreaCmd(RPeninputAnim& aAnim,
+	                    const RArray<TTactileFeedbackArea>& aArea,
+	                       TFeedbackAreaOpEnum aOp,
+	                       TBool aReplyFlag);*/
+
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.     
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+
+private:
+	/**
+	 * The feedback area list.
+	 */
+    TTactileFeedbackArea	iFeedbackAreaArray[KMaxNum];
+	
+	/**
+	 * count of the area.
+	 */	
+    TInt iAreaCount;	
+	
+	/**
+	 * command op tells whether register or deregister area.
+	 */
+	TFeedbackAreaOpEnum iCmdOp;
+	
+	/**
+	 * Flags tells whether this command is send by Command or CommandReply.
+	 */	
+	TBool iCmdReplyFlag;
+	};
+#endif // RD_TACTILE_FEEDBACK
+	
+class TAnimEnableSpriteCmd :  public TAnimCmd
+    {
+public:
+    TAnimEnableSpriteCmd(RPeninputAnim& aAnim,TBool aFlag);
+	/**
+     * Execute the command
+     *
+     * @since S60 v4.0
+	 * @return ETrue if command has been executed successfully.     
+     */     
+    virtual TBool ExecuteAnimCommand() const;
+private:
+    TBool iSpriteFlag;    
+    };
+	
+#include "peninputanimcommand.inl"
+	
+#endif //C_CPENINPUTANIM_CMD_H
+
+
+