23 #include <eiktxlbm.h> |
23 #include <eiktxlbm.h> |
24 #include <barsread.h> |
24 #include <barsread.h> |
25 #include <AknsDrawUtils.h> |
25 #include <AknsDrawUtils.h> |
26 #include <AknsBasicBackgroundControlContext.h> |
26 #include <AknsBasicBackgroundControlContext.h> |
27 #include <AknUtils.h> |
27 #include <AknUtils.h> |
|
28 #include <s32mem.h> |
28 |
29 |
29 #include <MPbk2ContactNameFormatter.h> |
30 #include <MPbk2ContactNameFormatter.h> |
30 #include <MVPbkStoreContact.h> |
31 #include <MVPbkStoreContact.h> |
31 #include <CPbk2IconArray.h> |
32 #include <CPbk2IconArray.h> |
32 #include <Pbk2UIControls.rsg> |
33 #include <Pbk2UIControls.rsg> |
37 #include "ccappmycard.hrh" |
38 #include "ccappmycard.hrh" |
38 #include "ccappmycard.h" |
39 #include "ccappmycard.h" |
39 #include "ccappmycardcontainer.h" |
40 #include "ccappmycardcontainer.h" |
40 #include "ccappmycardcommon.h" |
41 #include "ccappmycardcommon.h" |
41 #include "ccappmycardheadercontrol.h" |
42 #include "ccappmycardheadercontrol.h" |
42 #include "ccappmycardlistboxmodel.h" |
|
43 #include "ccappmycardplugin.h" |
43 #include "ccappmycardplugin.h" |
44 #include "ccafactoryextensionnotifier.h" |
44 #include "ccafactoryextensionnotifier.h" |
45 #include "spbcontentprovider.h" |
45 |
|
46 #include <spbcontentprovider.h> |
|
47 #include <spbcontactdatamodel.h> |
46 |
48 |
47 #include <MVPbkContactFieldTextData.h> |
49 #include <MVPbkContactFieldTextData.h> |
48 #include <ccaextensionfactory.hrh> |
50 #include <ccaextensionfactory.hrh> |
|
51 #include <mccaparameter.h> |
49 |
52 |
50 #include <aknlayoutscalable_avkon.cdl.h> |
53 #include <aknlayoutscalable_avkon.cdl.h> |
51 #include <layoutmetadata.cdl.h> |
54 #include <layoutmetadata.cdl.h> |
52 #include <AknsUtils.h> |
55 #include <AknsUtils.h> |
53 #include <ccappmycardpluginrsc.rsg> |
56 #include <ccappmycardpluginrsc.rsg> |
63 #include <RPbk2LocalizedResourceFile.h> |
66 #include <RPbk2LocalizedResourceFile.h> |
64 #include <Pbk2DataCaging.hrh> |
67 #include <Pbk2DataCaging.hrh> |
65 #include <pbk2nameordercenrep.h> |
68 #include <pbk2nameordercenrep.h> |
66 #include <centralrepository.h> |
69 #include <centralrepository.h> |
67 #include <Phonebook2PrivateCRKeys.h> |
70 #include <Phonebook2PrivateCRKeys.h> |
|
71 #include <CPbk2PresentationContact.h> |
|
72 #include <CPbk2PresentationContactFieldCollection.h> |
68 |
73 |
69 #include <CPbk2ApplicationServices.h> |
74 #include <CPbk2ApplicationServices.h> |
70 #include <CPbk2ServiceManager.h> |
75 #include <CPbk2ServiceManager.h> |
71 #include <TPbk2IconId.h> |
76 #include <TPbk2IconId.h> |
72 #include <CPbk2IconInfo.h> |
77 #include <CPbk2IconInfo.h> |
73 |
78 #include <csxhelp/phob.hlp.hrh> |
|
79 #include <Pbk2UID.h> |
|
80 |
|
81 #include <f32file.h> |
74 |
82 |
75 // unnamed namespace |
83 // unnamed namespace |
76 namespace |
84 namespace |
77 { |
85 { |
78 _LIT( KMyCardIconDefaultFileName, "\\resource\\apps\\phonebook2ece.mif" ); |
86 _LIT( KMyCardIconDefaultFileName, "\\resource\\apps\\phonebook2ece.mif" ); |
79 const TText KLineChange = '\n'; |
|
80 const TInt KSubComponentCount = 2; |
87 const TInt KSubComponentCount = 2; |
81 const TInt KNumberOfContacts = 1; |
88 const TInt KNumberOfContacts = 1; |
82 const TInt KNoContacts = 0; |
89 const TInt KNoContacts = 0; |
83 const TInt KPbk2UiSpecNameOrderFirstNameLastName = 0; |
90 const TInt KPbk2UiSpecNameOrderFirstNameLastName = 0; |
84 const TInt KPbk2UiSpecNameOrderLastNameFirstName = 1; |
91 const TInt KPbk2UiSpecNameOrderLastNameFirstName = 1; |
91 // ---------------------------------------------------------------------------- |
98 // ---------------------------------------------------------------------------- |
92 // |
99 // |
93 CCCAppMyCardContainer::CCCAppMyCardContainer( |
100 CCCAppMyCardContainer::CCCAppMyCardContainer( |
94 CCCAppMyCardPlugin& aPlugin ) : |
101 CCCAppMyCardPlugin& aPlugin ) : |
95 iPlugin( aPlugin ), |
102 iPlugin( aPlugin ), |
|
103 iModel( aPlugin.Model() ), |
96 iNameOrder(KPbk2UiSpecNameOrderFirstNameLastName) |
104 iNameOrder(KPbk2UiSpecNameOrderFirstNameLastName) |
97 { |
105 { |
98 } |
106 } |
99 |
107 |
100 // ---------------------------------------------------------------------------- |
108 // ---------------------------------------------------------------------------- |
101 // CCCAppMyCardContainer::~CCCAppMyCardContainer() |
109 // CCCAppMyCardContainer::~CCCAppMyCardContainer() |
102 // ---------------------------------------------------------------------------- |
110 // ---------------------------------------------------------------------------- |
103 // |
111 // |
104 CCCAppMyCardContainer::~CCCAppMyCardContainer() |
112 CCCAppMyCardContainer::~CCCAppMyCardContainer() |
105 { |
113 { |
|
114 iModel.SetClipListBoxText( NULL ); |
106 iPlugin.MyCard().RemoveObserver( this ); |
115 iPlugin.MyCard().RemoveObserver( this ); |
107 delete iBackground; |
116 delete iBackground; |
108 delete iHeaderCtrl; |
117 delete iHeaderCtrl; |
109 delete iListBox; |
118 delete iListBox; |
110 delete iImageLoader; |
119 delete iImageLoader; |
134 |
143 |
135 // Details list UI control |
144 // Details list UI control |
136 iListBox = new(ELeave) CAknFormDoubleGraphicStyleListBox; |
145 iListBox = new(ELeave) CAknFormDoubleGraphicStyleListBox; |
137 iListBox->ConstructL( this, EAknListBoxSelectionList ); |
146 iListBox->ConstructL( this, EAknListBoxSelectionList ); |
138 iListBox->SetContainerWindowL( *this ); |
147 iListBox->SetContainerWindowL( *this ); |
139 |
148 iListBox->EnableStretching( EFalse ); |
|
149 |
140 // Setup listbox |
150 // Setup listbox |
141 iListBox->View()->SetListEmptyTextL( KNullDesC ); |
151 iListBox->View()->SetListEmptyTextL( KNullDesC ); |
142 iListBox->CreateScrollBarFrameL( ETrue ); |
152 iListBox->CreateScrollBarFrameL( ETrue ); |
143 iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( |
153 iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( |
144 CEikScrollBarFrame::EOff, |
154 CEikScrollBarFrame::EOff, |
145 CEikScrollBarFrame::EAuto ); |
155 CEikScrollBarFrame::EAuto ); |
146 |
156 |
147 // Create icons for listbox. |
157 // Create icons for listbox. |
148 TResourceReader reader; |
158 TResourceReader reader; |
149 iCoeEnv->CreateResourceReaderLC( reader, R_PBK2_FIELDTYPE_ICONS ); |
159 iCoeEnv->CreateResourceReaderLC( reader, R_PBK2_FIELDTYPE_ICONS ); |
150 CPbk2IconArray* iconArray = CPbk2IconArray::NewL( reader ); |
160 iIconArray = CPbk2IconArray::NewL( reader ); |
151 |
161 |
152 // Calculate preferred size for xsp service icons. |
162 // Calculate preferred size for xsp service icons. |
153 TRect mainPane; |
163 TRect mainPane; |
154 AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane ); |
164 AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane ); |
155 TAknLayoutRect listLayoutRect; |
165 TAknLayoutRect listLayoutRect; |
179 service.iMask, |
189 service.iMask, |
180 size ); |
190 size ); |
181 TPbk2IconId id = TPbk2IconId( uid, service.iBitmapId ); |
191 TPbk2IconId id = TPbk2IconId( uid, service.iBitmapId ); |
182 CPbk2IconInfo* info = CPbk2IconInfo::NewLC( |
192 CPbk2IconInfo* info = CPbk2IconInfo::NewLC( |
183 id, service.iBitmap, service.iMask, size ); |
193 id, service.iBitmap, service.iMask, size ); |
184 iconArray->AppendIconL( info ); |
194 iIconArray->AppendIconL( info ); |
185 CleanupStack::Pop( info ); |
195 CleanupStack::Pop( info ); |
186 } |
196 } |
187 } |
197 } |
188 |
198 |
189 Release( appServices ); |
199 Release( appServices ); |
190 |
200 |
191 iListBox->ItemDrawer()->ColumnData()->SetIconArray( iconArray ); |
201 iListBox->ItemDrawer()->ColumnData()->SetIconArray( iIconArray ); |
192 CleanupStack::PopAndDestroy(); // reader |
202 CleanupStack::PopAndDestroy(); // reader |
193 |
203 |
194 // Create listbox model |
204 // setup model |
195 iModel = CCCAppMyCardListBoxModel::NewL( |
205 iModel.SetClipListBoxText( this ); |
196 iPlugin.MyCard(), *iCoeEnv, *iListBox, *iconArray ); |
206 iModel.UpdateIconsL( *iIconArray ); |
197 iListBox->Model()->SetItemTextArray( iModel ); |
207 SetNameForHeaderControlL(); |
|
208 |
|
209 iListBox->Model()->SetItemTextArray( &iModel.ListBoxModel() ); |
|
210 iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); |
198 |
211 |
199 // Get the skin background for the view |
212 // Get the skin background for the view |
200 iBackground = CAknsBasicBackgroundControlContext::NewL( |
213 iBackground = CAknsBasicBackgroundControlContext::NewL( |
201 KAknsIIDQsnBgAreaMain, TRect(0, 0, 0, 0), EFalse ); |
214 KAknsIIDQsnBgAreaMain, TRect(0, 0, 0, 0), EFalse ); |
202 |
215 |
371 iImageSelectionPopup = NULL; |
384 iImageSelectionPopup = NULL; |
372 |
385 |
373 delete iDetailsPopup; |
386 delete iDetailsPopup; |
374 iDetailsPopup = NULL; |
387 iDetailsPopup = NULL; |
375 |
388 |
376 if( iImageLoader ) |
389 if( !iImageLoader ) |
|
390 { |
|
391 if( !iModel.IsEmpty() ) |
|
392 { |
|
393 TPtrC8 data( iModel.Data( CSpbContactDataModel::EDataImageContent ) ); |
|
394 TInt err = KErrNotFound; |
|
395 if( data.Length() ) |
|
396 { |
|
397 // thumbnail image in model -> load it |
|
398 TPtrC file( iModel.Text( CSpbContactDataModel::ETextImageFileName ) ); |
|
399 TRAP( err, |
|
400 iImageLoader = CCCAppMyCardImageLoader::NewL( *this ); |
|
401 iImageLoader->LoadImageL( data, file, iHeaderCtrl->ThumbnailSize() ); |
|
402 ); |
|
403 } |
|
404 |
|
405 if( err ) |
|
406 { |
|
407 // no thumbnail image available -> load default |
|
408 ThumbnailLoadError( KErrNotFound ); |
|
409 } |
|
410 } |
|
411 } |
|
412 else |
377 { |
413 { |
378 TRAP_IGNORE( iImageLoader->ResizeImageL(iHeaderCtrl->ThumbnailSize())); |
414 TRAP_IGNORE( iImageLoader->ResizeImageL(iHeaderCtrl->ThumbnailSize())); |
379 } |
415 } |
380 |
416 |
381 DrawDeferred(); |
417 DrawDeferred(); |
487 // CCCAppMyCardContainer::MyCardEventL() |
523 // CCCAppMyCardContainer::MyCardEventL() |
488 // ---------------------------------------------------------------------------- |
524 // ---------------------------------------------------------------------------- |
489 // |
525 // |
490 void CCCAppMyCardContainer::MyCardEventL( MMyCardObserver::TEvent aEvent ) |
526 void CCCAppMyCardContainer::MyCardEventL( MMyCardObserver::TEvent aEvent ) |
491 { |
527 { |
492 if( aEvent == MMyCardObserver::EEventContactLoaded ) |
528 if( aEvent == MMyCardObserver::EEventContactChanged || |
493 { |
529 ( aEvent == MMyCardObserver::EEventContactLoaded && iModel.IsEmpty() ) ) |
|
530 { |
|
531 CCCAppMyCard& mycard = iPlugin.MyCard(); |
|
532 |
|
533 iModel.SetDataL( mycard.PresentationContactL(), iIconArray ); |
|
534 if( iListBox ) |
|
535 { |
|
536 iListBox->HandleItemAdditionL(); |
|
537 } |
|
538 |
494 // Set own contact name |
539 // Set own contact name |
495 CCCAppMyCard& mycard = iPlugin.MyCard(); |
|
496 |
|
497 SetNameForHeaderControlL(); |
540 SetNameForHeaderControlL(); |
498 |
541 |
499 // start loading image |
542 // start loading image |
500 if( !iImageLoader ) |
543 if( !iImageLoader ) |
501 { |
544 { |
524 // |
567 // |
525 void CCCAppMyCardContainer::ThumbnailReady( CFbsBitmap* aThumbnail ) |
568 void CCCAppMyCardContainer::ThumbnailReady( CFbsBitmap* aThumbnail ) |
526 { |
569 { |
527 // takes ownership |
570 // takes ownership |
528 TRAPD( err, iHeaderCtrl->SetPortraitBitmapL( aThumbnail ) ); |
571 TRAPD( err, iHeaderCtrl->SetPortraitBitmapL( aThumbnail ) ); |
529 if( err ) |
572 if( err != KErrNone ) |
530 { |
573 { |
531 // TODO: how to handle? ignore? show note? |
574 iPlugin.HandleError( err ); |
532 } |
575 } |
533 // Contact Image set. Set the flag. |
576 // Contact Image set. Set the flag. |
534 iMyCardImageSet = ETrue; |
577 iMyCardImageSet = ETrue; |
535 } |
578 } |
536 |
579 |
722 // CCCAppMyCardContainer::FocusedFieldIndex |
765 // CCCAppMyCardContainer::FocusedFieldIndex |
723 // -------------------------------------------------------------------------- |
766 // -------------------------------------------------------------------------- |
724 // |
767 // |
725 TInt CCCAppMyCardContainer::FocusedFieldIndex() const |
768 TInt CCCAppMyCardContainer::FocusedFieldIndex() const |
726 { |
769 { |
727 if( iModel ) |
770 TInt index = KErrNotFound; |
728 { |
771 TRAP_IGNORE( |
729 return iModel->FieldIndex( iListBox->CurrentItemIndex() ); |
772 CPbk2PresentationContact& contact = iPlugin.MyCard().PresentationContactL(); |
730 } |
773 index = contact.PresentationFields().StoreIndexOfField( |
731 return KErrNotFound; |
774 iModel.PresentationFieldIndex( iListBox->CurrentItemIndex() ) ); |
|
775 ); |
|
776 return index; |
732 } |
777 } |
733 |
778 |
734 // -------------------------------------------------------------------------- |
779 // -------------------------------------------------------------------------- |
735 // CCCAppMyCardContainer::SetFocusedFieldIndex |
780 // CCCAppMyCardContainer::SetFocusedFieldIndex |
736 // -------------------------------------------------------------------------- |
781 // -------------------------------------------------------------------------- |
1006 // void CCCAppMyCardContainer::SetNameForHeaderContorl() |
1051 // void CCCAppMyCardContainer::SetNameForHeaderContorl() |
1007 //------------------------------------------------------------------------------ |
1052 //------------------------------------------------------------------------------ |
1008 // |
1053 // |
1009 void CCCAppMyCardContainer::SetNameForHeaderControlL() |
1054 void CCCAppMyCardContainer::SetNameForHeaderControlL() |
1010 { |
1055 { |
1011 // Set own contact name |
1056 TPtrC fname( iModel.Text( CSpbContactDataModel::ETextFirstName ) ); |
1012 CCCAppMyCard& mycard = iPlugin.MyCard(); |
1057 TPtrC lname( iModel.Text( CSpbContactDataModel::ETextLastName ) ); |
1013 // Get the myCard store and the field set |
|
1014 MVPbkStoreContact& storeContact = mycard.StoreContact(); |
|
1015 MVPbkStoreContactFieldCollection& fields = storeContact.Fields(); |
|
1016 |
|
1017 TInt fieldCount = fields.FieldCount(); |
|
1018 |
|
1019 TPtrC firstName( KNullDesC ); |
|
1020 TPtrC lastName( KNullDesC ); |
|
1021 |
|
1022 // Check all the fields and store first and last name |
|
1023 for ( TInt i = 0; i < fieldCount; ++i ) |
|
1024 { |
|
1025 MVPbkStoreContactField& field = fields.FieldAt( i ); |
|
1026 const MVPbkFieldType* fieldType = field.BestMatchingFieldType(); |
|
1027 |
|
1028 if ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_FIRSTNAME ) |
|
1029 { |
|
1030 MVPbkContactFieldData& contactField = field.FieldData(); |
|
1031 firstName.Set( MVPbkContactFieldTextData::Cast(contactField).Text()); |
|
1032 } |
|
1033 |
|
1034 if ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_LASTNAME ) |
|
1035 { |
|
1036 MVPbkContactFieldData& contactField = field.FieldData(); |
|
1037 lastName.Set( MVPbkContactFieldTextData::Cast(contactField).Text()); |
|
1038 } |
|
1039 } |
|
1040 |
|
1041 switch ( iNameOrder ) |
1058 switch ( iNameOrder ) |
1042 { |
1059 { |
1043 case KPbk2UiSpecNameOrderFirstNameLastName: |
1060 case KPbk2UiSpecNameOrderFirstNameLastName: |
1044 { |
1061 { |
1045 iHeaderCtrl->SetLabel1TextL( firstName ); |
1062 iHeaderCtrl->SetLabel1TextL( fname ); |
1046 iHeaderCtrl->SetLabel2TextL( lastName ); |
1063 iHeaderCtrl->SetLabel2TextL( lname ); |
1047 break; |
1064 break; |
1048 } |
1065 } |
1049 case KPbk2UiSpecNameOrderLastNameFirstName: // FALL THROUGH |
1066 case KPbk2UiSpecNameOrderLastNameFirstName: // FALL THROUGH |
1050 default: |
1067 default: |
1051 { |
1068 { |
1052 iHeaderCtrl->SetLabel2TextL( firstName ); |
1069 iHeaderCtrl->SetLabel2TextL( fname ); |
1053 iHeaderCtrl->SetLabel1TextL( lastName ); |
1070 iHeaderCtrl->SetLabel1TextL( lname ); |
1054 break; |
1071 break; |
1055 } |
1072 } |
1056 } |
1073 } |
1057 } |
1074 } |
1058 |
1075 |
1059 //------------------------------------------------------------------------------ |
1076 //------------------------------------------------------------------------------ |
1060 // void CCCAppMyCardContainer::MyCardHeaderControlClickL() |
1077 // void CCCAppMyCardContainer::MyCardHeaderControlClickL() |
1061 //------------------------------------------------------------------------------ |
1078 //------------------------------------------------------------------------------ |
1070 iCoeEnv->CreateResourceReaderLC( reader , resourceReaderId ); |
1087 iCoeEnv->CreateResourceReaderLC( reader , resourceReaderId ); |
1071 iImageSelectionPopup->ConstructFromResourceL( reader ); |
1088 iImageSelectionPopup->ConstructFromResourceL( reader ); |
1072 CleanupStack::PopAndDestroy(); // reader |
1089 CleanupStack::PopAndDestroy(); // reader |
1073 } |
1090 } |
1074 |
1091 |
1075 // MyCard image has been set. Dim optiosn menu items accordingly |
1092 // MyCard image has been set. Dim option menu items accordingly |
1076 if( iMyCardImageSet ) |
1093 if( iMyCardImageSet ) |
1077 { |
1094 { |
1078 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusViewImageCmd, EFalse); |
1095 // If the image has been deleted in the memory, "view image" should be hidden. |
|
1096 TPtrC imageFileName( iModel.Text( CSpbContactDataModel::ETextImageFileName ) ); |
|
1097 RFs& fs( iCoeEnv->FsSession() ); |
|
1098 TEntry entry; |
|
1099 iImageSelectionPopup->SetItemDimmed( ECCAppMyCardCmdStylusViewImageCmd, |
|
1100 ( fs.Entry( imageFileName , entry ) == KErrNone ) ? EFalse : ETrue ); |
1079 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusChangeImageCmd, EFalse); |
1101 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusChangeImageCmd, EFalse); |
1080 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusRemoveImageCmd, EFalse); |
1102 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusRemoveImageCmd, EFalse); |
1081 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusAddImageCmd, ETrue); |
1103 iImageSelectionPopup->SetItemDimmed(ECCAppMyCardCmdStylusAddImageCmd, ETrue); |
1082 } |
1104 } |
1083 // MyCard image has not been set |
1105 // MyCard image has not been set |
1145 iDetailsPopup->SetPosition( pos ); |
1167 iDetailsPopup->SetPosition( pos ); |
1146 |
1168 |
1147 CCoeControl::HandlePointerEventL( aPointerEvent ); |
1169 CCoeControl::HandlePointerEventL( aPointerEvent ); |
1148 } |
1170 } |
1149 |
1171 |
|
1172 // -------------------------------------------------------------------------- |
|
1173 // CCCAppMyCardContainer::ClipFromBeginning |
|
1174 // -------------------------------------------------------------------------- |
|
1175 // |
|
1176 TBool CCCAppMyCardContainer::ClipFromBeginning( |
|
1177 TDes& aBuffer, TInt aItemIndex, TInt aSubCellNumber ) |
|
1178 { |
|
1179 if( iListBox ) |
|
1180 { |
|
1181 return AknTextUtils::ClipToFit( aBuffer, AknTextUtils::EClipFromBeginning, |
|
1182 iListBox, aItemIndex, aSubCellNumber ); |
|
1183 } |
|
1184 return EFalse; |
|
1185 } |
|
1186 |
1150 // --------------------------------------------------------------------------- |
1187 // --------------------------------------------------------------------------- |
1151 // CCCAppCommLauncherContainer::PosToScreenCoordinates |
1188 // CCCAppCommLauncherContainer::PosToScreenCoordinates |
1152 // --------------------------------------------------------------------------- |
1189 // --------------------------------------------------------------------------- |
1153 // |
1190 // |
1154 void CCCAppMyCardContainer::PosToScreenCoordinates( |
1191 void CCCAppMyCardContainer::PosToScreenCoordinates( |
1156 { |
1193 { |
1157 TPoint leftUpperPos = aControl->PositionRelativeToScreen(); |
1194 TPoint leftUpperPos = aControl->PositionRelativeToScreen(); |
1158 aPos += leftUpperPos; |
1195 aPos += leftUpperPos; |
1159 } |
1196 } |
1160 |
1197 |
|
1198 // ---------------------------------------------------------------------------- |
|
1199 // CCCAppMyCardContainer::GetHelpContext() |
|
1200 // ---------------------------------------------------------------------------- |
|
1201 // |
|
1202 void CCCAppMyCardContainer::GetHelpContext(TCoeHelpContext& aContext) const |
|
1203 { |
|
1204 aContext.iMajor.iUid = KPbk2UID3; |
|
1205 aContext.iContext = KHLP_CCA_MY_CARD; |
|
1206 } |
|
1207 |
1161 // End of File |
1208 // End of File |