33 _LIT(KDialogMinimum, "minimum"); |
33 _LIT(KDialogMinimum, "minimum"); |
34 _LIT(KDialogValue, "value"); |
34 _LIT(KDialogValue, "value"); |
35 _LIT(KDialogAutoClose, "autoClose"); |
35 _LIT(KDialogAutoClose, "autoClose"); |
36 _LIT(KDialogText, "text"); |
36 _LIT(KDialogText, "text"); |
37 _LIT(KDialogIconName, "iconName"); |
37 _LIT(KDialogIconName, "iconName"); |
38 _LIT(KDialogTextAlign, "textAlignment"); |
38 _LIT(KCancelAction, "cancelAction"); |
39 _LIT(KDialogIconAlign, "iconAlignment"); |
|
40 _LIT(KPrimaryActionText, "primaryActionText"); |
|
41 _LIT(KPrimaryActionNull, "primaryActionNull"); |
|
42 _LIT(KPluginIdentifier, "com.nokia.hb.deviceprogressdialog/1.0"); |
39 _LIT(KPluginIdentifier, "com.nokia.hb.deviceprogressdialog/1.0"); |
43 _LIT(KAnimationDefinition, "animationDefinition"); |
40 _LIT(KAnimationDefinition, "animationDefinition"); |
44 |
|
45 const TInt KAlignCenterLeft = 0x0080 | 0x0001; //Qt::AlignVCenter | Qt::AlignLeft |
|
46 const TInt KAlignCenter = 0x0080 | 0x0004; //Qt::AlignCenter |
|
47 |
41 |
48 NONSHARABLE_CLASS(CHbDeviceProgressDialogSymbianPrivate) : public CBase, |
42 NONSHARABLE_CLASS(CHbDeviceProgressDialogSymbianPrivate) : public CBase, |
49 public MHbDeviceDialogObserver |
43 public MHbDeviceDialogObserver |
50 { |
44 { |
51 public: |
45 public: |
59 bool Visible() const; |
53 bool Visible() const; |
60 |
54 |
61 void AddVariantL(const TDesC& aKey, const TAny* aData, |
55 void AddVariantL(const TDesC& aKey, const TAny* aData, |
62 CHbSymbianVariant::TType aDataType, CHbSymbianVariantMap* map); |
56 CHbSymbianVariant::TType aDataType, CHbSymbianVariantMap* map); |
63 const CHbSymbianVariant* Variant(const TDesC& aKey) const; |
57 const CHbSymbianVariant* Variant(const TDesC& aKey) const; |
|
58 static HBufC *CreateActionDataLC(TBool aNull, const TDesC &text); |
64 |
59 |
65 public: // MHbDeviceDialogObserver |
60 public: // MHbDeviceDialogObserver |
66 void DataReceived(CHbSymbianVariantMap& aData); |
61 void DataReceived(CHbSymbianVariantMap& aData); |
67 void DeviceDialogClosed(TInt aCompletionCode); |
62 void DeviceDialogClosed(TInt aCompletionCode); |
68 |
63 |
140 AddVariantL(KDialogType, &iType, CHbSymbianVariant::EInt, iVariantMap); |
132 AddVariantL(KDialogType, &iType, CHbSymbianVariant::EInt, iVariantMap); |
141 AddVariantL(KDialogMaximum, &iMaximum, CHbSymbianVariant::EInt, iVariantMap); |
133 AddVariantL(KDialogMaximum, &iMaximum, CHbSymbianVariant::EInt, iVariantMap); |
142 AddVariantL(KDialogMinimum, &iMinimum, CHbSymbianVariant::EInt, iVariantMap); |
134 AddVariantL(KDialogMinimum, &iMinimum, CHbSymbianVariant::EInt, iVariantMap); |
143 AddVariantL(KDialogAutoClose, &iAutoClose, CHbSymbianVariant::EBool, iVariantMap); |
135 AddVariantL(KDialogAutoClose, &iAutoClose, CHbSymbianVariant::EBool, iVariantMap); |
144 AddVariantL(KDialogValue, &iProgressValue, CHbSymbianVariant::EInt, iVariantMap); |
136 AddVariantL(KDialogValue, &iProgressValue, CHbSymbianVariant::EInt, iVariantMap); |
145 AddVariantL(KDialogTextAlign, &iTextAlign, CHbSymbianVariant::EInt, iVariantMap); |
|
146 AddVariantL(KDialogIconAlign, &iIconAlign, CHbSymbianVariant::EInt, iVariantMap); |
|
147 |
137 |
148 if (iText.Length() > 0) |
138 if (iText.Length() > 0) |
149 { |
139 { |
150 AddVariantL(KDialogText, &iText, CHbSymbianVariant::EDes, iVariantMap); |
140 AddVariantL(KDialogText, &iText, CHbSymbianVariant::EDes, iVariantMap); |
151 } |
141 } |
159 } |
149 } |
160 if (iButton.iFlags.iTextValid || iButton.iFlags.iIsNullValid) |
150 if (iButton.iFlags.iTextValid || iButton.iFlags.iIsNullValid) |
161 { |
151 { |
162 iButton.iFlags.iTextModified = false; |
152 iButton.iFlags.iTextModified = false; |
163 iButton.iFlags.iIsNullModified = false; |
153 iButton.iFlags.iIsNullModified = false; |
164 TBool isNull = iButton.iFlags.iIsNull; |
154 HBufC *actionData = CreateActionDataLC(iButton.iFlags.iIsNull, iButton.iText); |
165 if (isNull) |
155 AddVariantL(KCancelAction, actionData, CHbSymbianVariant::EDes, iVariantMap); |
166 { |
156 CleanupStack::PopAndDestroy(); // actionData |
167 AddVariantL(KPrimaryActionNull, &isNull, CHbSymbianVariant::EBool, iVariantMap); |
|
168 } |
|
169 else |
|
170 { |
|
171 AddVariantL(KPrimaryActionText, &iButton.iText, CHbSymbianVariant::EDes, iVariantMap); |
|
172 } |
|
173 } |
157 } |
174 iButton.iFlags.iPressed = false; |
158 iButton.iFlags.iPressed = false; |
175 User::LeaveIfError(iDeviceDialog->Show(KPluginIdentifier, *iVariantMap, this)); |
159 User::LeaveIfError(iDeviceDialog->Show(KPluginIdentifier, *iVariantMap, this)); |
176 |
160 |
177 iVisible = ETrue; |
161 iVisible = ETrue; |
219 { |
203 { |
220 AddVariantL(KDialogValue, &iProgressValue, CHbSymbianVariant::EInt, iVariantMap); |
204 AddVariantL(KDialogValue, &iProgressValue, CHbSymbianVariant::EInt, iVariantMap); |
221 AddVariantL(KDialogValue, &iProgressValue, CHbSymbianVariant::EInt, map); |
205 AddVariantL(KDialogValue, &iProgressValue, CHbSymbianVariant::EInt, map); |
222 } |
206 } |
223 |
207 |
224 variant = Variant(KDialogTextAlign); |
|
225 if (variant && *variant->Value<TInt>() != iTextAlign) |
|
226 { |
|
227 AddVariantL(KDialogTextAlign, &iTextAlign, CHbSymbianVariant::EInt, iVariantMap); |
|
228 AddVariantL(KDialogTextAlign, &iTextAlign, CHbSymbianVariant::EInt, map); |
|
229 } |
|
230 |
|
231 variant = Variant(KDialogIconAlign); |
|
232 if (variant && *variant->Value<TInt>() != iIconAlign) |
|
233 { |
|
234 AddVariantL(KDialogIconAlign, &iIconAlign, CHbSymbianVariant::EInt, iVariantMap); |
|
235 AddVariantL(KDialogIconAlign, &iIconAlign, CHbSymbianVariant::EInt, map); |
|
236 } |
|
237 |
|
238 variant = Variant(KDialogText); |
208 variant = Variant(KDialogText); |
239 if (variant && iText == *variant->Value<TDesC>()) |
209 if (variant && iText == *variant->Value<TDesC>()) |
240 { |
210 { |
241 AddVariantL(KDialogText, &iText, CHbSymbianVariant::EDes, iVariantMap); |
211 AddVariantL(KDialogText, &iText, CHbSymbianVariant::EDes, iVariantMap); |
242 AddVariantL(KDialogText, &iText, CHbSymbianVariant::EDes, map); |
212 AddVariantL(KDialogText, &iText, CHbSymbianVariant::EDes, map); |
258 |
228 |
259 if (iButton.iFlags.iTextModified || iButton.iFlags.iIsNullModified) |
229 if (iButton.iFlags.iTextModified || iButton.iFlags.iIsNullModified) |
260 { |
230 { |
261 iButton.iFlags.iTextModified = false; |
231 iButton.iFlags.iTextModified = false; |
262 iButton.iFlags.iIsNullModified = false; |
232 iButton.iFlags.iIsNullModified = false; |
263 TBool isNull = iButton.iFlags.iIsNull; |
233 HBufC *actionData = CreateActionDataLC(iButton.iFlags.iIsNull, iButton.iText); |
264 if (isNull) |
234 AddVariantL(KCancelAction, actionData, CHbSymbianVariant::EDes, iVariantMap); |
265 { |
235 CleanupStack::PopAndDestroy(); // actionData |
266 AddVariantL(KPrimaryActionNull, &isNull, CHbSymbianVariant::EBool, iVariantMap); |
|
267 } |
|
268 else |
|
269 { |
|
270 AddVariantL(KPrimaryActionText, &iButton.iText, CHbSymbianVariant::EDes, iVariantMap); |
|
271 } |
|
272 } |
236 } |
273 |
237 |
274 User::LeaveIfError(iDeviceDialog->Update(*map)); |
238 User::LeaveIfError(iDeviceDialog->Update(*map)); |
275 delete map; |
239 delete map; |
276 map = 0; |
240 map = 0; |
281 _LIT(KKey, "act"); |
245 _LIT(KKey, "act"); |
282 const CHbSymbianVariant* variant = aData.Get(KKey); |
246 const CHbSymbianVariant* variant = aData.Get(KKey); |
283 if (variant) |
247 if (variant) |
284 { |
248 { |
285 const TDesC *value = variant->Value<const TDesC>(); |
249 const TDesC *value = variant->Value<const TDesC>(); |
286 _LIT(KPrimary, "p"); |
250 _LIT(KCancel, "c"); |
287 if (value && *value == KPrimary) |
251 if (value && *value == KCancel) |
288 { |
252 { |
289 iButton.iFlags.iPressed = true; |
253 iButton.iFlags.iPressed = true; |
290 if (iObserver) |
254 if (iObserver) |
291 { |
255 { |
292 iObserver->ProgressDialogCancelled(q); |
256 iObserver->ProgressDialogCancelled(q); |
327 const CHbSymbianVariant* CHbDeviceProgressDialogSymbianPrivate::Variant(const TDesC& aKey) const |
291 const CHbSymbianVariant* CHbDeviceProgressDialogSymbianPrivate::Variant(const TDesC& aKey) const |
328 { |
292 { |
329 return iVariantMap->Get(aKey); |
293 return iVariantMap->Get(aKey); |
330 } |
294 } |
331 |
295 |
|
296 // Pack into a string a data for cancel button |
|
297 HBufC *CHbDeviceProgressDialogSymbianPrivate::CreateActionDataLC(TBool aNull, const TDesC &text) |
|
298 { |
|
299 HBufC *actionData; |
|
300 if (aNull) |
|
301 { |
|
302 actionData = HBufC::NewL(0); |
|
303 } |
|
304 else |
|
305 { |
|
306 _LIT(KtextTag, "t:"); |
|
307 actionData = HBufC::NewL(text.Length() + KtextTag().Length()); |
|
308 TPtr ptr = actionData->Des(); |
|
309 ptr.Append(KtextTag); |
|
310 ptr.Append(text); |
|
311 } |
|
312 CleanupStack::PushL(actionData); |
|
313 return actionData; |
|
314 } |
|
315 |
332 /*! |
316 /*! |
333 \class MHbDeviceProgressDialogObserver |
317 \class MHbDeviceProgressDialogObserver |
334 \brief MHbDeviceProgressDialogObserver is an observer interface for observing CHbDeviceProgressDialogSymbian. |
318 \brief MHbDeviceProgressDialogObserver is an observer interface for observing CHbDeviceProgressDialogSymbian. |
335 */ |
319 */ |
336 |
320 |
442 \sa HbIconAnimationManager::addDefinitionFile |
426 \sa HbIconAnimationManager::addDefinitionFile |
443 \note Animation definition files must be stored to a place where they |
427 \note Animation definition files must be stored to a place where they |
444 can be accessed. |
428 can be accessed. |
445 |
429 |
446 \sa HbDeviceProgressDialog, HbDeviceDialog |
430 \sa HbDeviceProgressDialog, HbDeviceDialog |
447 \proto |
431 \stable |
448 \hbwidgets |
432 \hbwidgets |
449 */ |
433 */ |
450 /*! |
434 /*! |
451 \enum CHbDeviceProgressDialogSymbian::TType |
435 \enum CHbDeviceProgressDialogSymbian::TType |
452 Progress dialog types. |
436 Progress dialog types. |
734 */ |
706 */ |
735 EXPORT_C TPtrC CHbDeviceProgressDialogSymbian::AnimationDefinition() const |
707 EXPORT_C TPtrC CHbDeviceProgressDialogSymbian::AnimationDefinition() const |
736 { |
708 { |
737 return d->iAnimationDefinition; |
709 return d->iAnimationDefinition; |
738 } |
710 } |
739 |
|
740 /*! |
|
741 Sets the text alignment. |
|
742 \param aAlign Qt defined alignment options can used. |
|
743 \sa TextAlignment() |
|
744 */ |
|
745 EXPORT_C void CHbDeviceProgressDialogSymbian::SetTextAlignment(TInt aAlign) |
|
746 { |
|
747 d->iTextAlign = aAlign; |
|
748 } |
|
749 |
|
750 /*! |
|
751 Returns the text alignment. |
|
752 |
|
753 The default value is Qt::AlignLeft|Qt::AlignVCenter. |
|
754 \sa SetTextAlignment() |
|
755 */ |
|
756 EXPORT_C TInt CHbDeviceProgressDialogSymbian::TextAlignment() const |
|
757 { |
|
758 return d->iTextAlign; |
|
759 } |
|
760 |
|
761 /*! |
|
762 Sets the icon alignment. |
|
763 \param aAlign Qt defined alignment options can used. |
|
764 \sa IconAlignment() |
|
765 */ |
|
766 EXPORT_C void CHbDeviceProgressDialogSymbian::SetIconAlignment(TInt aAlign) |
|
767 { |
|
768 d->iIconAlign = aAlign; |
|
769 } |
|
770 |
|
771 /*! |
|
772 Returns the icon alignment. |
|
773 |
|
774 The default value is Qt::AlignCenter. |
|
775 \sa SetIconAlignment() |
|
776 */ |
|
777 EXPORT_C TInt CHbDeviceProgressDialogSymbian::IconAlignment() const |
|
778 { |
|
779 return d->iIconAlign; |
|
780 } |
|
781 |
|
782 /*! |
|
783 Sets the text wrapping. |
|
784 \param aWrap When set, the text is drawn with Qt::TextWordWrap enabled meaning that |
|
785 lines breaks are at appropriate point, e.g. at word boundaries. |
|
786 \sa TextWrapping() |
|
787 |
|
788 \deprecated CHbDeviceProgressDialogSymbian::SetTextWrapping(int) |
|
789 is deprecated. Will be removed. |
|
790 |
|
791 */ |
|
792 EXPORT_C void CHbDeviceProgressDialogSymbian::SetTextWrapping(TBool aWrap) |
|
793 { |
|
794 d->iWrap = aWrap; |
|
795 } |
|
796 |
|
797 /*! |
|
798 Returns the text wrapping setting. |
|
799 |
|
800 The default value is true. |
|
801 \sa SetTextWrapping() |
|
802 |
|
803 \deprecated CHbDeviceProgressDialogSymbian::TextWrapping() const |
|
804 is deprecated. Will be removed. |
|
805 */ |
|
806 EXPORT_C TBool CHbDeviceProgressDialogSymbian::TextWrapping() const |
|
807 { |
|
808 return d->iWrap; |
|
809 } |
|
810 |
711 |
811 /*! |
712 /*! |
812 Sets progress dialog box button text. The dialog gets updated next time ShowL() or UpdateL() |
713 Sets progress dialog box button text. The dialog gets updated next time ShowL() or UpdateL() |
813 is called. |
714 is called. |
814 |
715 |