mobilemessaging/smum/src/SMSETDLG.CPP
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/smum/src/SMSETDLG.CPP	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,269 @@
+/*
+* 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:  
+*     Help classes to handle Service Centres and settings.
+*
+*/
+
+
+
+// INCLUDES
+#include <eikclb.h>                     // CEikColumnListBox
+#include <StringLoader.h>               // StringLoader
+#include <smutset.h>                    // CSmsSettings
+#include <SMUM.rsg>                     // resource ids
+#include "SMSETDLG.H"                   // dialogs
+#include "SmumSettingsDialogGSM.h"         //ESmumSendOptServiceCentreInUseLBI
+//  LOCAL CONSTANTS AND MACROS
+const TInt KSmumNumberOfSeparatingColumnCharacters = 2;
+const TInt KSmumNumberOfEndColumnCharacters = 1;
+const TInt KMaxLengthOfNameAndNumberString = 100;
+const TUint KSpaceChar = ' ';
+_LIT(KSmumSpaceString, " ");
+
+//  MEMBER FUNCTIONS
+
+
+/**
+*  TSmumSCNameInfo - class
+*/
+
+// ---------------------------------------------------------
+// TSmumSCNameInfo::TSmumSCNameInfo
+//
+// ---------------------------------------------------------
+TSmumSCNameInfo::TSmumSCNameInfo( const TDesC& aName, const TDesC& aAddress )
+:iNameAndAddress( aName ), iNameLength( 0 )
+	{
+	iNameAndAddress.Append( KColumnListSeparator );
+    iNameAndAddress.Append( KColumnListSeparator );
+    iNameAndAddress.Append( aAddress );
+    iNameAndAddress.Append( KColumnListSeparator );
+    iNameLength = aName.Length();
+	}
+
+// ---------------------------------------------------------
+// TSmumSCNameInfo::~TSmumSCNameInfo
+//
+// ---------------------------------------------------------
+TSmumSCNameInfo::~TSmumSCNameInfo()
+    {
+    }
+
+// ---------------------------------------------------------
+// TSmumSCNameInfo::TSmumSCNameInfo
+//
+// ---------------------------------------------------------
+TSmumSCNameInfo::TSmumSCNameInfo( const TDesC& aName )
+:iNameAndAddress( aName ), iNameLength ( 0 )
+	{
+    iNameLength = aName.Length();
+	}
+
+// ---------------------------------------------------------
+// TSmumSCNameInfo::Name
+//
+// ---------------------------------------------------------
+TPtrC TSmumSCNameInfo::Name() const
+	{
+	return iNameAndAddress.Left( iNameLength );
+	}
+
+// ---------------------------------------------------------
+// TSmumSCNameInfo::Address
+//
+// ---------------------------------------------------------
+TPtrC TSmumSCNameInfo::Address() const
+	{
+	const TInt nameAndAddressLength = iNameAndAddress.Length();
+	if ( iNameLength == nameAndAddressLength )
+        {
+		return TPtrC( KNullDesC );
+        }
+
+	return iNameAndAddress.Mid(
+				iNameLength + KSmumNumberOfSeparatingColumnCharacters, 
+				nameAndAddressLength - iNameLength - 
+                KSmumNumberOfEndColumnCharacters - KSmumNumberOfSeparatingColumnCharacters );
+	}
+
+/**
+*  CSmumSCArray - class
+*/
+
+// ---------------------------------------------------------
+// CSmumSCArray::CSmumSCArray
+//
+// ---------------------------------------------------------
+CSmumSCArray::CSmumSCArray( TInt aGranularity )
+    :CArrayFixFlat<TSmumSCNameInfo>( aGranularity )
+    {
+    }
+
+// ---------------------------------------------------------
+// CSmumSCArray::~CSmumSCArray
+//
+// ---------------------------------------------------------
+CSmumSCArray::~CSmumSCArray()
+    {
+    delete iStringForSCName;
+    }
+
+// ---------------------------------------------------------
+// CSmumSCArray::NewL
+//
+// ---------------------------------------------------------
+CSmumSCArray* CSmumSCArray::NewL( TInt aGranularity )
+    {
+    CSmumSCArray* self = new ( ELeave ) CSmumSCArray( aGranularity );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CSmumSCArray::ConstructL
+//
+// ---------------------------------------------------------
+void CSmumSCArray::ConstructL()
+    {
+    iStringForSCName = HBufC::NewL( KMaxLengthOfNameAndNumberString );
+    }
+
+// ---------------------------------------------------------
+// CSmumSCArray::MdcaCount
+//
+// ---------------------------------------------------------
+TInt CSmumSCArray::MdcaCount() const
+    {
+    return Count();
+    }
+
+// ---------------------------------------------------------
+// CSmumSCArray::MdcaPoint
+//
+// ---------------------------------------------------------
+TPtrC CSmumSCArray::MdcaPoint( TInt aIndex ) const
+    {
+    TPtr tempText = iStringForSCName->Des();
+    tempText.Zero();
+
+    if ( Count())
+        {
+        tempText.Append( KSpaceChar );
+        tempText.Append( KColumnListSeparator );
+        tempText.Append( At( aIndex ).Name());
+        }
+
+    return tempText;
+    }
+
+// ---------------------------------------------------------
+// CSmumSCArray::SCNameInfo
+//
+// ---------------------------------------------------------
+TSmumSCNameInfo& CSmumSCArray::SCNameInfo( TInt aIndex )
+    {
+    return At( aIndex );
+    }
+
+
+/**
+*  CSmumSettingsArray - class
+*/
+
+// ---------------------------------------------------------
+// CSmumSettingsArray::NewL
+//
+// ---------------------------------------------------------
+CSmumSettingsArray* CSmumSettingsArray::NewL( TInt aResourceId )
+    {
+    CSmumSettingsArray* self = new ( ELeave ) CSmumSettingsArray();
+    CleanupStack::PushL( self );
+    self->ConstructL( aResourceId ); 
+    CleanupStack::Pop(); // self
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CSmumSettingsArray::ConstructL
+//
+// ---------------------------------------------------------
+void CSmumSettingsArray::ConstructL( TInt aResourceId )
+    {
+    iReplyPathString = StringLoader::LoadL( R_QTN_SMS_REPLY_PATH );
+    CMuiuSettingsArray::ConstructL( aResourceId );
+    }
+
+// ---------------------------------------------------------
+// CSmumSettingsArray::CSmumSettingsArray
+//
+// ---------------------------------------------------------
+CSmumSettingsArray::CSmumSettingsArray()
+    {
+    }
+
+// ---------------------------------------------------------
+// CSmumSettingsArray::~CSmumSettingsArray
+//
+// ---------------------------------------------------------
+CSmumSettingsArray::~CSmumSettingsArray()
+    {
+    delete iReplyPathString;
+    }
+
+// ---------------------------------------------------------
+// CSmumSettingsArray::SetReplyPath
+//
+// ---------------------------------------------------------
+void CSmumSettingsArray::SetReplyPath( TBool aReplyPathProvided )
+    {
+    iReplyPathProvided = aReplyPathProvided;
+    }
+    
+// ---------------------------------------------------------
+// CSmumSettingsArray::ReplyPathProvided
+//
+// ---------------------------------------------------------
+TBool CSmumSettingsArray::ReplyPathProvided()
+    {
+    return iReplyPathProvided;
+    }
+
+// ---------------------------------------------------------
+// CSmumSettingsArray::MdcaPoint
+//
+// ---------------------------------------------------------
+TPtrC CSmumSettingsArray::MdcaPoint( TInt aIndex ) const
+    {
+    if ( iReplyPathProvided && ESmumSendOptServiceCentreInUseLBI == aIndex )
+        {
+        TPtr tempText = iTempText->Des();
+        tempText.Zero();
+        tempText.Append( KSmumSpaceString );
+        tempText.Append( KColumnListSeparator );
+        tempText.Append( At( aIndex ).iLabelText );
+        tempText.Append( KColumnListSeparator );
+        tempText.Append( KColumnListSeparator );
+        tempText.Append( *iReplyPathString );
+        return tempText;
+        }
+    else
+        {
+        return CMuiuSettingsArray::MdcaPoint( aIndex );
+        }
+    }
+
+//  End of File