browserui/browser/FavouritesSrc/BrowserFavouritesFolderListboxIconHandler.cpp
branchRCL_3
changeset 65 8e6fa1719340
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/FavouritesSrc/BrowserFavouritesFolderListboxIconHandler.cpp	Wed Sep 01 12:31:04 2010 +0100
@@ -0,0 +1,289 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*      Implementation of TWmlBrowserFavouritesFolderListboxIconHandler.
+*      
+*
+*/
+
+
+// INCLUDE FILES
+#include <BrowserNG.rsg>
+#include <favouritesitem.h>
+#include "BrowserFavouritesFolderListboxIconHandler.h"
+#include "BrowserFavouritesIconIndexArray.h"
+#include "BrowserFavouritesView.h"
+#include <AknsUtils.h>
+#include <avkon.mbg>
+#include <gulicon.h>
+#include <AknIconArray.h>
+#include <browser.mbg>
+
+#include "CommonConstants.h"
+#include <data_caging_path_literals.hrh>
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL TYPES
+
+/**
+* Icon indexes. Numeric values MUST match the resource definition order.
+*/
+enum
+    {
+    EIconIndexListboxMark = 0,			///< Listbox mark icon index.
+    EIconIndexFolder = 1,				///< Folder icon index.
+    EIconIndexRootFolder = 2,			///< Root folder icon index.
+	EIconIndexHomepage = 3,				///< Homepage icon index.
+    EIconIndexLastVisitedPage = 4,		///< Last Visited icon index.
+    EIconIndexBookmark = 5,				///< Bookmark icon index.
+    EIconIndexCsdBearer = 6,			///< CSD bearer icon index.
+    EIconIndexHscsdBearer = 7,			///< HSCSD bearer icon index.
+    EIconIndexGprsBearer = 8,			///< GPRS bearer icon index.
+	EIconIndexSeamlessLinksFolder = 9	///< Seamless links icon index
+    };
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// TBrowserFavouritesFolderListboxIconHandler::IconArrayResourceId
+// ---------------------------------------------------------
+//
+TInt TBrowserFavouritesFolderListboxIconHandler::IconArrayResourceId() const
+    {
+    return R_BROWSER_FAVOURITES_FOLDER_LISTBOX_ICONS;
+    }
+
+//-----------------------------------------------------------------------------
+// MBrowserFavouritesListboxIconHandler::IconIndexes
+//-----------------------------------------------------------------------------
+//
+TBrowserFavouritesIconIndexes
+    TBrowserFavouritesFolderListboxIconHandler::IconIndexes( 
+                                    const CFavouritesItem& aItem ) const
+    {
+    TBrowserFavouritesIconIndexes indexes;
+     indexes.iItemIcon = ItemIconIndex( aItem );
+     indexes.iBearerIcon = KBrowserFavouritesNoBearerIcon; //Bearer icons removed
+     return indexes;
+    }
+
+// ---------------------------------------------------------
+// TBrowserFavouritesFolderListboxIconHandler::ItemIconIndex
+// ---------------------------------------------------------
+//
+TInt TBrowserFavouritesFolderListboxIconHandler::ItemIconIndex
+( const CFavouritesItem& aItem,CBrowserFavouritesListbox* /*aListbox*/  ) const
+    {
+    return ItemIconIndex(aItem);
+    }
+
+// ---------------------------------------------------------
+// TBrowserFavouritesFolderListboxIconHandler::ItemIconIndex
+// ---------------------------------------------------------
+//
+TInt TBrowserFavouritesFolderListboxIconHandler::ItemIconIndex
+( const CFavouritesItem& aItem ) const
+    {
+	if ( aItem.Uid() == KFavouritesRootUid )
+		{
+        return EIconIndexRootFolder;
+		}
+	if ( aItem.Uid() == KFavouritesHomepageUid )
+        {
+        return EIconIndexHomepage;
+        }
+    if ( aItem.Uid() == KFavouritesStartPageUid )
+        {
+        return EIconIndexHomepage;
+        }
+    if ( aItem.Uid() == KFavouritesLastVisitedUid )
+        {
+        return EIconIndexLastVisitedPage;
+        }
+
+   	//seamless links folders have a different icon
+   	if( CBrowserFavouritesView::IsSeamlessFolder( aItem.ContextId() ) )
+   		{
+   		return EIconIndexSeamlessLinksFolder;
+   		}
+	
+	return aItem.IsItem() ? EIconIndexBookmark : EIconIndexFolder;        
+    }
+
+
+// ---------------------------------------------------------
+// TBrowserFavouritesFolderListboxIconHandler::LoadIconsL
+// ---------------------------------------------------------
+//
+CAknIconArray* TBrowserFavouritesFolderListboxIconHandler::LoadIconsL() const
+{
+    CAknIconArray* icons = 
+    new(ELeave) CAknIconArray( 20 );
+    CleanupStack::PushL(icons); // PUSH Icon
+	CGulIcon* newIcon;
+	CFbsBitmap *newIconBmp;
+	CFbsBitmap *newIconMaskBmp;
+
+    TBuf<KMaxFileName> iconFileAvkon= KAvkonMbmPath();
+    TParse* fp = new(ELeave) TParse(); 
+    CleanupStack::PushL(fp);
+    TInt err = fp->Set(KBrowserDirAndFile, &KDC_APP_BITMAP_DIR, NULL); 
+    if (err != KErrNone)
+        {
+        User::Leave(err);
+        }
+    TBuf<KMaxFileName> iconFileBrowser= fp->FullName();
+    CleanupStack::PopAndDestroy(fp);
+	
+	MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
+
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnIndiMarkedAdd,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileAvkon,
+                                           EMbmAvkonQgn_indi_marked_add,
+										   EMbmAvkonQgn_indi_marked_add_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmAvkonQgn_prop_folder_small; maskId = EMbmAvkonQgn_prop_folder_small_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnPropFolderSmall,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileAvkon,
+                                           EMbmAvkonQgn_prop_folder_small,
+										   EMbmAvkonQgn_prop_folder_small_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmAvkonQgn_indi_level_back; maskId = EMbmAvkonQgn_indi_level_back_mask; }
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnIndiLevelBack,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileAvkon,
+                                           EMbmAvkonQgn_indi_level_back,
+										   EMbmAvkonQgn_indi_level_back_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+    //"z:\\system\\apps\\browser\\Browser.mbm";
+	//EMbmBrowserQgn_prop_wml_home; maskId = EMbmBrowserQgn_prop_wml_home_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnPropWmlHome,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_prop_wml_home,
+										   EMbmBrowserQgn_prop_wml_home_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmBrowserQgn_prop_wml_bm_last; maskId = EMbmBrowserQgn_prop_wml_bm_last_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnPropWmlBmLast,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_prop_wml_bm_last,
+										   EMbmBrowserQgn_prop_wml_bm_last_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmBrowserQgn_prop_wml_bm; maskId = EMbmBrowserQgn_prop_wml_bm_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnPropWmlBm,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_prop_wml_bm,
+										   EMbmBrowserQgn_prop_wml_bm_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmBrowserQgn_indi_wml_csd_add; maskId = EMbmBrowserQgn_indi_wml_csd_add_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnIndiWmlCsdAdd,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_indi_wml_csd_add,
+										   EMbmBrowserQgn_indi_wml_csd_add_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmBrowserQgn_indi_wml_hscsd_add; maskId = EMbmBrowserQgn_indi_wml_hscsd_add_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnIndiWmlHscsdAdd,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_indi_wml_hscsd_add,
+										   EMbmBrowserQgn_indi_wml_hscsd_add_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmBrowserQgn_indi_wml_gprs_add; maskId = EMbmBrowserQgn_indi_wml_gprs_add_mask; },
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnIndiWmlGprsAdd,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_indi_wml_gprs_add,
+										   EMbmBrowserQgn_indi_wml_gprs_add_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+	//EMbmBrowserQgn_prop_wml_folder_link_seamless; maskId = EMbmBrowserQgn_prop_wml_folder_link_seamless_mask; }
+	AknsUtils::CreateIconLC( skinInstance,
+                                           KAknsIIDQgnPropWmlFolderLinkSeamless,
+                                           newIconBmp,
+										   newIconMaskBmp,
+                                           iconFileBrowser,
+                                           EMbmBrowserQgn_prop_wml_folder_link_seamless,
+										   EMbmBrowserQgn_prop_wml_folder_link_seamless_mask);    
+	newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+    CleanupStack::Pop(2); // newIconBmp, newIconMaskBmp (see CreateIconLC)
+	CleanupStack::PushL(newIcon);
+	icons->AppendL( newIcon );
+	CleanupStack::Pop(newIcon);
+
+    CleanupStack::Pop();    // POP Icon
+	return icons;
+}
+
+// End of File