--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/bthid/mouse/Sesame_client/inc/clientimagecommander.h Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,215 @@
+/*
+* Copyright (c) 2004 - 2006 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:
+ *
+*/
+
+
+#ifndef __CLIENTIMAGE_COMMANDER_H__
+#define __CLIENTIMAGE_COMMANDER_H__
+
+// INCLUDES
+#include <w32adll.h>
+
+#include "pointmsgqueue.h"
+// CLASS DECLARATION
+
+#define KWakeUpNeeded (5)
+
+class CPointQueue;
+
+class MPointHandler
+ {
+public:
+ /**
+ * Handle Points from AnimDll
+ */
+ virtual void HandlePointL(const TPoint& aPoint) = 0;
+ virtual void SendEventL(TPointerEvent::TType aEventType) = 0;
+ };
+
+/**
+ * RImageCommander
+ * An instance of RImageCommander is an Animation Client Commander which
+ * sends commands to the Animation Server
+ */
+class RImageCommander : public RAnim, public MPointHandler
+ {
+public:
+ // Constructors
+
+ /**
+ * RImageCommander.
+ * Construct an Animation Client object for Animation Client DLL aAnimDll
+ * @param aAnimDll the Animation Client DLL to use
+ */
+ IMPORT_C RImageCommander(RAnimDll& aAnimDll, RWsSession& aWsSession);
+
+ /**
+ * ImageConstruct.
+ * Complete Animation Client construction
+ */
+ IMPORT_C void ImageConstructL(RWindowGroup& aWindowGroup, TSize aSize);
+
+ /**
+ * ~RImageCommander
+ */
+ IMPORT_C ~RImageCommander();
+
+public:
+ // from MPointHandler
+
+ void HandlePointL(const TPoint& aPoint);
+ void SendEventL(TPointerEvent::TType aEventType);
+private:
+ TInt SendPointerEvent(TPointerEvent::TType aEventType);
+ TRawEvent::TType PointerEventToRawEvent(TPointerEvent::TType aEventType);
+ void CreateSpriteL(TSize aSize, RWindowGroup& aGroup);
+ void FillInSpriteMember(TSpriteMember& aMember, CFbsBitmap* icon,
+ CFbsBitmap* iconMask);
+ TBool CheckCurrentPoint();
+ TInt SendWakeUp();
+ TBool RestrictPos();
+
+public:
+ // New functions
+
+ /**
+ * ImageCommand.
+ * Send aCommand to the Animation Server object;
+ * aCommand == KChangeCursor implies "change animation cursor".
+ * Note! Because there is no way to return an error from the server side
+ * using this method, it is important that any server side code for these
+ * commands should not be able to fail or leave.
+ * This command is also buffered and may not be performed immediately.
+ * @param aCommand the enumerated code for the option selected
+ */
+ IMPORT_C void ImageCommand(TInt aCommand);
+
+public:
+ // Enumerations
+
+ /**
+ * KAnimationTypes.
+ * Constant used to indicate the animation of a bouncing square should
+ * be created, enumeration can be expanded
+ */
+ enum KAnimationTypes
+ {
+ KAnimationSquare = 1
+ };
+
+
+private:
+
+ RWsSession& iSession;
+ RWsSprite iSprite;
+ CFbsBitmap* iBaseBitmap;
+ CFbsBitmap* iBaseMaskBitmap;
+
+ TPoint iCurrentPoint;
+ CPointQueue* iPointBufferQueue;
+ TBool iMouseButtonPressed;
+ TInt iWakeUpCalculator;
+ };
+
+/**
+ * Class CPointQueue
+ * Event message queue. It's an active object.
+ *
+ * @since S60 v4.0
+ */
+
+class CPointQueue : public CActive
+ {
+public:
+ /**
+ * factory constructor.
+ *
+ * @since S60 v4.0
+ * @param aHandler The event handler.
+ * @param aName The event queue global name
+ * @return The created messge queue object
+ */
+ static CPointQueue* NewL(MPointHandler* aHandler, const TDesC& aName);
+ /**
+ * desstructor.
+ *
+ * @since S60 v4.0
+ */
+ ~CPointQueue();
+
+ /**
+ * Request event.
+ *
+ * @since S60 v4.0
+ */
+ void GetPoint();
+
+protected:
+ /**
+ * 2nd phase constructor.
+ *
+ * @since S60 v4.0
+ * @aName The message queue name
+ */
+ void ConstructL(const TDesC& aName);
+ /**
+ * Default construcotr.
+ *
+ * @since S60 v4.0
+ * @aHandler The event handler
+ */
+ CPointQueue(MPointHandler* aHandler);
+
+ //From CActive
+ /**
+ * 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();
+
+private:
+ /**
+ * Message buffer queue
+ */
+ RMsgQueue<TPointBuffer> iPointBufQueue;
+
+ /**
+ * Event handler
+ */
+ MPointHandler* iHandler;
+ };
+
+#endif // __CLIENTIMAGE_COMMANDER_H__
+// End of File