profilesservices/FileList/Src/CFLDSoftKeyChanger.cpp
author hgs
Thu, 04 Nov 2010 13:38:47 +0800
changeset 68 13e71d907dc3
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
* 	CFLDSoftKeyChanger changes softkeys into video preview layout and
hgs
parents:
diff changeset
    16
* 	video preview select layout. Allows also to restore old layout.
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
*
hgs
parents:
diff changeset
    19
*/
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
//  CLASS HEADER
hgs
parents:
diff changeset
    22
#include "CFLDSoftKeyChanger.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
//	EXTERNAL INCLUDES
hgs
parents:
diff changeset
    25
#include <f32file.h> 	// For TParsePtrC
hgs
parents:
diff changeset
    26
#include <StringLoader.h>
hgs
parents:
diff changeset
    27
#include <eikbtgpc.h> 	// For CEikButtonGroupContainer
hgs
parents:
diff changeset
    28
#include <filelist.rsg>	// For R_FLD_SOFTKEYS_PREVIEW_CANCEL
hgs
parents:
diff changeset
    29
#include <avkon.rsg>	// For R_AVKON_SOFTKEYS_SELECT_CANCEL
hgs
parents:
diff changeset
    30
#include <avkon.hrh>	// For EAknSoftkeySelect
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    35
// CFLDSoftKeyChanger::NewL
hgs
parents:
diff changeset
    36
// Two-phased constructor.
hgs
parents:
diff changeset
    37
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    38
//
hgs
parents:
diff changeset
    39
CFLDSoftKeyChanger* CFLDSoftKeyChanger::NewL()
hgs
parents:
diff changeset
    40
    {
hgs
parents:
diff changeset
    41
    CFLDSoftKeyChanger* self = CFLDSoftKeyChanger::NewLC();
hgs
parents:
diff changeset
    42
    CleanupStack::Pop( self ); // self
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
    return self;
hgs
parents:
diff changeset
    45
    }
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    48
// CFLDSoftKeyChanger::NewLC
hgs
parents:
diff changeset
    49
// Two-phased constructor.
hgs
parents:
diff changeset
    50
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    51
//
hgs
parents:
diff changeset
    52
CFLDSoftKeyChanger* CFLDSoftKeyChanger::NewLC()
hgs
parents:
diff changeset
    53
    {
hgs
parents:
diff changeset
    54
    CFLDSoftKeyChanger* self = new( ELeave ) CFLDSoftKeyChanger();
hgs
parents:
diff changeset
    55
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    self->ConstructL( );
hgs
parents:
diff changeset
    58
    return self;
hgs
parents:
diff changeset
    59
    }
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
// Destructor
hgs
parents:
diff changeset
    62
CFLDSoftKeyChanger::~CFLDSoftKeyChanger()
hgs
parents:
diff changeset
    63
    {
hgs
parents:
diff changeset
    64
    delete iSoftKeySelect;
hgs
parents:
diff changeset
    65
    delete iSoftKeyPreview;
hgs
parents:
diff changeset
    66
    delete iSoftKeyCancel;
hgs
parents:
diff changeset
    67
    delete iSoftKeyBack;
hgs
parents:
diff changeset
    68
    }
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
// CFLDSoftKeyChanger::CFLDSoftKeyChanger
hgs
parents:
diff changeset
    73
// C++ default constructor can NOT contain any code, that
hgs
parents:
diff changeset
    74
// might leave.
hgs
parents:
diff changeset
    75
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    76
//
hgs
parents:
diff changeset
    77
CFLDSoftKeyChanger::CFLDSoftKeyChanger()
hgs
parents:
diff changeset
    78
	: iSoftKeyState( MFLDFileListBoxObserver::EToneSelectionSoftKeyState )
hgs
parents:
diff changeset
    79
    {
hgs
parents:
diff changeset
    80
    }
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    83
// CFLDSoftKeyChanger::ConstructL
hgs
parents:
diff changeset
    84
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
    85
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    86
//
hgs
parents:
diff changeset
    87
void CFLDSoftKeyChanger::ConstructL()
hgs
parents:
diff changeset
    88
    {
hgs
parents:
diff changeset
    89
    iSoftKeySelect = StringLoader::LoadL( R_FLD_QTN_TEXT_SOFTKEY_PREVIEW_SELECT );
hgs
parents:
diff changeset
    90
    iSoftKeyPreview = StringLoader::LoadL( R_FLD_QTN_TEXT_SOFTKEY_PREVIEW );
hgs
parents:
diff changeset
    91
    iSoftKeyCancel = StringLoader::LoadL( R_FLD_QTN_TEXT_SOFTKEY_CANCEL );
hgs
parents:
diff changeset
    92
    iSoftKeyBack = StringLoader::LoadL( R_FLD_QTN_TEXT_SOFTKEY_BACK );
hgs
parents:
diff changeset
    93
    }
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    96
// CFLDSoftKeyChanger::ChangeLeftSoftKeyL
hgs
parents:
diff changeset
    97
// (other items were commented in a header).
hgs
parents:
diff changeset
    98
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    99
//
hgs
parents:
diff changeset
   100
void CFLDSoftKeyChanger::ChangeLeftSoftKeyL( const TDesC& aSoftKeyLabel ) const
hgs
parents:
diff changeset
   101
	{
hgs
parents:
diff changeset
   102
	CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
hgs
parents:
diff changeset
   103
 	CleanupStack::PushL( cba );
hgs
parents:
diff changeset
   104
	cba->SetCommandL( EAknSoftkeySelect, aSoftKeyLabel );
hgs
parents:
diff changeset
   105
	CleanupStack::Pop( cba );
hgs
parents:
diff changeset
   106
	cba->DrawDeferred();
hgs
parents:
diff changeset
   107
	}
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   110
// CFLDSoftKeyChanger::ChangeRightSoftKeyL
hgs
parents:
diff changeset
   111
