williamr@2: /* williamr@2: * Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * 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 williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef __LAFPUBLC_H__ williamr@2: #define __LAFPUBLC_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: /** @deprecated */ williamr@2: const TInt KLafScrollBarButtonPositionMask = 0x00C0; williamr@2: williamr@2: /** @deprecated */ williamr@2: struct SLafScrollButton williamr@2: { williamr@2: enum TType williamr@2: { williamr@2: ENudgeLeft, williamr@2: ENudgeUp, williamr@2: ENudgeRight, williamr@2: ENudgeDown, williamr@2: EPageLeft, williamr@2: EPageUp, williamr@2: EPageRight, williamr@2: EPageDown, williamr@2: EHome, williamr@2: ETop, williamr@2: EEnd, williamr@2: EBottom williamr@2: }; williamr@2: }; williamr@2: williamr@2: struct SLafScrollBar williamr@2: { williamr@2: /** williamr@2: * Scroll bar initialisation flags. The default is for the scroll bar williamr@2: * to have both a shaft and a thumb. williamr@2: */ williamr@2: enum TEikScrollBarFlags williamr@2: { williamr@2: /** Default */ williamr@2: EEikScrollBarDefaultBehaviour =0x0000, williamr@2: /** Does not display nudge buttons.*/ williamr@2: EEikScrollBarNoNudgeButtons =0x0001, williamr@2: /** Has buttons which move it a page at a time. */ williamr@2: EEikScrollBarHasPageButtons =0x0002, williamr@2: /** Has buttons which move it its entire extent. */ williamr@2: EEikScrollBarHasHomeEndButtons =0x0004, williamr@2: /** Central area is empty. */ williamr@2: EEikScrollBarNoShaftOrThumb =0x0008, williamr@2: /** Central area has no scroll thumb. */ williamr@2: EEikScrollBarShaftButNoThumb =0x0010, williamr@2: /** Buttons are placed at the start of the bar. */ williamr@2: EButtonsAtStartOfShaft =0x0040, williamr@2: /** Buttons are placed at the end of the bar. */ williamr@2: EButtonsAtEndOfShaft =0x0080, williamr@2: /** williamr@2: * Buttons are placed at either end of the bar @c williamr@2: * (EButtonsAtStartOfShaft | @c EButtonsAtEndOfShaft). williamr@2: */ williamr@2: EButtonsEitherSideOfShaft =EButtonsAtStartOfShaft|EButtonsAtEndOfShaft, williamr@2: /** williamr@2: * Buttons do not automatically dim when scroll bar is at its maximum williamr@2: * extent. williamr@2: */ williamr@2: ENoAutoDimming =0x0100 williamr@2: }; williamr@2: williamr@2: /** Scroll bar orientation enumerations. */ williamr@2: enum TOrientation williamr@2: { williamr@2: /** Scroll bar is oriented vertically. */ williamr@2: EVertical, williamr@2: /** Scroll bar is oriented horizontally. */ williamr@2: EHorizontal williamr@2: }; williamr@2: williamr@2: }; williamr@2: williamr@2: /** Flags for listboxes */ williamr@2: struct SLafListBox williamr@2: { williamr@2: /** williamr@2: * Listbox construction flags. williamr@2: */ williamr@2: enum TFlags williamr@2: { williamr@2: /** williamr@2: * Construction flag for a list box from which the user can williamr@2: * select multiple items. williamr@2: */ williamr@2: EMultipleSelection = 0x0001, williamr@2: /** williamr@2: * Construction flag for disabling extended selection. williamr@2: * If this is set the user cannot select multiple items by williamr@2: * using @c SHIFT button. williamr@2: */ williamr@2: ENoExtendedSelection = 0x0002, williamr@2: /** williamr@2: * Construction flag that sets the list box to match user’s keystrokes williamr@2: * incrementally. williamr@2: */ williamr@2: EIncrementalMatching = 0x0004, williamr@2: /** williamr@2: * Construction flag for setting the list box as a pop-out list box. williamr@2: * Pop-out list boxes handle certain keystrokes and events differently. williamr@2: */ williamr@2: EPopout = 0x0008, williamr@2: /** williamr@2: * Construction flag that enables the indication of pointer press williamr@2: * inside the view of the list box. williamr@2: */ williamr@2: ELeftDownInViewRect = 0x0010, williamr@2: /** williamr@2: * Construction flag for enabling @c CEiklist box item double click williamr@2: * indication. williamr@2: */ williamr@2: EItemDoubleClicked = 0x0020, williamr@2: /** williamr@2: * Construction flag for removing the ownership of the supplied list box williamr@2: * model from the @c CEikListBox so that the list box model will not be williamr@2: * deleted with the @c CEikListBoxes destruction. williamr@2: */ williamr@2: EKeepModel = 0x0040, williamr@2: /** williamr@2: * Construction flag for excluding the scroll bar. williamr@2: * If the flag is set the scroll bas is drawn ouside the window that williamr@2: * describes the scroll bars extent. williamr@2: */ williamr@2: EScrollBarSizeExcluded = 0x0080, williamr@2: /** williamr@2: * Construction flag for enabling @c CEikListBox change indication. williamr@2: */ williamr@2: EStateChanged = 0x0100, williamr@2: /** williamr@2: * Construction flag that indicates that the list box should be created williamr@2: * to its own window. williamr@2: */ williamr@2: ECreateOwnWindow = 0x0200, williamr@2: /** williamr@2: * Construction flag for disabling key matching. williamr@2: */ williamr@2: ENoFirstLetterMatching = 0x0400, williamr@2: /** williamr@2: * Construction flag for enabling painting of selected items. williamr@2: */ williamr@2: EPaintedSelection = 0x0800, williamr@2: /** williamr@2: * Construction flag for enabling S60 style selection of multiple items williamr@2: * from the list box. williamr@2: */ williamr@2: ES60StyleMultiselection = 0x00010000, //32 bits williamr@2: /** williamr@2: * Construction flag for enabling S60 style markable items. williamr@2: */ williamr@2: ES60StyleMarkable = 0x00020000 //32 bits williamr@2: }; williamr@2: /** List item attributes */ williamr@2: enum TListItemAttribute williamr@2: { williamr@2: ECurrent = 0x0001, // may be drawn with a frame williamr@2: /** Item is emphasized */ williamr@2: EEmphasized = 0x0002, // special highlight (not selected) williamr@2: /** Item is selected */ williamr@2: ESelected = 0x0004, // usually different than emphasized williamr@2: // This last attribute is used to control that one can use only williamr@2: // valid attributes above. So do not use it at all. williamr@2: /** Sum of all other attributes. Do not use */ williamr@2: EMask = 0x0007 williamr@2: }; williamr@2: /** deprecated */ williamr@2: enum TListItemFlags williamr@2: { williamr@2: /** deprecated */ williamr@2: EItemDrawMarkSelection = 0x0001, williamr@2: /** deprecated */ williamr@2: EItemPaintedSelection = 0x0002, williamr@2: /** deprecated */ williamr@2: EItemDrawOnlyActiveSelection = 0x0004 williamr@2: }; williamr@2: }; williamr@2: williamr@2: /** Scroll bar thumb orientation enumerations */ williamr@2: struct SLafScrollThumb williamr@2: { williamr@2: enum TOrientation williamr@2: { williamr@2: /** Vertical orientation */ williamr@2: EVertical, williamr@2: /** Horizontal orientation */ williamr@2: EHorizontal williamr@2: }; williamr@2: }; williamr@2: williamr@2: struct SLafScrollBarFrame williamr@2: { williamr@2: /** Defines the scroll bar’s visibility.*/ williamr@2: enum TScrollBarVisibility williamr@2: { williamr@2: /** Scroll bar not visible. */ williamr@2: EOff, williamr@2: /** Scroll bar visible. */ williamr@2: EOn, williamr@2: /** Scroll bar visible if required. */ williamr@2: EAuto williamr@2: }; williamr@2: williamr@2: /** Defines where the scroll bar is located. */ williamr@2: enum TScrollBarSide williamr@2: { williamr@2: /** williamr@2: * Scroll bar located at the bottom, or to the right of the scroll bar williamr@2: * frame williamr@2: */ williamr@2: EBottomOrRight, williamr@2: /** williamr@2: * Scroll bar located at the top, or to the left of the scroll bar williamr@2: * frame williamr@2: */ williamr@2: ETopOrLeft williamr@2: }; williamr@2: williamr@2: /** Determines how the scroll bar frame manages scroll bars.*/ williamr@2: enum TScrollBarManagement williamr@2: { williamr@2: /** williamr@2: * The scroll bar frame creates, destroys and recreates, scroll bars williamr@2: * according to the visibility mode. The scroll bar frame also acts as williamr@2: * an intermediary with its owning control so that the scroll bars can williamr@2: * be treated as component controls. williamr@2: */ williamr@2: EComponent, williamr@2: /** williamr@2: * The scroll bar frame creates, destroys and recreates, scroll bars williamr@2: * according to the visibility mode. In this case, the scroll bars are williamr@2: * not treated as component controls. Instead, the scroll bars are williamr@2: * geometry managed in windows floating above the control window and williamr@2: * their position is determined in relation to the frame’s position on williamr@2: * the screen. williamr@2: */ williamr@2: EFloating, williamr@2: /** williamr@2: * The scroll bar frame uses the central application scroll bar as held williamr@2: * in the environment. This scroll bar is neither owned by the frame williamr@2: * nor treated as a component control of the frame’s owner. williamr@2: */ williamr@2: EApplicationScrollBar williamr@2: }; williamr@2: }; williamr@2: williamr@2: /** Control group attributes */ williamr@2: struct SLafControlGroup williamr@2: { williamr@2: enum TStartCorner williamr@2: { williamr@2: EFromTopLeft=0x1, williamr@2: EFromTopRight=0x2, williamr@2: EFromBottomLeft=0x3, williamr@2: EFromBottomRight=0x4 williamr@2: }; williamr@2: enum TOrientation williamr@2: { williamr@2: ELayHorizontally=0x10, williamr@2: ELayVertically=0x20 williamr@2: }; williamr@2: }; williamr@2: williamr@2: /** Look of button group container */ williamr@2: struct SLafButtonGroupContainer williamr@2: { williamr@2: /** The controls where the button group container is used. */ williamr@2: enum TUse williamr@2: { williamr@2: /** View */ williamr@2: EView, williamr@2: /** Dialog */ williamr@2: EDialog, williamr@2: /** Toolbar */ williamr@2: EToolbar, williamr@2: /** Command button area */ williamr@2: ECba, williamr@2: /** Dialog buttons */ williamr@2: EDialogButtons williamr@2: }; williamr@2: /** Orientation of the button group container */ williamr@2: enum TOrientation williamr@2: { williamr@2: /** Vertical orientation */ williamr@2: EVertical, williamr@2: /** Horizontal orientation */ williamr@2: EHorizontal williamr@2: }; williamr@2: enum TLocation williamr@2: { williamr@2: /** Button group container used internally for example in dialog buttons */ williamr@2: EInternal, williamr@2: /** Button group container used externally for example williamr@2: * in toolbar or CBA (Command Button Area) williamr@2: */ williamr@2: EExternal williamr@2: }; williamr@2: }; williamr@2: williamr@2: struct SLafMenuBar williamr@2: { williamr@2: enum { ENominalTextLength = 40 }; williamr@2: }; williamr@2: williamr@2: /** Menu pane highlight type enumerations */ williamr@2: struct SLafMenuPane williamr@2: { williamr@2: enum THighlightType williamr@2: { williamr@2: ENoHighlight, williamr@2: EDrawHighlight, williamr@2: ERemoveHighlight williamr@2: }; williamr@2: }; williamr@2: williamr@2: struct SLafButtonBase williamr@2: { williamr@2: /** The draw state enumerations of the button. */ williamr@2: enum TDrawState williamr@2: { williamr@2: EDrawClear =0x00, williamr@2: EDrawSet =0x01, williamr@2: EDrawIndeterminate =0x02, williamr@2: EDrawClearPressed =0x10, williamr@2: EDrawSetPressed =0x11, williamr@2: EDrawIndeterminatePressed =0x12 williamr@2: }; williamr@2: }; williamr@2: williamr@2: williamr@2: #endif // __LAFPUBLC_H__