diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/ServerApplication/src/TPbk2TitlePaneOperator.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/ServerApplication/src/TPbk2TitlePaneOperator.cpp Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,112 @@ +/* +* Copyright (c) 2005-2007 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: Phonebook 2 server application title pane manager. +* +*/ + + +#include "TPbk2TitlePaneOperator.h" + +// Phonebook 2 +#include +#include + +// Virtual Phonebook + +// System includes +#include +#include +#include +#include +#include // EEikStatusPaneUidTitle +#include + +// -------------------------------------------------------------------------- +// TPbk2TitlePaneOperator::TPbk2TitlePaneOperator +// -------------------------------------------------------------------------- +// +TPbk2TitlePaneOperator::TPbk2TitlePaneOperator() + { + } + +// -------------------------------------------------------------------------- +// TPbk2TitlePaneOperator::SetTitlePaneL +// -------------------------------------------------------------------------- +// +void TPbk2TitlePaneOperator::SetTitlePaneL( HBufC* aTitlePaneText ) + { + if ( !aTitlePaneText ) + { + HBufC* title = StringLoader::LoadL( R_QTN_PHOB_TITLE ); + ChangeTitlePaneL( title ); + ChangeContextIconL(); + } + else + { + ChangeTitlePaneL( aTitlePaneText ); + } + } + +// -------------------------------------------------------------------------- +// TPbk2TitlePaneOperator::ChangeTitlePaneL +// -------------------------------------------------------------------------- +// +void TPbk2TitlePaneOperator::ChangeTitlePaneL( HBufC* aTitle ) + { + CleanupStack::PushL( aTitle ); + + CEikStatusPane* statusPane = + CEikonEnv::Static()->AppUiFactory()->StatusPane(); + if ( statusPane && statusPane->PaneCapabilities + ( TUid::Uid( EEikStatusPaneUidTitle ) ).IsPresent() ) + { + CAknTitlePane* titlePane = static_cast( + statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); + CleanupStack::Pop( aTitle ); + + titlePane->SetText( aTitle ); // takes ownership of title + } + else + { + CleanupStack::PopAndDestroy( aTitle ); + } + } + +// -------------------------------------------------------------------------- +// TPbk2TitlePaneOperator::ChangeContextIconL +// -------------------------------------------------------------------------- +// +inline void TPbk2TitlePaneOperator::ChangeContextIconL() + { + CEikStatusPane* statusPane = + CEikonEnv::Static()->AppUiFactory()->StatusPane(); + if ( statusPane && statusPane->PaneCapabilities + ( TUid::Uid( EEikStatusPaneUidContext ) ).IsInCurrentLayout() ) + { + CAknContextPane* contextPane = static_cast( + statusPane->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) ); + + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + + AknsUtils::CreateAppIconLC + ( AknsUtils::SkinInstance(), TUid::Uid( KPbk2UID3 ), + EAknsAppIconTypeContext, bitmap, mask ); + + CleanupStack::Pop( 2 ); // bitmap, mask + contextPane->SetPicture(bitmap, mask); + } + } + +// End of File