javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlist.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 16:07:20 +0300
branchRCL_3
changeset 17 0fd27995241b
parent 14 04becd199f91
permissions -rw-r--r--
Revision: v2.1.24 Kit: 201019

/*******************************************************************************
 * Copyright (c) 2005, 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Nokia Corporation - S60 implementation
 *******************************************************************************/


#ifndef SWTLIST_H
#define SWTLIST_H


#include "swtlistbase.h"


/**
 * CSwtList
 * @lib eswt
 */
NONSHARABLE_CLASS(CSwtList)
        : public CSwtListBase
        , public MSwtList
{
// Own methods
public:
    /**
     * Two phase constructor
     * @param aDisplay  parent display
     * @param aPeer     java peer of this class
     * @param aParent   composite parent
     * @param aStyle    control style
     * @return pointer to an object of this class
     */
    static CSwtList* NewL(MSwtDisplay& aDisplay, TSwtPeer aPeer,
    MSwtComposite& aParent, TInt aStyle);

protected:
    /**
     * First phase constructor
     * @param aDisplay  parent display
     * @param aPeer     java peer of this class
     * @param aParent   composite parent
     * @param aStyle    control style
     */
    CSwtList(MSwtDisplay& aDisplay, TSwtPeer aPeer,
             MSwtComposite& aParent, TInt aStyle);

    /**
     * Destructor
     */
    ~CSwtList();

private:
    /**
     * Handles an item addition.
     * @param aNewFocusIndex The new focus index.
     */
    void HandleItemAdditionL(TInt aNewFocusIndex);

    /**
     * Handles an item removal.
     * @param aRemovedItemIndices The removed item indices.
     * @param aOldFocusIndex The old focus index.
     */
    void HandleItemRemovalL(const RArray<TInt>& aRemovedItemIndices,
                            TInt aOldFocusIndex);

// From MSwtControl
public:
    TSize ComputeSizeL(TInt aWHint, TInt aHHint);

// From MSwtList
public:
    MSwtScrollable* Scrollable();
    void DeselectItems(const TInt* aIndices, TInt aCount);
    void DeselectItem(TInt aIndex);
    void DeselectRange(TInt aStart, TInt aEnd);
    void DeselectAll();
    TInt GetFocusIndex() const;
    TInt GetSelectionCount() const;
    const CArrayFix<TInt>* GetSelectionIndices() const;
    void SelectItemL(TInt aIndex, TBool aScroll);
    void SelectRangeL(TInt aStart, TInt aEnd);
    void SelectAllL();
    void ShowSelection();
    void AppendL(const TDesC& aPtr);
    void InsertL(TInt aPos, const TDesC& aPtr);
    void GetItemL(TInt aItemIndex, TPtrC& aString) const;
    TInt GetItemCount() const;
    TInt GetItemHeight() const;
    TInt GetSelectionIndex() const;
    TInt GetTopIndex() const;
    TInt IndexOf(const TDesC& aString, TInt& aStart) const;
    TBool IsSelected(TInt aIndex) const;
    void RemoveItemsL(const TInt* aIndices, TInt aCount);
    void RemoveItemL(TInt aIndex);
    void RemoveRangeL(TInt aStart, TInt aEnd);
    void RemoveAllL();
    void SetFocusIndex(TInt aIndex);
    void SetItemsL(MDesCArray* aStringArray);
    void SetTopIndex(TInt aIndex);
};


#endif // SWTLIST_H