--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/DirectPrint/DirectPrintApp/ui/src/directprintmainview.cpp Wed Mar 31 00:04:55 2010 +0900
@@ -0,0 +1,250 @@
+/*
+* 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 <aknviewappui.h>
+#include <akntoolbar.h>
+#include <barsread.h>
+#include <DirectPrintApp.rsg>
+
+#include "clog.h"
+#include "directprintapp.hrh"
+#include "directprintmodel.h"
+#include "directprintmainview.h"
+
+CDirectPrintMainView::CDirectPrintMainView()
+ {
+ iListBox = NULL;
+ }
+
+CDirectPrintMainView::~CDirectPrintMainView()
+ {
+ AppUi()->RemoveFromViewStack(*this, iListBox);
+ delete iListBox;
+ iItemArray->Reset();
+ delete iItemArray;
+ }
+
+CDirectPrintMainView* CDirectPrintMainView::NewL()
+ {
+ CDirectPrintMainView* self = CDirectPrintMainView::NewLC();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CDirectPrintMainView* CDirectPrintMainView::NewLC()
+ {
+ CDirectPrintMainView* self = new(ELeave) CDirectPrintMainView();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+void CDirectPrintMainView::ConstructL()
+ {
+ LOG("CDirectPrintMainView::ConstructL BEGIN");
+ BaseConstructL(R_DIRECTPRINT_MAINVIEW);
+
+ iViewId = TUid::Uid(EDirectPrintMainViewId);
+
+ iItemArray = new(ELeave) CDesCArrayFlat(3);
+ LOG("CDirectPrintMainView::ConstructL END");
+ }
+
+void CDirectPrintMainView::HandleCommandL(TInt aCommand)
+ {
+ switch (aCommand)
+ {
+ case EAknSoftkeyBack:
+ {
+ AppUi()->HandleCommandL(EDirectPrintCmdIdMainViewExit);
+ }
+ break;
+ case EDirectPrintCmdIdMainViewPrinterList:
+ case EDirectPrintCmdIdMainViewPrint:
+ case EDirectPrintCmdIdMainViewPreview:
+ case EDirectPrintCmdIdMainViewPropertySetting:
+ {
+ AppUi()->HandleCommandL(aCommand);
+ }
+ break;
+ default:
+ {
+ AppUi()->HandleCommandL(aCommand);
+ }
+ break;
+ }
+ }
+
+void CDirectPrintMainView::HandleListIndexL(TInt aIndex)
+ {
+ switch (aIndex)
+ {
+ case EItemPrinter:
+ {
+ AppUi()->HandleCommandL(EDirectPrintCmdIdMainViewPrinterList);
+ }
+ break;
+ case EItemBearer:
+ {
+ CDirectPrintModel& model = GetModel();
+ model.SetSelectPrinter(model.CurrentPrinter());
+ AppUi()->HandleCommandL(EDirectPrintCmdIdMainViewPrinterSetting);
+ }
+ break;
+ case EItemSetting:
+ {
+ AppUi()->HandleCommandL(EDirectPrintCmdIdMainViewPropertySetting);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+void CDirectPrintMainView::OfferToolbarEventL(TInt aCommand)
+ {
+ switch (aCommand)
+ {
+ case EDirectPrintCmdIdMainViewPrint:
+ case EDirectPrintCmdIdMainViewPreview:
+ case EDirectPrintCmdIdMainViewPropertySetting:
+ {
+ AppUi()->HandleCommandL(aCommand);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+void CDirectPrintMainView::DoActivateL(const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/)
+ {
+ LOG("CDirectPrintMainView::DoActivateL BEGIN");
+ CAknToolbar* toolbar = AppUi()->CurrentFixedToolbar();
+ toolbar->SetToolbarObserver(this);
+
+ iItemArray->Reset();
+ LoadListDataL();
+
+ // Create list box
+ if (!iListBox)
+ {
+ iListBox = CDirectPrintListBox::NewL(ClientRect(), iItemArray);
+ iListBox->SetMopParent(this);
+ iListBox->SetListObserver(this);
+ }
+ AppUi()->AddToStackL(*this, iListBox);
+ iListBox->MakeVisible(ETrue);
+ iListBox->RedrawListL();
+
+ // set the title pane
+ SetActiveTitleL(R_DIRECTPRINT_MAINVIEW_TITLE);
+ LOG("CDirectPrintMainView::DoActivateL END");
+ }
+
+void CDirectPrintMainView::DoDeactivate()
+ {
+ LOG("CDirectPrintMainView::DoDeactivate BEGIN");
+ iListBox->MakeVisible(EFalse);
+ AppUi()->RemoveFromViewStack(*this, iListBox);
+ LOG("CDirectPrintMainView::DoDeactivate END");
+ }
+
+void CDirectPrintMainView::LoadListDataL()
+ {
+ CDirectPrintModel& model = GetModel();
+
+ if (model.PrinterCount() > 0)
+ {
+ TBuf<50> buf;
+ TBuf<25> itemTitle;
+
+ TDirectPrintPrinterData printerData;
+ model.GetPrinterDataL(0, printerData);
+ CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_MAINVIEW_ITEM_PRINTERNAME);
+ buf.Format(_L("\t%S\t%S"), &itemTitle, &printerData.iPrinterName);
+ iItemArray->AppendL(buf);
+
+ TDirectPrintBearerData bearerData;
+ model.GetCurrentBearerDataL(bearerData);
+ CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_MAINVIEW_ITEM_BEARER);
+ buf.Format(_L("\t%S\t%S"), &itemTitle, &bearerData.iBearerName);
+ iItemArray->AppendL(buf);
+
+ TBuf<25> property;
+ MakePropertyStringL(property);
+ CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_MAINVIEW_ITEM_PROPERTYSETTINGS);
+ buf.Format(_L("\t%S\t%S"), &itemTitle, &property);
+ iItemArray->AppendL(buf);
+ }
+ else
+ {
+ TBuf<50> buf;
+ TBuf<30> itemTitle;
+ CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_MAINVIEW_ITEM_PRINTERNAME);
+ buf.Format(_L("\t%S\t"), &itemTitle);
+ iItemArray->AppendL(buf);
+ CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_MAINVIEW_ITEM_BEARER);
+ buf.Format(_L("\t%S\t"), &itemTitle);
+ iItemArray->AppendL(buf);
+ CEikonEnv::Static()->ReadResource(itemTitle, R_DIRECTPRINT_MAINVIEW_ITEM_PROPERTYSETTINGS);
+ buf.Format(_L("\t%S\t"), &itemTitle);
+ iItemArray->AppendL(buf);
+ }
+ }
+
+void CDirectPrintMainView::MakePropertyStringL(TDes& aProperty)
+ {
+ CDirectPrintModel& model = GetModel();
+ CPrinterProperty* property = model.GetCurrentPrinterPropertyL(TUid::Uid(0));
+
+ if (property)
+ {
+ TInt paperSize(0), orientation(0), copy(0);
+ TInt count = property->iPropertyItems.Count();
+ for (TInt i=0; i<count; i++)
+ {
+ if (property->iPropertyItems[i].iItemType == EDirectPrintPageSettingTab)
+ {
+ switch (property->iPropertyItems[i].iItemId)
+ {
+ case EDirectPrintPaperPaperSize:
+ {
+ paperSize = property->iPropertyItems[i].iItemValue;
+ }
+ break;
+ case EDirectPrintPaperOrientation:
+ {
+ orientation = property->iPropertyItems[i].iItemValue;
+ }
+ break;
+ case EDirectPrintPageCopy:
+ {
+ copy = property->iPropertyItems[i].iItemValue;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ //aProperty.Format(_L("%S/%S/%d"), paperSize, orientation, copy);
+ aProperty.Format(_L("%d/%d/%d"), paperSize, orientation, copy);
+ }
+ }
+