uifw/EikStd/coctlinc/smileybmpobserver.h
changeset 0 2f259fa3e83a
--- /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