--- a/uifw/AvKon/inc/AknSmileyModel.h Thu Aug 19 10:11:06 2010 +0300
+++ b/uifw/AvKon/inc/AknSmileyModel.h Tue Aug 31 15:28:30 2010 +0300
@@ -23,8 +23,7 @@
// INCLUDES
#include <AknIconObserver.h>
-#include <AknsItemID.h>
-#include "AknSmileyUtils.h"
+
#include "AknSmileyImage.h"
@@ -34,9 +33,6 @@
////////////////////////////////////////////////////////////////////
const TInt KSmileyNameLength = 8;
-typedef TBuf<KSmileyNameLength> TSmileyText;
-typedef RArray<TSmileyText> RSmileyTextArray;
-typedef RArray<TChar> RSmileyCodeArray;
NONSHARABLE_CLASS(TSmileyIconInfo)
{
@@ -44,69 +40,72 @@
TSmileyIconInfo();
TSmileyIconInfo(const TSmileyIconInfo& aInfo);
void Reset();
-
- TInt iIndex;
- TAknsItemID iSkinItemID; // from skin
- TInt iDefaultStillImageID; // from mif
- TInt iDefaultAnimationImageID; // from mif
+
+ TBuf<KSmileyNameLength> iName;
+ TInt iId;
+ TAknsItemID iSkinItemID; // from skin
+ TInt iDefaultThumbnailID; // from mif
+ TInt iDefaultAnimationID; // from mif
+ };
+
+////////////////////////////////////////////////////////////////////
+
+class CSmileyIcon;
+
+class MSmileyIconObserver
+ {
+public:
+ virtual void ThumbnailLoaded(CSmileyIcon* aSmileyIcon)=0;
+ virtual void AnimationChanged(CSmileyIcon* aSmileyIcon)=0;
};
////////////////////////////////////////////////////////////////////
-class CSmileyIcon : public CAknSmileyIcon, public MSmileyImageObserver
+class CSmileyIcon : public CBase, public MSmileyImageObserver
{
public:
- static CSmileyIcon* NewL(const TSmileyIconInfo& aInfo, MAknSmileyObserver* aObserver);
+ static CSmileyIcon* NewL(const TSmileyIconInfo& aInfo, MSmileyIconObserver* aObserver);
virtual ~CSmileyIcon();
private:
- CSmileyIcon(MAknSmileyObserver* aObserver);
- void ConstructL(const TSmileyIconInfo& aInfo);
+ CSmileyIcon(const TSmileyIconInfo& aInfo, MSmileyIconObserver* aObserver);
+ void ConstructL();
+
+public:
+ const TDesC& Name() const { return iInfo.iName; }
+ TInt Id() const { return iInfo.iId; }
+
+ TBool ReadyToDraw() const;
+ const CFbsBitmap* Image() const;
+ const CFbsBitmap* Mask() const;
-public: // from AknSmileyIcon
- virtual const CFbsBitmap* Image() const;
- virtual const CFbsBitmap* Mask() const;
- virtual TBool ReadyToDraw() const;
- virtual void SetSize(const TSize& aSize);
- virtual const TSize& Size() const;
- virtual void PlayAnimationL(TInt aRepeat=0, TInt aDelay=0);
- virtual void StopAnimation();
+public:
+ void LoadThumbnailL();
+ TBool ThumbnailReady() const;
+
+ void PlayAnimationL(TInt aRepeat, TInt aDelay);
+ void StopAnimation();
+
+public:
+ void SetSize(const TSize& aSize);
+ const TSize& Size() const;
private: // from MSmileyImageObserver
virtual void BitmapChanged(CSmileyImage* aSmileyImage, CFbsBitmap* aBitmap);
-
-public:
- TInt Index() const;
- void LoadStillImageL(TInt aDelay=0);
- TBool StillImageIsReadyToDraw() const;
- TBool AnimationImageIsReadyToDraw() const;
- void AddVariant(const TDesC& aText, TChar aBaseCode);
- TInt VariantCount() const;
- const TDesC& Text(TInt aVariant=0) const;
- TChar Code(TInt aVariant=0) const;
+private:
+ TBool ShouldShowAnimation() const;
private:
- MAknSmileyObserver* iSmileyIconObserver;
- TInt iIndex;
- CSmileyImage* iStillImage;
+ const TSmileyIconInfo iInfo;
+ MSmileyIconObserver* iSmileyIconObserver;
+
+ CSmileyImage* iThumbnailImage;
CSmileyImage* iAnimationImage;
- RSmileyTextArray iTextArray;
- RSmileyCodeArray iCodeArray;
+
};
typedef RArray<CSmileyIcon*> RSmileyIconPtrArray;
-NONSHARABLE_CLASS(TSmileyCodeIndex)
- {
-public:
- TSmileyCodeIndex(CSmileyIcon* aSmileyIcon, TInt aVariant=0) : iSmileyIcon(aSmileyIcon), iVariant(aVariant) {}
- CSmileyIcon* Smiley() const { return iSmileyIcon; }
- const TDesC& Text() const { return iSmileyIcon->Text(iVariant); }
-private:
- CSmileyIcon* iSmileyIcon;
- TInt iVariant;
- };
-typedef RArray<TSmileyCodeIndex> RSmileyCodeIndexArray;
////////////////////////////////////////////////////////////////////
@@ -123,82 +122,44 @@
void DoNextTaskL();
private:
- RSmileyIconPtrArray iLoadingTaskArray;
+ RSmileyIconPtrArray iTaskArray;
+ TBool iIsLoading;
};
////////////////////////////////////////////////////////////////////
-class CSmileyTextTreeNode;
-
-class CSmileyModel : public CBase, public MAknSmileyObserver
+class CSmileyModel : public CBase, public MSmileyIconObserver
{
public:
- CSmileyModel(MAknSmileyObserver* aObserver);
- virtual ~CSmileyModel();
+ CSmileyModel(MSmileyIconObserver* aObserver);
+ ~CSmileyModel();
public:
void LoadResourceL();
void ReleaseResource();
+ void LoadThumbnailAsyn(TInt aIndex);
+ void SetSize(const TSize& aSize);
public:
- TInt ConvertCodesToTextL(TDes& aText);
- TInt ConvertTextToCodesL(TDes& aText);
- const TDesC& Text(TChar aCode) const;
- TBool IsSmiley(TChar aCode) const;
-
-public:
- void SetSize(const TSize& aSize);
- void SetSizeByFont(const CFont* aFont);
-
-public:
- void DrawText(CWindowGc& aGc, const TDesC& aText, const CFont* aFont, const TPoint& aPosition) const;
- void DrawText(CWindowGc& aGc, const TDesC& aText, const TAknLayoutText& aLayout, TBool aUseLogicalToVisualConversion=EFalse) const;
- void DrawText(CWindowGc& aGc, const TDesC& aText, const CFont* aFont, const TRect& aBox, TInt aBaselineOffset,
- CGraphicsContext::TTextAlign aAlignment=CGraphicsContext::ELeft, TInt aLeftMargin=0) const;
+ enum TIconId
+ {
+ EIconSwitchToSmiley = 0,
+ EIconSwitchToSct,
+ EIconSmiley
+ };
-private:
- void DrawText(CWindowGc& aGc, const TDesC& aText, const CFont* aFont, const TRect& aBox, const TPoint& aOffset) const;
-
-public:
+ CSmileyIcon* operator[](TInt aIndex) const;
TInt Count() const;
- CAknSmileyIcon* Smiley(TChar aCode) const;
- CAknSmileyIcon* operator[](TInt aIndex) const;
private: // from MSmileyIconObserver
- virtual void SmileyStillImageLoaded(CAknSmileyIcon* aSmileyIcon);
- virtual void SmileyAnimationChanged(CAknSmileyIcon* aSmileyIcon);
-
-public: // for smiley picker
- CAknSmileyIcon* SwitchToSmileyIcon() const;
- CAknSmileyIcon* SwitchToSctIcon() const;
- TChar SwitchToSmileyCode() const;
- TChar SwitchToSctCode() const;
-
- TChar SmileyCode(TInt aIndex, TInt aVariant=0) const;
- TChar SmileyCode(const CAknSmileyIcon* aSmileyIcon) const;
-
- void LoadStillImagesL(const TDesC& aText);
- void PlayAnimationL(const TDesC& aText, TInt aRepeat=0, TInt aDelay=0);
- void StopAnimation(const TDesC& aText);
-
-private:
- void LoadStillImageL(TChar aChar);
- void PlayAnimationL(TChar aChar, TInt aRepeat=0, TInt aDelay=0);
- void StopAnimation(TChar aChar);
+ virtual void ThumbnailLoaded(CSmileyIcon* aSmileyIcon);
+ virtual void AnimationChanged(CSmileyIcon* aSmileyIcon);
private:
- const TDesC& Text(TInt aIndex, TInt aVariant=0) const;
- TInt ArrayCount() const;
-
-private:
- MAknSmileyObserver* iSmileyIconObserver;
- CSmileyTnumbnailAsynLoader iSmileyLoader;
+ MSmileyIconObserver* iSmileyIconObserver;
RSmileyIconPtrArray iSmileyIconArray;
- RSmileyCodeIndexArray iSmileyCodeIndexArray;
-
- CSmileyTextTreeNode* iTextSearchTree;
- TBuf<1024*2> iConvertBuffer;
+ CSmileyTnumbnailAsynLoader iSmileyThumbnailLoader;
};