--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/apengine/apsettingshandlerui/src/ApSelectorListBoxModel.cpp Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,352 @@
+/*
+* Copyright (c) 2002 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: Implementation of CApSelectorListboxModel.
+*
+*/
+
+
+// INCLUDE FILES
+
+#include "ApSelectorListBoxModel.h"
+#include "ApListItem.h"
+#include <ApSettingsHandlerCommons.h>
+
+#include <featmgr.h>
+
+#include "ApSettingsHandlerLogger.h"
+
+// CONSTANTS
+const TInt KGPRS_ICON_ID = 0;
+// No icon for CDMA (yet?) -> use GPRS icon.
+const TInt KCDMA_ICON_ID = KGPRS_ICON_ID;
+const TInt KCSD_ICON_ID = 1;
+const TInt KHSCSD_ICON_ID = 2;
+// const TInt KSMS_ICON_ID = 3; // DEPRECATED
+const TInt KWLAN_ICON_ID = 4;
+// fith icon element is the KEASY_WLAN_ICON_ID but it is not shown
+// in our UI, but is used by other modules using our
+// resources!!! const TInt KEASY_WLAN_ICON_ID = 5;
+
+const TInt KPROTECTED_ICON_ID = 6;
+// get real icons !!! now using GPRS...
+#ifdef __TEST_LAN_BEARER
+ const TInt KLAN_ICON_ID = KGPRS_ICON_ID;
+#endif // __TEST_LAN_BEARER
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::CApSelectorListboxModel
+// ---------------------------------------------------------
+//
+CApSelectorListboxModel::CApSelectorListboxModel( TGraphicType aGraphicType )
+:CApListItemList(),
+iOffset( 0 ),
+iFeatureInitialised(EFalse),
+iProtectionSupported(EFalse)
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::CApSelectorListboxModel<->")
+ iGraphicType = aGraphicType;
+ }
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::~CApSelectorListboxModel
+// ---------------------------------------------------------
+//
+CApSelectorListboxModel::~CApSelectorListboxModel()
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::~CApSelectorListboxModel<->")
+ ResetAndDestroy(); // deletes all elements...
+ }
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::MdcaCount
+// ---------------------------------------------------------
+//
+TInt CApSelectorListboxModel::MdcaCount() const
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::MdcaCount<->")
+
+ return Count();
+ }
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::MdcaPoint
+// ---------------------------------------------------------
+//
+TPtrC CApSelectorListboxModel::MdcaPoint( TInt aIndex ) const
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::MdcaPoint")
+
+ // We need to cast away the const-ness from the buffer.
+ // It was definitely made for formatting!
+ FormatListboxText( aIndex,
+ ( MUTABLE_CAST( TBuf<KMaxApSelectorListboxName>&, iBuf ) ) );
+
+ APSETUILOGGER_LEAVEFN( EListbox,"SelListboxModel::MdcaPoint")
+ return iBuf;
+ }
+
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::Item4Uid
+// ---------------------------------------------------------
+//
+TInt CApSelectorListboxModel::Item4Uid( TUint32 aUid, TInt& aErr ) const
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::Item4Uid")
+
+ aErr = KErrNone;
+ TInt retval( KErrNotFound );
+ for ( TInt i=0; i<Count(); i++ )
+ {
+ if ( At( i )->Uid() == aUid )
+ {
+ retval = i;
+ break;
+ }
+ }
+ if ( retval == KErrNotFound )
+ {
+ aErr = KErrNotFound;
+ }
+
+ APSETUILOGGER_LEAVEFN( EListbox,"SelListboxModel::Item4Uid")
+ return retval;
+ }
+
+
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::SetOwnIconOffset
+// ---------------------------------------------------------
+//
+void CApSelectorListboxModel::SetOwnIconOffset( TInt aOffset )
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::SetOwnIconOffset<->")
+
+ iOffset = aOffset;
+ }
+
+
+// ---------------------------------------------------------
+// CApSelectorListboxModel::FormatListboxText
+// ---------------------------------------------------------
+//
+void CApSelectorListboxModel::FormatListboxText( TInt aIndex,
+ TDes& aBuf ) const
+ {
+ APSETUILOGGER_ENTERFN( EListbox,"SelListboxModel::FormatListboxText")
+
+ if ( !iFeatureInitialised )
+ {
+ TRAPD(err, FeatureManager::InitializeLibL());
+ if (err == KErrNone)
+ {
+ CApSelectorListboxModel* tmp = CONST_CAST(CApSelectorListboxModel*, this);
+ tmp->iProtectionSupported = FeatureManager::FeatureSupported(
+ KFeatureIdSettingsProtection );
+ FeatureManager::UnInitializeLib();
+ tmp->iFeatureInitialised = ETrue;
+ }
+ }
+ switch ( iGraphicType )
+ {
+ case EGraphicBearer:
+ {
+ TInt iIconId;
+ switch ( At( aIndex )->BearerType() )
+ {
+ case EApBearerTypeCDMA:
+ {
+ iIconId = KCDMA_ICON_ID;
+ break;
+ }
+ case EApBearerTypeGPRS:
+ {
+ iIconId = KGPRS_ICON_ID;
+ break;
+ }
+ case EApBearerTypeCSD:
+ {
+ iIconId = KCSD_ICON_ID;
+ break;
+ }
+ case EApBearerTypeHSCSD:
+ {
+ iIconId = KHSCSD_ICON_ID;
+ break;
+ }
+ case EApBearerTypeWLAN:
+ {
+ iIconId = KWLAN_ICON_ID;
+ break;
+ }
+#ifdef __TEST_LAN_BEARER
+ case EApBearerTypeLAN:
+ {
+ iIconId = KLAN_ICON_ID;
+ break;
+ }
+#endif // __TEST_LAN_BEARER
+ case EApBearerTypeLANModem:
+ { // LANMODEM get real icon ID
+ iIconId = KWLAN_ICON_ID;
+ break;
+ }
+ default:
+ {
+ // in release, shall not leave here,
+ // it is checked when filled...
+ __ASSERT_DEBUG( EFalse, Panic( EInvalidBearerType ) );
+ iIconId = KGPRS_ICON_ID;
+ break;
+ }
+ }
+ if ( iProtectionSupported )
+ {
+ if ( At( aIndex )->IsReadOnly() )
+ {
+ TInt iProtectedIconId = KPROTECTED_ICON_ID;
+ aBuf.Format(
+ KListItemFormatGraphicProtected,
+ iOffset+iIconId,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name(),
+ iOffset+iProtectedIconId
+ );
+ }
+ else
+ { // protection supported, but not protected
+ aBuf.Format(
+ KListItemFormatGraphicBearer,
+ iOffset+iIconId,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ );
+ }
+ }
+ else
+ { // protection not supported
+ aBuf.Format(
+ KListItemFormatGraphicBearer,
+ iOffset+iIconId,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ );
+ }
+ break;
+ }
+ case EGraphicNone:
+ {
+ aBuf.Format(
+ KListItemFormatGraphicNone,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ );
+ break;
+ }
+ case EGraphicOnOff:
+ {
+ if ( iProtectionSupported )
+ {
+ TInt ProtectedIconId( 0 );
+ if ( At( aIndex )->IsReadOnly() )
+ {
+ ProtectedIconId = KPROTECTED_ICON_ID;
+ aBuf.Format(
+ KListItemFormatGraphicOnOffWithLock,
+ 1,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name(),
+ iOffset + ProtectedIconId
+ );
+ }
+ else
+ {
+ aBuf.Format(
+ KListItemFormatGraphicOnOff,
+ 1,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ ); // magic Number, does not works with anything else
+ }
+ }
+ else
+ {
+ aBuf.Format(
+ KListItemFormatGraphicOnOff,
+ 1,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ );
+ }
+ break;
+ }
+ case EGraphicProtection:
+ {
+ if ( iProtectionSupported )
+ {
+ TInt ProtectedIconId( 0 );
+ if ( At( aIndex )->IsReadOnly() )
+ {
+ ProtectedIconId = 0;
+ aBuf.Format(
+ KListItemFormatGraphicWithLock,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name(),
+ iOffset + ProtectedIconId
+ );
+ }
+ else
+ {
+ aBuf.Format(
+ KListItemFormatGraphicNone,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ );
+ }
+ }
+ else
+ {
+ aBuf.Format(
+ KListItemFormatGraphicNone,
+ Min( At( aIndex )->Name().Length(),
+ KMaxListItemNameLength ),
+ &At( aIndex )->Name()
+ );
+ }
+ break;
+ }
+ default:
+ {
+ __ASSERT_DEBUG( EFalse, Panic( EInvalidBitmapType ) );
+ break;
+ }
+ }
+
+ APSETUILOGGER_LEAVEFN( EListbox,"SelListboxModel::FormatListboxText")
+ }
+
+// End of File