williamr@2
|
1 |
/*
|
williamr@2
|
2 |
* Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
3 |
* All rights reserved.
|
williamr@2
|
4 |
* This component and the accompanying materials are made available
|
williamr@4
|
5 |
* under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
6 |
* which accompanies this distribution, and is available
|
williamr@4
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
8 |
*
|
williamr@2
|
9 |
* Initial Contributors:
|
williamr@2
|
10 |
* Nokia Corporation - initial contribution.
|
williamr@2
|
11 |
*
|
williamr@2
|
12 |
* Contributors:
|
williamr@2
|
13 |
*
|
williamr@2
|
14 |
* Description:
|
williamr@2
|
15 |
*
|
williamr@2
|
16 |
*/
|
williamr@2
|
17 |
|
williamr@2
|
18 |
|
williamr@2
|
19 |
|
williamr@2
|
20 |
|
williamr@2
|
21 |
#if !defined(__EIKLBI_H__)
|
williamr@2
|
22 |
#define __EIKLBI_H__
|
williamr@2
|
23 |
|
williamr@2
|
24 |
#include <e32base.h>
|
williamr@2
|
25 |
#include <gdi.h>
|
williamr@2
|
26 |
|
williamr@2
|
27 |
|
williamr@2
|
28 |
class CWindowGc;
|
williamr@2
|
29 |
class CListBoxData;
|
williamr@2
|
30 |
class TListItemProperties;
|
williamr@2
|
31 |
class TListFontBoundValues;
|
williamr@2
|
32 |
class MAknsControlContext;
|
williamr@2
|
33 |
|
williamr@2
|
34 |
|
williamr@2
|
35 |
/**
|
williamr@2
|
36 |
* The @c CListItemDrawer class is the base class for the list box item drawers
|
williamr@2
|
37 |
* which handle drawing of the contents of list box items.
|
williamr@2
|
38 |
* The items may optionally be markable.
|
williamr@2
|
39 |
*
|
williamr@2
|
40 |
* @since Symbian 5.0
|
williamr@2
|
41 |
*/
|
williamr@2
|
42 |
class CListItemDrawer : public CBase
|
williamr@2
|
43 |
{
|
williamr@2
|
44 |
|
williamr@2
|
45 |
public:
|
williamr@2
|
46 |
|
williamr@2
|
47 |
/**
|
williamr@2
|
48 |
* Destructor.
|
williamr@2
|
49 |
*/
|
williamr@2
|
50 |
IMPORT_C ~CListItemDrawer();
|
williamr@2
|
51 |
|
williamr@2
|
52 |
/**
|
williamr@2
|
53 |
* Draws the entire item.
|
williamr@2
|
54 |
*
|
williamr@2
|
55 |
* This function is called by the list box view. As implemented
|
williamr@2
|
56 |
* in @c CListItemDrawer, this function draws the item text using
|
williamr@2
|
57 |
* @c DrawActualItem(), and an item mark using @c DrawItemMark().
|
williamr@2
|
58 |
*
|
williamr@2
|
59 |
* @param aItemIndex Index of the item to draw.
|
williamr@2
|
60 |
* @param aItemRectPos Position of the rectangle to draw.
|
williamr@2
|
61 |
* @param aItemIsSelected Whether the item is selected.
|
williamr@2
|
62 |
* @param aItemIsCurrent Whether the item is current.
|
williamr@2
|
63 |
* @param aViewIsEmphasized Whether the list box view has the emphasised
|
williamr@2
|
64 |
* flag set (see @c CListBoxView::SetEmphasized()).
|
williamr@2
|
65 |
* @param aViewIsDimmed Whether the list box view has its dimmed flag set
|
williamr@2
|
66 |
* (see @c CListBoxView::SetDimmed()).
|
williamr@2
|
67 |
*/
|
williamr@2
|
68 |
IMPORT_C virtual void DrawItem(TInt aItemIndex,
|
williamr@2
|
69 |
TPoint aItemRectPos,
|
williamr@2
|
70 |
TBool aItemIsSelected,
|
williamr@2
|
71 |
TBool aItemIsCurrent,
|
williamr@2
|
72 |
TBool aViewIsEmphasized,
|
williamr@2
|
73 |
TBool aViewIsDimmed) const;
|
williamr@2
|
74 |
|
williamr@2
|
75 |
/**
|
williamr@2
|
76 |
* Clears the specified rectangle of this object's graphics context.
|
williamr@2
|
77 |
*
|
williamr@2
|
78 |
* @param aRect Rectangle to clear.
|
williamr@2
|
79 |
*/
|
williamr@2
|
80 |
IMPORT_C virtual void ClearRect(const TRect& aRect) const;
|
williamr@2
|
81 |
|
williamr@2
|
82 |
/**
|
williamr@2
|
83 |
* Gets the width of the specified item.
|
williamr@2
|
84 |
*
|
williamr@2
|
85 |
* @param aItemIndex The index of the item whose width is to be returned.
|
williamr@2
|
86 |
* @return The width of the item. This is 0 in @c CListItemDrawer
|
williamr@2
|
87 |
*/
|
williamr@2
|
88 |
IMPORT_C virtual TInt ItemWidthInPixels(TInt aItemIndex) const;
|
williamr@2
|
89 |
|
williamr@2
|
90 |
/**
|
williamr@2
|
91 |
* Gets the minimum cell size.
|
williamr@2
|
92 |
*
|
williamr@2
|
93 |
* @return The minimum size for a cell. This is @c TSize(0, 0)
|
williamr@2
|
94 |
* in @c CListItemDrawer.
|
williamr@2
|
95 |
*/
|
williamr@2
|
96 |
IMPORT_C virtual TSize MinimumCellSize() const;
|
williamr@2
|
97 |
|
williamr@2
|
98 |
/**
|
williamr@2
|
99 |
* Sets the graphics context which this object uses for drawing.
|
williamr@2
|
100 |
*
|
williamr@2
|
101 |
* @param aGc Pointer to the context to use.
|
williamr@2
|
102 |
*/
|
williamr@2
|
103 |
IMPORT_C virtual void SetGc(CWindowGc* aGc);
|
williamr@2
|
104 |
|
williamr@2
|
105 |
/**
|
williamr@2
|
106 |
* Gets graphics context which is used for drawing.
|
williamr@2
|
107 |
*
|
williamr@2
|
108 |
* @return Pointer to the graphics context used for drawing.
|
williamr@2
|
109 |
*/
|
williamr@2
|
110 |
IMPORT_C CWindowGc* Gc() const;
|
williamr@2
|
111 |
|
williamr@2
|
112 |
/**
|
williamr@2
|
113 |
* Sets the width of the column containing the mark.
|
williamr@2
|
114 |
*
|
williamr@2
|
115 |
* @param aWidthInPixels New width for the mark column.
|
williamr@2
|
116 |
*/
|
williamr@2
|
117 |
IMPORT_C virtual void SetMarkColumnWidth(TInt aWidthInPixels);
|
williamr@2
|
118 |
|
williamr@2
|
119 |
/**
|
williamr@2
|
120 |
* Sets the width of the gap between the column containing the lists item
|
williamr@2
|
121 |
* marks and the text column.
|
williamr@2
|
122 |
*
|
williamr@2
|
123 |
* @param aGapInPixels New gap size.
|
williamr@2
|
124 |
*/
|
williamr@2
|
125 |
IMPORT_C virtual void SetMarkGutter(TInt aGapInPixels);
|
williamr@2
|
126 |
|
williamr@2
|
127 |
/**
|
williamr@2
|
128 |
* Gets mark column width.
|
williamr@2
|
129 |
*
|
williamr@2
|
130 |
* @return Mark column width.
|
williamr@2
|
131 |
*/
|
williamr@2
|
132 |
IMPORT_C TInt MarkColumn() const;
|
williamr@2
|
133 |
|
williamr@2
|
134 |
/**
|
williamr@2
|
135 |
* Gets the width of the gap between the column containig the lists item
|
williamr@2
|
136 |
* marks and the text column.
|
williamr@2
|
137 |
*
|
williamr@2
|
138 |
* @return Size of the inter-column gutter.
|
williamr@2
|
139 |
*/
|
williamr@2
|
140 |
IMPORT_C TInt MarkGutter() const;
|
williamr@2
|
141 |
|
williamr@2
|
142 |
/**
|
williamr@2
|
143 |
* Sets the item cell size.
|
williamr@2
|
144 |
* The cell size is the on-screen size of the entire item, including
|
williamr@2
|
145 |
* its text and its item mark.
|
williamr@2
|
146 |
*
|
williamr@2
|
147 |
* @param aSizeInPixels New size for the item cell.
|
williamr@2
|
148 |
*/
|
williamr@2
|
149 |
IMPORT_C virtual void SetItemCellSize(const TSize& aSizeInPixels);
|
williamr@2
|
150 |
|
williamr@2
|
151 |
/**
|
williamr@2
|
152 |
* Gets current item cell size.
|
williamr@2
|
153 |
*
|
williamr@2
|
154 |
* @since Symbian 3.0
|
williamr@2
|
155 |
* @return Item cell size
|
williamr@2
|
156 |
*/
|
williamr@2
|
157 |
IMPORT_C TSize ItemCellSize() const;
|
williamr@2
|
158 |
|
williamr@2
|
159 |
/**
|
williamr@2
|
160 |
* Sets the viewing rectangle for this item drawer.
|
williamr@2
|
161 |
* This value is not used by the @c CListItemViewer, but may be used by its
|
williamr@2
|
162 |
* derived classes.
|
williamr@2
|
163 |
*
|
williamr@2
|
164 |
* @param aRect New value for @c iViewRect.
|
williamr@2
|
165 |
*/
|
williamr@2
|
166 |
IMPORT_C virtual void SetViewRect(const TRect& aRect);
|
williamr@2
|
167 |
|
williamr@2
|
168 |
/**
|
williamr@2
|
169 |
* Sets whether item tick marks are drawn.
|
williamr@2
|
170 |
*
|
williamr@2
|
171 |
* If the draw mark flag iDrawMark is set, @c DrawItem() leaves space for
|
williamr@2
|
172 |
* the marks column to the left of the text column, and @c DrawItemMark()
|
williamr@2
|
173 |
* draws the item marks.
|
williamr@2
|
174 |
*
|
williamr@2
|
175 |
* @param aDrawMark New value for iDrawMark.
|
williamr@2
|
176 |
*/
|
williamr@2
|
177 |
IMPORT_C void SetDrawMark(TBool aDrawMark);
|
williamr@2
|
178 |
|
williamr@2
|
179 |
/**
|
williamr@2
|
180 |
* Gets a rectangle describing where the matcher cursor should be drawn.
|
williamr@2
|
181 |
* The default behavious is to return uninitialised @c TRect.
|
williamr@2
|
182 |
*
|
williamr@2
|
183 |
* @deprecated
|
williamr@2
|
184 |
* @param aMatchableText The text of the currently matched string.
|
williamr@2
|
185 |
* @param aCharPos The position in the string of the character just matched
|
williamr@2
|
186 |
* in the current incremental match.
|
williamr@2
|
187 |
* @param aItemCellYPos Y position of the item cell.
|
williamr@2
|
188 |
* @param aCurrentItemIndex Item index for the current item.
|
williamr@2
|
189 |
* @return Where the cursor should be drawn.
|
williamr@2
|
190 |
*/
|
williamr@2
|
191 |
IMPORT_C virtual TRect MatcherCursorRect(const TDesC& aMatchableText,
|
williamr@2
|
192 |
TInt aCharPos,
|
williamr@2
|
193 |
TInt aItemCellYPos,
|
williamr@2
|
194 |
TInt aCurrentItemIndex ) const;
|
williamr@2
|
195 |
|
williamr@2
|
196 |
/**
|
williamr@2
|
197 |
* Gets the ascent of the matcher cursor.
|
williamr@2
|
198 |
*
|
williamr@2
|
199 |
* This is obtained for the item at index @c aCurrentItemIndex.
|
williamr@2
|
200 |
* The function returns 0 by default.
|
williamr@2
|
201 |
*
|
williamr@2
|
202 |
* @deprecated
|
williamr@2
|
203 |
* @param aCurrentItemIndex Item index of the target item.
|
williamr@2
|
204 |
* @return The height of the matcher cursor.
|
williamr@2
|
205 |
*/
|
williamr@2
|
206 |
IMPORT_C virtual TInt MatcherCursorAscent( TInt aCurrentItemIndex ) const;
|
williamr@2
|
207 |
|
williamr@2
|
208 |
/**
|
williamr@2
|
209 |
* Not Used in S60.
|
williamr@2
|
210 |
*/
|
williamr@2
|
211 |
IMPORT_C virtual void DrawItemMark(TBool aItemIsSelected,
|
williamr@2
|
212 |
TBool aViewIsDimmed,
|
williamr@2
|
213 |
const TPoint& aMarkPos) const;
|
williamr@2
|
214 |
|
williamr@2
|
215 |
/**
|
williamr@2
|
216 |
* Sets symbol font for the item drawer.
|
williamr@2
|
217 |
* The symbol font is used to draw the standard tick item marks.
|
williamr@2
|
218 |
*
|
williamr@2
|
219 |
* @param aFont The font to be used.
|
williamr@2
|
220 |
*/
|
williamr@2
|
221 |
IMPORT_C void SetSymbolFont(const CFont* aFont);
|
williamr@2
|
222 |
|
williamr@2
|
223 |
/**
|
williamr@2
|
224 |
* Sets the vertical gap between items in the list.
|
williamr@2
|
225 |
*
|
williamr@2
|
226 |
* @param aGapInPixels New value for the vertical gap between items
|
williamr@2
|
227 |
* in pixels.
|
williamr@2
|
228 |
*/
|
williamr@2
|
229 |
IMPORT_C void SetVerticalInterItemGap(TInt aGapInPixels);
|
williamr@2
|
230 |
|
williamr@2
|
231 |
/**
|
williamr@2
|
232 |
* Sets the font storage data for the item drawer and transfer ownership
|
williamr@2
|
233 |
* of that data.
|
williamr@2
|
234 |
*
|
williamr@2
|
235 |
* @param aData Font storage data .
|
williamr@2
|
236 |
*/
|
williamr@2
|
237 |
IMPORT_C void SetData(CListBoxData* aData);
|
williamr@2
|
238 |
|
williamr@2
|
239 |
/**
|
williamr@2
|
240 |
* Gets the font for the specified item.
|
williamr@2
|
241 |
*
|
williamr@2
|
242 |
* The function returns @c NULL if no font storage data has been set.
|
williamr@2
|
243 |
*
|
williamr@2
|
244 |
* @param aItemIndex The index of the item for which the font is returned.
|
williamr@2
|
245 |
* @return The item's font.
|
williamr@2
|
246 |
*/
|
williamr@2
|
247 |
IMPORT_C CFont* Font(TInt aItemIndex) const;
|
williamr@2
|
248 |
|
williamr@2
|
249 |
/**
|
williamr@2
|
250 |
* Gets the colour and style properties of the specified item.
|
williamr@2
|
251 |
*
|
williamr@2
|
252 |
* @param aItemIndex The index of the item for which properties
|
williamr@2
|
253 |
* are obtained (Not Used).
|
williamr@2
|
254 |
* @return The item's properties.
|
williamr@2
|
255 |
*/
|
williamr@2
|
256 |
IMPORT_C virtual TListItemProperties Properties(TInt aItemIndex) const;
|
williamr@2
|
257 |
|
williamr@2
|
258 |
/**
|
williamr@2
|
259 |
* Draws the frame.
|
williamr@2
|
260 |
*
|
williamr@2
|
261 |
* Uses the colours set with the fonts and colour functions described above.
|
williamr@2
|
262 |
*
|
williamr@2
|
263 |
* @deprecated
|
williamr@2
|
264 |
* @param aGc The graphics context used to draw the frame.
|
williamr@2
|
265 |
* @param aRect The frame's rectangle.
|
williamr@2
|
266 |
* @param aFlags The item drawer flags.
|
williamr@2
|
267 |
*/
|
williamr@2
|
268 |
IMPORT_C void DrawFrame(CWindowGc& aGc,
|
williamr@2
|
269 |
const TRect& aRect,
|
williamr@2
|
270 |
TInt aFlags) const;
|
williamr@2
|
271 |
|
williamr@2
|
272 |
public:
|
williamr@2
|
273 |
|
williamr@2
|
274 |
/**
|
williamr@2
|
275 |
* Provides list box attributes for handling multiple selections. These
|
williamr@2
|
276 |
* flags can be set using the @c CListItemDrawer::SetFlags function.
|
williamr@2
|
277 |
*/
|
williamr@2
|
278 |
enum TFlags
|
williamr@2
|
279 |
{
|
williamr@2
|
280 |
/**
|
williamr@2
|
281 |
* If set, specifies the inclusion of a gap into which a tick mark can
|
williamr@2
|
282 |
* be drawn if the item is selected. This is used in the following
|
williamr@2
|
283 |
* @c CListItemDrawer class functions:
|
williamr@2
|
284 |
* @c DrawItem(),
|
williamr@2
|
285 |
* @c DrawItemMark(),
|
williamr@2
|
286 |
* @c SetDrawMark()
|
williamr@2
|
287 |
*/
|
williamr@2
|
288 |
EDrawMarkSelection = 0x0001,
|
williamr@2
|
289 |
|
williamr@2
|
290 |
/**
|
williamr@2
|
291 |
* If set, draws a highlight over a selected list item. This is used
|
williamr@2
|
292 |
* in the @c CTextListItemDrawer::DoDrawItemText() function.
|
williamr@2
|
293 |
*/
|
williamr@2
|
294 |
EPaintedSelection = 0x0002,
|
williamr@2
|
295 |
|
williamr@2
|
296 |
/** This flag is not supported. */
|
williamr@2
|
297 |
EDrawOnlyActiveSelection = 0x0004,
|
williamr@2
|
298 |
|
williamr@2
|
299 |
/** If set highlight is disabled. */
|
williamr@2
|
300 |
EDisableHighlight = 0x0008,
|
williamr@2
|
301 |
|
williamr@2
|
302 |
/** This flag indicates @c CListboxData to draw pressed down state
|
williamr@2
|
303 |
* rather than normal highlight on item. Make sure checking this
|
williamr@2
|
304 |
* flag in subclass's Draw method, if using a custom @c CListboxData
|
williamr@2
|
305 |
* inheriting from @c CColumnListBoxData or @c CFormattedCellListBoxData.
|
williamr@2
|
306 |
*/
|
williamr@2
|
307 |
EPressedDownState = 0x0010,
|
williamr@2
|
308 |
|
williamr@2
|
309 |
/** This flag indicates the marquee is disabled. If it is set, @c CColumnListBoxData
|
williamr@2
|
310 |
* or @c CFormattedCellListBoxData would disable maquee temporarily for
|
williamr@2
|
311 |
* performance reason.
|
williamr@2
|
312 |
*/
|
williamr@4
|
313 |
EDisableMarquee = 0x0020,
|
williamr@4
|
314 |
|
williamr@4
|
315 |
/**
|
williamr@4
|
316 |
* This flag indicates that highlight is disabled in list because of
|
williamr@4
|
317 |
* single click style.
|
williamr@4
|
318 |
*/
|
williamr@4
|
319 |
ESingleClickDisabledHighlight = 0x0040,
|
williamr@4
|
320 |
|
williamr@4
|
321 |
/**
|
williamr@4
|
322 |
* This flag indicates that single click mode is enabled.
|
williamr@4
|
323 |
*/
|
williamr@4
|
324 |
ESingleClickEnabled = 0x0080
|
williamr@2
|
325 |
};
|
williamr@2
|
326 |
|
williamr@2
|
327 |
public:
|
williamr@2
|
328 |
|
williamr@2
|
329 |
/**
|
williamr@2
|
330 |
* Provides attributes for list items
|
williamr@2
|
331 |
*/
|
williamr@2
|
332 |
enum TListItemAttribute
|
williamr@2
|
333 |
|
williamr@2
|
334 |
{
|
williamr@2
|
335 |
/** Highlight for current text. */
|
williamr@2
|
336 |
ECurrent = 0x0001, // may be drawn with a frame
|
williamr@2
|
337 |
|
williamr@2
|
338 |
/**
|
williamr@2
|
339 |
* Highlight for text when the listbox view is emphasized.
|
williamr@2
|
340 |
*
|
williamr@2
|
341 |
* This is used in the following @c CListBoxView class functions:
|
williamr@2
|
342 |
* @c DrawItem(), @c DrawMatcherCursor(), @c SetEmphasized().
|
williamr@2
|
343 |
*/
|
williamr@2
|
344 |
EEmphasized = 0x0002, // special highlight (not selected)
|
williamr@2
|
345 |
|
williamr@2
|
346 |
/**
|
williamr@2
|
347 |
* Highlight for text that is selected. This is used in the following
|
williamr@2
|
348 |
* functions: @c CColumnListBoxItemDrawer::DrawItemText(),
|
williamr@2
|
349 |
* @c CHierarchicalListItemDrawer::DrawActualItem(),
|
williamr@2
|
350 |
* @c CDirContentsListItemDrawer::DrawActualItem().
|
williamr@2
|
351 |
*/
|
williamr@2
|
352 |
ESelected = 0x0004, // usually different than emphasized
|
williamr@2
|
353 |
|
williamr@2
|
354 |
/**
|
williamr@2
|
355 |
* Sum of all the above attributes.
|
williamr@2
|
356 |
* This last attribute is used to control that one can use only
|
williamr@2
|
357 |
* valid attributes above. So do not use it at all.
|
williamr@2
|
358 |
*/
|
williamr@2
|
359 |
EMask = 0x0007 // sum of all others attributes
|
williamr@2
|
360 |
|
williamr@2
|
361 |
};
|
williamr@2
|
362 |
|
williamr@2
|
363 |
public:
|
williamr@2
|
364 |
|
williamr@2
|
365 |
/**
|
williamr@2
|
366 |
* Sets the colour used to draw non-highlighted text.
|
williamr@2
|
367 |
*
|
williamr@2
|
368 |
* @param aColor The text colour.
|
williamr@2
|
369 |
*/
|
williamr@2
|
370 |
inline void SetTextColor(TRgb aColor);
|
williamr@2
|
371 |
|
williamr@2
|
372 |
/**
|
williamr@2
|
373 |
* Sets the colour used to draw the background for non-highlighted items.
|
williamr@2
|
374 |
*
|
williamr@2
|
375 |
* @param aColor The background colour.
|
williamr@2
|
376 |
*/
|
williamr@2
|
377 |
inline void SetBackColor(TRgb aColor);
|
williamr@2
|
378 |
|
williamr@2
|
379 |
/**
|
williamr@2
|
380 |
* Sets the colour used to draw highlighted text.
|
williamr@2
|
381 |
*
|
williamr@2
|
382 |
* @param aColor The highlighted text colour.
|
williamr@2
|
383 |
*/
|
williamr@2
|
384 |
inline void SetHighlightedTextColor(TRgb aColor);
|
williamr@2
|
385 |
|
williamr@2
|
386 |
/**
|
williamr@2
|
387 |
* Sets the colour used to draw the background for highlighted items.
|
williamr@2
|
388 |
*
|
williamr@2
|
389 |
* @param aColor The highlighted background colour.
|
williamr@2
|
390 |
*/
|
williamr@2
|
391 |
inline void SetHighlightedBackColor(TRgb aColor);
|
williamr@2
|
392 |
|
williamr@2
|
393 |
/**
|
williamr@2
|
394 |
* Sets the colour used to draw dimmed text.
|
williamr@2
|
395 |
*
|
williamr@2
|
396 |
* @param aColor The dimmed text colour.
|
williamr@2
|
397 |
*/
|
williamr@2
|
398 |
inline void SetDimmedTextColor(TRgb aColor);
|
williamr@2
|
399 |
|
williamr@2
|
400 |
/**
|
williamr@2
|
401 |
* Sets the colour used to draw the background for dimmed items.
|
williamr@2
|
402 |
*
|
williamr@2
|
403 |
* @param aColor The background colour for dimmed items.
|
williamr@2
|
404 |
*/
|
williamr@2
|
405 |
inline void SetDimmedBackColor(TRgb aColor);
|
williamr@2
|
406 |
|
williamr@2
|
407 |
/**
|
williamr@2
|
408 |
* Gets the colour used to draw non-highlighted text.
|
williamr@2
|
409 |
*
|
williamr@2
|
410 |
* @return The text colour.
|
williamr@2
|
411 |
*/
|
williamr@2
|
412 |
inline TRgb TextColor() const;
|
williamr@2
|
413 |
|
williamr@2
|
414 |
/**
|
williamr@2
|
415 |
* Gets the colour used to draw the background for non-highlighted items.
|
williamr@2
|
416 |
*
|
williamr@2
|
417 |
* @return Background colour.
|
williamr@2
|
418 |
*/
|
williamr@2
|
419 |
inline TRgb BackColor() const;
|
williamr@2
|
420 |
|
williamr@2
|
421 |
/**
|
williamr@2
|
422 |
* Gets the colour used to draw highlighted text.
|
williamr@2
|
423 |
*
|
williamr@2
|
424 |
* @return The highlighted text colour.
|
williamr@2
|
425 |
*/
|
williamr@2
|
426 |
inline TRgb HighlightedTextColor() const;
|
williamr@2
|
427 |
|
williamr@2
|
428 |
/**
|
williamr@2
|
429 |
* Gets the colour used to draw the background for highlighted items.
|
williamr@2
|
430 |
*
|
williamr@2
|
431 |
* @return The highlighted background colour.
|
williamr@2
|
432 |
*/
|
williamr@2
|
433 |
inline TRgb HighlightedBackColor() const;
|
williamr@2
|
434 |
|
williamr@2
|
435 |
/**
|
williamr@2
|
436 |
* Gets the colour used to draw dimmed text.
|
williamr@2
|
437 |
*
|
williamr@2
|
438 |
* @return The dimmed text colour.
|
williamr@2
|
439 |
*/
|
williamr@2
|
440 |
inline TRgb DimmedTextColor() const;
|
williamr@2
|
441 |
|
williamr@2
|
442 |
/**
|
williamr@2
|
443 |
* Gets the colour used to draw the background for dimmed items.
|
williamr@2
|
444 |
*
|
williamr@2
|
445 |
* @return The background colour for dimmed items.
|
williamr@2
|
446 |
*/
|
williamr@2
|
447 |
inline TRgb DimmedBackColor() const;
|
williamr@2
|
448 |
|
williamr@2
|
449 |
/**
|
williamr@2
|
450 |
* Gets the item drawer flags.
|
williamr@2
|
451 |
*
|
williamr@2
|
452 |
* @return The item drawer flags.
|
williamr@2
|
453 |
*/
|
williamr@2
|
454 |
inline TInt Flags() const;
|
williamr@2
|
455 |
|
williamr@2
|
456 |
/**
|
williamr@2
|
457 |
* Sets the item drawer flags.
|
williamr@2
|
458 |
*
|
williamr@2
|
459 |
* @param aFlags The new item drawer flags.
|
williamr@2
|
460 |
*/
|
williamr@2
|
461 |
IMPORT_C void SetFlags(TInt aFlags);
|
williamr@2
|
462 |
|
williamr@2
|
463 |
/**
|
williamr@2
|
464 |
* Sets the item drawer flags.
|
williamr@2
|
465 |
*
|
williamr@2
|
466 |
* @param aFlags The new item drawer flags.
|
williamr@2
|
467 |
*/
|
williamr@2
|
468 |
IMPORT_C void ClearFlags(TInt aFlags);
|
williamr@2
|
469 |
|
williamr@2
|
470 |
/**
|
williamr@2
|
471 |
* Access to skin contexts.
|
williamr@2
|
472 |
*
|
williamr@2
|
473 |
* @since S60 2.0
|
williamr@2
|
474 |
* @return Pointer to skin background control context.
|
williamr@2
|
475 |
*/
|
williamr@2
|
476 |
IMPORT_C MAknsControlContext *SkinBackgroundControlContext() const;
|
williamr@2
|
477 |
/**
|
williamr@2
|
478 |
* Ability to enable skins in listboxes.
|
williamr@2
|
479 |
*
|
williamr@2
|
480 |
* @since S60 2.0
|
williamr@2
|
481 |
* @param aEnabled parameter for enabling/disabling skin.
|
williamr@2
|
482 |
* @c ETrue enables skin,
|
williamr@2
|
483 |
* @c EFalse disables skin
|
williamr@2
|
484 |
*/
|
williamr@2
|
485 |
IMPORT_C void SetSkinEnabledL(TBool aEnabled);
|
williamr@2
|
486 |
|
williamr@2
|
487 |
protected:
|
williamr@2
|
488 |
|
williamr@2
|
489 |
/**
|
williamr@2
|
490 |
* C++ default constructor.
|
williamr@2
|
491 |
*/
|
williamr@2
|
492 |
IMPORT_C CListItemDrawer();
|
williamr@2
|
493 |
|
williamr@2
|
494 |
/**
|
williamr@2
|
495 |
* Draws item text.
|
williamr@2
|
496 |
*
|
williamr@2
|
497 |
* This function is called by @c CListItemDrawer::DrawItem() with
|
williamr@2
|
498 |
* appropriate arguments. Its purpose is to draw the actual item
|
williamr@2
|
499 |
* - everything other than the item mark - into the graphics context.
|
williamr@2
|
500 |
*
|
williamr@2
|
501 |
* @param aItemIndex Which item to draw.
|
williamr@2
|
502 |
* @param aActualItemRect Where the item should be drawn.
|
williamr@2
|
503 |
* @param aItemIsCurrent Whether the item is current.
|
williamr@2
|
504 |
* @param aViewIsEmphasized Whether the list box view is emphasised.
|
williamr@2
|
505 |
* @param aViewIsDimmed Whether the list box view is dimmed.
|
williamr@2
|
506 |
* @param aItemIsSelected Whether the list box item is selected.
|
williamr@2
|
507 |
*/
|
williamr@2
|
508 |
virtual void DrawActualItem(TInt aItemIndex,
|
williamr@2
|
509 |
const TRect& aActualItemRect,
|
williamr@2
|
510 |
TBool aItemIsCurrent,
|
williamr@2
|
511 |
TBool aViewIsEmphasized,
|
williamr@2
|
512 |
TBool aViewIsDimmed,
|
williamr@2
|
513 |
TBool aItemIsSelected) const = 0;
|
williamr@2
|
514 |
|
williamr@2
|
515 |
/**
|
williamr@2
|
516 |
* Resets the pen style, brush style, brush colour etc. to suitable
|
williamr@2
|
517 |
* starting values for this class.
|
williamr@2
|
518 |
*
|
williamr@2
|
519 |
* This function is called after every drawing operation.
|
williamr@2
|
520 |
*/
|
williamr@2
|
521 |
IMPORT_C virtual void ResetGc() const;
|
williamr@2
|
522 |
|
williamr@2
|
523 |
/**
|
williamr@2
|
524 |
* Gets the colour used to draw tick marks.
|
williamr@2
|
525 |
*
|
williamr@2
|
526 |
* A tick mark usually indicates that an item is selected.
|
williamr@2
|
527 |
*
|
williamr@2
|
528 |
* @return The tick mark colour.
|
williamr@2
|
529 |
*/
|
williamr@2
|
530 |
inline TRgb MarkColor() const;
|
williamr@2
|
531 |
|
williamr@2
|
532 |
/**
|
williamr@2
|
533 |
* Gets the vertical gap between items in pixels.
|
williamr@2
|
534 |
*
|
williamr@2
|
535 |
* @return The vertical gap between items in pixels.
|
williamr@2
|
536 |
*/
|
williamr@2
|
537 |
IMPORT_C TInt VerticalInterItemGap() const;
|
williamr@2
|
538 |
|
williamr@2
|
539 |
/**
|
williamr@2
|
540 |
* Sets up the graphics context for the specified item.
|
williamr@2
|
541 |
*
|
williamr@2
|
542 |
* @param aItemIndex The item for which the graphics context
|
williamr@2
|
543 |
* will be set up.
|
williamr@2
|
544 |
*/
|
williamr@2
|
545 |
IMPORT_C void SetupGc(TInt aItemIndex) const;
|
williamr@2
|
546 |
|
williamr@2
|
547 |
private:
|
williamr@2
|
548 |
|
williamr@2
|
549 |
IMPORT_C virtual TAny* Reserved_1();
|
williamr@2
|
550 |
|
williamr@2
|
551 |
inline TInt& VerticalInterItemGap();
|
williamr@2
|
552 |
|
williamr@2
|
553 |
inline const CFont* SymbolFont() const;
|
williamr@2
|
554 |
|
williamr@2
|
555 |
inline const CFont*& SymbolFont();
|
williamr@2
|
556 |
|
williamr@2
|
557 |
protected:
|
williamr@2
|
558 |
|
williamr@2
|
559 |
/** Item's cell size. */
|
williamr@2
|
560 |
TSize iItemCellSize;
|
williamr@2
|
561 |
|
williamr@2
|
562 |
/** Mark gutter. */
|
williamr@2
|
563 |
TInt iMarkGutter;
|
williamr@2
|
564 |
|
williamr@2
|
565 |
/** Mark column width. */
|
williamr@2
|
566 |
TInt iMarkColumnWidth;
|
williamr@2
|
567 |
|
williamr@2
|
568 |
/** View area. */
|
williamr@2
|
569 |
TRect iViewRect;
|
williamr@2
|
570 |
|
williamr@2
|
571 |
/** Draw mark. */
|
williamr@2
|
572 |
TBool iDrawMark;
|
williamr@2
|
573 |
|
williamr@2
|
574 |
/** Graphics context controller. */
|
williamr@2
|
575 |
CWindowGc* iGc;
|
williamr@2
|
576 |
|
williamr@2
|
577 |
/** Color of text. */
|
williamr@2
|
578 |
TRgb iTextColor;
|
williamr@2
|
579 |
|
williamr@2
|
580 |
/** Background color. */
|
williamr@2
|
581 |
TRgb iBackColor;
|
williamr@2
|
582 |
|
williamr@2
|
583 |
/** Color of highlighted text. */
|
williamr@2
|
584 |
TRgb iHighlightedTextColor;
|
williamr@2
|
585 |
|
williamr@2
|
586 |
/** Highlighted background color. */
|
williamr@2
|
587 |
TRgb iHighlightedBackColor;
|
williamr@2
|
588 |
|
williamr@2
|
589 |
/** Color of dimmed text. */
|
williamr@2
|
590 |
TRgb iDimmedTextColor;
|
williamr@2
|
591 |
|
williamr@2
|
592 |
/** Color of dimmed background. */
|
williamr@2
|
593 |
TRgb iDimmedBackColor;
|
williamr@2
|
594 |
|
williamr@2
|
595 |
/** Mark color. */
|
williamr@2
|
596 |
TRgb iMarkColor;
|
williamr@2
|
597 |
|
williamr@2
|
598 |
/** Data model. */
|
williamr@2
|
599 |
CListBoxData* iData;
|
williamr@2
|
600 |
|
williamr@2
|
601 |
private:
|
williamr@2
|
602 |
|
williamr@2
|
603 |
const CFont* iSymbolFont;
|
williamr@2
|
604 |
|
williamr@2
|
605 |
TInt iVerticalInterItemGap;
|
williamr@2
|
606 |
|
williamr@2
|
607 |
TInt iSpare;
|
williamr@2
|
608 |
|
williamr@2
|
609 |
TUint iFlags;
|
williamr@2
|
610 |
|
williamr@2
|
611 |
};
|
williamr@2
|
612 |
|
williamr@2
|
613 |
|
williamr@2
|
614 |
|
williamr@2
|
615 |
|
williamr@2
|
616 |
class MTextListBoxModel;
|
williamr@2
|
617 |
|
williamr@2
|
618 |
|
williamr@2
|
619 |
/**
|
williamr@2
|
620 |
* Item drawer which can handle text.
|
williamr@2
|
621 |
*
|
williamr@2
|
622 |
* Used by @c CListBoxView to draw individual list box items
|
williamr@2
|
623 |
* for a @c CEikTextListBox
|
williamr@2
|
624 |
*/
|
williamr@2
|
625 |
class CTextListItemDrawer : public CListItemDrawer
|
williamr@2
|
626 |
{
|
williamr@2
|
627 |
|
williamr@2
|
628 |
public:
|
williamr@2
|
629 |
|
williamr@2
|
630 |
/**
|
williamr@2
|
631 |
* C++ default constructor.
|
williamr@2
|
632 |
*/
|
williamr@2
|
633 |
IMPORT_C CTextListItemDrawer();
|
williamr@2
|
634 |
|
williamr@2
|
635 |
/**
|
williamr@2
|
636 |
* Destructor.
|
williamr@2
|
637 |
*/
|
williamr@2
|
638 |
IMPORT_C ~CTextListItemDrawer();
|
williamr@2
|
639 |
|
williamr@2
|
640 |
/**
|
williamr@2
|
641 |
* C++ default constructor.
|
williamr@2
|
642 |
*
|
williamr@2
|
643 |
* Constructs a new text item drawer which draws the data of the specified
|
williamr@2
|
644 |
* model using the supplied font.
|
williamr@2
|
645 |
*
|
williamr@2
|
646 |
* @param aTextListBoxModel The model whose items will be drawn.
|
williamr@2
|
647 |
* @param aFont The font in which the items will be drawn.
|
williamr@2
|
648 |
*/
|
williamr@2
|
649 |
IMPORT_C CTextListItemDrawer(MTextListBoxModel* aTextListBoxModel,
|
williamr@2
|
650 |
const CFont* aFont);
|
williamr@2
|
651 |
|
williamr@2
|
652 |
/**
|
williamr@2
|
653 |
* Handles 2nd phase construction.
|
williamr@2
|
654 |
*
|
williamr@2
|
655 |
* @param aFont The font in which the list box items will be drawn.
|
williamr@2
|
656 |
*/
|
williamr@2
|
657 |
IMPORT_C void ConstructL(const CFont* aFont);
|
williamr@2
|
658 |
|
williamr@2
|
659 |
/**
|
williamr@2
|
660 |
* Draws the actual item contents for the specified item in the specified
|
williamr@2
|
661 |
* rectangle.
|
williamr@2
|
662 |
*
|
williamr@2
|
663 |
* @param aItemIndex Index of the item to draw.
|
williamr@2
|
664 |
* @param aActualItemRect Area to draw into.
|
williamr@2
|
665 |
* @param aItemIsCurrent @c ETrue if the item is current.
|
williamr@2
|
666 |
* @param aViewIsEmphasized @c ETrue if the view is emphasised.
|
williamr@2
|
667 |
* @param aViewIsDimmed Ignored
|
williamr@2
|
668 |
* @param aItemIsSelected @c ETrue if the item is selected.
|
williamr@2
|
669 |
*/
|
williamr@2
|
670 |
IMPORT_C virtual void DrawActualItem(TInt aItemIndex,
|
williamr@2
|
671 |
const TRect& aActualItemRect,
|
williamr@2
|
672 |
TBool aItemIsCurrent,
|
williamr@2
|
673 |
TBool aViewIsEmphasized,
|
williamr@2
|
674 |
TBool aViewIsDimmed,
|
williamr@2
|
675 |
TBool aItemIsSelected) const;
|
williamr@2
|
676 |
|
williamr@2
|
677 |
/**
|
williamr@2
|
678 |
* Gets the width in pixels of the specified item.
|
williamr@2
|
679 |
*
|
williamr@2
|
680 |
* @param aItemIndex The index of the item for which the width is obtained.
|
williamr@2
|
681 |
* @return The specified item’s width in pixels.
|
williamr@2
|
682 |
*/
|
williamr@2
|
683 |
IMPORT_C virtual TInt ItemWidthInPixels(TInt aItemIndex) const;
|
williamr@2
|
684 |
|
williamr@2
|
685 |
/**
|
williamr@2
|
686 |
* Gets the minimum size of a cell based on the font and the number of
|
williamr@2
|
687 |
* characters in the cell.
|
williamr@2
|
688 |
*
|
williamr@2
|
689 |
* @return The minimum size for a cell, in pixels.
|
williamr@2
|
690 |
*/
|
williamr@2
|
691 |
IMPORT_C virtual TSize MinimumCellSize() const;
|
williamr@2
|
692 |
|
williamr@2
|
693 |
/**
|
williamr@2
|
694 |
* Sets the graphics context.
|
williamr@2
|
695 |
*
|
williamr@2
|
696 |
* @param aGc The graphics context to use.
|
williamr@2
|
697 |
*/
|
williamr@2
|
698 |
IMPORT_C virtual void SetGc(CWindowGc* aGc);
|
williamr@2
|
699 |
|
williamr@2
|
700 |
/**
|
williamr@2
|
701 |
* Sets the number of characters in a cell.
|
williamr@2
|
702 |
* This value affects only @c MinimumCellSize().
|
williamr@2
|
703 |
*
|
williamr@2
|
704 |
* @param aNumOfCharsToDisplayInCell Number of characters to
|
williamr@2
|
705 |
* display in a cell.
|
williamr@2
|
706 |
*/
|
williamr@2
|
707 |
IMPORT_C void SetCellWidthInChars(TInt aNumOfCharsToDisplayInCell);
|
williamr@2
|
708 |
|
williamr@2
|
709 |
/**
|
williamr@2
|
710 |
* Gets the position and size of the matcher cursor.
|
williamr@2
|
711 |
*
|
williamr@2
|
712 |
* @deprecated
|
williamr@2
|
713 |
* @param aMatchableText String currently being matched. Not Used.
|
williamr@2
|
714 |
* @param aCharPos Position within the string. Not Used.
|
williamr@2
|
715 |
* @param aItemCellYPos Y position of the item cell in pixels. Not Used.
|
williamr@2
|
716 |
* @param aCurrentItemIndex Item index for the current item. Not Used.
|
williamr@2
|
717 |
* @return The rectangle covered by the matcher cursor, in pixels.
|
williamr@2
|
718 |
*/
|
williamr@2
|
719 |
IMPORT_C virtual TRect MatcherCursorRect(const TDesC& aMatchableText,
|
williamr@2
|
720 |
TInt aCharPos,
|
williamr@2
|
721 |
TInt aItemCellYPos,
|
williamr@2
|
722 |
TInt aCurrentItemIndex ) const;
|
williamr@2
|
723 |
|
williamr@2
|
724 |
/**
|
williamr@2
|
725 |
* No Implementation.
|
williamr@2
|
726 |
*
|
williamr@2
|
727 |
* Derived classes that deal with text and want to support incremental
|
williamr@2
|
728 |
* matching in listboxes need to redefine this function.
|
williamr@2
|
729 |
* Should be used to get the ascent of the matcher cursor in pixels.
|
williamr@2
|
730 |
*
|
williamr@2
|
731 |
* @deprecated
|
williamr@2
|
732 |
* @param aCurrentItemIndex Index of the current item. Not Used.
|
williamr@2
|
733 |
* @return Always returns 0;
|
williamr@2
|
734 |
*/
|
williamr@2
|
735 |
IMPORT_C virtual TInt MatcherCursorAscent( TInt aCurrentItemIndex ) const;
|
williamr@2
|
736 |
|
williamr@2
|
737 |
/**
|
williamr@2
|
738 |
* Sets the font.
|
williamr@2
|
739 |
*
|
williamr@2
|
740 |
* @param aFont The new font.
|
williamr@2
|
741 |
*/
|
williamr@2
|
742 |
IMPORT_C void SetFont(const CFont* aFont);
|
williamr@2
|
743 |
|
williamr@2
|
744 |
/**
|
williamr@2
|
745 |
* Sets the search string.
|
williamr@2
|
746 |
*
|
williamr@2
|
747 |
* @param aSearchString The new search string.
|
williamr@2
|
748 |
*/
|
williamr@2
|
749 |
IMPORT_C void SetSearchStringL(const TDesC* aSearchString);
|
williamr@2
|
750 |
|
williamr@2
|
751 |
/**
|
williamr@2
|
752 |
* Gets font for the specified item.
|
williamr@2
|
753 |
*
|
williamr@2
|
754 |
* @param aIndex The index of the target item.
|
williamr@2
|
755 |
* @return Specified item's font.
|
williamr@2
|
756 |
*/
|
williamr@2
|
757 |
IMPORT_C const CFont* Font(TInt aIndex) const;
|
williamr@2
|
758 |
|
williamr@2
|
759 |
// SAPLAF new methods.
|
williamr@2
|
760 |
|
williamr@2
|
761 |
|
williamr@2
|
762 |
/**
|
williamr@2
|
763 |
* Sets item mark position.
|
williamr@2
|
764 |
*
|
williamr@2
|
765 |
* @param aPos The new position.
|
williamr@2
|
766 |
*/
|
williamr@2
|
767 |
inline void SetItemMarkPosition(TInt aPos);
|
williamr@2
|
768 |
|
williamr@2
|
769 |
/**
|
williamr@2
|
770 |
* Gets item mark position.
|
williamr@2
|
771 |
*
|
williamr@2
|
772 |
* @return Position of the Item mark.
|
williamr@2
|
773 |
*/
|
williamr@2
|
774 |
inline TInt ItemMarkPosition() const;
|
williamr@2
|
775 |
|
williamr@2
|
776 |
/**
|
williamr@2
|
777 |
* Sets the item mark replacement.
|
williamr@2
|
778 |
*
|
williamr@2
|
779 |
* @param aReplacement The new replacement descriptor.
|
williamr@2
|
780 |
*/
|
williamr@2
|
781 |
inline void SetItemMarkReplacement(const TDesC &aReplacement);
|
williamr@2
|
782 |
|
williamr@2
|
783 |
/**
|
williamr@2
|
784 |
* Gets item mark replacement.
|
williamr@2
|
785 |
*
|
williamr@2
|
786 |
* @return Pointer to the replacement string.
|
williamr@2
|
787 |
*/
|
williamr@2
|
788 |
inline TPtrC ItemMarkReplacement() const;
|
williamr@2
|
789 |
|
williamr@2
|
790 |
/**
|
williamr@2
|
791 |
* Sets item mark reverse to be active or not.
|
williamr@2
|
792 |
*
|
williamr@2
|
793 |
* @param aReverse The new setting.
|
williamr@2
|
794 |
* @c ETrue if item is marked reversed.
|
williamr@2
|
795 |
*/
|
williamr@2
|
796 |
inline void SetItemMarkReverse(TBool aReverse);
|
williamr@2
|
797 |
|
williamr@2
|
798 |
/**
|
williamr@2
|
799 |
* Check if the item has been marked reversed is active.
|
williamr@2
|
800 |
*
|
williamr@2
|
801 |
* @return Indicates if active or not.
|
williamr@2
|
802 |
* @c ETrue if active
|
williamr@2
|
803 |
*/
|
williamr@2
|
804 |
inline TBool ItemMarkReverse() const;
|
williamr@2
|
805 |
|
williamr@2
|
806 |
|
williamr@2
|
807 |
protected:
|
williamr@2
|
808 |
|
williamr@2
|
809 |
/**
|
williamr@2
|
810 |
* Draws text.
|
williamr@2
|
811 |
*
|
williamr@2
|
812 |
* This function is invoked by @c DrawItemText() to draw a string into a
|
williamr@2
|
813 |
* rectangular area of @c iGc.
|
williamr@2
|
814 |
*
|
williamr@2
|
815 |
* @param aDes The string to draw.
|
williamr@2
|
816 |
* @param aItemTextRect Area to draw into.
|
williamr@2
|
817 |
* @param aItemIsCurrent @c ETrue if the item is current.
|
williamr@2
|
818 |
* @param aViewIsEmphasized @c ETrue if the view is emphasised.
|
williamr@2
|
819 |
* @param aItemIsSelected @c ETrue if the item is selected.
|
williamr@2
|
820 |
* @param aItemIndex The item’s index.
|
williamr@2
|
821 |
*/
|
williamr@2
|
822 |
IMPORT_C virtual void DoDrawItemText(const TDesC& aDes,
|
williamr@2
|
823 |
const TRect& aItemTextRect,
|
williamr@2
|
824 |
TBool aItemIsCurrent,
|
williamr@2
|
825 |
TBool aViewIsEmphasized,
|
williamr@2
|
826 |
TBool aItemIsSelected,
|
williamr@2
|
827 |
TInt aItemIndex) const;
|
williamr@2
|
828 |
|
williamr@2
|
829 |
/**
|
williamr@2
|
830 |
* Draw item text.
|
williamr@2
|
831 |
*
|
williamr@2
|
832 |
* This function is invoked by @c DrawActualItem() to draw the item text.
|
williamr@2
|
833 |
*
|
williamr@2
|
834 |
* @param aItemIndex Index of the item to draw.
|
williamr@2
|
835 |
* @param aItemTextRect Area to draw into.
|
williamr@2
|
836 |
* @param aItemIsCurrent @c ETrue if the item is current.
|
williamr@2
|
837 |
* @param aViewIsEmphasized @c ETrue if the view is emphasised.
|
williamr@2
|
838 |
* @param aItemIsSelected @c ETrue if the item is selected.
|
williamr@2
|
839 |
*/
|
williamr@2
|
840 |
IMPORT_C virtual void DrawItemText(TInt aItemIndex,
|
williamr@2
|
841 |
const TRect& aItemTextRect,
|
williamr@2
|
842 |
TBool aItemIsCurrent,
|
williamr@2
|
843 |
TBool aViewIsEmphasized,
|
williamr@2
|
844 |
TBool aItemIsSelected) const;
|
williamr@2
|
845 |
|
williamr@2
|
846 |
/**
|
williamr@2
|
847 |
* Resets the graphics context.
|
williamr@2
|
848 |
* This function invokes @c CListItemDrawer::ResetGc() and resets the pen
|
williamr@2
|
849 |
* colour to @c iTextColor.
|
williamr@2
|
850 |
*/
|
williamr@2
|
851 |
IMPORT_C virtual void ResetGc() const;
|
williamr@2
|
852 |
|
williamr@2
|
853 |
private:
|
williamr@2
|
854 |
|
williamr@2
|
855 |
IMPORT_C virtual TAny* Reserved_1();
|
williamr@2
|
856 |
|
williamr@2
|
857 |
protected:
|
williamr@2
|
858 |
|
williamr@2
|
859 |
/** List box model for the drawer. */
|
williamr@2
|
860 |
MTextListBoxModel* iModel;
|
williamr@2
|
861 |
|
williamr@2
|
862 |
/** Font used by the drawer. */
|
williamr@2
|
863 |
const CFont* iFont;
|
williamr@2
|
864 |
|
williamr@2
|
865 |
private:
|
williamr@2
|
866 |
|
williamr@2
|
867 |
TInt iNumOfCharsInCell;
|
williamr@2
|
868 |
|
williamr@2
|
869 |
// AVKON LAF
|
williamr@2
|
870 |
|
williamr@2
|
871 |
TInt iItemMarkPos;
|
williamr@2
|
872 |
|
williamr@2
|
873 |
TPtrC iItemMarkReplacement;
|
williamr@2
|
874 |
|
williamr@2
|
875 |
TBool iItemMarkReverse;
|
williamr@2
|
876 |
|
williamr@2
|
877 |
// AVKON LAF ENDS
|
williamr@2
|
878 |
|
williamr@2
|
879 |
};
|
williamr@2
|
880 |
|
williamr@2
|
881 |
|
williamr@2
|
882 |
|
williamr@2
|
883 |
|
williamr@2
|
884 |
/**
|
williamr@2
|
885 |
* The @c TListItemProperties class packages together the color and
|
williamr@2
|
886 |
* style properties which can be applied when drawing the contents
|
williamr@2
|
887 |
* of list box items.
|
williamr@2
|
888 |
*
|
williamr@2
|
889 |
* @since Symbian ER5U
|
williamr@2
|
890 |
*/
|
williamr@2
|
891 |
|
williamr@2
|
892 |
class TListItemProperties
|
williamr@2
|
893 |
|
williamr@2
|
894 |
{
|
williamr@2
|
895 |
|
williamr@2
|
896 |
public:
|
williamr@2
|
897 |
|
williamr@2
|
898 |
/**
|
williamr@2
|
899 |
* C++ default constructor.
|
williamr@2
|
900 |
*/
|
williamr@2
|
901 |
IMPORT_C TListItemProperties();
|
williamr@2
|
902 |
|
williamr@2
|
903 |
public:
|
williamr@2
|
904 |
|
williamr@2
|
905 |
/**
|
williamr@2
|
906 |
* Sets whether the list item is drawn bold or not bold.
|
williamr@2
|
907 |
*
|
williamr@2
|
908 |
* @deprecated
|
williamr@2
|
909 |
* @param aBold @c ETrue to draw the list item bold.
|
williamr@2
|
910 |
* @c EFalse otherwise.
|
williamr@2
|
911 |
*/
|
williamr@2
|
912 |
inline void SetBold(TBool aBold);
|
williamr@2
|
913 |
|
williamr@2
|
914 |
/**
|
williamr@2
|
915 |
* Tests whether the list item is drawn bold.
|
williamr@2
|
916 |
*
|
williamr@2
|
917 |
* @deprecated
|
williamr@2
|
918 |
* @return @c ETrue if the list item is drawn bold.
|
williamr@2
|
919 |
* @c EFalse otherwise.
|
williamr@2
|
920 |
*/
|
williamr@2
|
921 |
inline TBool IsBold() const;
|
williamr@2
|
922 |
|
williamr@2
|
923 |
/**
|
williamr@2
|
924 |
* Sets whether or not the list item is drawn in italics.
|
williamr@2
|
925 |
*
|
williamr@2
|
926 |
* @deprecated
|
williamr@2
|
927 |
* @param aItalics @c ETrue to draw the list item in italics.
|
williamr@2
|
928 |
* @c EFalse otherwise.
|
williamr@2
|
929 |
*/
|
williamr@2
|
930 |
inline void SetItalics(TBool aItalics);
|
williamr@2
|
931 |
|
williamr@2
|
932 |
/**
|
williamr@2
|
933 |
* Tests whether the list item is italicised.
|
williamr@2
|
934 |
*
|
williamr@2
|
935 |
* @deprecated
|
williamr@2
|
936 |
* @return @c ETrue if the list item is drawn in italics.
|
williamr@2
|
937 |
* @c EFalse otherwise.
|
williamr@2
|
938 |
*/
|
williamr@2
|
939 |
inline TBool IsItalics() const;
|
williamr@2
|
940 |
|
williamr@2
|
941 |
/**
|
williamr@2
|
942 |
* Sets whether or not the list item is drawn with an underline.
|
williamr@2
|
943 |
*
|
williamr@2
|
944 |
* @param aUnderlined @c ETrue to draw the list item with an underline.
|
williamr@2
|
945 |
* @c EFalse otherwise.
|
williamr@2
|
946 |
*/
|
williamr@2
|
947 |
inline void SetUnderlined(TBool aUnderlined);
|
williamr@2
|
948 |
|
williamr@2
|
949 |
/**
|
williamr@2
|
950 |
* Test whether the list item is drawn with an underline.
|
williamr@2
|
951 |
*
|
williamr@2
|
952 |
* @return @c ETrue if the list item is drawn with an underline.
|
williamr@2
|
953 |
* @c EFalse otherwise.
|
williamr@2
|
954 |
*/
|
williamr@2
|
955 |
inline TBool IsUnderlined() const;
|
williamr@2
|
956 |
|
williamr@2
|
957 |
/**
|
williamr@2
|
958 |
* Sets list item dim state.
|
williamr@2
|
959 |
*
|
williamr@2
|
960 |
* An item is usually drawn dimmed to indicate that it cannot accept
|
williamr@2
|
961 |
* user input.
|
williamr@2
|
962 |
*
|
williamr@2
|
963 |
* @param aDimmed @c ETrue to draw the list item dimmed. @c EFalse otherwise.
|
williamr@2
|
964 |
*/
|
williamr@2
|
965 |
inline void SetDimmed(TBool aDimmed);
|
williamr@2
|
966 |
|
williamr@2
|
967 |
/**
|
williamr@2
|
968 |
* Tests list item dim state.
|
williamr@2
|
969 |
*
|
williamr@2
|
970 |
* An item is usually drawn dimmed to indicate that it cannot accept
|
williamr@2
|
971 |
* user input.
|
williamr@2
|
972 |
*
|
williamr@2
|
973 |
* @return @c ETrue if the list item is dimmed.
|
williamr@2
|
974 |
* @c EFalse otherwise.
|
williamr@2
|
975 |
*/
|
williamr@2
|
976 |
inline TBool IsDimmed() const;
|
williamr@2
|
977 |
|
williamr@2
|
978 |
/**
|
williamr@2
|
979 |
* Sets the list item’s colour.
|
williamr@2
|
980 |
*
|
williamr@2
|
981 |
* @param aColor The list item’s colour.
|
williamr@2
|
982 |
*/
|
williamr@2
|
983 |
inline void SetColor(TRgb aColor);
|
williamr@2
|
984 |
|
williamr@2
|
985 |
/**
|
williamr@2
|
986 |
* Gets the list item’s colour.
|
williamr@2
|
987 |
*
|
williamr@2
|
988 |
* @return The list item’s colour.
|
williamr@2
|
989 |
*/
|
williamr@2
|
990 |
inline TRgb Color() const;
|
williamr@2
|
991 |
|
williamr@2
|
992 |
/**
|
williamr@2
|
993 |
* Activate/deactivate separator after item.
|
williamr@2
|
994 |
*
|
williamr@2
|
995 |
* @deprecated
|
williamr@2
|
996 |
* @param aSeparator Active/deactive selector.
|
williamr@2
|
997 |
* @c ETrue = Active.
|
williamr@2
|
998 |
* @c EFalse = Deactivated.
|
williamr@2
|
999 |
*/
|
williamr@2
|
1000 |
inline void SetSeparatorAfter(TBool aSeparator);
|
williamr@2
|
1001 |
|
williamr@2
|
1002 |
/**
|
williamr@2
|
1003 |
* Check if separator after item is active.
|
williamr@2
|
1004 |
*
|
williamr@2
|
1005 |
* @deprecated
|
williamr@2
|
1006 |
* @return @c ETrue if Active.
|
williamr@2
|
1007 |
* @c EFalse if Deactivated.
|
williamr@2
|
1008 |
*/
|
williamr@2
|
1009 |
inline TBool IsSeparatorAfter() const;
|
williamr@2
|
1010 |
|
williamr@2
|
1011 |
/**
|
williamr@2
|
1012 |
* Select to hide the item .
|
williamr@2
|
1013 |
*
|
williamr@2
|
1014 |
* @param aHidden Defines whether the item is hidden.
|
williamr@2
|
1015 |
* @c ETrue = Hidden
|
williamr@2
|
1016 |
*/
|
williamr@2
|
1017 |
inline void SetHiddenSelection(TBool aHidden);
|
williamr@2
|
1018 |
|
williamr@2
|
1019 |
/**
|
williamr@2
|
1020 |
* Check if the item is hidden.
|
williamr@2
|
1021 |
*
|
williamr@2
|
1022 |
* @return @c ETrue if item is hidden.
|
williamr@2
|
1023 |
*/
|
williamr@2
|
1024 |
inline TBool IsSelectionHidden() const;
|
williamr@2
|
1025 |
|
williamr@2
|
1026 |
private:
|
williamr@2
|
1027 |
|
williamr@2
|
1028 |
TUint iFlags;
|
williamr@2
|
1029 |
|
williamr@2
|
1030 |
TRgb iColor;
|
williamr@2
|
1031 |
|
williamr@2
|
1032 |
private:
|
williamr@2
|
1033 |
|
williamr@2
|
1034 |
enum
|
williamr@2
|
1035 |
|
williamr@2
|
1036 |
{
|
williamr@2
|
1037 |
|
williamr@2
|
1038 |
ELbxItemBold = 0x0001,
|
williamr@2
|
1039 |
|
williamr@2
|
1040 |
ELbxItemItalics = 0x0002,
|
williamr@2
|
1041 |
|
williamr@2
|
1042 |
ELbxItemUnderlined = 0x0004,
|
williamr@2
|
1043 |
|
williamr@2
|
1044 |
ELbxItemDimmed = 0x0008,
|
williamr@2
|
1045 |
|
williamr@2
|
1046 |
ELbxItemSeparatorAfter = 0x0010,
|
williamr@2
|
1047 |
|
williamr@2
|
1048 |
ELbxItemSelectionHidden = 0x0020
|
williamr@2
|
1049 |
|
williamr@2
|
1050 |
};
|
williamr@2
|
1051 |
|
williamr@2
|
1052 |
};
|
williamr@2
|
1053 |
|
williamr@2
|
1054 |
|
williamr@2
|
1055 |
|
williamr@2
|
1056 |
//
|
williamr@2
|
1057 |
|
williamr@2
|
1058 |
// Inlines
|
williamr@2
|
1059 |
|
williamr@2
|
1060 |
//
|
williamr@2
|
1061 |
|
williamr@2
|
1062 |
|
williamr@2
|
1063 |
|
williamr@2
|
1064 |
inline void CListItemDrawer::SetTextColor(TRgb aColor)
|
williamr@2
|
1065 |
|
williamr@2
|
1066 |
{iTextColor=aColor;}
|
williamr@2
|
1067 |
|
williamr@2
|
1068 |
inline void CListItemDrawer::SetBackColor(TRgb aColor)
|
williamr@2
|
1069 |
|
williamr@2
|
1070 |
{iBackColor=aColor;}
|
williamr@2
|
1071 |
|
williamr@2
|
1072 |
inline void CListItemDrawer::SetHighlightedTextColor(TRgb aColor)
|
williamr@2
|
1073 |
|
williamr@2
|
1074 |
{iHighlightedTextColor=aColor;}
|
williamr@2
|
1075 |
|
williamr@2
|
1076 |
inline void CListItemDrawer::SetHighlightedBackColor(TRgb aColor)
|
williamr@2
|
1077 |
|
williamr@2
|
1078 |
{iHighlightedBackColor=aColor;}
|
williamr@2
|
1079 |
|
williamr@2
|
1080 |
inline void CListItemDrawer::SetDimmedTextColor(TRgb aColor)
|
williamr@2
|
1081 |
|
williamr@2
|
1082 |
{iDimmedTextColor=aColor;}
|
williamr@2
|
1083 |
|
williamr@2
|
1084 |
inline void CListItemDrawer::SetDimmedBackColor(TRgb aColor)
|
williamr@2
|
1085 |
|
williamr@2
|
1086 |
{iDimmedBackColor=aColor;}
|
williamr@2
|
1087 |
|
williamr@2
|
1088 |
inline TRgb CListItemDrawer::TextColor() const
|
williamr@2
|
1089 |
|
williamr@2
|
1090 |
{return iTextColor;}
|
williamr@2
|
1091 |
|
williamr@2
|
1092 |
inline TRgb CListItemDrawer::BackColor() const
|
williamr@2
|
1093 |
|
williamr@2
|
1094 |
{return iBackColor;}
|
williamr@2
|
1095 |
|
williamr@2
|
1096 |
inline TRgb CListItemDrawer::HighlightedTextColor() const
|
williamr@2
|
1097 |
|
williamr@2
|
1098 |
{return iHighlightedTextColor;}
|
williamr@2
|
1099 |
|
williamr@2
|
1100 |
inline TRgb CListItemDrawer::HighlightedBackColor() const
|
williamr@2
|
1101 |
|
williamr@2
|
1102 |
{return iHighlightedBackColor;}
|
williamr@2
|
1103 |
|
williamr@2
|
1104 |
inline TRgb CListItemDrawer::DimmedTextColor() const
|
williamr@2
|
1105 |
|
williamr@2
|
1106 |
{return iDimmedTextColor;}
|
williamr@2
|
1107 |
|
williamr@2
|
1108 |
inline TRgb CListItemDrawer::DimmedBackColor() const
|
williamr@2
|
1109 |
|
williamr@2
|
1110 |
{return iDimmedBackColor;}
|
williamr@2
|
1111 |
|
williamr@2
|
1112 |
inline TRgb CListItemDrawer::MarkColor() const
|
williamr@2
|
1113 |
|
williamr@2
|
1114 |
{return iMarkColor;}
|
williamr@2
|
1115 |
|
williamr@2
|
1116 |
inline TInt CListItemDrawer::Flags() const
|
williamr@2
|
1117 |
|
williamr@2
|
1118 |
{return iFlags;}
|
williamr@2
|
1119 |
|
williamr@2
|
1120 |
|
williamr@2
|
1121 |
|
williamr@2
|
1122 |
inline TBool TListItemProperties::IsItalics() const
|
williamr@2
|
1123 |
|
williamr@2
|
1124 |
{return iFlags&ELbxItemItalics;}
|
williamr@2
|
1125 |
|
williamr@2
|
1126 |
inline TBool TListItemProperties::IsBold() const
|
williamr@2
|
1127 |
|
williamr@2
|
1128 |
{return iFlags&ELbxItemBold;}
|
williamr@2
|
1129 |
|
williamr@2
|
1130 |
inline TBool TListItemProperties::IsUnderlined() const
|
williamr@2
|
1131 |
|
williamr@2
|
1132 |
{return iFlags&ELbxItemUnderlined;}
|
williamr@2
|
1133 |
|
williamr@2
|
1134 |
inline TBool TListItemProperties::IsDimmed() const
|
williamr@2
|
1135 |
|
williamr@2
|
1136 |
{return iFlags&ELbxItemDimmed;}
|
williamr@2
|
1137 |
|
williamr@2
|
1138 |
inline TBool TListItemProperties::IsSeparatorAfter() const
|
williamr@2
|
1139 |
|
williamr@2
|
1140 |
{return iFlags&ELbxItemSeparatorAfter;}
|
williamr@2
|
1141 |
|
williamr@2
|
1142 |
inline TBool TListItemProperties::IsSelectionHidden() const
|
williamr@2
|
1143 |
|
williamr@2
|
1144 |
{return iFlags&ELbxItemSelectionHidden;}
|
williamr@2
|
1145 |
|
williamr@2
|
1146 |
|
williamr@2
|
1147 |
|
williamr@2
|
1148 |
inline void TListItemProperties::SetColor(TRgb aColor)
|
williamr@2
|
1149 |
|
williamr@2
|
1150 |
{iColor=aColor;}
|
williamr@2
|
1151 |
|
williamr@2
|
1152 |
inline TRgb TListItemProperties::Color() const
|
williamr@2
|
1153 |
|
williamr@2
|
1154 |
{return iColor;}
|
williamr@2
|
1155 |
|
williamr@2
|
1156 |
inline void TListItemProperties::SetBold(TBool aBold)
|
williamr@2
|
1157 |
|
williamr@2
|
1158 |
{
|
williamr@2
|
1159 |
|
williamr@2
|
1160 |
if (aBold)
|
williamr@2
|
1161 |
|
williamr@2
|
1162 |
iFlags|=ELbxItemBold;
|
williamr@2
|
1163 |
|
williamr@2
|
1164 |
else
|
williamr@2
|
1165 |
|
williamr@2
|
1166 |
iFlags&=(~ELbxItemBold);
|
williamr@2
|
1167 |
|
williamr@2
|
1168 |
}
|
williamr@2
|
1169 |
|
williamr@2
|
1170 |
inline void TListItemProperties::SetItalics(TBool aItalics)
|
williamr@2
|
1171 |
|
williamr@2
|
1172 |
{
|
williamr@2
|
1173 |
|
williamr@2
|
1174 |
if (aItalics)
|
williamr@2
|
1175 |
|
williamr@2
|
1176 |
iFlags|=ELbxItemItalics;
|
williamr@2
|
1177 |
|
williamr@2
|
1178 |
else
|
williamr@2
|
1179 |
|
williamr@2
|
1180 |
iFlags&=(~ELbxItemItalics);
|
williamr@2
|
1181 |
|
williamr@2
|
1182 |
}
|
williamr@2
|
1183 |
|
williamr@2
|
1184 |
inline void TListItemProperties::SetUnderlined(TBool aUnderlined)
|
williamr@2
|
1185 |
|
williamr@2
|
1186 |
{
|
williamr@2
|
1187 |
|
williamr@2
|
1188 |
if (aUnderlined)
|
williamr@2
|
1189 |
|
williamr@2
|
1190 |
iFlags|=ELbxItemUnderlined;
|
williamr@2
|
1191 |
|
williamr@2
|
1192 |
else
|
williamr@2
|
1193 |
|
williamr@2
|
1194 |
iFlags&=(~ELbxItemUnderlined);
|
williamr@2
|
1195 |
|
williamr@2
|
1196 |
}
|
williamr@2
|
1197 |
|
williamr@2
|
1198 |
inline void TListItemProperties::SetDimmed(TBool aDimmed)
|
williamr@2
|
1199 |
|
williamr@2
|
1200 |
{
|
williamr@2
|
1201 |
|
williamr@2
|
1202 |
if (aDimmed)
|
williamr@2
|
1203 |
|
williamr@2
|
1204 |
iFlags|=ELbxItemDimmed;
|
williamr@2
|
1205 |
|
williamr@2
|
1206 |
else
|
williamr@2
|
1207 |
|
williamr@2
|
1208 |
iFlags&=(~ELbxItemDimmed);
|
williamr@2
|
1209 |
|
williamr@2
|
1210 |
}
|
williamr@2
|
1211 |
|
williamr@2
|
1212 |
|
williamr@2
|
1213 |
|
williamr@2
|
1214 |
inline void TListItemProperties::SetSeparatorAfter(TBool aSeparator)
|
williamr@2
|
1215 |
|
williamr@2
|
1216 |
{
|
williamr@2
|
1217 |
|
williamr@2
|
1218 |
if (aSeparator)
|
williamr@2
|
1219 |
|
williamr@2
|
1220 |
iFlags|=ELbxItemSeparatorAfter;
|
williamr@2
|
1221 |
|
williamr@2
|
1222 |
else
|
williamr@2
|
1223 |
|
williamr@2
|
1224 |
iFlags&=(~ELbxItemSeparatorAfter);
|
williamr@2
|
1225 |
|
williamr@2
|
1226 |
}
|
williamr@2
|
1227 |
|
williamr@2
|
1228 |
|
williamr@2
|
1229 |
inline void TListItemProperties::SetHiddenSelection(TBool aBlocked)
|
williamr@2
|
1230 |
|
williamr@2
|
1231 |
{
|
williamr@2
|
1232 |
|
williamr@2
|
1233 |
if (aBlocked)
|
williamr@2
|
1234 |
|
williamr@2
|
1235 |
iFlags|=ELbxItemSelectionHidden;
|
williamr@2
|
1236 |
|
williamr@2
|
1237 |
else
|
williamr@2
|
1238 |
|
williamr@2
|
1239 |
iFlags&=(~ELbxItemSelectionHidden);
|
williamr@2
|
1240 |
|
williamr@2
|
1241 |
}
|
williamr@2
|
1242 |
|
williamr@2
|
1243 |
|
williamr@2
|
1244 |
|
williamr@2
|
1245 |
|
williamr@2
|
1246 |
|
williamr@2
|
1247 |
|
williamr@2
|
1248 |
// AVKON LAF
|
williamr@2
|
1249 |
|
williamr@2
|
1250 |
inline void CTextListItemDrawer::SetItemMarkPosition(TInt aPos) { iItemMarkPos = aPos; }
|
williamr@2
|
1251 |
|
williamr@2
|
1252 |
inline TInt CTextListItemDrawer::ItemMarkPosition() const { return iItemMarkPos; }
|
williamr@2
|
1253 |
|
williamr@2
|
1254 |
inline void CTextListItemDrawer::SetItemMarkReplacement(const TDesC & aReplacement) { iItemMarkReplacement.Set(aReplacement); }
|
williamr@2
|
1255 |
|
williamr@2
|
1256 |
inline TPtrC CTextListItemDrawer::ItemMarkReplacement() const { return iItemMarkReplacement; }
|
williamr@2
|
1257 |
|
williamr@2
|
1258 |
inline void CTextListItemDrawer::SetItemMarkReverse(TBool aReverse) { iItemMarkReverse = aReverse; }
|
williamr@2
|
1259 |
inline TBool CTextListItemDrawer::ItemMarkReverse() const { return iItemMarkReverse; }
|
williamr@2
|
1260 |
|
williamr@2
|
1261 |
// END OF AVKON LAF
|
williamr@2
|
1262 |
|
williamr@2
|
1263 |
|
williamr@2
|
1264 |
|
williamr@2
|
1265 |
#endif // __EIKLBI_H__
|
williamr@2
|
1266 |
|
williamr@2
|
1267 |
// End of File
|