#include <mw/eikfrlbd.h>
class CFormattedCellListBoxData : public CListBoxData |
Protected Member Functions | |
---|---|
CFormattedCellListBoxData() | |
IMPORT_C void | ConstructLD() |
IMPORT_C void | ConstructLD(const TAknsItemID &) |
IMPORT_C void | DrawFormatted(TListItemProperties, CWindowGc &, const TDesC *, const TRect &, TBool, const TColors &) |
void | DrawFormattedSimple(TListItemProperties &, CWindowGc &, const TDesC *, const TRect &, TBool, const TColors &) |
CFormattedCellListBoxDataExtension * | Extension() |
CFormattedCellListBoxDataExtension * | Extension() |
Inherited Attributes | |
---|---|
CListBoxData::iBoldFont | |
CListBoxData::iBoldItalicFont | |
CListBoxData::iItalicFont | |
CListBoxData::iNormalFont | |
CListBoxData::iSearchString |
CFormattedCellListBoxData can draw list items. This is similar class than CColumnListBoxData, but it can more freely layout the list items; more parameters can be used to position the elements. In particular, the position of the elements is free, and not tied to fixed width columns.
This class is used to draw most of the S60 list and grid layouts.
It also handles truncation of the text elements, centering and cropping of images, z-order/overlapping cells, bi-directional text drawing, backgrounds for lists, highlight drawing, various text and image properties and finally the parts of the separator lines that are inside list items.
This is a very low level class. The less you use this class, the better. Applications should be using CAknSelectionListDialog or CAknMarkableListDialog or CAknListQueryDialog to use lists. There are enough predefined list layouts available, so there should be no need for applications to use this class. See Style Guide for more information. Use of this class may cause your application to not look ok when properties of the device change.
IMPORT_C | CFormattedCellListBoxData | ( | ) | [protected] |
C++ default constructor.
IMPORT_C void | AboutToDrawHighlightAnim | ( | ) | const |
This method should be called before drawing animated highlight. It will sync the animation with the background under the current highlight (only when current item index has changed).
IMPORT_C void | ConstructLD | ( | ) | [protected] |
Second phase constructor. Highlight animation will be created by default (if it is provided by the skin).
IMPORT_C void | ConstructLD | ( | const TAknsItemID & | aAnimationIID | ) | [protected] |
Second phase constructor for subclasses that want to override highlight animation creation.
Parameter | Description |
---|---|
aAnimationIID | Skin ItemID of the constructed animation. Passing KAknsIIDNone will disable highlight animation. |
IMPORT_C CCoeControl * | Control | ( | ) | const |
Ability for a skin subsystem to access Mop chain through current listbox control.
Returns: Current listbox instance or NULL.
void | CreateMarqueeControlL | ( | ) |
Creates marquee control. Called by the listbox.
void | CreatePictographInterfaceL | ( | ) |
Creates pictograph interface. Only effective in Japanese variant. Called by the listbox.
IMPORT_C TUint32 | CurrentItemTextWasClipped | ( | ) | const |
Returns: bitfield of clipped subcells
TInt | CurrentMarqueeItemIndex | ( | ) |
Gets the current list item index that is / was drawn by marquee.
Returns: Index of the item that is / was drawn by marquee.
IMPORT_C void | Draw | ( | TListItemProperties | aProperties, |
CWindowGc & | aGc, | |||
const TDesC * | aText, | |||
const TRect & | aRect, | |||
TBool | aHighlight, | |||
const TColors & | aColors | |||
) | const [virtual] |
From CListBoxData.
Draw() is the most important method in CEikFormattedCellListBoxData. This is the only method that needs to be implemented in this class and it draws the whole list item.
Parameter | Description |
---|---|
aProperties | Properties attached to the list item. |
aGc | Graphics Context used for drawing the list item. |
aText | A text string describing the list item cells. |
aRect | The area of the screen for the whole list item. |
aHighlight | Whether the list item is selected. |
aColors | The colours used for drawing the item. |
IMPORT_C void | DrawFormatted | ( | TListItemProperties | aProperties, |
CWindowGc & | aGc, | |||
const TDesC * | aText, | |||
const TRect & | aRect, | |||
TBool | aHighlight, | |||
const TColors & | aColors | |||
) | const [protected] |
Main drawing algorithm used for drawing S60 list item. Draw() method should call this method after clearing the list item area and drawing the highlight.
Parameter | Description |
---|---|
aProperties | Properties attached to the list item. |
aGc | Graphics Context used for drawing the list item. |
aText | A text string describing the list item cells. |
aRect | The area of the screen for the whole list item. |
aHighlight | Whether the list item is selected. |
aColors | The colors used for drawing the item. |
void | DrawFormattedSimple | ( | TListItemProperties & | aProperties, |
CWindowGc & | aGc, | |||
const TDesC * | aText, | |||
const TRect & | aRect, | |||
TBool | aHighlight, | |||
const TColors & | aColors | |||
) | const [protected] |
Draws list items.
Parameter | Description |
---|---|
aProperties | Properties attached to the list item. |
aGc | Graphics Context used for drawing the list item. |
aText | A text string describing the list item cells. |
aRect | The area of the screen for the whole list item. |
aHighlight | Whether the list item is selected. |
aColors | The colors used for drawing the item. |
IMPORT_C TBool | DrawHighlightAnim | ( | CBitmapContext & | aGc, |
const TRect & | aRect | |||
) | const |
The preferred method for drawing highlight animation in derived classes. Before calling this method you should check that highlight animation exists by calling HasHighlightAnim. In case of draw failure you should default to normal skinned highlight drawing. For example:
TBool drawOk = EFalse;
if( HasHighlightAnim() ) { drawOk = DrawHighlightAnim( gc, rect ); }
if( !drawOk ) { ...do normal skinned draw }
Parameter | Description |
---|---|
aGc | Graphics context for blitting animation frame |
aRect | Target rect for blitting animation frame |
Returns: The draw status, ETrue if drawing was ok, EFalse otherwise.
IMPORT_C void | EnableMarqueeL | ( | TBool | aEnable | ) |
Enables or disables marquee.
Parameter | Description |
---|---|
aEnable | ETrue if On, EFalse if Off. |
CFormattedCellListBoxDataExtension * | Extension | ( | ) | [protected] |
Gets list box extension, which is used for adding more funtionality to list boxes without destroying compatibility with previous versions.
Returns: Pointer to the list box extension.
CFormattedCellListBoxDataExtension * | Extension | ( | ) | const [protected] |
Gets list box extension, which is used for adding more funtionality to list boxes without destroying compatibility with previous versions.
Returns: Pointer to the list box extension.
void | FocusGained | ( | ) |
Function that is called when the owning control has gained the focus. Causes that animation is continued because the control is visible and focused.
void | FocusLost | ( | ) |
Function that is called when the owning control has lost the focus. Causes the animation to pause, even if the control is partially visible.
IMPORT_C CFont * | Font | ( | const TListItemProperties & | aItemProperties, |
TInt | aSubCellIndex | |||
) | const |
Font access to the font used in subcell.
Parameter | Description |
---|---|
aItemProperties | Not used in code. |
aSubCellIndex | Index number of the subcell. |
Returns: Font used in subcell.
void | HandleResourceChange | ( | TInt | aType | ) |
Handles the skin change situation. Causes change of animation.
Parameter | Description |
---|---|
aType | Type of resource change. |
IMPORT_C TBool | HasHighlightAnim | ( | ) | const |
Returns: ETrue if highlight animation exists, EFalse otherwise.
IMPORT_C const CAknsEffectAnim * | HighlightAnim | ( | ) | const |
Gets animation used for drawing the list highlight. May return NULL, in which case the normal skinned highlight should be drawn. This pointer is valid only during the draw -> you should not store it locally outside draw scope.
Returns: Animation used for drawing the list highlight.
void | InitSmileyL | ( | ) |
This method prepare smiley engine if it is not ready yet. apply new icon size to smiley icon.
TBool | IsBackgroundDrawingEnabled | ( | ) | const |
Checks if the list is transparent and drawing the background that would fall behind it.
Returns: EFalse if transparent, ETrue otherwise.
IMPORT_C TBool | IsMarqueeOn | ( | ) |
Determines if marquee is on.
Returns: Flag indicating if marquee is on (ETrue on, EFalse off)
TBool | IsScrollbarBackgroundDrawingEnabled | ( | ) | const |
Is the listbox drawing the background behind the scrollbar or not.
Returns: ETrue if background is drawn after scrollbar, EFalse otherwise.
TBool | KineticScrollingEnabled | ( | ) | const |
Returns ETrue if kinetic scrolling is enabled.
IMPORT_C CAknLayoutData * | LayoutData | ( | ) | const |
Gets layout data needed for separator lines drawing.
Returns: Layout data.
IMPORT_C TBool | LayoutInit | ( | ) | const |
Gets LayOutInit flag used for drawing separator lines in lists.
IMPORT_C CFormattedCellListBoxData * | NewL | ( | ) | [static] |
Two-phased constructor.
Returns: Pointer to a new formatted cell listbox data object.
IMPORT_C TBool | RespectFocus | ( | ) | const |
Gets RespectFocus flag.
Returns: RespectFocus flag. ETrue if list item highlights are only shown when the list is has been focused on.
IMPORT_C TAknSeparatorLinePosition | SeparatorLinePosition | ( | ) | const |
Gets separator line position.
Returns: Position of separator line.
IMPORT_C void | SetBackgroundSkinStyle | ( | const TAknsItemID * | aId, |
const TRect & | aRect | |||
) |
Modify properties of the skin context (background).
Parameter | Description |
---|---|
aId | Skin background identifier. |
aRect | Skin background rectangle. |
void | SetConditionalSubCellL | ( | TInt | aSubCell, |
const TAknTextLineLayout & | aTextLayout, | |||
TInt | aAffectedSubCell | |||
) |
Support for new layouts.
IMPORT_C void | SetControl | ( | CCoeControl * | aControlOrNull | ) |
Ability for a skin subsystem to access mop chain through current listbox control.
Parameter | Description |
---|---|
aControlOrNull | Current listbox instance or NULL. Cannot be other control than the current listbox! |
void | SetCurrentItemIndex | ( | TInt | aIndex | ) |
Sets the current list item index (not for marquee). Since Symbian 3.0 causes highlight animation to change its background (only if the current item index changes). Don't call this method if the index is not the current item index.
Parameter | Description |
---|---|
aIndex | Index number of list item. |
void | SetCurrentMarqueeItemIndex | ( | TInt | aIndex | ) |
Sets the current list item index that was drawn by marquee.
Parameter | Description |
---|---|
aIndex | Index of list item. |
IMPORT_C void | SetDrawBackground | ( | const TBool | aDrawBackground | ) |
Enables or disables transparency effect i.e. does the listbox draw its own background or not.
Parameter | Description |
---|---|
aDrawBackground | EFalse enables transparency, ETrue disables. |
void | SetDrawScrollbarBackground | ( | const TBool | aDrawBackground | ) |
Enables or disables drawing background after scrollbar.
Parameter | Description |
---|---|
aDrawBackground | Default is ETrue which means that Scrollbar is drawn first. |
void | SetESSHighlightedTextColor | ( | TAknsQsnTextColorsIndex | aIndex | ) |
Set a highlighted text color if enhanced skin support is available.
void | SetESSTextColor | ( | TAknsQsnTextColorsIndex | aIndex | ) |
Sets a text color if enhanced skin support is available.
void | SetGraphicSubCellL | ( | TInt | aSubCell, |
const TAknWindowLineLayout & | aGraphicLayout | |||
) |
Set window line layout for the defined sub cell.
Sets whether drawing algorithm considers the text string in list item as unicode text string displayable on the screen, or as string representation of an index to icon array.
Parameter | Description |
---|---|
aSubCellIndex | Index number of the subcell. |
aIsGraphics | ETrue if graphics cell, EFalse if text cell. |
IMPORT_C void | SetHighlightAnimBackgroundDrawer | ( | MListBoxAnimBackgroundDrawer * | aDrawer | ) |
Sets the observer for overriding default highlight input layer drawing functionality. Note that you should still call AboutToDrawHighlightAnim (it will call the observer if it is set).
Parameter | Description |
---|---|
aDrawer | Highlight animation drawer. |
SetIconArray sets the icon array used when drawing bitmaps. The array can be modified (no need to call this method when modifying), even in MdcaPoint() or MdcaCount() methods of MDesCArray class. See also CTextListBoxModel::SetItemTextArray().
The most common way to crash a listbox is by forgetting to call this method, or the list item string for graphics cell is not an index of a bitmap.
Parameter | Description |
---|---|
aArray | Pointer to the icon array. |
Sets the icon array used when drawing bitmaps. The array can be modified (no need to call this method when modifying), even in MdcaPoint() or MdcaCount() methods of MDesCArray class. See also CTextListBoxModel::SetItemTextArray().
The most common way to crash a listbox is by forgetting to call this method, or the list item string for graphics cell is not an index of a bitmap.
Parameter | Description |
---|---|
aArray | Pointer to the icon array. |
IMPORT_C void | SetItemCellSize | ( | const TSize & | aSize | ) |
Changes item cell size and resizes highlight animation. Called by list when item cell size changes. If you are using non-standard highlight sizes make sure to sync the list item cell size.
Parameter | Description |
---|---|
aSize | New cell size. |
IMPORT_C void | SetLayoutInit | ( | TBool | aValue | ) |
Sets LayOutInit flag used for drawing separator lines in lists.
IMPORT_C void | SetListEndSkinStyle | ( | const TAknsItemID * | listEndId, |
const TRect & | aRect | |||
) |
Modify properties of the skin context (list ending)*
Parameter | Description |
---|---|
listEndId | List ending skin background identifier. |
aRect | List ending background area from LAF. |
IMPORT_C void | SetMarqueeParams | ( | const TInt | aLoops, |
const TInt | aScrollAmount, | |||
const TInt | aScrollDelay, | |||
const TInt | aInterval | |||
) |
Customizes marquee default behavior. Use this before enabling marquee ( EnableMarqueeL() ), otherwise marquee behavior will change during animation.
Parameter | Description |
---|---|
aLoops | Max number of loops to be executed (default 1). |
aScrollAmount | The amount of pixels scrolled per frame (default 6). |
aScrollDelay | The delay between each loop (in microseconds, default 1000000 microseconds). |
aInterval | The interval between frame updates after the initial delay, in microseconds. |
IMPORT_C void | SetRespectFocus | ( | TBool | aBool | ) |
Sets RespectFocus flag.
Parameter | Description |
---|---|
aBool | Value of RespectFocus flag. ETrue means that the list item highlight is only shown if list is focused on. |
IMPORT_C void | SetSeparatorLinePosition | ( | TAknSeparatorLinePosition | aPosition | ) |
Sets position of listbox separator line.
Parameter | Description |
---|---|
aPosition | Position in which separator line is placed. |
IMPORT_C void | SetSkinEnabledL | ( | TBool | aEnabled | ) |
Reimplemented from CListBoxData::SetSkinEnabledL(TBool)
Sets whether skins are enabled on this list. The default value is determined from global setting from CAknAppUi.
Parameter | Description |
---|---|
aEnabled | If ETrue skins are set enabled. If EFalse skins are set disabled. |
IMPORT_C void | SetSkinHighlightFrame | ( | const TAknsItemID * | aFrameId, |
const TAknsItemID * | aFrameCenterId | |||
) |
Set list higlight skin style.
Parameter | Description |
---|---|
aFrameId | The id for the frame. |
aFrameCenterId | The id for the frame center. |
IMPORT_C void | SetSkinParentPos | ( | const TPoint & | aPos | ) |
Modify position of the parent for list default context.
Parameter | Description |
---|---|
aPos | The new position. |
IMPORT_C void | SetSkinPopupFrame | ( | const TAknsItemID * | aFrameId, |
const TAknsItemID * | aFrameCenterId | |||
) |
Set popup skin style.
Parameter | Description |
---|---|
aFrameId | The id for the frame. |
aFrameCenterId | The id for the frame center. |
IMPORT_C void | SetSkinStyle | ( | const TAknsItemID * | aId, |
const TRect & | aTileRect | |||
) |
Modify properties of the skin context (AB-column).
Parameter | Description |
---|---|
aId | Skin background identifier. |
aTileRect | Skin background area from LAF. |
void | SetSmileySubCellL | ( | TInt | aSubCell | ) |
Decide which subcell will draw smiley icon. Note that only text subcell can be set.
Parameter | Description |
---|---|
aSubCell | Index Index number of the subcell. |
void | SetStretchableConditionalSubCellL | ( | TInt | aSubCell, |
const TAknTextComponentLayout & | aNormalLayout, | |||
const TAknTextComponentLayout & | aStretchedLayout, | |||
TInt | aNormalSubCell, | |||
TInt | aStretchedSubCell | |||
) |
void | SetStretchableGraphicSubCellL | ( | TInt | aSubCell, |
const TAknWindowComponentLayout & | aNormalLayout, | |||
const TAknWindowComponentLayout & | aStretchedLayout | |||
) |
void | SetStretchableTextSubCellL | ( | TInt | aSubCell, |
const TAknTextComponentLayout & | aNormalLayout, | |||
const TAknTextComponentLayout & | aStretchedLayout | |||
) |
IMPORT_C void | SetSubCellAlignmentL | ( | TInt | aSubCellIndex, |
CGraphicsContext::TTextAlign | aAlign | |||
) |
Sets the alignment attached to the cell.
Parameter | Description |
---|---|
aSubCellIndex | Index number of the subcell. |
aAlign | Alignment that is attached to the cell |
IMPORT_C void | SetSubCellRightSeparatorStyleL | ( | TInt | aSubCell, |
CGraphicsContext::TPenStyle | aStyle | |||
) |
Sets whether vertical line is drawn to the right side of the cell.
Parameter | Description |
---|---|
aSubCell | Index number of the subcell. |
aStyle | Style of a pen used to draw a line for the right side of the cell. |
IMPORT_C void | SetSubcellUnderlined | ( | TBitFlags32 | aUnderlinedCells | ) |
Enables or disables underlining per text subcell only if TListItemProperties also has underlining enabled. If this method is not called and TListItemProperties has underlining enabled, drawing will revert to old style where only first text subcell will be underlined.
Parameter | Description |
---|---|
aUnderlinedCells | Bitmask of cells to be underlined. |
void | SetTextSubCellL | ( | TInt | aSubCell, |
const TAknTextLineLayout & | aTextLayout | |||
) |
Support for new layouts.
Set text line layout for the defined sub cell.
void | SetupSkinContextL | ( | ) |
Create and set the defaul skin context. Needed by the dynamic skin support.
IMPORT_C MAknsControlContext * | SkinBackgroundContext | ( | ) | const |
Access to the background context of the listbox.
Returns: Skin background context.
IMPORT_C TBool | SkinEnabled | ( | ) | const |
SkinEnabled checks whether skins are enabled on this list.
Returns: ETrue if enabled, EFalse if disabled.
IMPORT_C CGraphicsContext::TTextAlign | SubCellAlignment | ( | TInt | aSubCellIndex | ) | const |
Gets the alignment attached to the cell.
Parameter | Description |
---|---|
aSubCellIndex | Index number of the subcell. |
Returns: Alignment of the text.
Checks whetherdrawing algorithm considers the text string in list item as unicode text string displayable on the screen, or as string representation of an index to icon array.
Parameter | Description |
---|---|
aSubCellIndex | Index number of the subcell. |
Returns: ETrue if graphics cell, EFalse if text cell.
Checks whether drawing algorithm always draws the cell or whether empty string in list item can disable the drawing of the cell.
Parameter | Description |
---|---|
aSubCellIndex | Index number of the subcell. |
Returns: ETrue when empty string disables cell, EFalse if always drawn.
IMPORT_C CGraphicsContext::TPenStyle | SubCellRightSeparatorStyle | ( | TInt | aColumn | ) | const |
Checks whether vertical line is drawn to the right side of the cell.
Parameter | Description |
---|---|
aColumn | Index number of the subcell. |
Returns: Style of pen used to draw a line for the right side of the cell.
Gets the amount of pixels text margins is grown if it is truncated. This is usually very small number used to make the layout look more balanced when text is truncated. (the glyph used for truncation is almost empty and on narrow text elements, it looks odd if the truncated text element is exactly same size as non-truncated version.)
Parameter | Description |
---|---|
aSubCellIndex | Index number of the subcell. |
Returns: Amount of pixels that are used for growing the text margins in truncation.
void | UseHighlightIconSwapping | ( | TBool | aUse | ) |
enables certain highlight skinning for radibutton / checkbox set style lists
should be used only by avkon internally
IMPORT_C void | UseLogicalToVisualConversion | ( | TBool | aUseConversion | ) |
Enable or disable logical to visual reordering in listbox data text drawing. By default, it is enabled. This has any effect only when bidirectional text is rendered.
If you convert text to visual order prior to passing it to the listbox (for example by wrapping text to lines with methods in AknBidiTextUtils), then you should disable conversion in listbox by calling this method.
Parameter | Description |
---|---|
aUseConversion | Enable (ETrue) or disable (EFalse) conversion. |
TBool | UsesScalableLayoutData | ( | ) | const |
Checks if the list box uses scalable layouts.