class CListBoxView : public CBase |
List box view.
A list box view displays the list items which are currently visible in a list box. List box views draw each of the items for display using methods defined in their associated list box drawer.
Together with its list item drawer, a CListBoxView encapsulates the on-screen appearance of data in a list box.
List box views also encapsulate item selection, the current item, and the fundamentals of how the selection and the current item are updated according to user input. Input events themselves are handled by CEikListBox, which calls member functions of CListBoxView appropriately.
This class is sufficient for plain list box views, and may be derived from in order to provide more complex list views. TechView supplies and uses the classes CHierarchicalListBoxView and CSnakingListBoxView, which provide two kinds of indented list views.
Protected Member Functions | |
---|---|
void | ClearFlags(TInt) |
TInt | Flags() |
IMPORT_C void | SelectRangeL(TInt, TInt) |
void | SetFlags(TInt) |
Private Member Functions | |
---|---|
void | SetItemIndex(TInt) |
Public Member Enumerations | |
---|---|
enum | TCursorMovement { ECursorNextItem, ECursorPreviousItem, ECursorNextColumn, ECursorPreviousColumn, ECursorPreviousPage, ECursorNextPage, ECursorFirstItem, ECursorLastItem, ECursorNextScreen, ECursorPrevScreen } |
enum | TFlags { EAnchorExists = 0x0001, EEmphasized = 0x0002, EDimmed = 0x0004, EHasMatcherCursor = 0x0008, EDisableRedraw = 0x0010, EPaintedSelection = 0x0020, EMarkSelection = 0x0040, EUnmarkSelection = 0x0080, EItemCountModified = 0x0100, EOffsetChanged = 0x0200 } |
enum | TSelectionMode { ENoSelection, ESingleSelection, EContiguousSelection, EDisjointSelection, EDisjointMarkSelection, EPenMultiselection, EChangeMarkMode } |
Public Member Type Definitions | |
---|---|
typedef | CArrayFix< TInt > CSelectionIndexArray |
IMPORT_C | CListBoxView | ( | ) |
C++ default constructor.
Allocates an area of memory for a CListBoxView, and begins its initialisation.
IMPORT_C TRgb | BackColor | ( | ) | const |
Gets the background colour for this view.
The background colour.
IMPORT_C TInt | BottomItemIndex | ( | ) | const |
Gets the index of the item at the bottom of this view.
Index of the item at the bottom of this view.
IMPORT_C void | CalcBottomItemIndex | ( | ) | [virtual] |
Recalculates the index of the bottom item in the list by using the top item index and the size of the display.
This function is called by the owning list box control when either the size of the list box or the number of items in its model changes.
IMPORT_C void | CalcDataWidth | ( | ) | [virtual] |
Recalculates the data width of this list box view from the item width of its list item drawer. This method is called directly by CEikListBox when the list box s size changes or when data is added.
IMPORT_C TInt | CalcNewTopItemIndexSoItemIsVisible | ( | TInt | aItemIndex | ) | const [virtual] |
Calculates which item should be selected in order to make a particular item visible. Calling VScrollTo(CalcNewTopItemIndexSoItemIsVisible(idx)), for example, would make the item whose index is idx visible.
The item to be selected.
TInt aItemIndex | The index of the new top item. |
void | ClearFlags | ( | TInt | aMask | ) | [protected, inline] |
Clears this view s flags according to a bitmask.
These flags are defined by the nested enum TFlags (below).
TInt aMask | Flags to be removed. |
IMPORT_C void | ClearSelection | ( | ) |
Resets the selection state so that there is nothing selected.
panic
EEikPanicListBoxNoSelIndexArray Panics if selection indexes have not been defined for this class.
IMPORT_C void | ClearSelectionAnchorAndActiveIndex | ( | ) |
Resets the anchor index, the active end and the EAnchorExists flag.
IMPORT_C void | ConstructL | ( | MListBoxModel * | aListBoxModel, |
CListItemDrawer * | aItemDrawer, | |||
CWsScreenDevice * | aScreen, | |||
RWindowGroup * | aGroupWin, | |||
RWindow * | aWsWindow, | |||
const TRect & | aDisplayArea, | |||
TInt | aItemHeight | |||
) | [virtual] |
By default Symbian 2nd phase constructor is private.
This function completes the initialisation of a default-constructed list box view. The item drawer s graphics context is created on aScreen, and the list item drawer s graphics context is set to this. See CListItemDrawer::SetGc().
MListBoxModel * aListBoxModel | The list box model to use. |
CListItemDrawer * aItemDrawer | A default-constructed item drawer. |
CWsScreenDevice * aScreen | Screen on which to display. |
RWindowGroup * aGroupWin | This list box view s window group. |
RWindow * aWsWindow | Window for this view. |
const TRect & aDisplayArea | The viewing rectangle this list box view is to use. |
TInt aItemHeight | Height of a single list item. |
IMPORT_C TInt | CurrentItemIndex | ( | ) | const [virtual] |
Gets the current item s index.
Index number of the current item.
IMPORT_C TInt | DataWidth | ( | ) | const |
Gets the width of the widest item in the list in pixels.
Data width in pixels.
IMPORT_C void | DeselectItem | ( | TInt | aItemIndex | ) |
Deselects an item by index.
panic
EEikPanicListBoxNoSelIndexArray Panics if selection indexes have not been defined for this class.
TInt aItemIndex | Item to deselect. |
IMPORT_C void | DeselectRangeL | ( | TInt | aItemIndex1, |
TInt | aItemIndex2 | |||
) |
Deselects range between given indexes.
void | DisableVerticalLineDrawing | ( | TBool | aDisable | ) |
Disables vertical line drawing.
TBool aDisable | ETrue if disabled. |
IMPORT_C void | Draw | ( | const TRect * | aClipRect = NULL | ) | const [virtual] |
Draws every visible item into the specified rectangle.
As implemented in CListBoxView, this function's argument is ignored and the internal viewing rectangle is used. See SetViewRect().
panic
EEikPanicListBoxNoModel Panics if the list box model for this class has not been defined.
const TRect * aClipRect = NULL | The rectangle to draw into, this is ignored. Default value is NULL. |
IMPORT_C void | DrawEmptyList | ( | const TRect & | aClientRect | ) | const [virtual] |
Not implemented.
const TRect & aClientRect | Not used. |
IMPORT_C void | DrawItem | ( | TInt | aItemIndex | ) | const [virtual] |
Draws the specified item via CListBoxDrawer::DrawItem() if it is visible.
TInt aItemIndex | Index number of the item to draw. |
IMPORT_C void | DrawMatcherCursor | ( | ) | [virtual] |
Draws the match cursor in its current screen position if the matcher cursor flag has been set.
This is deprecated and broken and should not be used.
const TDesC * | EmptyListText | ( | ) | const [inline] |
Gets an empty list box text.
Pointer the empty list box text.
Return text currently in the empty list text
TInt | Flags | ( | ) | const [protected, inline] |
Gets this view s flags.
These flags are defined by the nested enum TFlags (below).
List box's flags.
IMPORT_C void | GetSelectionIndexesL | ( | CSelectionIndexArray * | aSelectionArray | ) | const |
Gets a copy of the array of currently selected items.
panic
EEikPanicListBoxInvalidSelIndexArraySpecified Panics if the given selection index array is not valid.
panic
EEikPanicListBoxNoSelIndexArray Panics if selection indexes have not been defined for this class.
CSelectionIndexArray * aSelectionArray | An instantiated CSelectionIndexArray. On return, contains a copy of selection indexes. |
IMPORT_C void | HScroll | ( | TInt | aHScrollAmount | ) | [virtual] |
Scrolls horizontally by the specified number of pixels.
TInt aHScrollAmount | The distance to scroll by in pixels. A negative value scrolls to the left, a positive value scrolls to the right. |
IMPORT_C TInt | HScrollOffset | ( | ) | const |
Gets the offset of the visible portion of the data from the left margin in pixels.
The horizontal scroll offset in pixels.
IMPORT_C TBool | IsVisible | ( | ) | const |
Tests if this view is visible.
ETrue if this view is visible. EFalse if this view is not visible or does not exist.
CListItemDrawer * | ItemDrawer | ( | ) | const [inline] |
Gets the object used by this list box view to draw its items.
Pointer to the list box item drawer.
IMPORT_C TBool | ItemIsPartiallyVisible | ( | TInt | aItemIndex | ) | const |
Tests whether an item is partially visible. Note that this returns EFalse also when item is fully visible, i.e. the whole item area is inside the list view rectangle.
ETrue if the item is partially visible, EFalse if it's not visible or fully visible.
TInt aItemIndex | Index of item to be tested. |
IMPORT_C TBool | ItemIsSelected | ( | TInt | aItemIndex | ) | const |
Tests whether an item is selected.
ETrue if the item is selected.
TInt aItemIndex | Index of item to test. |
IMPORT_C TBool | ItemIsVisible | ( | TInt | aItemIndex | ) | const |
Tests whether an item is visible.
ETrue if the item is visible.
TInt aItemIndex | Index of item to be tested. |
IMPORT_C TPoint | ItemPos | ( | TInt | aItemIndex | ) | const [virtual] |
Gets the on-screen position of an item.
Position of the item.
TInt aItemIndex | Index of an item. |
IMPORT_C TSize | ItemSize | ( | TInt | aItemIndex = 0 | ) | const [virtual] |
Gets the on-screen size of an item.
As implemented in CListBoxView, all items report the same size. The size returned may be larger than the width of the list box view, but will not be smaller.
Size of the item.
TInt aItemIndex = 0 | Index of an item. Default value is 0. |
IMPORT_C TInt | MatcherCursorPos | ( | ) | const |
Gets the match cursor s position.
Character position of the match cursor within the current item s string.
IMPORT_C void | MoveCursorL | ( | TCursorMovement | aCursorMovement, |
TSelectionMode | aSelectionMode | |||
) | [virtual] |
Moves the current item cursor in the specified direction. This function is called by CEikListBox in response to user input.
TCursorMovement aCursorMovement | The cursor movement to apply. |
TSelectionMode aSelectionMode | The selection mode of the calling list box. |
IMPORT_C TInt | NumberOfItemsThatFitInRect | ( | const TRect & | aRect | ) | const [virtual] |
Gets the number of items that will fit into a given rectangle.
The number of items that will fit into the given rectangle.
const TRect & aRect | The rectangle. |
IMPORT_C TBool | RedrawDisabled | ( | ) | const |
Tests whether redraw is disabled.
ETrue if redraw is disabled.
IMPORT_C TBool | ScrollToMakeItemVisible | ( | TInt | aItemIndex | ) | [virtual] |
Scrolls vertically to make a particular item visible.
ETrue if any scrolling was done, EFalse if no scrolling was necessary.
TInt aItemIndex | The item to make visible. |
IMPORT_C void | SelectItemL | ( | TInt | aItemIndex | ) |
Selects an item by index.
This function leaves if memory could not be allocated for an extra item in the array of selected items.
panic
EEikPanicListBoxNoSelIndexArray Panics if selection indexes have not been defined for this class.
TInt aItemIndex | Item to select. |
IMPORT_C void | SelectRangeL | ( | TInt | aItemIndex1, |
TInt | aItemIndex2 | |||
) | [protected] |
Selects items between given indexes.
IMPORT_C const CSelectionIndexArray * | SelectionIndexes | ( | ) | const |
Gets a pointer to the selection list of this view.
Pointer to an array describing the items in the list which are currently selected. The object pointed at is owned by the CListBoxView.
IMPORT_C void | SetAnchor | ( | TInt | aItemIndex | ) |
Sets the anchor to the specified item.
TInt aItemIndex | The index of the item at which the anchor is set. |
IMPORT_C void | SetBackColor | ( | TRgb | aColor | ) |
Sets the background colour.
TRgb aColor | The background colour. |
IMPORT_C void | SetCurrentItemIndex | ( | TInt | aItemIndex | ) |
Set the index of the current item. This function changes the current item, but does not redraw the list view or update the selection.
panic
EEikPanicListBoxInvalidCurrentItemIndexSpecified Panics if the given index is not valid.
TInt aItemIndex | Which item to make current. |
IMPORT_C void | SetDimmed | ( | TBool | aDimmed | ) |
Sets whether items will be drawn dimmed.
The function sets or resets the dim flag.
TBool aDimmed | If ETrue, this view will draw items dimmed. If EFalse this view will not draw items dimmed. |
IMPORT_C void | SetDisableRedraw | ( | TBool | aDisableRedraw | ) |
Disables or enables redraws.
If this flag is set to ETrue, all member functions which draw items will return immediately without drawing anything. Functions which update the internal state of the list box will still work, but nothing will be drawn or updated on the screen.
TBool aDisableRedraw | Disables redraw if ETrue. |
IMPORT_C void | SetEmphasized | ( | TBool | aEmphasized | ) |
Sets whether or not items are drawn as emphasised.
The function sets or resets the emphasised flag.
TBool aEmphasized | If ETrue, this view will draw items emphasised. If EFalse will not draw items emphasised. |
void | SetFlags | ( | TInt | aMask | ) | [protected, inline] |
Sets this view s flags according to a bitmask.
These flags are defined by the nested enum TFlags (below).
TInt aMask | Sets new flags for the list box. |
IMPORT_C void | SetHScrollOffset | ( | TInt | aHorizontalOffset | ) |
Sets the horizontal scroll offset in pixels.
TInt aHorizontalOffset | New value for the horizontal scroll offset, in pixels. |
IMPORT_C void | SetItemHeight | ( | TInt | aItemHeight | ) | [virtual] |
Sets the item height.
TInt aItemHeight | New item height. |
void | SetItemIndex | ( | TInt | aItemIndex | ) | [private] |
Set item index directly. For CEikListBox.
TInt aItemIndex | New item index. |
IMPORT_C void | SetItemOffsetInPixels | ( | TInt | aOffset | ) |
Sets the offset for view.
TInt aOffset |
IMPORT_C void | SetListEmptyTextL | ( | const TDesC & | aText | ) |
Sets list box backroung text. This text is visible if the list box has no items.
const TDesC & aText | The text for the empty list box background. |
IMPORT_C void | SetMatcherCursor | ( | TBool | aMatcherCursor | ) |
Sets whether the matcher cursor flag to specify whether the match cursor is drawn.
TBool aMatcherCursor | If ETrue, the view will draw match cursor. |
IMPORT_C void | SetMatcherCursorColor | ( | TRgb | aColor | ) |
Sets the match cursor s colour.
TRgb aColor | Colour in which to display the incremental match cursor. |
IMPORT_C void | SetMatcherCursorPos | ( | TInt | aPosWithinCurrentItem | ) |
Sets the match cursor's position.
TInt aPosWithinCurrentItem | Character position for the match cursor within the current item s string. |
IMPORT_C void | SetPaintedSelection | ( | TBool | aPaintedSelection | ) |
Sets the painted selection flag.
TBool aPaintedSelection | If ETrue the painted selection flag is set on. If EFalse the selection flag is set off. If NULL the painted selection flag is cleared. |
void | SetScrolling | ( | TBool | aIsScrolling | ) |
Sets scrolling state.
TBool aIsScrolling |
IMPORT_C void | SetSelectionIndexesL | ( | const CSelectionIndexArray * | aSelectionIndexes | ) |
Sets the currently selected items of this view from a selection index array.
panic
EEikPanicListBoxInvalidSelIndexArraySpecified Panics if the given selection index array is not valid.
const CSelectionIndexArray * aSelectionIndexes | Items to select. |
IMPORT_C void | SetTextColor | ( | TRgb | aColor | ) |
Sets the colour in which to display text.
TRgb aColor | Colour in which to display text. |
IMPORT_C void | SetTopItemIndex | ( | TInt | aItemIndex | ) | [virtual] |
Sets the item at the top of the view by its index in the list of all items. This function also invokes CalcBottomItemIndex().
panic
EEikPanicListBoxInvalidTopItemIndexSpecified Panics if the given index is not valid.
TInt aItemIndex | Index of the item to start the view at. |
IMPORT_C void | SetViewRect | ( | const TRect & | aRect | ) |
Sets the area within the list window in which the view can draw itself.
const TRect & aRect | New view rectangle. |
void | SetVisibilityObserver | ( | MListVisibilityObserver * | aObserver | ) |
Sets the visibility observer.
MListVisibilityObserver * aObserver | New visibility observer for this control. |
IMPORT_C TRgb | TextColor | ( | ) | const |
Gets the colour in which text is to be displayed.
Current text colour.
IMPORT_C void | ToggleItemL | ( | TInt | aItemIndex | ) |
Toggles the selection of an item.
panic
EEikPanicListBoxNoSelIndexArray Panics if selection indexes have not been defined for this class.
TInt aItemIndex | Item to toggle. |
IMPORT_C TInt | TopItemIndex | ( | ) | const |
Gets the index of the item at the top of the view.
The item currently displayed at the top of this list box view.
IMPORT_C void | UpdateSelectionL | ( | TSelectionMode | aSelectionMode | ) | [virtual] |
Updates item selection.
TSelectionMode aSelectionMode | The selection mode. |
IMPORT_C void | VScrollTo | ( | TInt | aNewTopItemIndex | ) | [virtual] |
Sets the index of the item to be the top item.
TInt aNewTopItemIndex | The item to scroll to. |
IMPORT_C void | VScrollTo | ( | TInt | aNewTopItemIndex, |
TRect & | aMinRedrawRect | |||
) | [virtual] |
Sets the index of the item to be the top item.
This two argument version returns the area which needs redrawing via aMinRedrawRect&. This function does not perform the redraw.
IMPORT_C void | VerticalMoveToItemL | ( | TInt | aTargetItemIndex, |
TSelectionMode | aSelectionMode | |||
) | [virtual] |
Moves to the specified item, sets it as the current item and scrolls the display to make the item visible.
TInt aTargetItemIndex | The index of the item to which to move. |
TSelectionMode aSelectionMode | The selection mode. |
IMPORT_C TRect | ViewRect | ( | ) | const |
Gets the list box s view rectangle.
This list box s view rectangle.
IMPORT_C TInt | VisibleWidth | ( | const TRect & | aRect | ) | const [virtual] |
Gets the visible width of the specified rectangle in pixels. This function is called by CListBoxView itself on its own viewing rectangle.
Visible width of aRect.
const TRect & aRect | The rectangle to get the visible width for. |
IMPORT_C TBool | XYPosToItemIndex | ( | TPoint | aPosition, |
TInt & | aItemIndex | |||
) | const [virtual] |
Converts a pixel position into an item index.
The function returns ETrue and sets aItemIndex to the index of the item whose bounding box contains aPosition. Returns EFalse if no such item exists.
ETrue if there was an item at aPosition.
Cursor movement flags. These describe the cursor movements recognised by MoveCursorL().
ECursorNextItem |
Cursors movement to next item. |
ECursorPreviousItem |
Cursors movement to previous item. |
ECursorNextColumn |
Cursors movement to next column. |
ECursorPreviousColumn |
Cursors movement to previous column. |
ECursorPreviousPage |
Cursors movement to previous page. |
ECursorNextPage |
Cursors movement to next page. |
ECursorFirstItem |
Cursors movement to the first item. |
ECursorLastItem |
Cursors movement to the last item. |
ECursorNextScreen |
Cursors movement to the next screen. |
ECursorPrevScreen |
Cursors movement to the previous screen. |
List box view flags.
These flags may be combined with a logical OR to get a combination of effects.
EAnchorExists = 0x0001 |
A selection anchor exists. |
EEmphasized = 0x0002 |
The view is emphasised. |
EDimmed = 0x0004 |
The view is dimmed. |
EHasMatcherCursor = 0x0008 |
List box view has a cursor for incremental matching. |
EDisableRedraw = 0x0010 |
Redraw is disabled. |
EPaintedSelection = 0x0020 |
If set, selected items are painted. |
EMarkSelection = 0x0040 |
Item marking enabled. |
EUnmarkSelection = 0x0080 |
Item unmarking enabled. |
EItemCountModified = 0x0100 |
Item count changes enabled. |
EOffsetChanged = 0x0200 |
Vertical offset has changed. |
Modes for modifying the selection.
Changing the current item of a list box view may also affect which items are selected. The selection mode of such an action describes how (or if) the selection is altered by the action.
Each function of CListBoxView which affects the current item is passed an appropriate selection mode by the calling input handler method of CEikListBox. The mode is varied according to the keyboard modifiers held down by the user, or whether a pointer action was a tap or a sweep.
Note that the behaviour of list box views may vary with the target phone due to the wide range of possible input devices. The following description assumes a phone with a pointer and a keyboard.
ENoSelection |
The selection is not changed by actions while this is in effect, holding CTRL while pressing cursor up or down for example. |
ESingleSelection |
Only a single item in the list is allowed to be selected by an action; when selecting individual items with the pointer, or moving using the cursor keys without any modifiers for example. |
EContiguousSelection |
A single continuous run of items can be added to the selection array by an action, when keyboard-selecting with the shift key held down, or when sweeping a selection with the pointer for example. |
EDisjointSelection |
Any single item in the list may be added to the selection by an action, when selecting or drag-selecting with the pointer when the CTRL key is held down for example. |
EDisjointMarkSelection |
Any single item in the list may be removed from the selection by an action, when unselecting for example. |
EPenMultiselection |
Multiple items can be added to the selection array by an action, when selecting with the edit key for example. |
EChangeMarkMode |
Mark mode is changed to EUnmarkSelection if item is marked or EMarkSelection if item is not marked by an action, when selecting or unselecting item for example. |
typedef CArrayFix< TInt > | CSelectionIndexArray |
The items which are selected within a list box list.
TInt | iBottomItemIndex | [protected] |
Index of the item at the bottom of the view. This is not necessarily the item at the end of the list.
TBool | iDisableVerticalLineDrawing | [protected] |
Indicates whether vertical line drawing is disabled.
TInt | iFlags | [protected] |
The flags for this list box. These flags are defined by the nested enum TFlags (below).
TInt | iHScrollOffset | [protected] |
Pixel offset of the visible portion of the data from the left margin.
CListItemDrawer * | iItemDrawer | [protected] |
This view s item drawer. Not owned.
TInt | iTopItemIndex | [protected] |
Index of the item at the top of the view. This is not necessarily the item at the start of the list.