cmmanager/cmmgr/Framework/Src/cmlistboxmodel.cpp
branchRCL_3
changeset 58 83ca720e2b9a
parent 0 5a93021fdf25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmmgr/Framework/Src/cmlistboxmodel.cpp	Wed Sep 01 12:23:51 2010 +0100
@@ -0,0 +1,159 @@
+/*
+* Copyright (c) 2006 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 CCmListboxModel
+*
+*/
+
+#include <AknIconArray.h>
+#include <aknlists.h>
+#include <StringLoader.h>
+#include <cmmanager.rsg>
+
+#include "cmlistboxmodel.h"
+#include "cmlistitem.h"
+#include <cmcommonconstants.h>
+#include "cmlistitemlist.h"
+
+// ---------------------------------------------------------------------------
+// CCmListboxModel::CCmListboxModel
+// ---------------------------------------------------------------------------
+//
+CCmListboxModel::CCmListboxModel()
+    : iOffset( 0 )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CCmListboxModel::~CCmListboxModel
+// ---------------------------------------------------------------------------
+//
+CCmListboxModel::~CCmListboxModel()
+    {
+    //ResetAndCmroy(); // deletes all elements...
+    }
+
+// ---------------------------------------------------------------------------
+// CCmListboxModel::MdcaCount
+// ---------------------------------------------------------------------------
+//
+TInt CCmListboxModel::MdcaCount() const
+    {
+    return Count();
+    }
+
+// ---------------------------------------------------------------------------
+// CCmListboxModel::SetOwnIconOffset
+// ---------------------------------------------------------------------------
+//
+void CCmListboxModel::SetOwnIconOffset( TInt aOffset )
+    {
+    iOffset = aOffset;
+    }
+
+// ---------------------------------------------------------------------------
+// CCmListboxModel::MdcaPoint
+// ---------------------------------------------------------------------------
+//
+TPtrC CCmListboxModel::MdcaPoint( TInt aIndex ) const
+    {
+    // We need to cast away the const-ness from the buffer.
+    // It was definitely made for formatting!
+    FormatListboxText( aIndex,
+                       MUTABLE_CAST( TBuf<KMaxCmListboxName>&, iBuf ) );
+
+    return iBuf;
+    }
+
+// ---------------------------------------------------------------------------
+// CCmListboxModel::FormatListboxText
+// ---------------------------------------------------------------------------
+//
+void CCmListboxModel::FormatListboxText( TInt aIndex,
+                                         TDes& aBuf ) const
+    {
+    TRAP_IGNORE( FormatListboxTextL( aIndex, aBuf ) );
+    }
+    
+// ---------------------------------------------------------------------------
+// CCmListboxModel::FormatListboxTextL
+// ---------------------------------------------------------------------------
+//
+void CCmListboxModel::FormatListboxTextL( TInt aIndex,
+                                          TDes& aBuf ) const
+    {
+    aBuf.Zero();
+    TUint icon = At( aIndex )->IconIndex();
+    if ( At(aIndex)->IsSingleLine() )
+        {
+        if ( At(aIndex)->IsProtected() )
+            {
+            aBuf.Format( KListItemFormatEmbDestProt, 
+                         icon, 
+                         &At( aIndex )->Name(), 
+                         KCmReservedIconIndexProtected );
+            }
+        else            
+            {
+            aBuf.Format( KListItemFormatEmbDest, 
+                         icon,
+                         &At( aIndex )->Name() );            
+            }
+        }
+     else
+        {
+        HBufC* secondLine;
+        secondLine = StringLoader::LoadLC( R_CMMANAGERUI_METHOD_PRIORITY_OTHER,
+                                           At( aIndex )->Priority() + 1 );
+    if ( At( aIndex )->IsDefault() )
+        {
+            aBuf.Format( KListItemFormatCmProt,
+                         icon, 
+                         &At( aIndex )->Name(), 
+                         secondLine, 
+                         KCmReservedIconIndexDefaultConn );
+        }
+    else
+        {
+        if ( At(aIndex)->IsProtected() )
+            {
+            aBuf.Format( KListItemFormatCmProt, 
+                         icon, 
+                         &At( aIndex )->Name(), 
+                         secondLine, 
+                         KCmReservedIconIndexProtected );    
+            }
+        else if ( At(aIndex)->IsVpnOverDestination() )
+            {
+            CleanupStack::PopAndDestroy( secondLine );
+            
+            secondLine = StringLoader::LoadLC( R_QTN_NETW_CONSET_METHOD_PRIORITY_AUTO);
+
+            aBuf.Format( KListItemFormatCm, 
+                         icon,
+                         &At( aIndex )->Name(),
+                         secondLine );
+            }
+        else
+            {
+            aBuf.Format( KListItemFormatCm, 
+                         icon, 
+                         &At( aIndex )->Name(), 
+                         secondLine );
+            }
+         }
+            
+        CleanupStack::PopAndDestroy( secondLine );
+        }
+    }
+