omads/omadsappui/AspSyncUtil/src/AspDialogUtil.cpp
branchRCL_3
changeset 25 4f0867e42d62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omads/omadsappui/AspSyncUtil/src/AspDialogUtil.cpp	Wed Sep 01 12:30:02 2010 +0100
@@ -0,0 +1,1954 @@
+/*
+* Copyright (c) 2005 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:  
+*
+*/
+
+
+// INCLUDE FILES
+
+#include "AspDialogUtil.h"
+#include "AspUtil.h"
+#include "AspSchedule.h"
+#include <aspsyncutil.mbg>  // for bitmap enumerations
+
+#include <aknnavilabel.h>
+#include <akntitle.h>           // CAknTitlePane
+#include <akncontext.h>         // CAknTitlePane
+#include <aknnotewrappers.h>    // CAknInformationNote
+#include <eikmenup.h>           // CEikMenuPane
+#include <aknlists.h>           // CAknSingleHeadingPopupMenuStyleListBox
+
+#include <aknmfnesettingpage.h>         // CAknDateSettingPage
+#include <aknradiobuttonsettingpage.h>  // CAknRadioButtonSettingPage
+#include <akntextsettingpage.h>         // CAknIntegerSettingPage
+#include <aknmessagequerydialog.h>      // CAknMessageQueryDialog
+#include <AknIndicatorContainer.h>
+
+#include <AknIconArray.h>   // for GulArray
+#include <gulicon.h>
+
+#include "AspSettingDialog.h"
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+
+
+/*******************************************************************************
+ * class TDialogUtil
+ *******************************************************************************/
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowTextQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowTextQueryL(const TDesC& aTitle, TDes& aText, TInt aMaxLength)
+	{
+	CAknTextQueryDialog* query = CAknTextQueryDialog::NewL(aText);
+	CleanupStack::PushL(query);
+	query->SetPromptL(aTitle);
+	if (aMaxLength > 0)
+		{
+		query->SetMaxLength(aMaxLength);
+		}
+    CleanupStack::Pop(query);		
+
+	query->ExecuteLD(R_ASP_TEXT_QUERY);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowMessageQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowMessageQueryL(const TDesC& aTitle, const TDesC& aText)
+	{
+	TPtrC ptr = aText;
+	CAknMessageQueryDialog* query = CAknMessageQueryDialog::NewL(ptr);
+	query->PrepareLC(R_ASP_MESSAGE_QUERY);
+	_LIT(KEmpty, " ");
+	if (aTitle.Compare(KEmpty) != 0 )
+		{
+		CAknPopupHeadingPane* headingPane = query->Heading();
+		headingPane->SetTextL(aTitle);
+		}
+	query->RunLD();
+	}
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowAutoSyncMessageQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowAutoSyncMessageQueryL(const TDesC& aText)
+	{
+	TPtrC ptr = aText;
+	HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_MAIN_AUTO_ERROR_LOG_LINK);
+	CAknMessageQueryDialog* query = CAknMessageQueryDialog::NewL(ptr);
+	CleanupStack::PushL(query);
+
+	TCallBack LogView(TDialogUtil::ShowAutoSyncLogL);
+	query->SetLink(LogView);
+    query->SetLinkTextL(hBuf->Des());
+	
+	//CAknPopupHeadingPane* headingPane = query->Heading();
+	//headingPane->SetTextL(aTitle);
+
+	CleanupStack::Pop(query);
+	query->ExecuteLD(R_ASP_MESSAGE_QUERY);
+
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowMessageQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowMessageQueryL(const TDesC& aTitle, TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+	ShowMessageQueryL(aTitle, hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+	
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowConfirmationQueryL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowConfirmationQueryL(const TDesC& aText)
+	{
+	CAknQueryDialog* queryDialog = new (ELeave) CAknQueryDialog;
+	TBool ret = queryDialog->ExecuteLD(R_ASP_CONFIRMATION_QUERY, aText);
+	return ret;
+	}
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowRoamingConfirmationQueryL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowRoamingConfirmationQueryL(const TDesC& aText)
+    {
+    CAknQueryDialog* queryDialog = new (ELeave) CAknQueryDialog;
+    TBool ret = queryDialog->ExecuteLD(R_ASP_ROAMING_CONFIRMATION_QUERY, aText);
+    return ret;
+    }
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowRoamingConfirmationQueryL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowRoamingConfirmationQueryL(TInt aResource)
+    {
+    HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+    TBool ret = ShowRoamingConfirmationQueryL(hBuf->Des());
+    CleanupStack::PopAndDestroy(hBuf);
+    return ret;
+    }
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowConfirmationQueryL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowConfirmationQueryL(TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+	TBool ret = ShowConfirmationQueryL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	return ret;
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowInformationQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowInformationQueryL(const TDesC& aText)
+	{
+	CAknQueryDialog* queryDialog = new (ELeave) CAknQueryDialog;
+	queryDialog->ExecuteLD(R_ASP_INFORMATION_QUERY, aText);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowInformationQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowInformationQueryL(TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+	ShowInformationQueryL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowInformationNoteL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowInformationNoteL(TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+    ShowInformationNoteL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowInformationNoteL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowInformationNoteL(const TDesC& aText)
+	{
+	CAknInformationNote* queryDialog = new (ELeave) CAknInformationNote(ETrue);
+	queryDialog->ExecuteLD(aText);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowErrorNoteL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowErrorNoteL(TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+	ShowErrorNoteL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowErrorNoteL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowErrorNoteL(const TDesC& aText)
+	{
+	CAknErrorNote* errorNote = new (ELeave) CAknErrorNote(ETrue);
+	errorNote->ExecuteLD(aText);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowErrorQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowErrorQueryL(TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+	ShowErrorQueryL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowErrorQueryL
+//
+//------------------------------------------------------------------------------
+//
+void TDialogUtil::ShowErrorQueryL(const TDesC& aText)
+	{
+	CAknQueryDialog* queryDialog = new (ELeave) CAknQueryDialog;
+	queryDialog->ExecuteLD(R_ASP_ERROR_QUERY, aText);
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowListQueryL
+// 
+// -----------------------------------------------------------------------------
+TBool TDialogUtil::ShowListQueryL(const TDesC& aTitle, CDesCArray* aList, TInt* aSelectedIndex)
+	{
+	CAknListQueryDialog* query = new (ELeave) CAknListQueryDialog(aSelectedIndex);
+	CleanupStack::PushL(query);
+
+	query->PrepareLC(R_ASP_LIST_QUERY);
+	query->SetItemTextArray(aList);
+	query->SetOwnershipType(ELbmDoesNotOwnItemArray);
+	CAknPopupHeadingPane* headingPane = query->QueryHeading();
+	headingPane->SetTextL(aTitle);
+	
+	CleanupStack::Pop(query);
+
+	return query->RunLD();
+	}
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowListQueryIconL
+//
+//------------------------------------------------------------------------------
+TBool TDialogUtil::ShowListQueryIconL(const TDesC& aTitle, CDesCArray* aList, TInt* aSelectedIndex)
+	{
+	  
+	 CAknListQueryDialog* query = new (ELeave) CAknListQueryDialog(aSelectedIndex);
+	 CleanupStack::PushL(query);
+	 query->PrepareLC(R_ASP_LIST_APP_QUERY);
+	 
+	 
+	 query->SetItemTextArray(aList);
+	 query->SetOwnershipType(ELbmOwnsItemArray);
+	 
+	 CArrayPtr<CGulIcon>* iconList = new (ELeave) CAknIconArray(1);
+	 CleanupStack::PushL(iconList);
+	 
+ 	 TFileName bitmapName;
+ 	 CAspResHandler::GetBitmapFileName(bitmapName);
+ 	 //renders Qgn_Prop_Sml_New icon
+	 iconList->AppendL(CreateIconL(KAknsIIDQgnPropSmlNew, bitmapName, 
+	                     EMbmAspsyncutilQgn_prop_sml_new,
+	                     EMbmAspsyncutilQgn_prop_sml_new_mask) );
+	 query->SetIconArrayL(iconList);
+	 CAknPopupHeadingPane* headingPane = query->QueryHeading();
+ 	 headingPane->SetTextL(aTitle);
+ 	  
+	 CleanupStack::Pop(iconList);
+	 CleanupStack::Pop(query);
+	 return query->RunLD();
+	}
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowListQueryL
+// 
+// -----------------------------------------------------------------------------
+TBool TDialogUtil::ShowListQueryL(TInt aTitle, CDesCArray* aList, TInt* aSelectedIndex)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aTitle);
+
+    TBool ret = ShowListQueryL(hBuf->Des(), aList, aSelectedIndex);
+   	CleanupStack::PopAndDestroy(hBuf);
+   	
+   	return ret;
+	}
+
+//------------------------------------------------------------------------------
+//TDialogUtil::ShowListQueryIconL
+//
+//------------------------------------------------------------------------------
+TBool TDialogUtil::ShowListQueryIconL(TInt aTitle, CDesCArray* aList, TInt* aSelectedIndex)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aTitle);
+
+    TBool ret = ShowListQueryIconL(hBuf->Des(), aList, aSelectedIndex);
+   	CleanupStack::PopAndDestroy(hBuf);
+   	
+   	return ret;
+	}
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowProfileQueryL
+// 
+// -----------------------------------------------------------------------------
+TBool TDialogUtil::ShowProfileQueryL(CAspProfileList* aList, TInt& aId, TInt aResource)
+	{
+	aId = KErrNotFound;
+	
+	CDesCArray* arr = new (ELeave) CDesCArrayFlat(KDefaultArraySize);
+	CleanupStack::PushL(arr);
+
+	TInt count = aList->Count();
+	for (TInt i=0; i<count; i++)
+		{
+		TAspProfileItem& profile = aList->Item(i);
+		arr->AppendL(profile.iProfileName);
+		}
+
+    TInt index=KErrNotFound;
+	TBool ret = ShowListQueryL(aResource, arr, &index);
+	
+	if (ret)
+		{
+	    TAspProfileItem& profile = aList->Item(index);
+	    aId = profile.iProfileId;
+		}
+
+	CleanupStack::PopAndDestroy(arr);
+	return ret;
+	}
+//------------------------------------------------------------------------------
+//TDialogUtil::ShowProfileQueryAppL
+//
+//-----------------------------------------------------------------------------
+
+TBool TDialogUtil::ShowProfileQueryAppL(CAspProfileList* aList, TInt& aId, TInt aResource,TInt &index1)
+{
+	aId = KErrNotFound;
+	
+	CDesCArray* arr = new (ELeave) CDesCArrayFlat(KDefaultArraySize);
+	CleanupStack::PushL(arr);
+      
+    
+	HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_SELECT_PROFILE_CREATE_NEW);
+    TPtr ptr = hBuf->Des();
+  
+    //"%d\t%S" for formatting the icon and text data in the query dialog 
+   	 _LIT(KListItemFormat,"%d\t%S");
+	 TBuf<KBufSize> item;
+     item.Format(KListItemFormat,0 , &ptr);
+	 arr->AppendL(item);
+   	 CleanupStack::PopAndDestroy(hBuf);
+       
+    
+	 TInt count = aList->Count();
+	 for (TInt i=0; i< count; i++)
+		{
+		TAspProfileItem& profile = aList->Item(i);
+		//"\t%S" no need of keeping icon for profile list
+		_LIT(KListItemFormat,"\t%S");
+		HBufC* hBuf1=TUtil::StrConversion(profile.iProfileName);
+		TPtr ptr1=hBuf1->Des();
+		item.Format(KListItemFormat,&ptr1);
+		CleanupStack::PopAndDestroy(hBuf1);
+	    arr->AppendL(item);
+		}
+		
+	
+	TInt index=KErrNotFound;
+	TBool ret = ShowListQueryIconL(aResource, arr, &index);
+
+	if (ret)
+		{
+		
+		  if(index==0) //to check if R_ASP_SELECT_PROFILE_CREATE_NEW is selected
+				{
+	   				 ret=EFalse;
+	   				 index1=1;
+	    			 CleanupStack::Pop(arr);
+					 return ret;
+				}
+		
+	    TAspProfileItem& profile = aList->Item(index-1);
+	    aId = profile.iProfileId;
+	    
+		}
+
+	CleanupStack::Pop(arr);
+	return ret;
+}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::DeleteMenuItem
+//
+// -----------------------------------------------------------------------------
+//
+void TDialogUtil::DeleteMenuItem(CEikMenuPane* aMenuPane, TInt aCommandId)
+	{
+	TInt pos=KErrNotFound;
+    if (aMenuPane->MenuItemExists(aCommandId, pos))
+		{
+		aMenuPane->DeleteMenuItem(aCommandId);
+		}
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::CreateIconL
+//
+// Constructs an independent CGulIcon object with fallback support.
+// If no matching item (aId) is found in the currently active skin,
+// attempts to construct the item using the given file (last 3 parameters).
+// -----------------------------------------------------------------------------
+//
+CGulIcon* TDialogUtil::CreateIconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileBitmapId, TInt aFileMaskId)
+	{
+    CGulIcon* icon = AknsUtils::CreateGulIconL(AknsUtils::SkinInstance(), aId, aFileName, aFileBitmapId, aFileMaskId);
+	return icon;
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::CreateImageL
+//
+// -----------------------------------------------------------------------------
+//
+CEikImage* TDialogUtil::CreateImageLC(TAknsItemID aId, const TDesC& aFileName, TInt aFileBitmapId, TInt aFileMaskId)
+	{
+	CFbsBitmap* bitmap1 = NULL;
+	CFbsBitmap* bitmap2 = NULL;
+	
+	CEikImage* image = new (ELeave) CEikImage;
+	CleanupStack::PushL(image);
+
+	AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), aId, bitmap1, bitmap2, aFileName, aFileBitmapId, aFileMaskId);
+	image->SetPicture(bitmap1, bitmap2);
+	CleanupStack::Pop(2); // bitmap1 bitmap2
+
+	return image;
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ConstructListBoxItemL
+//
+// -----------------------------------------------------------------------------
+//
+HBufC* TDialogUtil::ConstructListBoxItemLC(const TDesC& aFirstLine, const TDesC& aSecondLine, TInt /*aIndex*/)
+	{
+    _LIT(KFormat, "%d\t%S\t%S");
+	
+	TInt len = aFirstLine.Length() + aSecondLine.Length() + KBufSize16;
+	
+	HBufC* hBuf = HBufC::NewLC(len);
+	TPtr ptr = hBuf->Des();
+	
+	ptr.Format(KFormat, 1, &aFirstLine, &aSecondLine);
+	
+	
+	return hBuf;
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowTimeEditorL
+//
+// -----------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowTimeEditorL(TTime& aTime, const TDesC& aTitle)
+	{
+    CAknTimeSettingPage* dlg = new (ELeave) CAknTimeSettingPage(R_ASP_SETTING_TIME, aTime);
+    
+   	CleanupStack::PushL(dlg);
+	dlg->ConstructL();
+	dlg->SetSettingTextL(aTitle);
+	CleanupStack::Pop(dlg);
+
+    
+    if (dlg->ExecuteLD(CAknSettingPage::EUpdateWhenAccepted))
+        {
+        return ETrue;
+        }
+        
+    return EFalse;
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowDateEditorL
+//
+// -----------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowDateEditorL(TTime& aTime, const TDesC& aTitle)
+	{
+    CAknDateSettingPage* dlg = new (ELeave) CAknDateSettingPage(R_ASP_SETTING_DATE, aTime);
+    
+   	CleanupStack::PushL(dlg);
+	dlg->ConstructL();
+	dlg->SetSettingTextL(aTitle);
+	CleanupStack::Pop(dlg);
+
+    if (dlg->ExecuteLD(CAknSettingPage::EUpdateWhenAccepted))
+        {
+        return ETrue;
+        }
+        
+    return EFalse;
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowListEditorL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowListEditorL(CDesCArray* aList, const TDesC& aTitle, TInt& aCurrent)
+	{
+
+	CAknRadioButtonSettingPage* dlg = new (ELeave) CAknRadioButtonSettingPage(
+	                                       R_ASP_SETTING_RADIO, aCurrent, aList);
+	CleanupStack::PushL(dlg);
+	dlg->SetSettingTextL(aTitle); 
+	CleanupStack::Pop(dlg);
+
+	return dlg->ExecuteLD();
+	}
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowListEditorL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowListEditorL(TInt aResourceId, CDesCArray* aList, const TDesC& aTitle, TInt& aCurrent)
+	{
+	CAspRadioButtonSettingPageEditor* dlg = new (ELeave) CAspRadioButtonSettingPageEditor(
+	                                       aResourceId, aCurrent, aList);
+	CleanupStack::PushL(dlg);
+	dlg->SetSettingTextL(aTitle); 
+	CleanupStack::Pop(dlg);
+
+	return dlg->ExecuteLD();
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowTextEditorL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowTextEditorL(TInt aResourceId, TDes& aText, const TDesC& aTitle, TBool aMandatory, TBool aLatinInput, TInt aMaxLength)
+	{
+	TInt flags(CAknTextSettingPage::EZeroLengthAllowed);
+
+	if (aMandatory)
+		{
+		flags = CAknTextSettingPage::EZeroLengthNotOffered;
+		}
+
+	CAspTextSettingPageEditor * dlg = new (ELeave) CAspTextSettingPageEditor(aResourceId, aText, flags);
+	CleanupStack::PushL(dlg);
+
+	dlg->SetSettingTextL(aTitle); 
+	dlg->ConstructL();
+	dlg->TextControl()->SetTextLimit(aMaxLength);
+
+	if (aLatinInput)
+		{		
+		dlg->TextControl()->SetAvkonWrap(ETrue);
+		dlg->TextControl()->SetAknEditorCase(EAknEditorLowerCase);
+		dlg->TextControl()->SetAknEditorFlags(EAknEditorFlagNoT9 | EAknEditorFlagLatinInputModesOnly);
+		}
+	
+	CleanupStack::Pop(dlg);
+
+	// CAknTextSettingPage::ExecuteLD only return boolean. See CAknSettingPage::ProcessCommandL
+	// what softkey values map to ETrue and EFalse.
+	TInt ret = dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged);
+	if (ret)
+		{
+    	return ETrue;
+		}
+
+	return EFalse;
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowTextEditorL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowTextEditorL(TDes& aText, const TDesC& aTitle, TBool aMandatory, TBool aLatinInput, TInt aMaxLength)
+	{
+	return ShowTextEditorL(R_ASP_SETTING_TEXT, aText, aTitle, aMandatory, aLatinInput, aMaxLength);
+	}
+
+
+//------------------------------------------------------------------------------
+// TDialogUtil::ShowIntegerEditorL
+//
+//------------------------------------------------------------------------------
+//
+TBool TDialogUtil::ShowIntegerEditorL(TInt& aNumber, const TDesC& aTitle, TInt aMin, TInt aMax, TBool aLatinInput)
+	{
+	CAspIntegerSettingPageEditor* dlg = new (ELeave) CAspIntegerSettingPageEditor(
+	                              R_ASP_SETTING_NUMBER, aNumber,
+	                              CAknIntegerSettingPage::EInvalidValueNotOffered);
+	CleanupStack::PushL(dlg);
+	dlg->ConstructL();
+	dlg->SetSettingTextL(aTitle);
+	CleanupStack::Pop(dlg);
+	
+	CAknIntegerEdwin* editor = dlg->IntegerEditorControl();
+	if (aMin != KErrNotFound)
+		{
+		editor->SetMinimumIntegerValue(aMin);
+		}
+	if (aMax != KErrNotFound)
+		{
+		editor->SetMaximumIntegerValue(aMax);
+		}
+
+	editor->SetAknEditorNumericKeymap(EAknEditorPlainNumberModeKeymap);
+	
+	if (aLatinInput)
+		{
+		editor->SetAknEditorFlags(EAknEditorFlagLatinInputModesOnly);
+		editor->SetValueL(aNumber);
+		}
+
+	if (dlg->ExecuteLD(CAknIntegerSettingPage::EUpdateWhenChanged))
+		{
+		return ETrue;
+		}
+
+	return EFalse;
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowPopupDialogL
+// 
+// -----------------------------------------------------------------------------
+void TDialogUtil::ShowPopupDialogL(const TDesC& aText, CDesCArray* aArray)
+	{
+	CAknSingleHeadingPopupMenuStyleListBox* listBox = new (ELeave) CAknSingleHeadingPopupMenuStyleListBox;
+	CleanupStack::PushL(listBox);
+
+
+	CAknPopupList* popupList = CAknPopupList::NewL(listBox, R_AVKON_SOFTKEYS_OK_EMPTY, AknPopupLayouts::EMenuWindow);
+	CleanupStack::PushL(popupList);
+
+	listBox->ConstructL(popupList, EAknListBoxViewerFlags);
+	
+	CDesCArray* array = (CDesCArray*) listBox->Model()->ItemTextArray();
+	listBox->CreateScrollBarFrameL(ETrue); 
+	listBox->ScrollBarFrame()->	SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
+    
+	TInt count = aArray->Count();
+	for (TInt i=0; i<count; i++)
+		{
+		TPtrC ptr = (*aArray)[i];
+		array->AppendL(ptr);
+		}
+	
+	popupList->SetTitleL(aText);
+
+	popupList->ExecuteLD();
+
+	CleanupStack::Pop(popupList);
+	CleanupStack::PopAndDestroy(listBox);
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowPopupDialog2L
+// 
+// -----------------------------------------------------------------------------
+void TDialogUtil::ShowPopupDialog2L(const TDesC& aText, CDesCArray* aArray)
+	{
+    CAknDoublePopupMenuStyleListBox* listBox = new(ELeave) CAknDoublePopupMenuStyleListBox;
+    
+    CleanupStack::PushL(listBox);
+
+    // Avkon popup list with heading
+    CAknPopupList* popupList = CAknPopupList::NewL(listBox, R_AVKON_SOFTKEYS_OK_EMPTY, AknPopupLayouts::EMenuDoubleWindow);
+    CleanupStack::PushL(popupList);
+    
+    // Set listbox properties and create item array
+    listBox->ConstructL(popupList, EAknListBoxViewerFlags);
+    listBox->CreateScrollBarFrameL(ETrue);
+    listBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
+    
+   	CDesCArray* array = (CDesCArray*) listBox->Model()->ItemTextArray();
+	TInt count = aArray->Count();
+	for (TInt i=0; i<count; i++)
+		{
+		TPtrC ptr = (*aArray)[i];
+		array->AppendL(ptr);
+		}
+    popupList->SetTitleL(aText);
+    	
+    popupList->ExecuteLD();
+
+    CleanupStack::Pop(popupList);
+    CleanupStack::PopAndDestroy(listBox);
+	}
+
+// -----------------------------------------------------------------------------
+// TDialogUtil::ShowAutoSyncLogL
+// 
+// -----------------------------------------------------------------------------
+TInt TDialogUtil::ShowAutoSyncLogL(TAny* /*aAny*/)
+	{
+
+	CAspSchedule* schedule = CAspSchedule::NewLC();
+	TRAPD (err,schedule->ShowAutoSyncLogL());
+	CleanupStack::PopAndDestroy(schedule);
+
+	if (err == KErrNone)
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+//-----------------------------------------------------------------------------
+//
+//Does Descriptor contain string "PC Suite"
+//Its NOT case sensitive
+//
+//-----------------------------------------------------------------------------
+TBool TDialogUtil::IsPCSuiteDesC(const TDesC& des)
+{
+	_LIT(KPCSuite, "pc suite");
+	TPtrC pcSuitePtr(KPCSuite);
+	
+	TBuf<KBufSize64> buf;
+	TUtil::StrCopy(buf,des);
+	buf.LowerCase();
+	if (buf.Match(pcSuitePtr) == 0)
+	{
+		return ETrue;
+	}
+		
+	return EFalse;
+}
+	    		
+
+/*******************************************************************************
+ * class CAspIndicatorHandler
+ *******************************************************************************/
+
+
+// -----------------------------------------------------------------------------
+// Destructor
+//
+// -----------------------------------------------------------------------------
+//
+CAspIndicatorHandler::~CAspIndicatorHandler()
+    {
+    if (iIndicator && iIndicatorContainer && iIndicatorModified)
+    	{
+        if (iPreviousIndicatorType == EAknNaviPaneEditorIndicatorMessageLength)
+        	{
+        	TRAP_IGNORE( iIndicatorContainer->SetIndicatorValueL(
+                      TUid::Uid(EAknNaviPaneEditorIndicatorMessageLength), KNullDesC) );
+            }
+
+        iIndicatorContainer->SetIndicatorState(TUid::Uid(iIndicatorType), EAknIndicatorStateOff);
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAspIndicatorHandler::CAspIndicatorHandler
+//
+// -----------------------------------------------------------------------------
+//
+CAspIndicatorHandler::CAspIndicatorHandler(MAknEditingStateIndicator* aIndicator) : iIndicator(aIndicator)
+	{
+	iIndicatorContainer = iIndicator->IndicatorContainer();
+    iIndicatorModified = EFalse;
+    iPreviousIndicatorType = KErrNotFound;
+	}
+
+
+// ----------------------------------------------------------------------------
+// CAspIndicatorHandler::SetIndicatorStateL
+// 
+// ----------------------------------------------------------------------------
+//
+void CAspIndicatorHandler::SetIndicatorStateL(TInt aIndicatorType, const TDesC& aText)
+	{
+    if (iIndicator && iIndicatorContainer)
+    	{
+   	
+        if (iPreviousIndicatorType == EAknNaviPaneEditorIndicatorMessageLength)
+        	{
+        	iIndicatorContainer->SetIndicatorValueL(
+                      TUid::Uid(EAknNaviPaneEditorIndicatorMessageLength), KNullDesC);
+            }
+
+    	iIndicatorContainer->SetIndicatorState(TUid::Uid(aIndicatorType),
+                                               EAknIndicatorStateOn);
+                                               
+        iIndicatorModified = ETrue;
+        iPreviousIndicatorType = aIndicatorType;
+        
+                                               
+        if (aIndicatorType == EAknNaviPaneEditorIndicatorMessageLength)
+        	{
+        	iIndicatorContainer->SetIndicatorValueL(
+                                 TUid::Uid(EAknNaviPaneEditorIndicatorMessageLength), aText);
+            iPreviousIndicatorType = aIndicatorType;
+            }
+    	}
+	
+	}
+
+
+
+/*******************************************************************************
+ * class CAspNaviPaneHandler
+ *******************************************************************************/
+
+
+// -----------------------------------------------------------------------------
+// Destructor
+//
+// -----------------------------------------------------------------------------
+//
+CAspNaviPaneHandler::~CAspNaviPaneHandler()
+    {
+   	if (iNaviDecorator)
+		{
+		if (iNaviPane && iNavidecoratorPushed)
+			{
+			iNaviPane->Pop(iNaviDecorator);
+			}
+	
+		delete iNaviDecorator;
+		}
+		
+	if (iNaviPane && iNavipanePushed)
+		{
+		iNaviPane->Pop(); // restore previous navi pane
+		}
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAspNaviPaneHandler::CAspNaviPaneHandler
+//
+// -----------------------------------------------------------------------------
+//
+CAspNaviPaneHandler::CAspNaviPaneHandler(CEikStatusPane* aStatusPane) : iStatusPane(aStatusPane)
+	{
+	iNavidecoratorPushed = EFalse;
+	iNavipanePushed = EFalse;
+	
+	if (iStatusPane)
+		{
+		TRAP_IGNORE( iNaviPane = (CAknNavigationControlContainer*)iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidNavi)) );
+		}
+	}
+
+
+// ----------------------------------------------------------------------------
+// CAspNaviPaneHandler::SetNaviPaneTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CAspNaviPaneHandler::SetNaviPaneTitleL(const TDesC& aTitle)
+	{
+	if (!iStatusPane || !iNaviPane)
+		{
+		return;
+		}
+
+    if (iNaviDecorator)
+        {
+        CAknNaviLabel* naviLabel = static_cast<CAknNaviLabel*>(iNaviDecorator->DecoratedControl());
+        if (naviLabel)
+        	{
+        	naviLabel->SetTextL(aTitle);
+        	iNaviDecorator->DrawDeferred();
+        	}
+        }
+     else
+    	{
+    	iNaviDecorator = iNaviPane->CreateNavigationLabelL(aTitle);
+    	iNaviPane->PushL(*iNaviDecorator); // activate navi label in navi pane
+    	iNavidecoratorPushed = ETrue;
+    	}
+    	
+    //CFbsBitmap* bitmap = NULL;
+    //CFbsBitmap* bitmapMask = NULL;
+    //AknsUtils::CreateIconL(AknsUtils::SkinInstance(), KAknsIIDQgnPropSmlHttp,
+    //                       bitmap, bitmapMask, bitmapName,
+    //                       EMbmAspsyncutilQgn_prop_sml_http, EMbmAspsyncutilQgn_prop_sml_http_mask);
+    //iNaviDecorator = naviPane->CreateNavigationImageL(bitmap, bitmapMask);
+    //naviPane->PushL(*iNaviDecorator);
+    	
+	}
+
+
+// ----------------------------------------------------------------------------
+// CAspNaviPaneHandler::StoreNavipaneL
+// 
+// ----------------------------------------------------------------------------
+//
+void CAspNaviPaneHandler::StoreNavipaneL()
+	{
+	if (!iNaviPane || !iStatusPane || iNavipanePushed)
+		{
+		return;
+		}
+
+	if (iStatusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent())
+		{
+		iNaviPane->PushDefaultL();
+		iNavipanePushed = ETrue;
+		}
+	}
+
+#ifdef RD_DSUI_TIMEDSYNC
+
+/*******************************************************************************
+ * class CAspTabbedNaviPaneHandler
+ *******************************************************************************/
+
+
+// -----------------------------------------------------------------------------
+// Destructor
+//
+// -----------------------------------------------------------------------------
+//
+CAspTabbedNaviPaneHandler::~CAspTabbedNaviPaneHandler()
+    {
+   	if (iNaviDecorator)
+		{
+		if (iNaviPane && iNavidecoratorPushed)
+			{
+			iNaviPane->Pop(iNaviDecorator);
+			}
+	
+		delete iNaviDecorator;
+		}
+		
+	if (iNaviPane && iNavipanePushed)
+		{
+		iNaviPane->Pop(); // restore previous navi pane
+		}
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::CAspTabbedNaviPaneHandler
+//
+// -----------------------------------------------------------------------------
+//
+CAspTabbedNaviPaneHandler::CAspTabbedNaviPaneHandler(CEikStatusPane* aStatusPane ,CAspSettingDialog *aDialog) 
+						  : iStatusPane(aStatusPane)
+	{
+	iNavidecoratorPushed = EFalse;
+	iNavipanePushed = EFalse;
+	
+	iDialog = aDialog;
+	
+	if (iStatusPane)
+		{
+		TRAP_IGNORE( iNaviPane = (CAknNavigationControlContainer*)iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidNavi)) );
+		}
+		
+    if (iNaviPane)
+        {
+        TRAP_IGNORE(iNaviDecorator = iNaviPane->CreateTabGroupL(this));    
+        if (iNaviDecorator)
+            {
+            TRAP_IGNORE(iNaviPane->PushL(*iNaviDecorator));
+            iNavidecoratorPushed = ETrue;
+    
+            iTabGroup = static_cast<CAknTabGroup*>( iNaviDecorator->DecoratedControl() );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::SetTabWidthL
+//
+// -----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::SetTabWidthL()
+{
+	
+	if (iTabGroup)
+	    {
+	     if (iTabGroup->TabCount() == 1)
+	         {
+	         iTabGroup->SetTabFixedWidthL(KTabWidthWithOneTab);     	
+	         }
+	     else if (iTabGroup->TabCount() == 2)
+	         {
+	         iTabGroup->SetTabFixedWidthL(KTabWidthWithTwoLongTabs);     	
+	         }
+	     else
+	         {
+	         iTabGroup->SetTabFixedWidthL(KTabWidthWithThreeLongTabs);     		
+	         }
+	      }
+}
+// -----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::SetTabTextL
+//
+// -----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::SetTabTextL(const TDesC& aText, TInt aTabId)
+	{
+	if (iTabGroup)
+	    {
+	    iTabGroup->ReplaceTabTextL(aTabId, aText);
+	    }
+	}
+
+
+// -----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::AddTabL
+//
+// -----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::AddTabL(const TDesC& aText, TInt aTabId)
+	{
+	if (iTabGroup)
+	    {
+	    iTabGroup->AddTabL(aTabId, aText);
+	    }
+	}
+
+
+// -----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::DeleteTabsL
+//
+// -----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::DeleteTabsL()
+	{
+	if (iTabGroup)
+	    {
+	    TInt count = iTabGroup->TabCount();
+	    for (TInt i=0; i<count; i++)
+	        {
+	        TInt id = iTabGroup->TabIdFromIndex(0);
+	        iTabGroup->DeleteTabL(id);
+	        }
+	    }
+	}
+
+
+// -----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::SetActiveTabL
+//
+// -----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::SetActiveTabL(TInt aTabId)
+	{
+	if (iTabGroup)
+	    {
+	    TInt index = iTabGroup->TabIndexFromId(aTabId);
+	    if (index != KErrNotFound)
+	        {
+	        iTabGroup->SetActiveTabById(aTabId);    
+	        }
+	    }
+	}
+
+
+// ----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::StoreNavipaneL
+// 
+// ----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::StoreNavipaneL()
+	{
+	if (!iNaviPane || !iStatusPane || iNavipanePushed)
+		{
+		return;
+		}
+
+	if (iStatusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent())
+		{
+		iNaviPane->PushDefaultL();
+		iNavipanePushed = ETrue;
+		}
+	}
+
+// ----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::TabIndex
+// 
+// ----------------------------------------------------------------------------
+//
+TInt CAspTabbedNaviPaneHandler::TabIndex(TInt aTabId)
+	{
+	return iTabGroup->TabIndexFromId(aTabId);
+	}
+
+// ----------------------------------------------------------------------------
+// CAspTabbedNaviPaneHandler::TabChangedL (from MAknTabObserver)
+// 
+// ----------------------------------------------------------------------------
+//
+void CAspTabbedNaviPaneHandler::TabChangedL(TInt aIndex)
+	{
+	TInt profileId = iTabGroup->TabIdFromIndex(aIndex );
+	iDialog->SetCurrentProfile(profileId);
+	iDialog->UpdateTabsL();
+	iDialog->UpdateListBoxL();
+	}
+
+#endif
+
+
+
+
+/*******************************************************************************
+ * class CStatusPaneHandler
+ *******************************************************************************/
+
+// -----------------------------------------------------------------------------
+// CStatusPaneHandler::NewL
+//
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CStatusPaneHandler* CStatusPaneHandler::NewL(CAknAppUi* aAppUi)
+    {
+    CStatusPaneHandler* self = new (ELeave) CStatusPaneHandler(aAppUi);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// Destructor
+//
+// -----------------------------------------------------------------------------
+//
+CStatusPaneHandler::~CStatusPaneHandler()
+    {
+	TRAP_IGNORE(RestoreOriginalTitleL());
+	TRAP_IGNORE(RestoreOriginalImageL());
+	
+	delete iNaviPaneHandler;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CStatusPaneHandler::ConstructL
+//
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::ConstructL(void)
+    {
+    iNaviPaneHandler = new (ELeave) CAspNaviPaneHandler(iAppUi->StatusPane());
+    }
+
+
+// -----------------------------------------------------------------------------
+// CStatusPaneHandler::CStatusPaneHandler
+//
+// -----------------------------------------------------------------------------
+//
+CStatusPaneHandler::CStatusPaneHandler(CAknAppUi* aAppUi) : iAppUi(aAppUi)
+	{
+	__ASSERT_ALWAYS(iAppUi, TUtil::Panic(KErrGeneral));
+
+	iOriginalTitleStored = EFalse;
+	iOriginalTitle = KNullDesC;
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::GetTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+TBool CStatusPaneHandler::GetTitleL(CAknAppUi* aAppUi, TDes& aTitle)
+	{
+	aTitle = KNullDesC;
+
+	CEikStatusPane* statusPane = aAppUi->StatusPane();
+    if (statusPane && statusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent())
+		{
+        CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
+            (statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
+        if (titlePane->Text()) 
+			{
+		    TUtil::StrCopy(aTitle, *titlePane->Text());
+			return ETrue;
+    		}
+		}
+
+	return EFalse;
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+TBool CStatusPaneHandler::SetTitleL(CAknAppUi* aAppUi, const TDesC& aTitle)
+	{
+	CEikStatusPane* statusPane = aAppUi->StatusPane();
+    if (statusPane && statusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent())
+		{
+        CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
+            (statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
+        if (titlePane->Text()) 
+			{
+	   		titlePane->SetTextL(aTitle);
+			return ETrue;
+			}
+		}
+	return EFalse;
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetNaviPaneTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::SetNaviPaneTitleL(const TDesC& aTitle)
+	{
+	iNaviPaneHandler->SetNaviPaneTitleL(aTitle);
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetNaviPaneTitle
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::SetNaviPaneTitle(const TDesC& aTitle)
+	{
+	TRAP_IGNORE(iNaviPaneHandler->SetNaviPaneTitleL(aTitle));
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetNaviPaneTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::SetNaviPaneTitleL(TInt aResource)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResource);
+    SetNaviPaneTitleL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::StoreNavipaneL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::StoreNavipaneL()
+	{
+	iNaviPaneHandler->StoreNavipaneL();
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::StoreOriginalTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::StoreOriginalTitleL()
+	{
+	TBool ret = GetTitleL(iAppUi, iOriginalTitle);
+	
+	if (ret)
+		{
+		iOriginalTitleStored = ETrue;
+		}
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::RestoreOriginalTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::RestoreOriginalTitleL()
+	{
+	if (iOriginalTitleStored)
+		{
+		SetTitleL(iAppUi, iOriginalTitle);
+		}
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::SetTitleL(const TDesC& aText)
+	{
+	if (iOriginalTitleStored)
+		{
+		SetTitleL(iAppUi, aText);
+		}
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetTitleL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::SetTitleL(TInt aResourceId)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResourceId);
+	SetTitleL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetNewImageL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::SetNewImageL(const TDesC& aFilename,TInt aMainId,TInt aMaskId)
+	{
+	__ASSERT_DEBUG(!iOriginalImage, TUtil::Panic(KErrGeneral)); // can set image only once
+
+	CEikImage* image = new (ELeave) CEikImage;
+	CleanupStack::PushL(image);
+	
+	image->CreatePictureFromFileL(aFilename, aMainId, aMaskId);
+
+	iOriginalImage = SetImageL(iAppUi, image);
+
+	if (iOriginalImage)
+		{
+        CleanupStack::Pop(image); // ownership transferred to context pane
+		return;
+		}
+
+	CleanupStack::PopAndDestroy(image);
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::RestoreOriginalImageL
+// 
+// ----------------------------------------------------------------------------
+//
+void CStatusPaneHandler::RestoreOriginalImageL()
+	{
+	if (!iOriginalImage)
+		{
+		return; // image has not been replaced
+		}
+
+	CEikImage* image = NULL;
+	TRAPD(err, image = SetImageL(iAppUi, iOriginalImage));
+
+	if (err == KErrNone && image)
+		{
+		delete image; // delete our own image
+		}
+	else
+		{
+		delete iOriginalImage; // delete original image (could not restore it)
+		iOriginalImage = NULL;
+		}
+	}
+
+
+// ----------------------------------------------------------------------------
+// CStatusPaneHandler::SetImageL
+// 
+// ----------------------------------------------------------------------------
+//
+CEikImage* CStatusPaneHandler::SetImageL(CAknAppUi* aAppUi, CEikImage* aIcon)
+	{
+	CEikStatusPane* statusPane = aAppUi->StatusPane();
+    if (statusPane && statusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidContext)).IsPresent())
+		{
+        CAknContextPane* contextPane = static_cast<CAknContextPane*>
+            (statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext)));
+        if (contextPane) 
+			{
+	   		return contextPane->SwapPicture(aIcon);
+			}
+		}
+
+	return NULL;
+	}
+
+
+
+
+/*******************************************************************************
+ * class CAspSelectionItemList
+ *******************************************************************************/
+
+
+// -----------------------------------------------------------------------------
+// CAspSelectionItemList::Cleanup
+//
+// -----------------------------------------------------------------------------
+//
+void CAspSelectionItemList::Cleanup(TAny* aObj)
+    {
+    CAspSelectionItemList* list = static_cast<CAspSelectionItemList*>(aObj);
+	list->ResetAndDestroy();
+	delete list;
+	list = NULL;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAspSelectionItemList::CAspSelectionItemList
+//
+// -----------------------------------------------------------------------------
+//
+CAspSelectionItemList::CAspSelectionItemList(TInt aGranularity) 
+: CSelectionItemList(aGranularity)
+	{
+	}
+
+
+
+/*******************************************************************************
+ * class CAspListItemData
+ *******************************************************************************/
+
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::NewLC
+// 
+//------------------------------------------------------------------------------
+//
+CAspListItemData* CAspListItemData::NewLC()
+	{
+	CAspListItemData* self = new (ELeave) CAspListItemData;
+	CleanupStack::PushL( self);
+	self->ConstructL();
+	return self;
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::ConstructL
+//
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::ConstructL()
+	{
+	Init();
+	
+    iHeader  = HBufC::NewL(0);
+	iDisplayValue = HBufC::NewL(0);
+	iValue = HBufC::NewL(0);
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAspListItemData::CAspListItemData
+// -----------------------------------------------------------------------------
+//
+CAspListItemData::CAspListItemData()
+	{
+	}
+
+
+//------------------------------------------------------------------------------
+// Destructor
+//
+//------------------------------------------------------------------------------
+//
+CAspListItemData::~CAspListItemData()
+	{
+	delete iHeader;
+	delete iDisplayValue;
+	delete iValue;
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::Header
+//
+//------------------------------------------------------------------------------
+//
+const TDesC& CAspListItemData::Header()
+	{
+	__ASSERT_ALWAYS(iHeader, TUtil::Panic(KErrGeneral));
+	
+	return *iHeader;
+    }
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::SetHeaderL
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::SetHeaderL(const TDesC& aText)
+	{
+	delete iHeader;
+	iHeader = NULL;
+	iHeader = aText.AllocL();
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::SetHeaderL
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::SetHeaderL(TInt aResourceId)
+	{
+	HBufC* hBuf = CAspResHandler::ReadLC(aResourceId);
+    SetHeaderL(hBuf->Des());
+	CleanupStack::PopAndDestroy(hBuf);
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::Value
+// 
+//------------------------------------------------------------------------------
+//
+const TDesC& CAspListItemData::Value()
+	{
+	__ASSERT_ALWAYS(iValue, TUtil::Panic(KErrGeneral));
+	
+	return *iValue;
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::SetValue
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::SetValueL(const TDesC& aText)
+	{
+    delete iValue;
+    iValue = NULL;
+	iValue = aText.AllocL();
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::SetValueL
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::SetValueL(TInt aNumber)
+	{
+	TBuf<KBufSize32> buf;
+	buf.Num(aNumber);
+	SetValueL(buf);
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::SetDisplayValue
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::SetDisplayValueL(const TDesC& aText)
+	{
+	delete iDisplayValue;
+	iDisplayValue = NULL;
+	iDisplayValue = aText.AllocL();
+    }
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::SetDisplayValue
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::SetDisplayValueL(TInt aResource)
+	{
+	delete iDisplayValue;
+	iDisplayValue = NULL;
+	
+	iDisplayValue = StringLoader::LoadL(aResource);
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::IsEmpty
+// 
+//------------------------------------------------------------------------------
+//
+TBool CAspListItemData::IsEmpty()
+	{
+	if (!iValue)
+		{
+		return ETrue;
+		}
+		
+	if (TUtil::IsEmpty(iValue->Des()))
+		{
+		return ETrue;
+		}
+		
+	return EFalse;
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::ListItemTextL
+//
+// Constructs header and value suitable for listbox.
+// List item syntax:
+// "\t<header>\t\t<value>\t<mandatorychar>\t\t<readonlyicon>"
+//------------------------------------------------------------------------------
+//
+HBufC* CAspListItemData::ListItemTextL(TBool aConvert)
+	{
+	_LIT(KTab, "\t");
+	_LIT(KMandatoryChar, "*");
+	_LIT(KReadOnlyIconIndex, "0");
+	
+	HBufC* hBuf = HBufC::NewL(KBufSize255);
+	TPtr ptr = hBuf->Des();
+	
+	ptr.Append(KTab);
+	ptr.Append(iHeader->Des());
+	ptr.Append(KTab);
+	ptr.Append(KTab);
+	                                              //"PC Suite" string in Host address field and server id should be displayed as chinese
+	if (IsEmpty() || iItemType == ETypeSecret || (TDialogUtil::IsPCSuiteDesC(iValue->Des()) && (iItemId == EAspHostAddress || iItemId == EAspServerId)))
+		{
+		ptr.Append(iDisplayValue->Des());
+		}
+	else
+		{
+		ptr.Append(iValue->Des());
+		}
+
+	ptr.Append(KTab);
+	
+	if (iMandatory)
+		{
+		ptr.Append(KMandatoryChar);
+		}
+	
+	ptr.Append(KTab);
+	ptr.Append(KTab);
+	
+	if (iHidden == EVisibilityReadOnly)
+		{
+		ptr.Append(KReadOnlyIconIndex);
+		}
+
+	if (aConvert)
+		{
+		AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr);
+		}
+
+	return hBuf;
+	}
+
+
+//------------------------------------------------------------------------------
+// CAspListItemData::Init
+// 
+//------------------------------------------------------------------------------
+//
+void CAspListItemData::Init()
+	{
+	iNumberData = KErrNotFound;
+	iDate = 0;
+	iTime = 0;
+	
+	iItemType = KErrNotFound;
+	iHidden = EVisibilityNormal;
+	iMaxLength = KBufSize;
+	iResource = KErrNotFound;
+	iIndex = KErrNotFound;
+	iItemId = KErrNotFound;
+	
+	iMandatory = EFalse;
+	iLatinInput = EFalse;
+	
+	iMinValue = KErrNotFound;
+	iMaxValue = KErrNotFound;
+	
+	//iFilter = 0;
+	iSelectKeyPressed = EFalse;
+	
+	iValue = NULL;
+	iDisplayValue = NULL;
+	iHeader = NULL;
+    }
+
+
+		
+/*******************************************************************************
+ * class CAspRadioButtonSettingPageEditor
+ *******************************************************************************/
+
+
+//------------------------------------------------------------------------------
+// CAspRadioButtonSettingPageEditor::CAspRadioButtonSettingPage
+// 
+//------------------------------------------------------------------------------
+//
+CAspRadioButtonSettingPageEditor::CAspRadioButtonSettingPageEditor(TInt aResourceID,
+                            TInt& aCurrentSelectionIndex,
+                            const MDesCArray* aItemArray
+                            )
+                            
+ : CAknRadioButtonSettingPage(aResourceID, aCurrentSelectionIndex, aItemArray)
+	{
+	}
+	
+	
+// ----------------------------------------------------------------------------
+// CAspRadioButtonSettingPageEditor::OfferKeyEventL
+//
+// ----------------------------------------------------------------------------
+//
+TKeyResponse CAspRadioButtonSettingPageEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent, 
+                                                 TEventCode aType)
+    {
+		    if(EKeyEnter == aKeyEvent.iCode)
+		    {
+		    	ProcessCommandL(EAknSoftkeyOk);
+		    	return EKeyWasConsumed;
+		    }
+		    return CAknRadioButtonSettingPage::OfferKeyEventL(aKeyEvent, aType);
+    }
+
+//------------------------------------------------------------------------------
+// Destructor
+// 
+//------------------------------------------------------------------------------
+//
+CAspRadioButtonSettingPageEditor::~CAspRadioButtonSettingPageEditor()
+	{
+	}
+
+		
+/*******************************************************************************
+ * class CAspTextSettingPageEditor
+ *******************************************************************************/
+
+
+//------------------------------------------------------------------------------
+// CAspTextSettingPageEditor::CAspTextSettingPageEditor
+// 
+//------------------------------------------------------------------------------
+//
+CAspTextSettingPageEditor::CAspTextSettingPageEditor(TInt aResourceID, 
+                                                     TDes& aText, 
+                                                     TInt aTextSettingPageFlags)                      
+ : CAknTextSettingPage(aResourceID, aText, aTextSettingPageFlags)
+	{
+	}
+	
+	
+// ----------------------------------------------------------------------------
+// CAspTextSettingPageEditor::OfferKeyEventL
+//
+// ----------------------------------------------------------------------------
+//
+TKeyResponse CAspTextSettingPageEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent, 
+                                                 TEventCode aType)
+    {
+		    if(EKeyEnter == aKeyEvent.iCode)
+		    {
+		    	ProcessCommandL(EAknSoftkeyOk);
+		    	return EKeyWasConsumed;
+		    }
+		    return CAknTextSettingPage::OfferKeyEventL(aKeyEvent, aType);
+    }
+
+//------------------------------------------------------------------------------
+// Destructor
+// 
+//------------------------------------------------------------------------------
+//
+CAspTextSettingPageEditor::~CAspTextSettingPageEditor()
+	{
+	}
+
+		
+/*******************************************************************************
+ * class CAspAlphaPasswordSettingPageEditor
+ *******************************************************************************/
+
+
+//------------------------------------------------------------------------------
+// CAspAlphaPasswordSettingPageEditor::CAspAlphaPasswordSettingPageEditor
+// 
+//------------------------------------------------------------------------------
+//
+CAspAlphaPasswordSettingPageEditor::CAspAlphaPasswordSettingPageEditor(TInt aResourceID, 
+                                                     TDes& aNewPassword, 
+                                                     const TDesC& aOldPassword)                      
+ : CAknAlphaPasswordSettingPage(aResourceID,aNewPassword,aOldPassword)
+	{
+	}
+	
+	
+// ----------------------------------------------------------------------------
+// CAspAlphaPasswordSettingPageEditor::OfferKeyEventL
+//
+// ----------------------------------------------------------------------------
+//
+TKeyResponse CAspAlphaPasswordSettingPageEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent, 
+                                                 TEventCode aType)
+    {
+		    if(EKeyEnter == aKeyEvent.iCode)
+		    {
+		    	ProcessCommandL(EAknSoftkeyOk);
+		    	return EKeyWasConsumed;
+		    }
+		    return CAknAlphaPasswordSettingPage::OfferKeyEventL(aKeyEvent, aType);
+    }
+
+//------------------------------------------------------------------------------
+// Destructor
+// 
+//------------------------------------------------------------------------------
+//
+CAspAlphaPasswordSettingPageEditor::~CAspAlphaPasswordSettingPageEditor()
+	{
+	}
+
+/*******************************************************************************
+ * class CAspIntegerSettingPageEditor
+ *******************************************************************************/
+
+
+//------------------------------------------------------------------------------
+// CAspIntegerSettingPageEditor::CAspIntegerSettingPageEditor
+// 
+//------------------------------------------------------------------------------
+//
+CAspIntegerSettingPageEditor::CAspIntegerSettingPageEditor(TInt aResourceID, 
+												TInt& aValue, 
+												TInt aTextSettingPageFlags)
+ : CAknIntegerSettingPage(aResourceID,aValue,aTextSettingPageFlags)
+	{
+	}
+	
+	
+// ----------------------------------------------------------------------------
+// CAspIntegerSettingPageEditor::OfferKeyEventL
+//
+// ----------------------------------------------------------------------------
+//
+TKeyResponse CAspIntegerSettingPageEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent, 
+                                                 TEventCode aType)
+    {
+		    if(EKeyEnter == aKeyEvent.iCode)
+		    {
+		    	ProcessCommandL(EAknSoftkeyOk);
+		    	return EKeyWasConsumed;
+		    }
+		    return CAknIntegerSettingPage::OfferKeyEventL(aKeyEvent, aType);
+    }
+
+//------------------------------------------------------------------------------
+// Destructor
+// 
+//------------------------------------------------------------------------------
+//
+CAspIntegerSettingPageEditor::~CAspIntegerSettingPageEditor()
+	{
+	}
+
+
+//  End of File