epoc32/include/mw/eiklbm.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- a/epoc32/include/mw/eiklbm.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/eiklbm.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,123 @@
-eiklbm.h
+/*
+* Copyright (c) 1997-1999 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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+#if !defined(__EIKLBM_H__)
+#define __EIKLBM_H__  
+
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined(__BAMDESCA_H__)
+#include <bamdesca.h>
+#endif
+
+
+// for some reason, doxygen seems to refuse documenting this...
+
+/** @enum TListBoxModelItemArrayOwnership
+* List box item array ownership flags. These values are used to
+* describe whether or not a list box model owns an item array.
+*/
+enum TListBoxModelItemArrayOwnership
+    {
+    /** The list box model owns the item array, and will delete it in
+    * its destructor.*/
+    ELbmOwnsItemArray,
+    /** The model does not own the item array. You must maintain a
+    * pointer to it and free it explicitly before your program exits. */
+    ELbmDoesNotOwnItemArray
+    };
+
+/**
+* Description
+* List box data model interface.
+* 
+* This mixin protocol is implemented by all list box models. List box
+* models provide information needed to display the required data in a
+* list box.
+*
+* Writing derived classes:
+* 
+* This class should be implemented by anything providing data for
+* display in a CEikListBox-derived class. The very basic interface
+* offered by MListBoxModel is usually expanded upon to provide more
+* information for the specialised subclasses of CEikListBox. It is
+* usual when deriving specialised list boxes to subclass the list box
+* class, its view classes and its model together. See also:
+*
+*/
+class MListBoxModel 
+    {
+    public:
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~MListBoxModel();
+
+        /**
+        * Gets the number of items in the list box
+        * @return Number of items.
+        */
+        virtual TInt NumberOfItems() const = 0;
+
+        /**
+        * Gets an array of strings used by the list box for matching
+        * user keypresses incrementally.
+        *
+        * @return A pointer to the array.
+        */
+        virtual const MDesCArray* MatchableTextArray() const = 0;
+
+    private:
+        IMPORT_C virtual TAny* MListBoxModel_Reserved();
+    };
+
+/**
+* Text list box model interface.
+*
+* Text list box models provide the text of the items which are drawn
+* by an associated CTextListItemDrawer. This interface is implemented
+* by CTextListBoxModel.
+*/
+
+class MTextListBoxModel : public MListBoxModel
+    {
+    public:
+        /**
+        * Destructor
+        */
+        IMPORT_C ~MTextListBoxModel();
+
+        /**
+        * Gets the item text for an item by its index. This text,
+        * rather than the matcher string, is drawn by
+        * CTextListItemDrawers.
+        * 
+        * @param aItemIndex Index specifying an item.
+        * @return The text for that item.
+        */
+        virtual TPtrC ItemText(TInt aItemIndex) const = 0;
+
+    private: // from MListBoxModel
+        IMPORT_C virtual TAny* MListBoxModel_Reserved();
+    };
+
+#endif