34 //////////////////////////////////////////////////////////////////// |
34 //////////////////////////////////////////////////////////////////// |
35 |
35 |
36 const TInt KSmileyNameLength = 8; |
36 const TInt KSmileyNameLength = 8; |
37 typedef TBuf<KSmileyNameLength> TSmileyText; |
37 typedef TBuf<KSmileyNameLength> TSmileyText; |
38 typedef RArray<TSmileyText> RSmileyTextArray; |
38 typedef RArray<TSmileyText> RSmileyTextArray; |
|
39 typedef RArray<TChar> RSmileyCodeArray; |
39 |
40 |
40 NONSHARABLE_CLASS(TSmileyIconInfo) |
41 NONSHARABLE_CLASS(TSmileyIconInfo) |
41 { |
42 { |
42 public: |
43 public: |
43 TSmileyIconInfo(); |
44 TSmileyIconInfo(); |
78 TInt Index() const; |
79 TInt Index() const; |
79 void LoadStillImageL(TInt aDelay=0); |
80 void LoadStillImageL(TInt aDelay=0); |
80 TBool StillImageIsReadyToDraw() const; |
81 TBool StillImageIsReadyToDraw() const; |
81 TBool AnimationImageIsReadyToDraw() const; |
82 TBool AnimationImageIsReadyToDraw() const; |
82 |
83 |
83 void AddText(const TDesC& aText); |
84 void AddVariant(const TDesC& aText, TChar aBaseCode); |
84 const TDesC& Text(TInt aVariate=0) const; |
85 TInt VariantCount() const; |
85 TInt TextVariate() const; |
86 const TDesC& Text(TInt aVariant=0) const; |
|
87 TChar Code(TInt aVariant=0) const; |
86 |
88 |
87 private: |
89 private: |
88 MAknSmileyObserver* iSmileyIconObserver; |
90 MAknSmileyObserver* iSmileyIconObserver; |
89 TInt iIndex; |
91 TInt iIndex; |
90 CSmileyImage* iStillImage; |
92 CSmileyImage* iStillImage; |
91 CSmileyImage* iAnimationImage; |
93 CSmileyImage* iAnimationImage; |
92 RSmileyTextArray iTextArray; |
94 RSmileyTextArray iTextArray; |
|
95 RSmileyCodeArray iCodeArray; |
93 }; |
96 }; |
94 |
97 |
95 typedef RArray<CSmileyIcon*> RSmileyIconPtrArray; |
98 typedef RArray<CSmileyIcon*> RSmileyIconPtrArray; |
|
99 NONSHARABLE_CLASS(TSmileyCodeIndex) |
|
100 { |
|
101 public: |
|
102 TSmileyCodeIndex(CSmileyIcon* aSmileyIcon, TInt aVariant=0) : iSmileyIcon(aSmileyIcon), iVariant(aVariant) {} |
|
103 CSmileyIcon* Smiley() const { return iSmileyIcon; } |
|
104 const TDesC& Text() const { return iSmileyIcon->Text(iVariant); } |
|
105 private: |
|
106 CSmileyIcon* iSmileyIcon; |
|
107 TInt iVariant; |
|
108 }; |
|
109 typedef RArray<TSmileyCodeIndex> RSmileyCodeIndexArray; |
96 |
110 |
97 |
111 |
98 //////////////////////////////////////////////////////////////////// |
112 //////////////////////////////////////////////////////////////////// |
99 |
113 |
100 class CSmileyTnumbnailAsynLoader : public CBase |
114 class CSmileyTnumbnailAsynLoader : public CBase |
159 CAknSmileyIcon* SwitchToSmileyIcon() const; |
173 CAknSmileyIcon* SwitchToSmileyIcon() const; |
160 CAknSmileyIcon* SwitchToSctIcon() const; |
174 CAknSmileyIcon* SwitchToSctIcon() const; |
161 TChar SwitchToSmileyCode() const; |
175 TChar SwitchToSmileyCode() const; |
162 TChar SwitchToSctCode() const; |
176 TChar SwitchToSctCode() const; |
163 |
177 |
164 TChar SmileyCode(TInt aIndex, TInt aVariate=0) const; |
178 TChar SmileyCode(TInt aIndex, TInt aVariant=0) const; |
165 TChar SmileyCode(CAknSmileyIcon* aSmileyIcon) const; |
179 TChar SmileyCode(const CAknSmileyIcon* aSmileyIcon) const; |
166 void LoadStillImagesL(const TDesC& aText); |
180 void LoadStillImagesL(const TDesC& aText); |
167 void LoadStillImageL(TChar aChar); |
181 void LoadStillImageL(TChar aChar); |
168 |
182 |
169 private: |
183 private: |
170 const TDesC& Text(TInt aIndex, TInt aVariate=0) const; |
184 const TDesC& Text(TInt aIndex, TInt aVariant=0) const; |
171 TInt ArrayCount() const; |
185 TInt ArrayCount() const; |
172 TChar EncodeSmileyCode(TInt aIndex, TInt aVariate) const; |
|
173 TBool DecodeSmileyCode(TChar aCode, TInt& aIndex, TInt& aVariate) const; |
|
174 |
186 |
175 private: |
187 private: |
176 MAknSmileyObserver* iSmileyIconObserver; |
188 MAknSmileyObserver* iSmileyIconObserver; |
177 CSmileyTnumbnailAsynLoader iSmileyLoader; |
189 CSmileyTnumbnailAsynLoader iSmileyLoader; |
178 RSmileyIconPtrArray iSmileyIconArray; |
190 RSmileyIconPtrArray iSmileyIconArray; |
179 TUint iBaseCode; |
191 RSmileyCodeIndexArray iSmileyCodeIndexArray; |
180 |
192 |
181 CSmileyTextTreeNode* iTextSearchTree; |
193 CSmileyTextTreeNode* iTextSearchTree; |
182 TBuf<1024*2> iConvertBuffer; |
194 TBuf<1024*2> iConvertBuffer; |
183 |
195 |
184 }; |
196 }; |