2 * Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
19 #ifndef __LAFPUBLC_H__
20 #define __LAFPUBLC_H__
25 const TInt KLafScrollBarButtonPositionMask = 0x00C0;
28 struct SLafScrollButton
50 * Scroll bar initialisation flags. The default is for the scroll bar
51 * to have both a shaft and a thumb.
53 enum TEikScrollBarFlags
56 EEikScrollBarDefaultBehaviour =0x0000,
57 /** Does not display nudge buttons.*/
58 EEikScrollBarNoNudgeButtons =0x0001,
59 /** Has buttons which move it a page at a time. */
60 EEikScrollBarHasPageButtons =0x0002,
61 /** Has buttons which move it its entire extent. */
62 EEikScrollBarHasHomeEndButtons =0x0004,
63 /** Central area is empty. */
64 EEikScrollBarNoShaftOrThumb =0x0008,
65 /** Central area has no scroll thumb. */
66 EEikScrollBarShaftButNoThumb =0x0010,
67 /** Buttons are placed at the start of the bar. */
68 EButtonsAtStartOfShaft =0x0040,
69 /** Buttons are placed at the end of the bar. */
70 EButtonsAtEndOfShaft =0x0080,
72 * Buttons are placed at either end of the bar @c
73 * (EButtonsAtStartOfShaft | @c EButtonsAtEndOfShaft).
75 EButtonsEitherSideOfShaft =EButtonsAtStartOfShaft|EButtonsAtEndOfShaft,
77 * Buttons do not automatically dim when scroll bar is at its maximum
80 ENoAutoDimming =0x0100
83 /** Scroll bar orientation enumerations. */
86 /** Scroll bar is oriented vertically. */
88 /** Scroll bar is oriented horizontally. */
94 /** Flags for listboxes */
98 * Listbox construction flags.
103 * Construction flag for a list box from which the user can
104 * select multiple items.
106 EMultipleSelection = 0x0001,
108 * Construction flag for disabling extended selection.
109 * If this is set the user cannot select multiple items by
110 * using @c SHIFT button.
112 ENoExtendedSelection = 0x0002,
114 * Construction flag that sets the list box to match user’s keystrokes
117 EIncrementalMatching = 0x0004,
119 * Construction flag for setting the list box as a pop-out list box.
120 * Pop-out list boxes handle certain keystrokes and events differently.
124 * Construction flag that enables the indication of pointer press
125 * inside the view of the list box.
127 ELeftDownInViewRect = 0x0010,
129 * Construction flag for enabling @c CEiklist box item double click
132 EItemDoubleClicked = 0x0020,
134 * Construction flag for removing the ownership of the supplied list box
135 * model from the @c CEikListBox so that the list box model will not be
136 * deleted with the @c CEikListBoxes destruction.
140 * Construction flag for excluding the scroll bar.
141 * If the flag is set the scroll bas is drawn ouside the window that
142 * describes the scroll bars extent.
144 EScrollBarSizeExcluded = 0x0080,
146 * Construction flag for enabling @c CEikListBox change indication.
148 EStateChanged = 0x0100,
150 * Construction flag that indicates that the list box should be created
153 ECreateOwnWindow = 0x0200,
155 * Construction flag for disabling key matching.
157 ENoFirstLetterMatching = 0x0400,
159 * Construction flag for enabling painting of selected items.
161 EPaintedSelection = 0x0800,
163 * Construction flag for enabling S60 style selection of multiple items
166 ES60StyleMultiselection = 0x00010000, //32 bits
168 * Construction flag for enabling S60 style markable items.
170 ES60StyleMarkable = 0x00020000 //32 bits
172 /** List item attributes */
173 enum TListItemAttribute
175 ECurrent = 0x0001, // may be drawn with a frame
176 /** Item is emphasized */
177 EEmphasized = 0x0002, // special highlight (not selected)
178 /** Item is selected */
179 ESelected = 0x0004, // usually different than emphasized
180 // This last attribute is used to control that one can use only
181 // valid attributes above. So do not use it at all.
182 /** Sum of all other attributes. Do not use */
189 EItemDrawMarkSelection = 0x0001,
191 EItemPaintedSelection = 0x0002,
193 EItemDrawOnlyActiveSelection = 0x0004
197 /** Scroll bar thumb orientation enumerations */
198 struct SLafScrollThumb
202 /** Vertical orientation */
204 /** Horizontal orientation */
209 struct SLafScrollBarFrame
211 /** Defines the scroll bar’s visibility.*/
212 enum TScrollBarVisibility
214 /** Scroll bar not visible. */
216 /** Scroll bar visible. */
218 /** Scroll bar visible if required. */
222 /** Defines where the scroll bar is located. */
226 * Scroll bar located at the bottom, or to the right of the scroll bar
231 * Scroll bar located at the top, or to the left of the scroll bar
237 /** Determines how the scroll bar frame manages scroll bars.*/
238 enum TScrollBarManagement
241 * The scroll bar frame creates, destroys and recreates, scroll bars
242 * according to the visibility mode. The scroll bar frame also acts as
243 * an intermediary with its owning control so that the scroll bars can
244 * be treated as component controls.
248 * The scroll bar frame creates, destroys and recreates, scroll bars
249 * according to the visibility mode. In this case, the scroll bars are
250 * not treated as component controls. Instead, the scroll bars are
251 * geometry managed in windows floating above the control window and
252 * their position is determined in relation to the frame’s position on
257 * The scroll bar frame uses the central application scroll bar as held
258 * in the environment. This scroll bar is neither owned by the frame
259 * nor treated as a component control of the frame’s owner.
261 EApplicationScrollBar
265 /** Control group attributes */
266 struct SLafControlGroup
277 ELayHorizontally=0x10,
282 /** Look of button group container */
283 struct SLafButtonGroupContainer
285 /** The controls where the button group container is used. */
294 /** Command button area */
296 /** Dialog buttons */
299 /** Orientation of the button group container */
302 /** Vertical orientation */
304 /** Horizontal orientation */
309 /** Button group container used internally for example in dialog buttons */
311 /** Button group container used externally for example
312 * in toolbar or CBA (Command Button Area)
320 enum { ENominalTextLength = 40 };
323 /** Menu pane highlight type enumerations */
334 struct SLafButtonBase
336 /** The draw state enumerations of the button. */
341 EDrawIndeterminate =0x02,
342 EDrawClearPressed =0x10,
343 EDrawSetPressed =0x11,
344 EDrawIndeterminatePressed =0x12
349 #endif // __LAFPUBLC_H__