diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCAIconLoader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiave/AppSrc/CCAIconLoader.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,218 @@ +/* +* Copyright (c) 2006 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: Icon loader +* +*/ + + +// INCLUDES +#include "impsbuilddefinitions.h" +#include "CCAIconLoader.h" +#include "CAExternalInterface.h" +#include "ChatDefinitions.h" +#include "CCAApp.h" +#include "CCAAppUi.h" +#include "CCAVariantFactory.h" +#include "CCAUISessionManager.h" +#include "MCASkinVariant.h" + +#include +#include +#include +#include +#include + + +// ----------------------------------------------------------------------------- +// CCAIconLoader::CCAIconLoader +// Constructor +// ----------------------------------------------------------------------------- +// +CCAIconLoader::CCAIconLoader( const TDesC& aMbmFullPath, + MCASkinVariant& aSkinVariant ) + : iMbmFullPath( aMbmFullPath ), iSkinVariant( aSkinVariant ) + { + iAppUi = static_cast ( CCoeEnv::Static()->AppUi() ); + } + +// ----------------------------------------------------------------------------- +// CCAIconLoader::NewL +// Symbian style constructor +// ----------------------------------------------------------------------------- +// +CCAIconLoader* CCAIconLoader::NewL( const TDesC& aMbmFullPath, + MCASkinVariant& aSkinVariant ) + { + CCAIconLoader* self = new ( ELeave ) CCAIconLoader( aMbmFullPath, + aSkinVariant ); + return self; + } + +// ----------------------------------------------------------------------------- +// CCAIconLoader::LoadIconsLC +// Load all needed icons identified by view id. +// ----------------------------------------------------------------------------- +// +CArrayPtr* CCAIconLoader::LoadIconsLC( TUid aViewIdentifier ) + { + // Create array for listbox graphics + CArrayPtr* icons = + new ( ELeave ) CAknIconArray( KArrayGranularity ); + CleanupStack::PushL( icons ); + + if ( aViewIdentifier == KUidMainView ) + { + CGulIcon* ibox = iSkinVariant.LoadBitmapL( EMbmChatngQgn_prop_im_ibox, + EMbmChatngQgn_prop_im_ibox_mask, + iMbmFullPath ); + + CleanupStack::PushL( ibox ); + icons->AppendL( ibox ); + CleanupStack::Pop( ibox ); + + CGulIcon* friends = iSkinVariant.LoadBitmapL( EMbmChatngQgn_prop_im_friends, + EMbmChatngQgn_prop_im_friends_mask, + iMbmFullPath ); + + CleanupStack::PushL( friends ); + icons->AppendL( friends ); + CleanupStack::Pop( friends ); + + CGulIcon* imList = iSkinVariant.LoadBitmapL( EMbmChatngQgn_prop_im_list, + EMbmChatngQgn_prop_im_list_mask, + iMbmFullPath ); + CleanupStack::PushL( imList ); + icons->AppendL( imList ); + CleanupStack::Pop( imList ); + + CGulIcon* recList = iSkinVariant.LoadBitmapL( EMbmChatngQgn_prop_im_saved, + EMbmChatngQgn_prop_im_saved_mask, + iMbmFullPath ); + + CleanupStack::PushL( recList ); + icons->AppendL( recList ); + CleanupStack::Pop( recList ); + + CGulIcon* iboxNew = iSkinVariant.LoadBitmapL( EMbmChatngQgn_prop_im_ibox_new, + EMbmChatngQgn_prop_im_ibox_new_mask, + iMbmFullPath ); + + CleanupStack::PushL( iboxNew ); + icons->AppendL( iboxNew ); + CleanupStack::Pop( iboxNew ); + +#ifdef RD_CHAT_GROUP_MESSAGE_INDICATION_NEW + CGulIcon* imListNew = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_list_unread, + EMbmChatngQgn_prop_im_list_unread_mask, + iMbmFullPath ); + CleanupStack::PushL( imListNew ); + icons->AppendL( imListNew ); + CleanupStack::Pop( imListNew ); +#endif // RD_CHAT_GROUP_MESSAGE_INDICATION_NEW + } + else + { + User::Leave( KErrNotFound ); + } + + return icons; + } + +// ----------------------------------------------------------------------------- +// CCAIconLoader::LoadStatusPaneIconsL +// Load status pane icons. +// ----------------------------------------------------------------------------- +// +void CCAIconLoader::LoadStatusPaneIconsL( CAknTabGroup& aTabGroup ) + { + CCAUISessionManager* session = &( iAppUi->UISessionManager() ); + TBool groups( session ? session->IsSupported( + CCAUISessionManager::EGroup ) : EFalse ); + + // load icons + CGulIcon* friendsList = NULL; + CGulIcon* privateChatList = NULL; + CGulIcon* chatList = NULL; + CGulIcon* recordedList = NULL; + + if ( groups ) + { + friendsList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_friend_tab4, + EMbmChatngQgn_prop_im_friend_tab4_mask, iMbmFullPath ); + CleanupStack::PushL( friendsList ); + + privateChatList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_ibox_tab4, + EMbmChatngQgn_prop_im_ibox_tab4_mask, iMbmFullPath ); + CleanupStack::PushL( privateChatList ); + + chatList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_list_tab4, + EMbmChatngQgn_prop_im_list_tab4_mask, iMbmFullPath ); + CleanupStack::PushL( chatList ); + + recordedList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_saved_chat_tab4, + EMbmChatngQgn_prop_im_saved_chat_tab4_mask, iMbmFullPath ); + CleanupStack::PushL( recordedList ); + } + else + { + friendsList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_friend_tab3, + EMbmChatngQgn_prop_im_friend_tab3_mask, iMbmFullPath ); + CleanupStack::PushL( friendsList ); + + privateChatList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_ibox_tab3, + EMbmChatngQgn_prop_im_ibox_tab3_mask, iMbmFullPath ); + CleanupStack::PushL( privateChatList ); + + CleanupStack::PushL( chatList ); + + recordedList = iSkinVariant.LoadBitmapL( + EMbmChatngQgn_prop_im_saved_chat_tab3, + EMbmChatngQgn_prop_im_saved_chat_tab3_mask, iMbmFullPath ); + CleanupStack::PushL( recordedList ); + } + + aTabGroup.SetTabFixedWidthL( + groups ? KTabWidthWithFourTabs : KTabWidthWithThreeTabs ); + + aTabGroup.AddTabL( KUidChatPrivateChatListView.iUid, + privateChatList->Bitmap(), privateChatList->Mask() ); + privateChatList->SetBitmapsOwnedExternally( ETrue ); + + aTabGroup.AddTabL( KUidFriendsListView.iUid, + friendsList->Bitmap(), friendsList->Mask() ); + friendsList->SetBitmapsOwnedExternally( ETrue ); + + if ( groups ) + { + aTabGroup.AddTabL( KUidChatListView.iUid, + chatList->Bitmap(), chatList->Mask() ); + chatList->SetBitmapsOwnedExternally( ETrue ); + } + + aTabGroup.AddTabL( KUidRecordedChatListView.iUid, recordedList->Bitmap(), + recordedList->Mask() ); + recordedList->SetBitmapsOwnedExternally( ETrue ); + + // recorded, chatList, privateChatlist, friendsList + CleanupStack::PopAndDestroy( 4, friendsList ); + } + +// end of file