|
S60 3rd Edition SDK for Symbian OS Example Applications Guide |
#include <LandmarksInfoModel.h>
Public Member Functions | |
| CLandmarksInfoModel (CLandmarksApplicationEngine &aEngine) | |
| ~CLandmarksInfoModel () | |
| CDesCArray * | GetLandmarkInfoL (CPosLandmark &aLandmark, RArray< TInt > &aFieldIds) |
Private Member Functions | |
| void | AddInfoFieldL (const TDesC &aCaption, const TDesC &aText, CDesCArray &aArray, RArray< TInt > &aFieldIds) |
| void | AddLocationFieldsL (TLocality &aLocation, CDesCArray &aArray, RArray< TInt > &aFieldIds) |
| void | AddCategoryFieldsL (CPosLandmark &aLandmark, CDesCArray &aArray, RArray< TInt > &aFieldIds) |
| void | AddTextFieldL (TInt aCaptionId, TDesC &aText, CDesCArray &aArray, RArray< TInt > &aFieldIds) |
Private Attributes | |
| CLandmarksApplicationEngine & | iEngine |
| The application engine used for accessing landmarks. | |
| TRealFormat | iRealFormat |
| Defines how real numbers are displayed. | |
Definition at line 33 of file LandmarksInfoModel.h.
|
|
C++ constructor. Definition at line 59 of file LandmarksInfoModel.cpp. References iRealFormat. 00061 : iEngine(aEngine) 00062 { 00063 // Configure real format 00064 const TChar KDecimalChar = '.'; 00065 iRealFormat.iPlaces = KNrOfDecimals; 00066 iRealFormat.iPoint = KDecimalChar; 00067 iRealFormat.iTriLen = 0; 00068 iRealFormat.iWidth = KPosLmMaxTextFieldLength; 00069 iRealFormat.iType = KRealFormatFixed; 00070 }
|
|
|
Destructor. Definition at line 73 of file LandmarksInfoModel.cpp.
|
|
||||||||||||
|
Generates descriptor array from landmark's info. Caller takes ownership of returned object
Definition at line 83 of file LandmarksInfoModel.cpp. References AddCategoryFieldsL(), AddLocationFieldsL(), AddTextFieldL(), and iRealFormat. 00086 { 00087 TPtrC fieldValue; 00088 aFieldIds.Reset(); 00089 00090 const TInt KInfoArrayGranularity = 16; 00091 CDesCArray* infoArray = new (ELeave) CDesCArrayFlat(KInfoArrayGranularity); 00092 00093 // Format landmark name 00094 fieldValue.Set(KNullDesC); 00095 aLandmark.GetLandmarkName(fieldValue); 00096 00097 AddTextFieldL(ELandmarkNameField, fieldValue, *infoArray, aFieldIds); 00098 00099 // Format description 00100 fieldValue.Set(KNullDesC); 00101 aLandmark.GetLandmarkDescription(fieldValue); 00102 00103 AddTextFieldL(ELandmarkDescField, fieldValue, *infoArray, aFieldIds); 00104 00105 // Format categories 00106 AddCategoryFieldsL(aLandmark, *infoArray, aFieldIds); 00107 00108 // Format location fields 00109 TLocality location; 00110 aLandmark.GetPosition(location); 00111 AddLocationFieldsL(location, *infoArray, aFieldIds); 00112 00113 // Format coverage Radius 00114 TReal32 coverageRadius; 00115 TBuf<KPosLmMaxTextFieldLength> radiusBuf; 00116 TInt res = aLandmark.GetCoverageRadius(coverageRadius); 00117 if (res != KErrNotFound) 00118 { 00119 radiusBuf.AppendNum(coverageRadius, iRealFormat); 00120 } 00121 00122 AddTextFieldL(ELandmarkRadiusField, radiusBuf, *infoArray, aFieldIds); 00123 00124 // Format street; 00125 fieldValue.Set(KNullDesC); 00126 aLandmark.GetPositionField(EPositionFieldStreet, fieldValue); 00127 00128 AddTextFieldL(ELandmarkStreetField, fieldValue, *infoArray, aFieldIds); 00129 00130 // Format postalCode; 00131 fieldValue.Set(KNullDesC); 00132 aLandmark.GetPositionField(EPositionFieldPostalCode, fieldValue); 00133 00134 AddTextFieldL(ELandmarkPostalField, fieldValue, *infoArray, aFieldIds); 00135 00136 // Format city; 00137 fieldValue.Set(KNullDesC); 00138 aLandmark.GetPositionField(EPositionFieldCity, fieldValue); 00139 00140 AddTextFieldL(ELandmarkCityField, fieldValue, *infoArray, aFieldIds); 00141 00142 // Format country 00143 fieldValue.Set(KNullDesC); 00144 aLandmark.GetPositionField(EPositionFieldCountry, fieldValue); 00145 00146 AddTextFieldL(ELandmarkCountryField, fieldValue, *infoArray, aFieldIds); 00147 00148 return infoArray; 00149 }
|
|
||||||||||||||||||||
|
Adds new string describing landmark field to the info array. Adds also field's ID to array of field IDs.
|
|
||||||||||||||||
|
Adds location fields of the landmark to arrays.
Definition at line 188 of file LandmarksInfoModel.cpp. References AddTextFieldL(), LandmarksUtils::FloatToDesL(), iRealFormat, and LandmarksUtils::LatLongFloatToDegMinSecDesL(). 00192 { 00193 TBuf<KPosLmMaxTextFieldLength> fieldValue; 00194 00195 // Format latitude in deg min sec format 00196 LandmarksUtils::LatLongFloatToDegMinSecDesL(aLocation.Latitude(), fieldValue); 00197 AddTextFieldL(ELandmarkLatitudeField, fieldValue, aArray, aFieldIds); 00198 fieldValue.Zero(); 00199 00200 // Format longitude in deg min sec format 00201 LandmarksUtils::LatLongFloatToDegMinSecDesL(aLocation.Longitude(), fieldValue); 00202 AddTextFieldL(ELandmarkLongitudeField, fieldValue, aArray, aFieldIds); 00203 fieldValue.Zero(); 00204 00205 // Format altitude 00206 LandmarksUtils::FloatToDesL(aLocation.Altitude(), fieldValue, iRealFormat); 00207 AddTextFieldL(ELandmarkAltitudeField, fieldValue, aArray, aFieldIds); 00208 00209 // Format horizontal accuracy 00210 LandmarksUtils::FloatToDesL(aLocation.HorizontalAccuracy(), fieldValue, iRealFormat); 00211 AddTextFieldL(ELandmarkHorAccField, fieldValue, aArray, aFieldIds); 00212 00213 // Format vertical accuracy 00214 LandmarksUtils::FloatToDesL(aLocation.VerticalAccuracy(), fieldValue, iRealFormat); 00215 AddTextFieldL(ELandmarkVerAccField, fieldValue, aArray, aFieldIds); 00216 }
|
|
||||||||||||||||
|
Adds the category fields to arrays.
Definition at line 224 of file LandmarksInfoModel.cpp. References AddTextFieldL(), CLandmarksApplicationEngine::CategoryLC(), and iEngine. 00228 { 00229 RArray< TPosLmItemId > categories; 00230 CleanupClosePushL(categories); 00231 aLandmark.GetCategoriesL(categories); 00232 TInt nrOfCategories = categories.Count(); 00233 00234 for (TInt i = 0; i < nrOfCategories; i++) 00235 { 00236 TPtrC categoryName; 00237 CPosLandmarkCategory* category = iEngine.CategoryLC(categories[i]); 00238 category->GetCategoryName(categoryName); 00239 00240 AddTextFieldL(ELandmarkCategoryField, categoryName, aArray, aFieldIds); 00241 00242 CleanupStack::PopAndDestroy(category); 00243 } 00244 00245 CleanupStack::PopAndDestroy(&categories); 00246 }
|
|
||||||||||||||||||||
|
Adds other text field and to arrays.
Definition at line 157 of file LandmarksInfoModel.cpp. 00162 { 00163 if (aText.Length()) 00164 { 00165 HBufC* caption = CCoeEnv::Static()-> 00166 AllocReadResourceAsDes16LC(KFieldCaptions[aFieldId]); 00167 00168 const TInt KNumTabsAndOther = 10; 00169 HBufC* item = HBufC::NewLC( 00170 caption->Length() + aText.Length() + KNumTabsAndOther); 00171 00172 _LIT(KItemFormat, "%S\t%S\t\t"); 00173 item->Des().Format(KItemFormat, caption, &aText); 00174 00175 // append new item to the list 00176 aFieldIds.AppendL(aFieldId); 00177 aArray.AppendL(*item); 00178 CleanupStack::PopAndDestroy(2, caption); 00179 } 00180 }
|
|
© Nokia 2006 |