diff -r 000000000000 -r 5e5d6b214f4f uiservicetab/vimpstui/src/cvimpstuistatuspanehandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstui/src/cvimpstuistatuspanehandler.cpp Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,129 @@ +/* +* Copyright (c) 2008 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: Tabbed view declaration +* +*/ + +#include "cvimpstuistatuspanehandler.h" + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::CCVIMPSTUiStatusPaneHandler +// -------------------------------------------------------------------------- +CCVIMPSTUiStatusPaneHandler::CCVIMPSTUiStatusPaneHandler() + { + // No implementation required + iNaviPush = EFalse; + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::~CCVIMPSTUiStatusPaneHandler +// -------------------------------------------------------------------------- +CCVIMPSTUiStatusPaneHandler::~CCVIMPSTUiStatusPaneHandler() + { + if( iNaviPush && iNaviPane ) + { + iNaviPane->Pop( iNaviDeco ); + } + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::NewLC() +// -------------------------------------------------------------------------- +CCVIMPSTUiStatusPaneHandler* CCVIMPSTUiStatusPaneHandler::NewLC() + { + CCVIMPSTUiStatusPaneHandler* self = new (ELeave)CCVIMPSTUiStatusPaneHandler(); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::NewL() +// -------------------------------------------------------------------------- +CCVIMPSTUiStatusPaneHandler* CCVIMPSTUiStatusPaneHandler::NewL() + { + CCVIMPSTUiStatusPaneHandler* self=CCVIMPSTUiStatusPaneHandler::NewLC(); + CleanupStack::Pop(); // self; + return self; + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::ConstructL() +// -------------------------------------------------------------------------- +void CCVIMPSTUiStatusPaneHandler::ConstructL() + { + iEnv = CEikonEnv::Static(); + iStatusPane = iEnv->AppUiFactory()->StatusPane(); + + if( iStatusPane->PaneCapabilities( TUid::Uid(EEikStatusPaneUidTitle) ).IsPresent() ) + iTitlePane = static_cast( iStatusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); + + if( iStatusPane->PaneCapabilities( TUid::Uid(EEikStatusPaneUidContext) ).IsPresent() ) + iContextPane = static_cast ( iStatusPane->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) ); + + if( iStatusPane->PaneCapabilities( TUid::Uid(EEikStatusPaneUidNavi)).IsPresent() ) + iNaviPane = static_cast( iStatusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); + + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::SetPictureL() +// -------------------------------------------------------------------------- +void CCVIMPSTUiStatusPaneHandler::SetPictureL( CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aNaviPush ) + { + if( iContextPane->IsVisible() ) + { + iContextPane->SetPicture( aBitmap, aMask ); + } + else if( aNaviPush ) + { + iNaviDeco = iNaviPane->CreateNavigationImageL( aBitmap, aMask ); + iNaviPane->PushL( *iNaviDeco ); + iNaviPush = aNaviPush; + } + else + { + delete aBitmap; + aBitmap = NULL; + delete aMask; + aMask = NULL; + } + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::SetTextL() +// -------------------------------------------------------------------------- +void CCVIMPSTUiStatusPaneHandler::SetTextL( const TDesC& aText ) + { + iTitlePane->SetTextL( aText ); + } + +// -------------------------------------------------------------------------- +// CCVIMPSTUiStatusPaneHandler::ClearPaneL() +// -------------------------------------------------------------------------- +void CCVIMPSTUiStatusPaneHandler::ClearPaneL( ) + { + if( iContextPane->IsVisible() ) + { + iContextPane->SetPicture( NULL, NULL); + } + if( iNaviPush ) + { + iNaviPane->Pop( iNaviDeco ); + iNaviPush = EFalse; + } + } + +//END OF FILE +