diff -r acc370d7f2f6 -r 2275db202402 DirectPrint/DirectPrintApp/ui/src/directprintpropertyview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DirectPrint/DirectPrintApp/ui/src/directprintpropertyview.cpp Tue May 11 14:10:02 2010 +0800 @@ -0,0 +1,633 @@ +/* +* Copyright (c) 2010 Kanrikogaku Kenkyusho, Ltd. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Kanrikogaku Kenkyusho, Ltd. - Initial contribution +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include + +#include "clog.h" +#include "directprintapp.hrh" +#include "directprintmodel.h" +#include "directprintpropertyview.h" +#include "DirectPrintUiPluginMgr.h" +#include "DirectPrintUiPlugin.h" + +CDirectPrintPropertyView::CDirectPrintPropertyView() + { + iListBox = NULL; + } + +CDirectPrintPropertyView::~CDirectPrintPropertyView() + { + AppUi()->RemoveFromViewStack(*this, iListBox); + delete iListBox; + } + +CDirectPrintPropertyView* CDirectPrintPropertyView::NewL() + { + CDirectPrintPropertyView* self = CDirectPrintPropertyView::NewLC(); + CleanupStack::Pop(self); + return self; + } + +CDirectPrintPropertyView* CDirectPrintPropertyView::NewLC() + { + CDirectPrintPropertyView* self = new(ELeave) CDirectPrintPropertyView(); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +void CDirectPrintPropertyView::ConstructL() + { + LOG("CDirectPrintPropertyView::ConstructL BEGIN"); + BaseConstructL(R_DIRECTPRINT_PROPERTYSETTING_VIEW); + + iViewId = TUid::Uid(EDirectPrintPropertyViewId); + LOG("CDirectPrintPropertyView::ConstructL END"); + } + +void CDirectPrintPropertyView::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EAknSoftkeyBack: + { + AppUi()->HandleCommandL(EDirectPrintCmdIdPropertySettingViewBack); + } + break; + default: + { + AppUi()->HandleCommandL(aCommand); + } + break; + } + } + +void CDirectPrintPropertyView::OfferToolbarEventL(TInt aCommand) + { + switch (aCommand) + { + case EDirectPrintCmdIdPropertySettingViewPreview: + { + AppUi()->HandleCommandL(aCommand); + } + break; + default: + break; + } + } + +void CDirectPrintPropertyView::ChangeTabL(TInt aTabIndex) + { + iTabIndex = aTabIndex; + iListBox->SettingItemArray()->ResetAndDestroy(); + LoadListL(); + iListBox->LoadSettingsL(); + iListBox->DrawNow(); + } + +void CDirectPrintPropertyView::DoActivateL(const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/) + { + LOG("CDirectPrintPropertyView::DoActivateL BEGIN"); + CAknToolbar* toolbar = AppUi()->CurrentFixedToolbar(); + toolbar->SetToolbarObserver(this); + + ReadDataL(); + + // Create list box + if (!iListBox) + { + iListBox = CDirectPrintSettingListBox::NewL(ClientRect()); + iListBox->SetMopParent(this); + iListBox->ConstructFromResourceL(R_DIRECTPRINT_PROPERTYSETTING_SETTING_ITEM_LIST); + iListBox->ActivateL(); + } + ChangeTabL(EDirectPrintPaperSettingTab); + iListBox->LoadSettingsL(); + AppUi()->AddToStackL(*this, iListBox); + iListBox->MakeVisible(ETrue); + iListBox->DrawNow(); + + // set the title pane + SetActiveTitleL(R_DIRECTPRINT_PROPERTYSETTING_TITLE); + LOG("CDirectPrintPropertyView::DoActivateL END"); + } + +void CDirectPrintPropertyView::DoDeactivate() + { + LOG("CDirectPrintPropertyView::DoDeactivate BEGIN"); + TInt err = 0; + + if (iListBox) + { + TRAP(err, iListBox->StoreSettingsL()); + TRAP(err, WriteDataL()); + + iListBox->MakeVisible(EFalse); + AppUi()->RemoveFromViewStack(*this, iListBox); + } + LOG("CDirectPrintPropertyView::DoDeactivate END"); + } + +void CDirectPrintPropertyView::LoadListL() + { + LOG("CDirectPrintPropertyView::LoadListL BEGIN"); + + switch (iTabIndex) + { + case EDirectPrintPaperSettingTab: + { + LoadPaperTabL(); + } + break; + case EDirectPrintPageSettingTab: + { + LoadPageTabL(); + } + break; + case EDirectPrintMarginSettingTab: + { + LoadMarginTabL(); + } + break; + case EDirectPrintHeaderSettingTab: + { + LoadHeaderTabL(); + } + break; + case EDirectPrintFooterSettingTab: + { + LoadFooterTabL(); + } + break; + default: + break; + } + + // Set extend setting item + CDirectPrintUiPlugin* plugin = GetPluginMgr().CurrentPluginL(); + if (plugin) + { + plugin->LoadExtendItemsL(*(iListBox->SettingItemArray()), iTabIndex); + } + + iListBox->HandleChangeInItemArrayOrVisibilityL(); + LOG("CDirectPrintPropertyView::LoadListL END"); + } + +void CDirectPrintPropertyView::ReadDataL() + { + LOG("CDirectPrintPropertyView::ReadDataL BEGIN"); + + CDirectPrintModel& model = GetModel(); + CPrinterProperty* property = model.GetCurrentPrinterPropertyL(TUid::Uid(0)); + + if (property) + { + TInt count = property->iPropertyItems.Count(); + for (TInt i=0; iiPropertyItems[i].iItemId) + { + case EDirectPrintPaperPaperSize: + { + iPaperSize = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintPaperOrientation: + { + iOrientation = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintPaperHight: + { + iHight = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintPaperWidth: + { + iWidth = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintPagePrintPage: + { + iPrintPage = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintPagePrintRange: + { + iPrintRange.Copy(property->iPropertyItems[i].iItemTextValue); + } + break; + case EDirectPrintPageCopy: + { + iCopy = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintMarginLeftMargin: + { + iLeftMargin = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintMarginRightMargin: + { + iRightMargin = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintMarginTopMargin: + { + iTopMargin = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintMarginBottomMargin: + { + iBottomMargin = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintHeaderHeaderText: + { + iHeaderText.Copy(property->iPropertyItems[i].iItemTextValue); + } + break; + case EDirectPrintHeaderDistance: + { + iHeaderDistance = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintHeaderFirstPage: + { + iHeaderFirstPage = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintFooterFooterText: + { + iFooterText.Copy(property->iPropertyItems[i].iItemTextValue); + } + break; + case EDirectPrintFooterDistance: + { + iFooterDistance = property->iPropertyItems[i].iItemValue; + } + break; + case EDirectPrintFooterFirstPage: + { + iFooterFirstPage = property->iPropertyItems[i].iItemValue; + } + break; + default: + { + // Set extend setting item + CDirectPrintUiPlugin* plugin = GetPluginMgr().CurrentPluginL(); + if (plugin) + { + plugin->ReadDataL(property->iPropertyItems[i]); + } + } + break; + } + } + } + else + { + model.SetCurrentProperty(model.PropertyCount()); + NewDataL(); + } + + LOG("CDirectPrintPropertyView::ReadDataL END"); + } + +void CDirectPrintPropertyView::WriteDataL() + { + LOG("CDirectPrintPropertyView::WriteDataL BEGIN"); + + CDirectPrintModel& model = GetModel(); + CPrinterProperty* property = new (ELeave) CPrinterProperty(); + CleanupStack::PushL(property); + property->iPrinterId = model.GetCurrentPrinterIdL(); + property->iApplicationId = 0; + + TDirectPrintPropertyData data1; + data1.iItemType = EDirectPrintPaperSettingTab; + data1.iItemId = EDirectPrintPaperPaperSize; + //data1.iItemName.Copy(); + data1.iItemValue = iPaperSize; + property->iPropertyItems.Append(data1); + + TDirectPrintPropertyData data2; + data2.iItemType = EDirectPrintPaperSettingTab; + data2.iItemId = EDirectPrintPaperOrientation; + //data2.iItemName.Copy(); + data2.iItemValue = iOrientation; + property->iPropertyItems.Append(data2); + + TDirectPrintPropertyData data3; + data3.iItemType = EDirectPrintPaperSettingTab; + data3.iItemId = EDirectPrintPaperHight; + //data3.iItemName.Copy(); + data3.iItemValue = iHight; + property->iPropertyItems.Append(data3); + + TDirectPrintPropertyData data4; + data4.iItemType = EDirectPrintPaperSettingTab; + data4.iItemId = EDirectPrintPaperWidth; + //data4.iItemName.Copy(); + data4.iItemValue = iWidth; + property->iPropertyItems.Append(data4); + + TDirectPrintPropertyData data5; + data5.iItemType = EDirectPrintPageSettingTab; + data5.iItemId = EDirectPrintPagePrintPage; + //data5.iItemName.Copy(); + data5.iItemValue = iPrintPage; + property->iPropertyItems.Append(data5); + + TDirectPrintPropertyData data6; + data6.iItemType = EDirectPrintPageSettingTab; + data6.iItemId = EDirectPrintPagePrintRange; + //data6.iItemName.Copy(); + data6.iItemTextValue.Copy(iPrintRange); + property->iPropertyItems.Append(data6); + + TDirectPrintPropertyData data7; + data7.iItemType = EDirectPrintPageSettingTab; + data7.iItemId = EDirectPrintPageCopy; + //data7.iItemName.Copy(); + data7.iItemValue = iCopy; + property->iPropertyItems.Append(data7); + + TDirectPrintPropertyData data8; + data8.iItemType = EDirectPrintMarginSettingTab; + data8.iItemId = EDirectPrintMarginLeftMargin; + //data8.iItemName.Copy(); + data8.iItemValue = iLeftMargin; + property->iPropertyItems.Append(data8); + + TDirectPrintPropertyData data9; + data9.iItemType = EDirectPrintMarginSettingTab; + data9.iItemId = EDirectPrintMarginRightMargin; + //data9.iItemName.Copy(); + data9.iItemValue = iRightMargin; + property->iPropertyItems.Append(data9); + + TDirectPrintPropertyData data10; + data10.iItemType = EDirectPrintMarginSettingTab; + data10.iItemId = EDirectPrintMarginTopMargin; + //data10.iItemName.Copy(); + data10.iItemValue = iTopMargin; + property->iPropertyItems.Append(data10); + + TDirectPrintPropertyData data11; + data11.iItemType = EDirectPrintMarginSettingTab; + data11.iItemId = EDirectPrintMarginBottomMargin; + //data11.iItemName.Copy(); + data11.iItemValue = iBottomMargin; + property->iPropertyItems.Append(data11); + + TDirectPrintPropertyData data12; + data12.iItemType = EDirectPrintHeaderSettingTab; + data12.iItemId = EDirectPrintHeaderHeaderText; + //data12.iItemName.Copy(); + data12.iItemTextValue.Copy(iHeaderText); + property->iPropertyItems.Append(data12); + + TDirectPrintPropertyData data13; + data13.iItemType = EDirectPrintHeaderSettingTab; + data13.iItemId = EDirectPrintHeaderDistance; + //data13.iItemName.Copy(); + data13.iItemValue = iHeaderDistance; + property->iPropertyItems.Append(data13); + + TDirectPrintPropertyData data14; + data14.iItemType = EDirectPrintHeaderSettingTab; + data14.iItemId = EDirectPrintHeaderFirstPage; + //data14.iItemName.Copy(); + data14.iItemValue = iHeaderFirstPage; + property->iPropertyItems.Append(data14); + + TDirectPrintPropertyData data15; + data15.iItemType = EDirectPrintFooterSettingTab; + data15.iItemId = EDirectPrintFooterFooterText; + //data15.iItemName.Copy(); + data15.iItemTextValue.Copy(iFooterText); + property->iPropertyItems.Append(data15); + + TDirectPrintPropertyData data16; + data16.iItemType = EDirectPrintFooterSettingTab; + data16.iItemId = EDirectPrintFooterDistance; + //data16.iItemName.Copy(); + data16.iItemValue = iFooterDistance; + property->iPropertyItems.Append(data16); + + TDirectPrintPropertyData data17; + data17.iItemType = EDirectPrintFooterSettingTab; + data17.iItemId = EDirectPrintFooterFirstPage; + //data17.iItemName.Copy(); + data17.iItemValue = iFooterFirstPage; + property->iPropertyItems.Append(data17); + + // Set extend setting item + CDirectPrintUiPlugin* plugin = GetPluginMgr().CurrentPluginL(); + if (plugin) + { + plugin->WriteDataL(property->iPropertyItems); + } + + CleanupStack::Pop(property); + model.SetPrinterPropertyL(property); + + LOG("CDirectPrintPropertyView::WriteDataL END"); + } + +void CDirectPrintPropertyView::NewDataL() + { + LOG("CDirectPrintPropertyView::NewDataL BEGIN"); + + iPaperSize = 0; + iOrientation = 0; + iHight = 0; + iWidth = 0; + iPrintPage = 0; + iPrintRange.Copy(_L("")); + iCopy = 1; + iLeftMargin = 2; + iRightMargin = 2; + iTopMargin = 2; + iBottomMargin = 2; + iHeaderText.Copy(_L("")); + iHeaderDistance = 0; + iHeaderFirstPage = 0; + iFooterText.Copy(_L("")); + iFooterDistance = 0; + iFooterFirstPage = 0; + + // Set extend setting item + CDirectPrintUiPlugin* plugin = GetPluginMgr().CurrentPluginL(); + if (plugin) + { + plugin->NewDataL(); + } + + LOG("CDirectPrintPropertyView::NewDataL END"); + } + +void CDirectPrintPropertyView::LoadPaperTabL() + { + TBuf<25> itemTitle; + + // Set common setting item + CAknEnumeratedTextPopupSettingItem* item1 = new (ELeave) CAknEnumeratedTextPopupSettingItem(1, iPaperSize); + CleanupStack::PushL(item1); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_PAPERSIZE); + item1->ConstructL(EFalse, 1, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_POPUP_SETTING_PAGE, -1, 0, R_DIRECTPRINT_PROPERTYSETTING_SIZE_POPUP_SETTING_TEXTS); + iListBox->SettingItemArray()->AppendL(item1); + CleanupStack::Pop(item1); + + CAknEnumeratedTextPopupSettingItem* item2 = new (ELeave) CAknEnumeratedTextPopupSettingItem(2, iOrientation); + CleanupStack::PushL(item2); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_ORIENTATION); + item2->ConstructL(EFalse, 2, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_POPUP_SETTING_PAGE, -1, 0, R_DIRECTPRINT_PROPERTYSETTING_ORIENTATION_POPUP_SETTING_TEXTS); + iListBox->SettingItemArray()->AppendL(item2); + CleanupStack::Pop(item2); + + CAknEnumeratedTextPopupSettingItem* item3 = new (ELeave) CAknEnumeratedTextPopupSettingItem(3, iMediaType); + CleanupStack::PushL(item3); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_MEDIATYPE); + item3->ConstructL(EFalse, 3, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_POPUP_SETTING_PAGE, -1, 0, R_DIRECTPRINT_PROPERTYSETTING_MEDIATYPE_POPUP_SETTING_TEXTS); + iListBox->SettingItemArray()->AppendL(item3); + CleanupStack::Pop(item3); + } + +void CDirectPrintPropertyView::LoadPageTabL() + { + TBuf<25> itemTitle; + + // Set common setting item + CAknEnumeratedTextPopupSettingItem* item1 = new (ELeave) CAknEnumeratedTextPopupSettingItem(1, iPrintPage); + CleanupStack::PushL(item1); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_PRINTPAGE); + item1->ConstructL(EFalse, 1, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_POPUP_SETTING_PAGE, -1, 0, R_DIRECTPRINT_PROPERTYSETTING_RANGE_POPUP_SETTING_TEXTS); + iListBox->SettingItemArray()->AppendL(item1); + CleanupStack::Pop(item1); + + CAknTextSettingItem* item2 = new (ELeave) CAknTextSettingItem(2, iPrintRange); + CleanupStack::PushL(item2); + item2->SetEmptyItemTextL( _L("None") ); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_PRINTRANGE); + item2->ConstructL(EFalse, 2, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_TEXT_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item2); + CleanupStack::Pop(item2); + + CAknIntegerEdwinSettingItem* item3 = new (ELeave) CAknIntegerEdwinSettingItem(3, iCopy); + CleanupStack::PushL(item3); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_COPY); + item3->ConstructL(EFalse, 3, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item3); + CleanupStack::Pop(item3); + } + +void CDirectPrintPropertyView::LoadMarginTabL() + { + TBuf<25> itemTitle; + + // Set common setting item + CAknIntegerEdwinSettingItem* item1 = new (ELeave) CAknIntegerEdwinSettingItem(1, iLeftMargin); + CleanupStack::PushL(item1); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_LEFTMARGIN); + item1->ConstructL(EFalse, 1, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item1); + CleanupStack::Pop(item1); + + CAknIntegerEdwinSettingItem* item2 = new (ELeave) CAknIntegerEdwinSettingItem(2, iRightMargin); + CleanupStack::PushL(item2); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_RIGHTMARGIN); + item2->ConstructL(EFalse, 2, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item2); + CleanupStack::Pop(item2); + + CAknIntegerEdwinSettingItem* item3 = new (ELeave) CAknIntegerEdwinSettingItem(3, iTopMargin); + CleanupStack::PushL(item3); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_TOPMARGIN); + item3->ConstructL(EFalse, 3, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item3); + CleanupStack::Pop(item3); + + CAknIntegerEdwinSettingItem* item4 = new (ELeave) CAknIntegerEdwinSettingItem(4, iBottomMargin); + CleanupStack::PushL(item4); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_BOTTOMMARGIN); + item4->ConstructL(EFalse, 4, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item4); + CleanupStack::Pop(item4); + } + +void CDirectPrintPropertyView::LoadHeaderTabL() + { + TBuf<25> itemTitle; + + // Set common setting item + CAknTextSettingItem* item1 = new (ELeave) CAknTextSettingItem(1, iHeaderText); + CleanupStack::PushL(item1); + item1->SetEmptyItemTextL( _L("None") ); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_HEADERTEXT); + item1->ConstructL(EFalse, 1, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_TEXT_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item1); + CleanupStack::Pop(item1); + + CAknIntegerEdwinSettingItem* item2 = new (ELeave) CAknIntegerEdwinSettingItem(2, iHeaderDistance); + CleanupStack::PushL(item2); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_HEADERDISTANCE); + item2->ConstructL(EFalse, 2, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item2); + CleanupStack::Pop(item2); + + CAknEnumeratedTextPopupSettingItem* item3 = new (ELeave) CAknEnumeratedTextPopupSettingItem(3, iHeaderFirstPage); + CleanupStack::PushL(item3); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_HEADERFIRSTPAGE); + item3->ConstructL(EFalse, 3, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_POPUP_SETTING_PAGE, -1, 0, R_DIRECTPRINT_PROPERTYSETTING_PRINT_POPUP_SETTING_TEXTS); + iListBox->SettingItemArray()->AppendL(item3); + CleanupStack::Pop(item3); + } + +void CDirectPrintPropertyView::LoadFooterTabL() + { + TBuf<25> itemTitle; + + // Set common setting item + CAknTextSettingItem* item1 = new (ELeave) CAknTextSettingItem(1, iFooterText); + CleanupStack::PushL(item1); + item1->SetEmptyItemTextL( _L("None") ); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_FOOTERTEXT); + item1->ConstructL(EFalse, 1, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_TEXT_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item1); + CleanupStack::Pop(item1); + + CAknIntegerEdwinSettingItem* item2 = new (ELeave) CAknIntegerEdwinSettingItem(2, iFooterDistance); + CleanupStack::PushL(item2); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_FOOTERDISTANCE); + item2->ConstructL(EFalse, 2, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_INTEGER_SETTING_PAGE, -1); + iListBox->SettingItemArray()->AppendL(item2); + CleanupStack::Pop(item2); + + CAknEnumeratedTextPopupSettingItem* item3 = new (ELeave) CAknEnumeratedTextPopupSettingItem(3, iFooterFirstPage); + CleanupStack::PushL(item3); + CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_PROPERTYSETTING_ITEM_FOOTERFIRSTPAGE); + item3->ConstructL(EFalse, 3, itemTitle, NULL, R_DIRECTPRINT_PROPERTYSETTING_POPUP_SETTING_PAGE, -1, 0, R_DIRECTPRINT_PROPERTYSETTING_PRINT_POPUP_SETTING_TEXTS); + iListBox->SettingItemArray()->AppendL(item3); + CleanupStack::Pop(item3); + } +