textinput/peninputarc/src/peninputserverapp/peninputanimcommand.cpp
changeset 0 eb1f2e154e89
child 6 6ceef9a83b1a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputarc/src/peninputserverapp/peninputanimcommand.cpp	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,355 @@
+/*
+* Copyright (c) 2007-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:  Implementation for peninput animation command
+*
+*/
+
+#include "peninputanimcommand.h"
+#include "rpeninputanim.h"
+#include <peninputcmd.h>
+#include "peninputcmdparamext.h"
+// ---------------------------------------------------------------------------
+// TAnimCmd::TAnimCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//    
+//#define UPDATE_MORE_SMALL_AREA
+TAnimCmd::TAnimCmd(RPeninputAnim& aAnim,TBool aFlag)
+				: iAnim(aAnim),iReady(aFlag)
+	{
+	}
+	
+
+
+// ---------------------------------------------------------------------------
+// TAnimCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//
+TBool TAnimCmd::ExecuteAnimCommand() const
+	{
+	//do nothing		
+	return ETrue;
+	}
+
+
+//class TAimActivateUiCmd
+// ---------------------------------------------------------------------------
+// TAnimActivateUiCmd::TAnimActivateUiCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//    	
+TAnimActivateUiCmd::TAnimActivateUiCmd(RPeninputAnim& aAnim,
+												TBool aFlag,TBool aReadyFlag)
+								: TAnimCmd(aAnim,aReadyFlag),iActiveFlag(aFlag)
+	{	
+	}	
+  
+// ---------------------------------------------------------------------------
+// TAnimActivateUiCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//    
+TBool TAnimActivateUiCmd :: ExecuteAnimCommand() const
+	{
+	if(!iReady)
+		return EFalse;
+	
+	if(iActiveFlag)
+		{
+		iAnim.Activate();
+		}
+	else
+		{
+		iAnim.Deactivate();
+		}						
+	return ETrue;		
+	}
+	
+	
+//class TAnimChangeSizeCmd
+// ---------------------------------------------------------------------------
+// TAnimChangeSizeCmd::TAnimChangeSizeCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//    		
+TAnimChangeSizeCmd::TAnimChangeSizeCmd(RPeninputAnim& aAnim,
+							const TSize& aSize) : TAnimCmd(aAnim),iSize(aSize)
+	{	
+	}
+	
+// ---------------------------------------------------------------------------
+// TAnimChangeSizeCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//	
+TBool TAnimChangeSizeCmd ::ExecuteAnimCommand() const
+	{
+	TRAP_IGNORE(iAnim.LayoutSizeChangedL(iSize));
+	return ETrue;	
+	}
+
+//class TAnimSetPosCmd
+// ---------------------------------------------------------------------------
+// TAnimSetPosCmd::TAnimSetPosCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//    		
+TAnimSetPosCmd::TAnimSetPosCmd(RPeninputAnim& aAnim,const TPoint& aPt)
+									: TAnimCmd(aAnim),iPos(aPt)
+	{
+	}
+
+// ---------------------------------------------------------------------------
+// TAnimSetPosCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//	
+TBool TAnimSetPosCmd ::ExecuteAnimCommand() const
+	{
+	iAnim.SetUiLayoutPos(iPos);			
+	return ETrue;	
+	}
+	
+	
+//class TAnimChangeDispModeCmd
+// ---------------------------------------------------------------------------
+// TAnimChangeDispModeCmd::TAnimChangeDispModeCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//    		
+TAnimChangeDispModeCmd::TAnimChangeDispModeCmd(RPeninputAnim& aAnim,
+									RWsSprite& aSprite,TSpriteMember& aMember)
+							   		: TAnimCmd(aAnim), iSprite(aSprite),
+							   			iSpriteMember(aMember)
+	{
+	}
+	
+// ---------------------------------------------------------------------------
+// TAnimChangeDispModeCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//
+TBool TAnimChangeDispModeCmd :: ExecuteAnimCommand() const
+	{	
+	iSprite.UpdateMember(0, iSpriteMember);			
+	return ETrue;	
+	}
+	
+	
+//class TAnimUpdateUiRectCmd
+// ---------------------------------------------------------------------------
+// TAnimUpdateUiRectCmd::TAnimUpdateUiRectCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//    
+TAnimUpdateUiRectCmd::TAnimUpdateUiRectCmd(RPeninputAnim& aAnim,
+										const TRect& aRect,TBool aFullFlag)
+    :TAnimCmd(aAnim)
+    {
+    TUpdateArea area = 
+        {
+        aRect,aFullFlag
+        };	
+    iArea.Append(area);
+    }
+
+// ---------------------------------------------------------------------------
+// TAnimUpdateUiRectCmd::TAnimUpdateUiRectCmd
+// c++ constructor
+// ---------------------------------------------------------------------------
+//    
+TAnimUpdateUiRectCmd::TAnimUpdateUiRectCmd(RPeninputAnim& aAnim, 
+                                TUpdateArea *aArea,TInt aNum)
+									: TAnimCmd(aAnim), iRectNum(aNum)                                
+    {
+    for(TInt i = 0 ; i < aNum; ++i)
+        {
+        TUpdateArea area =       
+            {
+            aArea[i].iRect,
+            aArea[i].iFullUpdateFlag
+            };  
+        iArea.Append(area);
+        }
+    }
+
+TAnimUpdateUiRectCmd::~TAnimUpdateUiRectCmd()
+    {
+    iArea.Close();    
+    }
+// ---------------------------------------------------------------------------
+// TAnimUpdateUiRectCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//    
+TBool TAnimUpdateUiRectCmd ::ExecuteAnimCommand() const
+	{	
+    if (iArea.Count())
+        {
+#ifdef UPDATE_MORE_SMALL_AREA        
+        iAnim.UpdateArea(iArea);
+#else
+        TUpdateArea area = iArea[0];
+        for( TInt i = 1; i < iArea.Count(); ++i )
+            {
+            area.iRect.BoundingRect(iArea[i].iRect);
+            }
+        iArea.Reset();
+        iArea.Append( area );
+        iAnim.UpdateArea(iArea);
+#endif //UPDATE_MORE_SMALL_AREA        
+        }
+
+	  //otherwise it's already updated.
+    iArea.Close();    
+    return ETrue;	
+    }
+
+//class TAnimCapturePtCmd
+// ---------------------------------------------------------------------------
+// TAnimCapturePtCmd::TAnimCapturePtCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//	
+TAnimCapturePtCmd::TAnimCapturePtCmd(RPeninputAnim& aAnim,TBool aFlag, TInt aCaptureCtrlID)
+								: TAnimCmd(aAnim),iCaptureFlag(aFlag), iCaptureCtrlID(aCaptureCtrlID)
+	{
+	}	
+
+
+// ---------------------------------------------------------------------------
+// TAnimCapturePtCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//	
+TBool TAnimCapturePtCmd :: ExecuteAnimCommand() const
+	{
+	iAnim.CapturePointer(iCaptureFlag, iCaptureCtrlID);			
+	return ETrue;	
+	}	
+
+
+//class TAnimSimulateEventCmd
+// ---------------------------------------------------------------------------
+// TAnimSimulateEventCmd::TAnimSimulateEventCmd
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+TAnimSimulateEventCmd::TAnimSimulateEventCmd(
+								RPeninputAnim& aAnim,const TRawEvent& aEvent)
+								: TAnimCmd(aAnim),iEvent(aEvent)
+	{
+	}		
+
+// ---------------------------------------------------------------------------
+// TAnimSimulateEventCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//	
+TBool TAnimSimulateEventCmd :: ExecuteAnimCommand() const
+	{
+	iAnim.SimulateEvent(iEvent);
+	return ETrue;			
+	}		
+	
+	
+//class TAnimFlushWsSessionCmd
+// ---------------------------------------------------------------------------
+// TAnimFlushWsSessionCmd::TAnimFlushWsSessionCmds
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+TAnimFlushWsSessionCmd::TAnimFlushWsSessionCmd(RPeninputAnim& aAnim,
+										RWsSession& aWs)
+										: TAnimCmd(aAnim),iWs(aWs)
+	{
+	}
+	
+// ---------------------------------------------------------------------------
+// TAnimFlushWsSessionCmd::ExecuteAnimCommand
+// Execute animation command
+// ---------------------------------------------------------------------------
+//
+TBool TAnimFlushWsSessionCmd :: ExecuteAnimCommand() const
+	{
+	iWs.Flush();			
+	return ETrue;	
+	}			
+
+
+#ifdef RD_TACTILE_FEEDBACK
+
+//class TAnimFeedbackAreaCmd
+// ---------------------------------------------------------------------------
+// TAnimFlushWsSessionCmd::TAnimFeedbackAreaCmd
+// Execute animation command
+// ---------------------------------------------------------------------------
+//
+TAnimFeedbackAreaCmd::TAnimFeedbackAreaCmd(RPeninputAnim& aAnim,
+                             const TTactileFeedbackArea &aArea,
+                             TFeedbackAreaOpEnum aOp,TBool aReplyFlag)
+                            : TAnimCmd(aAnim),iAreaCount(0),iCmdOp(aOp),
+                            iCmdReplyFlag(aReplyFlag)
+    {
+    iFeedbackAreaArray[iAreaCount++] = aArea;
+    }
+
+
+/*TAnimFeedbackAreaCmd::TAnimFeedbackAreaCmd(RPeninputAnim& aAnim,
+                          const RArray<TTactileFeedbackArea>& aArea,
+                          TFeedbackAreaOpEnum aOp,TBool aReplyFlag)
+                          : TAnimCmd(aAnim),iAreaCount(0),iCmdOp(aOp),
+                            iCmdReplyFlag(aReplyFlag)
+    {
+    for(TInt i = 0; i < aArea.Count(); ++i)
+        {        
+        iFeedbackAreaArray[iAreaCount++] = aArea[i];
+        }
+    }*/
+
+TBool TAnimFeedbackAreaCmd :: ExecuteAnimCommand() const
+	{
+	switch(iCmdOp)
+	    {
+	        case  TFeedbackAreaOpAdd:
+                TRAP_IGNORE(iAnim.AddFeedbackAreaL(iFeedbackAreaArray,iAreaCount,iCmdReplyFlag));
+	            break;
+	        case TFeedbackAreaOpRemove:
+	            TRAP_IGNORE(iAnim.RemoveFeedbackAreaL(iFeedbackAreaArray,iAreaCount,iCmdReplyFlag));
+	            break;
+	        case TFeedbackAreaOpChange:
+                TRAP_IGNORE(iAnim.ChangeFeedbackAreaL(iFeedbackAreaArray,iAreaCount,iCmdReplyFlag));      	        
+	            break;
+	        case TFeedbackTypeOpChange:
+	        	TRAP_IGNORE(iAnim.ChangeFeedbackTypeL(iFeedbackAreaArray,iAreaCount,iCmdReplyFlag));
+	        	break;
+	        default:	          
+	            return EFalse;
+	    }
+	
+	return ETrue;	
+	}			    
+#endif // RD_TACTILE_FEEDBACK
+TAnimEnableSpriteCmd::TAnimEnableSpriteCmd(RPeninputAnim& aAnim,TBool aFlag)
+                        : TAnimCmd(aAnim),iSpriteFlag(aFlag)
+    {										   
+    }
+    
+TBool TAnimEnableSpriteCmd :: ExecuteAnimCommand() const
+	{
+	iAnim.EnableSprite(iSpriteFlag);
+	return ETrue;
+	}
+