void CVoIPForm::LoadFormValuesFromDataL() { TInt pageId = ActivePageId(); // Delete all controls not saved. RArray<CEikCaptionedControl*> aControls; ControlsOnPage(aControls, pageId); for (TInt i = 0; i < aControls.Count(); i++) { CEikCaptionedControl* control = ((CEikCaptionedControl*) aControls[i]); DeleteLine(control->iId, EFalse); } aControls.Reset(); // Create controls based on PhoneBook contact item. CVoIPAppUi* iAppUi = static_cast<CVoIPAppUi*> (iEikonEnv->EikAppUi()); CVoIPDocument* iDocument = static_cast<CVoIPDocument*> (iAppUi->Document()); TInt iModifyIndex = iDocument->ModifyIndex(); RPointerArray<CContact> contacts = iAppUi->GetPhoneBook()->GetContactsL(); if (iModifyIndex >= 0) { CContact* contact = contacts[iModifyIndex]; if (contact) { CPbkContactItem* contactItem = iAppUi->GetPhoneBook()->ReadContactItemLC( contact->GetEntryId()); CPbkFieldArray& fieldArray = contactItem->CardFields(); for (TInt i = 0; i < fieldArray.Count(); i++) { TPbkContactItemField field = fieldArray[i]; if (field.IsEmpty() == EFalse) { CPbkFieldInfo& fieldInfo = field.FieldInfo(); TInt id = fieldInfo.FieldId(); TAny* unused = 0; if (fieldInfo.CtrlType() == EPbkFieldCtrlTypeTextEditor) { TInt type = EEikCtEdwin; CEikEdwin * nEditor = static_cast<CEikEdwin*> (ControlOrNull(id)); if (!nEditor) { CEikEdwin* edwin = (CEikEdwin*) CreateLineByTypeL( field.Label(), pageId, id, type, unused); edwin->ConstructL(EEikEdwinNoHorizScrolling | EEikEdwinResizable, 10, 100, 1); edwin->SetTextL(&(field.Text())); } } else if (fieldInfo.CtrlType() == EPbkFieldCtrlTypeNumberEditor) { TInt type = EAknCtIntegerEdwin; CAknNumericEdwin * nEditor = static_cast<CAknNumericEdwin*> (ControlOrNull( id)); if (!nEditor) { CAknNumericEdwin* edwin = (CAknNumericEdwin*) CreateLineByTypeL( field.Label(), pageId, id, type, unused); edwin->ConstructL(EEikEdwinNoHorizScrolling | EEikEdwinResizable, 10, 100, 1); edwin->SetTextL(&(field.Text())); } } else if (fieldInfo.CtrlType() == EPbkFieldCtrlTypeDateEditor) { TInt type = EEikCtDateEditor; CEikDateEditor * nEditor = static_cast<CEikDateEditor*> (ControlOrNull( id)); if (!nEditor) { CEikDateEditor* editor = (CEikDateEditor*) CreateLineByTypeL( field.Label(), pageId, id, type, unused); editor->ConstructL(TTime(mindateTime), TTime( maxdateTime), field.DateTimeStorage()->Time(), ETrue); } Line(id)->ActivateL(); } } } SetChangesPending(ETrue); UpdatePageL(ETrue); CleanupStack::PopAndDestroy(); //contactItem } } }
void CVoIPForm::ProcessCommandL(TInt aCommandId) { CAknForm::ProcessCommandL(aCommandId); switch (aCommandId) { case EVoIPEditMenuItemCommand: { CAknForm::ProcessCommandL(EAknFormCmdEdit); break; } case EVoIPAddMenuItemCommand: { CAknForm::ProcessCommandL(EAknFormCmdAdd); CVoIPAppUi* iAppUi = static_cast<CVoIPAppUi*> (iEikonEnv->EikAppUi()); const CPbkFieldsInfo& fieldsInfo = iAppUi->GetPhoneBook()->GetFieldsInfo(); const TInt count = fieldsInfo.Count(); CDesCArray* list = new (ELeave) CDesCArrayFlat(count); CleanupStack::PushL(list); CArrayFixFlat<TInt>* correspondence = new (ELeave) CArrayFixFlat< TInt> (count); CleanupStack::PushL(correspondence); for (TInt i = 0; i < count; ++i) { CPbkFieldInfo* fieldInfo = fieldsInfo[i]; const TDesC* fieldName = &(fieldInfo->FieldName()); if (fieldName->Length() > 0) { _LIT(KFormat, "\t%S"); TBuf<256> fieldStr; fieldStr.Format(KFormat, fieldName); list->AppendL(fieldStr); correspondence->AppendL(i); } } TInt selectedIndex; CAknSelectionListDialog* dialog = CAknSelectionListDialog::NewL( selectedIndex, list, 0); if (dialog->ExecuteLD(R_LIST_DIALOG)) { CPbkFieldInfo* fieldInfo = fieldsInfo[(*correspondence)[selectedIndex]]; const TDesC& fieldName = fieldInfo->FieldName(); TInt id = fieldInfo->FieldId(); TInt pageId = ActivePageId(); TAny* unused = 0; if (fieldInfo->EditMode() == EPbkFieldEditModeAlpha) { TInt type = EEikCtEdwin; CEikEdwin* editor = (CEikEdwin*) CreateLineByTypeL( fieldName, pageId, id, type, unused); editor->ConstructL(EEikEdwinNoHorizScrolling | EEikEdwinResizable, 10, 100, 1); } else if (fieldInfo->EditMode() == EPbkFieldEditModeNumeric) { TInt type = EEikCtEdwin; CEikEdwin* editor = (CEikEdwin*) CreateLineByTypeL( fieldName, pageId, id, type, unused); editor->SetAknEditorInputMode(EAknEditorNumericInputMode); editor->SetAknEditorAllowedInputModes( EAknEditorNumericInputMode); editor->ConstructL(EEikEdwinNoHorizScrolling | EEikEdwinResizable, 10, 100, 1); } else if (fieldInfo->EditMode() == EPbkFieldEditModeDate) { TInt type = EEikCtDateEditor; CEikDateEditor* editor = (CEikDateEditor*) CreateLineByTypeL(fieldName, pageId, id, type, unused); editor->ConstructL(TTime(mindateTime), TTime(maxdateTime), TTime(nowdateTime), ETrue); } Line(id)->ActivateL(); SetChangesPending(ETrue); UpdatePageL(ETrue); } CleanupStack::PopAndDestroy(2); // list, correspondence break; } default: { CVoIPAppUi* iAppUi = static_cast<CVoIPAppUi*> (iEikonEnv->EikAppUi()); CVoIPListBoxView* iView = static_cast<CVoIPListBoxView*> (iAppUi->View(TUid::Uid( EVoIPListBoxViewId))); iView->HandleCommandL(aCommandId); break; } } }
void CUploadContainer::ConstructL(const TRect& aRect) { CALLSTACKITEM_N(_CL("CUploadContainer"), _CL("ConstructL")); iControls=new (ELeave) CArrayPtrFlat< CCoeControl >(10); CreateWindowL(); TRect r(TPoint(5, 5), TSize(aRect.Width()-10, 1)); if (iFileName.Right(3).CompareF(_L("jpg"))==0) { #ifndef __S60V2__ iMdaServer=CMdaServer::NewL(); iFileUtil=CMdaImageFileToBitmapUtility::NewL(*this, iMdaServer); #else iFileUtil=CMdaImageFileToBitmapUtility::NewL(*this, 0); #endif iFileUtil->OpenL(iFileName); scaled=false; iImgPlaceHolder=new (ELeave) CEikLabel; iControls->AppendL(iImgPlaceHolder); iImgPlaceHolder->SetContainerWindowL( *this ); iImgPlaceHolder->SetFont(iEikonEnv->DenseFont()); iImgPlaceHolder->SetTextL( _L("loading image...") ); r.SetHeight(IMG_HEIGHT); iImgPlaceHolder->SetRect(r); r.Move(0, r.Height()+4); } else { r.SetHeight(IMG_HEIGHT); r.Move(0, r.Height()+4); } TInt tagw=0; /* iTagLabel=new (ELeave) CEikLabel; iControls->AppendL(iTagLabel); iTagLabel->SetContainerWindowL( *this ); iTagLabel->SetTextL( _L("Tag:") ); r.SetHeight(12); iTagLabel->SetRect(r); tagw=iTagLabel->MinimumSize().iWidth+4; r.Move( tagw , 0); r.SetWidth(r.Width()-tagw); */ TBuf<100> tag; Settings().GetSettingL(SETTING_UPLOAD_TAG, tag); if (tag.Length() == 0) tag=KTag(); iTagEdit=new (ELeave) CEikEdwin; iControls->AppendL(iTagEdit); iTagEdit->SetContainerWindowL( *this ); iTagEdit->ConstructL(); iTagEdit->SetTextL(&tag); iTagEdit->AddEdwinObserverL(this); r.SetHeight(16); iTagEdit->SetRect(r); iTagEdit->ActivateL(); r.Move(-tagw, r.Height()+4); r.SetWidth(r.Width()+tagw); TBool no_descr; if (iTagOnly) no_descr=true; else no_descr=false; if (!no_descr) { TInt height=56; /* iDescriptionLabel=new (ELeave) CEikLabel; iControls->AppendL(iDescriptionLabel); iDescriptionLabel->SetContainerWindowL( *this ); iDescriptionLabel->SetTextL( _L("Description:") ); r.SetHeight(12); iDescriptionLabel->SetRect(r); r.Move(0, r.Height()+4); height-=16; */ r.Move(0, 2); iDescriptionEdit=new (ELeave) CEikEdwin; iControls->AppendL(iDescriptionEdit); iDescriptionEdit->SetContainerWindowL( *this ); iDescriptionEdit->ConstructL(); iDescriptionEdit->AddEdwinObserverL(this); iDescriptionEdit->SetTextL(&(KDescription())); r.SetHeight(height); iDescriptionEdit->SetRect(r); r.Move(0, r.Height()+4); SetEditSelected(iDescriptionEdit, true); SetEditActive(iDescriptionEdit, true); } else { SetEditSelected(iTagEdit, true); SetEditActive(iTagEdit, true); } SetRect(aRect); ActivateL(); }