--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/FavouritesSrc/BrowserFavouritesFolderListboxIconHandler.cpp Mon Mar 30 12:49:49 2009 +0300
@@ -0,0 +1,279 @@
+/*
+* 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::CreateIconL( skinInstance,
+ KAknsIIDQgnIndiMarkedAdd,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileAvkon,
+ EMbmAvkonQgn_indi_marked_add,
+ EMbmAvkonQgn_indi_marked_add_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmAvkonQgn_prop_folder_small; maskId = EMbmAvkonQgn_prop_folder_small_mask; },
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnPropFolderSmall,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileAvkon,
+ EMbmAvkonQgn_prop_folder_small,
+ EMbmAvkonQgn_prop_folder_small_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmAvkonQgn_indi_level_back; maskId = EMbmAvkonQgn_indi_level_back_mask; }
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnIndiLevelBack,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileAvkon,
+ EMbmAvkonQgn_indi_level_back,
+ EMbmAvkonQgn_indi_level_back_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ 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::CreateIconL( skinInstance,
+ KAknsIIDQgnPropWmlHome,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_prop_wml_home,
+ EMbmBrowserQgn_prop_wml_home_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmBrowserQgn_prop_wml_bm_last; maskId = EMbmBrowserQgn_prop_wml_bm_last_mask; },
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnPropWmlBmLast,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_prop_wml_bm_last,
+ EMbmBrowserQgn_prop_wml_bm_last_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmBrowserQgn_prop_wml_bm; maskId = EMbmBrowserQgn_prop_wml_bm_mask; },
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnPropWmlBm,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_prop_wml_bm,
+ EMbmBrowserQgn_prop_wml_bm_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmBrowserQgn_indi_wml_csd_add; maskId = EMbmBrowserQgn_indi_wml_csd_add_mask; },
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnIndiWmlCsdAdd,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_indi_wml_csd_add,
+ EMbmBrowserQgn_indi_wml_csd_add_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmBrowserQgn_indi_wml_hscsd_add; maskId = EMbmBrowserQgn_indi_wml_hscsd_add_mask; },
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnIndiWmlHscsdAdd,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_indi_wml_hscsd_add,
+ EMbmBrowserQgn_indi_wml_hscsd_add_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmBrowserQgn_indi_wml_gprs_add; maskId = EMbmBrowserQgn_indi_wml_gprs_add_mask; },
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnIndiWmlGprsAdd,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_indi_wml_gprs_add,
+ EMbmBrowserQgn_indi_wml_gprs_add_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+ //EMbmBrowserQgn_prop_wml_folder_link_seamless; maskId = EMbmBrowserQgn_prop_wml_folder_link_seamless_mask; }
+ AknsUtils::CreateIconL( skinInstance,
+ KAknsIIDQgnPropWmlFolderLinkSeamless,
+ newIconBmp,
+ newIconMaskBmp,
+ iconFileBrowser,
+ EMbmBrowserQgn_prop_wml_folder_link_seamless,
+ EMbmBrowserQgn_prop_wml_folder_link_seamless_mask);
+ newIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp);
+ CleanupStack::PushL(newIcon);
+ icons->AppendL( newIcon );
+ CleanupStack::Pop(newIcon);
+
+ CleanupStack::Pop(); // POP Icon
+ return icons;
+}
+
+// End of File