--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbuis/imageprintui/src/settingsitems.cpp Thu Dec 17 09:14:30 2009 +0200
@@ -0,0 +1,316 @@
+/*
+* Copyright (c) 2006, 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Show capabilities on the screen
+*
+*/
+
+
+#include <StringLoader.h>
+#include <eiklbx.h>
+#include <AknRadioButtonSettingPage.h>
+
+
+#include "imageprintui.hrh"
+#include "settingsitems.h"
+#include "settingstables.h"
+#include "imageprintuidebug.h"
+#include "capabilitymanager.h"
+#include "notes.h"
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CSettingsItems* CSettingsItems::NewL(
+ CCapabilityManager* aManager, CNotes* aNotes )
+ {
+ CSettingsItems* self =
+ CSettingsItems::NewLC( aManager, aNotes );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CSettingsItems* CSettingsItems::NewLC(
+ CCapabilityManager* aManager, CNotes* aNotes
+ )
+ {
+ CSettingsItems* self =
+ new ( ELeave ) CSettingsItems( aManager, aNotes );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CSettingsItems::CSettingsItems(
+ CCapabilityManager* aManager, CNotes* aNotes):
+ iCapabilityManager( aManager ), iNotes( aNotes)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CSettingsItems::~CSettingsItems()
+ {
+ delete iBuffer;
+ delete iLayout;
+ delete iPaperSize;
+ delete iQuality;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CSettingsItems::ConstructL()
+ {
+ iBuffer = HBufC::NewL(KSettingsMaxSize);
+ iLayout = StringLoader::LoadL(R_USB_PRINT_LAYOUT);
+ iPaperSize = StringLoader::LoadL(R_USB_PRINT_PAPER_SIZE);
+ iQuality = StringLoader::LoadL(R_USB_PRINT_QUALITY);
+ }
+
+// ---------------------------------------------------------------------------
+// From class MDesCArray.
+// Return number of items in listbox
+// ----------------------------------------------------------------------------
+//
+TInt CSettingsItems::MdcaCount() const
+ {
+ return KNumberOfSettingsViewItems;
+ }
+
+// ---------------------------------------------------------------------------
+// Creates the text string for the list box item and returns it
+// ----------------------------------------------------------------------------
+//
+TPtrC CSettingsItems::MdcaPointL(
+ TInt aIndex ) const
+ {
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::MdcaPoint"));
+ _LIT(KImagePrintUiEmptyFormatString, " \t \t\t ");
+ TPtr ptr = iBuffer->Des();
+ ptr.Zero();
+ HBufC* temp;
+ ptr.Append(KTab);
+ switch ( aIndex )
+ {
+ case ESettingsListItemLayout:
+ temp = StringLoader::LoadLC( R_USB_PRINT_LAYOUT );
+ ptr.Append(temp->Des());
+ CleanupStack::PopAndDestroy(temp);
+ GetCurrentStringL( EDpsArgLayouts, KLayoutTable, KLayoutTableCount );
+ break;
+
+ case ESettingsListItemPaperSize:
+ temp = StringLoader::LoadLC( R_USB_PRINT_PAPER_SIZE );
+ ptr.Append(temp->Des());
+ CleanupStack::PopAndDestroy(temp);
+ GetCurrentStringL( EDpsArgPaperSizes, KPaperSizeTable, KPaperSizeTableCount );
+ break;
+
+ case ESettingsListItemPrintQuality:
+ temp = StringLoader::LoadLC( R_USB_PRINT_QUALITY );
+ ptr.Append(temp->Des());
+ CleanupStack::PopAndDestroy(temp);
+ GetCurrentStringL( EDpsArgQualities, KQualityTable, KQualityTableCount );
+ break;
+
+ default:
+ ptr.Append(KImagePrintUiEmptyFormatString);
+ break;
+ }
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::MdcaPoint complete"));
+
+ return iBuffer->Des();
+ }
+
+// ---------------------------------------------------------------------------
+// Creates the text string for the list box item and returns it
+// ----------------------------------------------------------------------------
+//
+TPtrC CSettingsItems::MdcaPoint(
+ TInt aIndex ) const
+ {
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::MdcaPoint"));
+
+ TRAPD(err, *iBuffer = MdcaPointL(aIndex));
+ if(err)
+ {
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::MdcaPointL error"));
+ }
+ else
+ {
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::MdcaPointL no error"));
+ }
+ return iBuffer->Des();
+ }
+
+
+// ---------------------------------------------------------------------------
+// Creates the text string for the list box item and returns it
+// ----------------------------------------------------------------------------
+//
+
+void CSettingsItems::GetCurrentStringL( TInt aCapability,
+ const TConversionTable* aTable, const TInt aTableSize ) const
+{
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::GetCurrentStringL START"));
+ TPtr ptr = iBuffer->Des();
+ ptr.Append(KTab);
+ ptr.Append(KTab);
+
+ TInt value = iCapabilityManager->CurrentPrintSettings( aCapability );
+
+ HBufC* temp;
+ for ( TInt i = 0; i < aTableSize; i++ )
+ {
+ if ( value == aTable[i].iCapabilityID )
+ {
+ temp = StringLoader::LoadLC( aTable[i].iResourceID );
+ ptr.Append(temp->Des());
+ CleanupStack::PopAndDestroy(temp);
+ break;
+ }
+ }
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::GetCurrentString END"));
+
+}
+
+// ---------------------------------------------------------------------------
+// From class MEikListBoxObserver.
+// Handles the list box (enter) events by launching the pop-up list
+// ----------------------------------------------------------------------------
+//
+void CSettingsItems::HandleListBoxEventL(
+ CEikListBox* aListBox,
+ TListBoxEvent aEventType )
+ {
+ if (( aEventType == EEventEnterKeyPressed ) ||
+ ( aEventType == EEventItemDoubleClicked )) //for touch support
+ {
+ switch( aListBox->CurrentItemIndex() )
+ {
+ case ESettingsListItemLayout:
+ HandleEvent(EDpsArgLayouts, KLayoutTable,
+ KLayoutTableCount, iLayout);
+ break;
+ case ESettingsListItemPaperSize:
+ HandleEvent(EDpsArgPaperSizes, KPaperSizeTable,
+ KPaperSizeTableCount, iPaperSize);
+ break;
+ case ESettingsListItemPrintQuality:
+ HandleEvent(EDpsArgQualities, KQualityTable,
+ KQualityTableCount, iQuality);
+ break;
+ default:
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::HandleListBoxEventL default switch"));
+ break;
+ }
+
+ // Redraw item to the screen
+ //
+ aListBox->DrawItem( aListBox->CurrentItemIndex() );
+
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+//
+void CSettingsItems::HandleEventL(TInt aCapability,
+ const TConversionTable* aTable, const TInt aTableSize, const HBufC* aTitle )
+ {
+ HBufC* item;
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::HandleEvent START"));
+ RArray<TUint> capabilityArray = iCapabilityManager->GetCapabilities(aCapability);
+ TInt currentItemIndex(0);
+ CDesCArrayFlat* items = new ( ELeave ) CDesCArrayFlat( KDefaultArrayValue );
+ CleanupStack::PushL(items);
+ TInt j(0);
+ TInt helpValue(0);
+ TInt currentItem = iCapabilityManager->CurrentPrintSettings(aCapability);
+
+ for(TInt i= 0; i < capabilityArray.Count(); i++ )
+ {
+ if ( capabilityArray[i] == currentItem )
+ {
+ currentItemIndex = i;
+ }
+ for (j=0; j< aTableSize; j++ )
+ {
+ if ( capabilityArray[i] == aTable[j].iCapabilityID)
+ {
+ helpValue++;
+ item = StringLoader::LoadL(aTable[j].iResourceID);
+ CleanupStack::PushL(item);
+ items->AppendL(*item);
+ CleanupStack::PopAndDestroy(item);
+ break;
+ }
+ }
+ }
+ FTRACE(FPrint(_L("[IMAGEPRINTUI] CSettingsItems::HandleEventL helpValue is %x"), helpValue ));
+ // Show the setting page
+
+ CAknRadioButtonSettingPage* dlg =
+ new ( ELeave ) CAknRadioButtonSettingPage(
+ R_USB_PRINT_MODE_SETTING_PAGE, currentItemIndex, items );
+ CleanupStack::PushL(dlg);
+ dlg->SetSettingTextL(*aTitle);
+ CleanupStack::Pop(dlg);
+
+ if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+ {
+ // User has made the selection. Now we need to save it to
+ // capabilityManager
+ iCapabilityManager->SetValue( aCapability, capabilityArray[currentItemIndex]);
+ }
+ CleanupStack::PopAndDestroy(items);
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::HandleEvent END"));
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CSettingsItems::HandleEvent(TInt aCapability,
+ const TConversionTable* aTable, const TInt aTableSize, const HBufC* aTitle )
+ {
+
+ TRAPD(err, HandleEventL(aCapability, aTable, aTableSize, aTitle));
+ if(err)
+ {
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::error in HandleEvenL"));
+ }
+ else
+ {
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::HandleEvent successfull"));
+ }
+ FLOG(_L("[IMAGEPRINTUI]\t CSettingsItems::HandleEvent END"));
+ }
+
+// end of file