// (other items were commented in a header).
hgs
parents:
diff changeset
   112
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   113
//
hgs
parents:
diff changeset
   114
void CFLDSoftKeyChanger::ChangeRightSoftKeyL( const TDesC& aSoftKeyLabel ) const
hgs
parents:
diff changeset
   115
	{
hgs
parents:
diff changeset
   116
	CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
hgs
parents:
diff changeset
   117
 	CleanupStack::PushL( cba );
hgs
parents:
diff changeset
   118
	cba->SetCommandL( EAknSoftkeyCancel, aSoftKeyLabel );
hgs
parents:
diff changeset
   119
	CleanupStack::Pop( cba );
hgs
parents:
diff changeset
   120
	cba->DrawDeferred();
hgs
parents:
diff changeset
   121
	}
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   125
// CFLDSoftKeyChanger::ChangeNewSoftKeysPreviewL
hgs
parents:
diff changeset
   126
// (other items were commented in a header).
hgs
parents:
diff changeset
   127
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   128
//
hgs
parents:
diff changeset
   129
void CFLDSoftKeyChanger::ChangeNewSoftKeysPreviewL()
hgs
parents:
diff changeset
   130
	{
hgs
parents:
diff changeset
   131
	if (iSoftKeyState == MFLDFileListBoxObserver::EPreviewSoftKeyState )
hgs
parents:
diff changeset
   132
		{
hgs
parents:
diff changeset
   133
		return;
hgs
parents:
diff changeset
   134
		}
hgs
parents:
diff changeset
   135
		
hgs
parents:
diff changeset
   136
    CFLDSoftKeyChanger::ChangeLeftSoftKeyL( iSoftKeyPreview->Des() );
hgs
parents:
diff changeset
   137
    CFLDSoftKeyChanger::ChangeRightSoftKeyL( iSoftKeyCancel->Des() );
hgs
parents:
diff changeset
   138
    
hgs
parents:
diff changeset
   139
	iSoftKeyState = MFLDFileListBoxObserver::EPreviewSoftKeyState;
hgs
parents:
diff changeset
   140
    }
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   143
// CFLDSoftKeyChanger::ChangeNewSoftKeysPreviewSelectL
hgs
parents:
diff changeset
   144
// (other items were commented in a header).
hgs
parents:
diff changeset
   145
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   146
//
hgs
parents:
diff changeset
   147
void CFLDSoftKeyChanger::ChangeNewSoftKeysPreviewSelectL()
hgs
parents:
diff changeset
   148
	{
hgs
parents:
diff changeset
   149
	if (iSoftKeyState == MFLDFileListBoxObserver::EPreviewSelectSoftKeyState )
hgs
parents:
diff changeset
   150
		{
hgs
parents:
diff changeset
   151
		return;
hgs
parents:
diff changeset
   152
		}
hgs
parents:
diff changeset
   153
		
hgs
parents:
diff changeset
   154
    CFLDSoftKeyChanger::ChangeLeftSoftKeyL( iSoftKeySelect->Des() );
hgs
parents:
diff changeset
   155
    CFLDSoftKeyChanger::ChangeRightSoftKeyL( iSoftKeyBack->Des() );
hgs
parents:
diff changeset
   156
  
hgs
parents:
diff changeset
   157
	iSoftKeyState = MFLDFileListBoxObserver::EPreviewSelectSoftKeyState;
hgs
parents:
diff changeset
   158
	}
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   161
// CFLDSoftKeyChanger::RestoreOldSoftKeysL
hgs
parents:
diff changeset
   162
// (other items were commented in a header).
hgs
parents:
diff changeset
   163
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   164
//
hgs
parents:
diff changeset
   165
void CFLDSoftKeyChanger::RestoreOldToneSelectionSoftKeysL()
hgs
parents:
diff changeset
   166
	{
hgs
parents:
diff changeset
   167
	if (iSoftKeyState == MFLDFileListBoxObserver::EToneSelectionSoftKeyState )
hgs
parents:
diff changeset
   168
		{
hgs
parents:
diff changeset
   169
		return;
hgs
parents:
diff changeset
   170
		}
hgs
parents:
diff changeset
   171
		
hgs
parents:
diff changeset
   172
    CFLDSoftKeyChanger::ChangeLeftSoftKeyL( iSoftKeySelect->Des() );
hgs
parents:
diff changeset
   173
    CFLDSoftKeyChanger::ChangeRightSoftKeyL( iSoftKeyCancel->Des() );
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
	iSoftKeyState = MFLDFileListBoxObserver::EToneSelectionSoftKeyState;
hgs
parents:
diff changeset
   176
	}
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   179
// CFLDSoftKeyChanger::SoftKeyState
hgs
parents:
diff changeset
   180
// (other items were commented in a header).
hgs
parents:
diff changeset
   181
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   182
//
hgs
parents:
diff changeset
   183
MFLDFileListBoxObserver::TFileListSoftKeyState
hgs
parents:
diff changeset
   184
 CFLDSoftKeyChanger::SoftKeyState()	const
hgs
parents:
diff changeset
   185
	{
hgs
parents:
diff changeset
   186
	return iSoftKeyState;
hgs
parents:
diff changeset
   187
	}
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
// End of File