browserui/browser/FavouritesInc/BrowserFavouritesSelectionState.h
branchRCL_3
changeset 65 8e6fa1719340
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/FavouritesInc/BrowserFavouritesSelectionState.h	Wed Sep 01 12:31:04 2010 +0100
@@ -0,0 +1,176 @@
+/*
+* 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: 
+*      Declaration of class CWmlBrowserFavouritesSelectionState.
+*      
+*
+*/
+
+
+#ifndef BROWSER_FAVOURITES_SELECTION_STATE_H
+#define BROWSER_FAVOURITES_SELECTION_STATE_H
+
+//  INCLUDES
+
+#include <e32def.h>
+
+// CLASS DECLARATION
+
+/**
+* Selection state in the Favourites Views.
+*/
+struct TBrowserFavouritesSelectionState
+    {
+    public:     // types
+
+        /**
+        * Flags for storing listbox highlighted and marked item state. They
+        * have has slightly different meaning for the two flags. For marking,
+        * most of the flags mean that the marking *includes* that; for the
+        * current, most of the flags mean that the current *is* that.
+        * For example, EHomepage in the marking flags means "Marking includes
+        * Homepage", while in current flag means "Current is the Homepage".
+        */
+        enum
+            {
+            ENone = 0x0,            ///< No items.
+            EAny = 0x1,             ///< At least one (marking only).
+            EAll = 0x2,             ///< All (marking only).
+            ECurrent = 0x4,         ///< Current (marking only).
+            EHomepage = 0x8,        ///< Homepage.
+            EStartPage = 0x10,      ///< Start Page.
+            ELastVisited = 0x20,    ///< Last Visited Page.
+            EItem = 0x40,           ///< Any kind of item (incl. specials).
+            EPlainItem = 0x80,      ///< Plain (non-special) item.
+            EFolder = 0x100         ///< Folder.
+            };
+
+    public:     // constructor
+
+        /**
+        * Constructor. Initialize with 0.
+        */
+        inline TBrowserFavouritesSelectionState();
+
+    public:     // new methods
+
+        /**
+        * Return ETrue if listbox is empty.
+        * @return ETrue if listbox is empty.
+        */
+        inline TBool IsEmpty() const;
+
+        /**
+        * Return ETrue if any item is marked.
+        * @return ETrue if any item is marked.
+        */
+        inline TBool AnyMarked() const;
+
+        /**
+        * Return ETrue if the current item is marked.
+        * @return ETrue if the current item is marked.
+        */
+        inline TBool CurrentIsMarked() const;
+
+        /**
+        * Return ETrue if the all items are marked.
+        * @return ETrue if the all items are marked.
+        */
+        inline TBool AllIsMarked() const;
+
+        /**
+        * Return ETrue if the no items are marked.
+        * @return ETrue if the no items are marked.
+        */
+        inline TBool NoneIsMarked() const;
+
+        /**
+        * Return ETrue if the no items are marked.
+        * @return ETrue if the no items are marked.
+        */
+        inline TBool NoItemsMarked() const;
+
+        /**
+        * Return ETrue if the no folders are marked.
+        * @return ETrue if the no folders are marked.
+        */
+        inline TBool NoFoldersMarked() const;
+
+        /**
+        * Count marked items (items + folders).
+        * @return Count of marked items (items + folders).
+        */
+        inline TInt MarkedCount() const;
+
+        /**
+        * Return ETrue if the current item is item.
+        * @return ETrue if the current item is item.
+        */
+        inline TBool CurrentIsItem() const;
+
+        /**
+        * Return ETrue if the current item is folder.
+        * @return ETrue if the current item is folder.
+        */
+        inline TBool CurrentIsFolder() const;
+
+        /**
+        * Return ETrue if selection allows deleting:
+        *   - Marked items contain something deletable, or
+        *   - No marking, highlighted item is deletable.
+        * @return ETrue if selection allows deleting.
+        */
+        inline TBool AnyDeletable() const;
+
+        /**
+        * Return ETrue if selection contains at least one non-special item:
+        *   - Marked items contain one non-special item, or
+        *   - No marking, highlighted item is non-special item.
+        * @return ETrue if selection allows deleting.
+        */
+        inline TBool AnyPlainItem() const;
+
+        /**
+        * Return ETrue if current item is Homepage, Start Page or Last Visited.
+        * @return ETrue if current is Homepage, Start Page or Last Visited.
+        */
+        inline TBool CurrentIsSpecial() const;
+
+        /**
+        * Return ETrue if Homepage, Start Page and/or Last Visited is marked.
+        * @return ETrue if Homepage, Start Page and/or Last Visited is marked.
+        */
+        inline TBool AnyMarkedSpecial() const;
+
+		/**
+        * Return ETrue if the current item is start page.
+        * @return ETrue if the current item is start page.
+        */
+        inline TBool CurrentIsStartPage() const;
+
+    public:     // data
+
+        TInt iCurrentFlags;         ///< Flags showing the highlighted one.
+        TInt iMarkFlags;            ///< Flags showing marking state.
+        TInt iMarkedItemCount;      ///< Count of marked items.
+        TInt iMarkedFolderCount;    ///< Count of marked folders.
+        TInt iVisibleItemCount;     ///< Count of visible items (not folders).
+        TInt iVisibleFolderCount;     ///< Count of visible folders (not items).
+    };
+
+#include "BrowserFavouritesSelectionState.inl"
+
+#endif
+
+// End of File