wvuing/wvuiave/AppSrc/CCAIconLoader.cpp
changeset 0 094583676ce7
--- /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    <e32base.h>
+#include    <gulicon.h>
+#include    <chatNG.mbg>
+#include    <akntabgrp.h>
+#include    <akniconarray.h>
+
+
+// -----------------------------------------------------------------------------
+// CCAIconLoader::CCAIconLoader
+// Constructor
+// -----------------------------------------------------------------------------
+//
+CCAIconLoader::CCAIconLoader( const TDesC& aMbmFullPath,
+                              MCASkinVariant& aSkinVariant )
+        : iMbmFullPath( aMbmFullPath ), iSkinVariant( aSkinVariant )
+    {
+    iAppUi = static_cast <CCAAppUi*> ( 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<CGulIcon>* CCAIconLoader::LoadIconsLC( TUid aViewIdentifier )
+    {
+    // Create array for listbox graphics
+    CArrayPtr<CGulIcon>* 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