epoc32/include/mw/lafpublc.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /*
     2 * Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     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".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:  
    15 *
    16 */
    17 
    18 
    19 #ifndef __LAFPUBLC_H__
    20 #define __LAFPUBLC_H__
    21 
    22 #include <e32std.h>
    23 
    24 /** @deprecated */
    25 const TInt KLafScrollBarButtonPositionMask = 0x00C0;
    26 
    27 /** @deprecated */
    28 struct SLafScrollButton
    29 	{
    30 	enum TType
    31 		{
    32 		ENudgeLeft,
    33 		ENudgeUp,
    34 		ENudgeRight,
    35 		ENudgeDown,
    36 		EPageLeft,
    37 		EPageUp,
    38 		EPageRight,
    39 		EPageDown,
    40 		EHome,
    41 		ETop,
    42 		EEnd,
    43 		EBottom
    44 		};
    45 	};
    46 
    47 struct SLafScrollBar
    48 	{
    49     /** 
    50      * Scroll bar initialisation flags. The default is for the scroll bar
    51      * to have both a shaft and a thumb. 
    52      */	
    53 	enum TEikScrollBarFlags
    54 		{
    55     	/** Default */	
    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,
    71     	/** 
    72     	 * Buttons are placed at either end of the bar @c
    73     	 * (EButtonsAtStartOfShaft | @c EButtonsAtEndOfShaft).
    74     	 */	
    75 		EButtonsEitherSideOfShaft 		=EButtonsAtStartOfShaft|EButtonsAtEndOfShaft,
    76     	/** 
    77     	 * Buttons do not automatically dim when scroll bar is at its maximum
    78     	 * extent.
    79     	 */	
    80 		ENoAutoDimming					=0x0100
    81 		};
    82 
    83     /** Scroll bar orientation enumerations. */
    84 	enum TOrientation
    85 		{
    86         /** Scroll bar is oriented vertically. */
    87 		EVertical,
    88         /** Scroll bar is oriented horizontally. */
    89 		EHorizontal
    90 		};
    91 
    92 	};
    93 
    94 /** Flags for listboxes */
    95 struct SLafListBox
    96 	{
    97 	/**
    98     * Listbox construction flags.
    99     */
   100     enum TFlags
   101 		{
   102         /**
   103          * Construction flag for a list box from which the user can
   104          * select multiple items.
   105          */
   106 		EMultipleSelection			= 0x0001,
   107         /**
   108          * Construction flag for disabling extended selection. 
   109          * If this is set the user cannot select multiple items by
   110          * using @c SHIFT button.
   111          */
   112 		ENoExtendedSelection		= 0x0002,
   113         /**
   114          * Construction flag that sets the list box to match user’s keystrokes 
   115          * incrementally.
   116          */
   117 		EIncrementalMatching		= 0x0004,
   118         /**
   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.
   121          */
   122 		EPopout						= 0x0008,
   123         /**
   124          * Construction flag that enables the indication of pointer press 
   125          * inside the view of the list box.
   126          */
   127 		ELeftDownInViewRect			= 0x0010,
   128         /**
   129          * Construction flag for enabling @c CEiklist box item double click 
   130          * indication.
   131          */
   132 		EItemDoubleClicked			= 0x0020,
   133         /**
   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.
   137          */
   138 		EKeepModel					= 0x0040,
   139         /**
   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.
   143          */
   144 		EScrollBarSizeExcluded		= 0x0080,
   145         /**
   146          * Construction flag for enabling @c CEikListBox change indication.
   147          */
   148 		EStateChanged				= 0x0100,
   149         /**
   150          * Construction flag that indicates that the list box should be created 
   151          * to its own window.
   152          */
   153 		ECreateOwnWindow			= 0x0200,
   154         /**
   155          * Construction flag for disabling key matching.
   156          */
   157         ENoFirstLetterMatching      = 0x0400,
   158         /**
   159          * Construction flag for enabling painting of selected items.
   160          */
   161 		EPaintedSelection			= 0x0800,
   162         /**
   163          * Construction flag for enabling S60 style selection of multiple items 
   164          * from the list box.
   165          */
   166 		ES60StyleMultiselection     = 0x00010000, //32 bits
   167         /**
   168          * Construction flag for enabling S60 style markable items.
   169          */
   170 		ES60StyleMarkable           = 0x00020000  //32 bits		
   171 		};
   172     /** List item attributes */
   173     enum TListItemAttribute
   174         {
   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 */
   183 		EMask		= 0x0007
   184         };
   185     /** deprecated */
   186 	enum TListItemFlags
   187 		{
   188         /** deprecated */
   189 		EItemDrawMarkSelection			= 0x0001,
   190         /** deprecated */
   191 		EItemPaintedSelection			= 0x0002,
   192         /** deprecated */
   193 		EItemDrawOnlyActiveSelection	= 0x0004
   194 		};
   195 	};
   196 
   197 /** Scroll bar thumb orientation enumerations */
   198 struct SLafScrollThumb
   199 	{
   200 	enum TOrientation
   201 		{
   202 		/** Vertical orientation */
   203 		EVertical,
   204 		/** Horizontal orientation */
   205 		EHorizontal
   206 		};
   207 	};
   208 
   209 struct SLafScrollBarFrame
   210 	{
   211 	/** Defines the scroll bar’s visibility.*/
   212 	enum TScrollBarVisibility
   213 		{
   214 		/** Scroll bar not visible. */
   215 		EOff,
   216 		/** Scroll bar visible. */
   217 		EOn,
   218 		/** Scroll bar visible if required. */
   219 		EAuto
   220 		};
   221 
   222 	/** Defines where the scroll bar is located. */
   223 	enum TScrollBarSide
   224 		{
   225 		/** 
   226 		 *  Scroll bar located at the bottom, or to the right of the scroll bar 
   227 		 *  frame 
   228 		 */
   229 		EBottomOrRight,
   230 		/** 
   231 		 *  Scroll bar located at the top, or to the left of the scroll bar 
   232 		 *  frame 
   233 		 */
   234 		ETopOrLeft
   235 		};
   236 
   237 	/** Determines how the scroll bar frame manages scroll bars.*/
   238     enum TScrollBarManagement
   239 		{
   240         /** 
   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.
   245          */
   246 		EComponent,
   247         /** 
   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
   253          *  the screen.
   254          */
   255 		EFloating,
   256         /** 
   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.
   260          */
   261 		EApplicationScrollBar
   262 		};
   263 	};
   264 
   265 /** Control group attributes */
   266 struct SLafControlGroup
   267 	{
   268 	enum TStartCorner
   269 		{
   270 		EFromTopLeft=0x1,
   271 		EFromTopRight=0x2,
   272 		EFromBottomLeft=0x3,
   273 		EFromBottomRight=0x4
   274 		};
   275 	enum TOrientation
   276 		{
   277 		ELayHorizontally=0x10,
   278 		ELayVertically=0x20
   279 		};
   280 	};
   281 
   282 /**  Look of button group container */
   283 struct SLafButtonGroupContainer
   284 	{
   285 	/** The controls where the button group container is used. */
   286 	enum TUse
   287 		{
   288 		/** View */
   289 		EView,
   290 		/** Dialog */
   291 		EDialog,
   292 		/** Toolbar */
   293 		EToolbar,
   294 		/** Command button area */
   295 		ECba,
   296 		/** Dialog buttons */
   297 		EDialogButtons
   298 		};
   299     /** Orientation of the button group container */
   300 	enum TOrientation
   301 		{
   302 		/** Vertical orientation */
   303 		EVertical,
   304 		/** Horizontal orientation */
   305 		EHorizontal
   306 		};
   307 	enum TLocation
   308 		{
   309 		/** Button group container used internally for example in dialog buttons */
   310 		EInternal,
   311 		/** Button group container used externally for example 
   312 		 *  in toolbar or CBA (Command Button Area) 
   313 		 */
   314 		EExternal
   315 		};
   316 	};
   317 
   318 struct SLafMenuBar
   319 	{
   320 	enum { ENominalTextLength = 40 };
   321 	};
   322 
   323 /** Menu pane highlight type enumerations */
   324 struct SLafMenuPane
   325 	{
   326 	enum THighlightType
   327 		{
   328 		ENoHighlight,
   329 		EDrawHighlight,
   330 		ERemoveHighlight
   331 		};
   332 	};
   333 
   334 struct SLafButtonBase
   335 	{
   336 	/** The draw state enumerations of the button. */
   337 	enum TDrawState
   338 		{
   339 		EDrawClear					=0x00,
   340 		EDrawSet					=0x01,
   341 		EDrawIndeterminate			=0x02,
   342 		EDrawClearPressed			=0x10,
   343 		EDrawSetPressed				=0x11,
   344 		EDrawIndeterminatePressed	=0x12
   345 		};
   346 	};
   347 
   348 
   349 #endif // __LAFPUBLC_H__