--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlinc/smileybmpobserver.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2008 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: smiley utility class
+*
+*/
+
+#ifndef C_SMILEYBMPOBSERVER_H
+#define C_SMILEYBMPOBSERVER_H
+
+#include <e32base.h>
+#include <AknIconObserver.h>
+#include "smileydrawer.h"
+
+class CSmileyDrawer;
+class CSmileyImageData;
+class CSmileyBmpObserver;
+
+NONSHARABLE_CLASS( CSmileyAsyncDraw ): public CActive
+ {
+public:
+ static const TInt KDrawIntervalMicroSec = 200000;
+
+ CSmileyAsyncDraw( CSmileyDrawer& aDrawer );
+ ~CSmileyAsyncDraw();
+
+// new function
+ void AddReplayImage( CSmileyImageData* aImage );
+ void CreateReplayImageL();
+ void RequestAsyncDraw( TBool aForce = EFalse );
+ CSmileyDrawer& SmileyDrawer(){ return iDrawer; };
+ TBool IsRequestIntervalBigEnough() const;
+
+// from CActive
+ void DoCancel();
+ void RunL();
+
+private:
+ CSmileyDrawer& iDrawer;
+ RArray<CSmileyImageData*> iReplayImageArray;
+ TTime iLastRequestTime;
+ TBool iEverActivated;
+ };
+
+NONSHARABLE_CLASS( CSmileyBmpObserver ): public CBase, public MAknIconObserver,
+ public MSmileyAnimChecker
+ {
+public:
+ CSmileyBmpObserver( CSmileyAsyncDraw& aAsyncDraw );
+ ~CSmileyBmpObserver();
+
+// new function
+ void SetImageData( CSmileyImageData* aImage );
+
+// from MAknIconObserver
+ void BitmapChanged( CFbsBitmap *aBitmap );
+
+// from MSmileyAnimChecker
+ TBool IsOnProgress() const;
+ void ResetStatus();
+ void DoOnAnimStoppedL();
+
+private:
+// new functions
+ void ReplayAnimationL();
+ void StopAnimation();
+
+private: //data
+ CSmileyAsyncDraw& iAsyncDraw;
+ // not own
+ CSmileyImageData* iImage;
+ TBool iIsAnimProgress;
+ TBool iIsRegisted;
+ };
+
+#endif C_SMILEYBMPOBSERVER_H