epoc32/include/uiklaf/private/lafenv.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// 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
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
//
williamr@2
    15
williamr@2
    16
#ifndef __LAFENV_H__
williamr@2
    17
#define __LAFENV_H__
williamr@2
    18
williamr@2
    19
#include <e32std.h>
williamr@2
    20
#include <e32base.h>
williamr@2
    21
#include <gulbordr.h>
williamr@2
    22
#include <gulalign.h>
williamr@2
    23
#include <lafmain.h>
williamr@2
    24
#include <apgcli.h>
williamr@2
    25
#include <eikinfomsgwin.h>
williamr@2
    26
#include <eikbusymsgwin.h>
williamr@2
    27
#include <eikmsg.h>
williamr@2
    28
williamr@2
    29
class MParser;
williamr@2
    30
class CCoeEnv;
williamr@2
    31
class CFont;
williamr@2
    32
class TLogicalFont;
williamr@2
    33
class CLafSystemFont;
williamr@2
    34
williamr@2
    35
class LafEnv
williamr@2
    36
/** Application environment level LAF functions.
williamr@2
    37
williamr@2
    38
@publishedPartner 
williamr@2
    39
@released */
williamr@2
    40
	{
williamr@2
    41
public:
williamr@2
    42
	/** Creates an EText parser.
williamr@2
    43
	
williamr@2
    44
	@param aIndex Index of parser to retrieve. A LAF can supply multiple parsers, 
williamr@2
    45
	indexed from 0.
williamr@2
    46
	@return EText parser */
williamr@2
    47
	IMPORT_C static MParser* CreateTextParserL(TInt aIndex);
williamr@2
    48
	/** Draws a logical border.
williamr@2
    49
	
williamr@2
    50
	@param aBorder Border specification to draw
williamr@2
    51
	@param aGc Graphics context to which to draw
williamr@2
    52
	@param aRect Drawing rectangle
williamr@2
    53
	@param aBorderColors Colours with which to draw */
williamr@2
    54
	IMPORT_C static void DrawLogicalBorder(const TGulBorder& aBorder,CGraphicsContext& aGc,const TRect& aRect,const TGulBorder::TColors& aBorderColors);
williamr@2
    55
	/** Gets the margins of a specified logical border.
williamr@2
    56
	
williamr@2
    57
	@param aBorder Border specification
williamr@2
    58
	@return Border's margins */
williamr@2
    59
	IMPORT_C static TMargins LogicalBorderMargins(const TGulBorder& aBorder);
williamr@2
    60
	/** Populates an array with a set of system bitmaps.
williamr@2
    61
	
williamr@2
    62
	CEikonEnv calls this to get system bitmaps, and uses the array in subsequent 
williamr@2
    63
	calls to MatchBitmap().
williamr@2
    64
	
williamr@2
    65
	@param aEnv Application's control environment
williamr@2
    66
	@param aBitmaps On return, array of system bitmaps */
williamr@2
    67
	IMPORT_C static void CreateSystemBitmapsL(CCoeEnv& aEnv, CArrayPtrFlat<CFbsBitmap>& aBitmaps);
williamr@2
    68
	/** Populates an array with a set of system fonts.
williamr@2
    69
	
williamr@2
    70
	CEikonEnv calls this to get system fonts, and uses the array in subsequent 
williamr@2
    71
	calls to MatchFont().
williamr@2
    72
	
williamr@2
    73
	A minimum of one font must be created. 
williamr@2
    74
	
williamr@2
    75
	@param aEnv Application's control environment
williamr@2
    76
	@param aFonts On return, array of system fonts */
williamr@2
    77
	IMPORT_C static void CreateSystemFontsL(CCoeEnv& aEnv,CArrayPtr<CLafSystemFont>& aFonts);
williamr@2
    78
	/** Gets the nearest match in the specified fonts for a specified logical system 
williamr@2
    79
	font.
williamr@2
    80
	
williamr@2
    81
	The return value must be non-NULL.
williamr@2
    82
	
williamr@2
    83
	@param aFonts Fonts from which to select the match
williamr@2
    84
	@param aLogicalFont The logical font to match
williamr@2
    85
	@return Font that is the best match to aLogicalFont */
williamr@2
    86
	IMPORT_C static const CFont* MatchFont(CArrayPtr<CLafSystemFont>& aFonts,const TLogicalFont& aLogicalFont);
williamr@2
    87
	/** Gets the nearest match in the specified bitmaps for a specified system bitmap 
williamr@2
    88
	type.
williamr@2
    89
	
williamr@2
    90
	The desired bitmap is specified by the identifer aBmpUid: for possible UIDs, 
williamr@2
    91
	see KLafUidEikonTexturedVal etc.
williamr@2
    92
	
williamr@2
    93
	The return value must be non-NULL.
williamr@2
    94
	
williamr@2
    95
	@param aSystemBmps Bitmaps from which to select the match
williamr@2
    96
	@param aBmpUid The bitmap type to match
williamr@2
    97
	@return Bitmap that is the best match to aBmpUid */
williamr@2
    98
	IMPORT_C static CFbsBitmap* MatchBitmap(const CArrayPtrFlat<CFbsBitmap>& aSystemBmps, TUid aBmpUid);
williamr@2
    99
	/** Gets the corner of the screen which the busy message should appear in by default 
williamr@2
   100
	on the device. 
williamr@2
   101
	
williamr@2
   102
	@return Default corner
williamr@2
   103
	@see CEikonEnv::BusyMsgL() */
williamr@2
   104
	IMPORT_C static TGulAlignment DefaultBusyMsgCorner();
williamr@2
   105
	/** Tests if the specified key corresponds to the hardware default key.
williamr@2
   106
	
williamr@2
   107
	@param aCharCode Key to test
williamr@2
   108
	@return True if the key is the default */
williamr@2
   109
	IMPORT_C static TBool IsDefaultKey(TUint aCharCode);
williamr@2
   110
	/** Gets the default line spacing used to format text paragraphs.
williamr@2
   111
	
williamr@2
   112
	@return Default line spacing in twips */
williamr@2
   113
	IMPORT_C static TInt DefaultLineSpacingInTwips();
williamr@2
   114
	/** Gets the height of single-line edit control for the system normal font.
williamr@2
   115
	
williamr@2
   116
	@param aLafEnv Environment access
williamr@2
   117
	@return Height of single-line edit control */
williamr@2
   118
	IMPORT_C static TInt EditableControlStandardHeight(const MLafEnv& aLafEnv);
williamr@2
   119
	/** Sets any device-specific font attributes to be applied to the system character 
williamr@2
   120
	formatting layer.
williamr@2
   121
	
williamr@2
   122
	Applications can access the format layer through CEikonEnv::SystemCharFormatLayerL(). 
williamr@2
   123
	This format layer is also used in Edwins.
williamr@2
   124
	
williamr@2
   125
	@param aCharFormat On return, the character formatting to apply
williamr@2
   126
	@param aCharFormatMask On return, the character formatting mask to apply */
williamr@2
   127
	IMPORT_C static void PrepareCharFormatAndMask(TCharFormat& aCharFormat,TCharFormatMask& aCharFormatMask);
williamr@2
   128
	/** Specifies (and creates if necessary) a default directory for documents.
williamr@2
   129
	
williamr@2
   130
	The function is called on application startup. The parameters provided are 
williamr@2
   131
	to allow an implementation to generate a document directory based on the application 
williamr@2
   132
	being launched.
williamr@2
   133
	
williamr@2
   134
	@param aFilePath On return, the default / generated directory path
williamr@2
   135
	@param aAppUid UID of application being launched
williamr@2
   136
	@param aLs Application's session with the Application Architecture server
williamr@2
   137
	@param aEnv Thread's control environment */
williamr@2
   138
	IMPORT_C static void GetDefaultPath(TDes& aFilePath,TUid aAppUid,RApaLsSession& aLs,CCoeEnv& aEnv);
williamr@2
   139
	/** Loads the system resource file.
williamr@2
   140
	
williamr@2
   141
	The system resource file defines resources required by the system environment, 
williamr@2
   142
	and which can also be used by applications. The function is called by CCoeEnv's 
williamr@2
   143
	construction function.
williamr@2
   144
	
williamr@2
   145
	@param aEnv Thread's control environment
williamr@2
   146
	@return System wide error code */
williamr@2
   147
	IMPORT_C static TInt LoadCoreResFileL(CCoeEnv& aEnv);
williamr@2
   148
	/** Loads the private resource file.
williamr@2
   149
	
williamr@2
   150
	The private resource file defines resources required by the system environment, 
williamr@2
   151
	but not intended for application use. The function is called by CCoeEnv's 
williamr@2
   152
	construction function.
williamr@2
   153
	
williamr@2
   154
	@param aEnv Thread's control environment
williamr@2
   155
	@return System wide error code */
williamr@2
   156
	IMPORT_C static TInt LoadPrivResFileL(CCoeEnv& aEnv);
williamr@2
   157
	/** Gets the name of the resource file that contains resources for the EIKCOCTL 
williamr@2
   158
	component.
williamr@2
   159
	
williamr@2
   160
	@return Resource file for the EIKCOCTL component */
williamr@2
   161
	IMPORT_C static const TDesC& CoctlResourceFile();
williamr@2
   162
	/** Allows the LAF to update the list of system bitmaps, in response to a colour 
williamr@2
   163
	settings change.
williamr@2
   164
	
williamr@2
   165
	@param aEnv Thread's control environment
williamr@2
   166
	@param aBitmaps On return, updated array of system bitmaps
williamr@2
   167
	@param aColorList New colour settings */
williamr@2
   168
	IMPORT_C static void UpdateSystemBitmapsL(CCoeEnv& aEnv, CArrayPtrFlat<CFbsBitmap>& aBitmaps, const CColorList& aColorList);
williamr@2
   169
	
williamr@2
   170
	/**	Performs the releasing of the fonts but doesn't delete the array itself
williamr@2
   171
	
williamr@2
   172
	@param aSystemFontArray array of fonts to release
williamr@2
   173
	*/
williamr@2
   174
	IMPORT_C static void ReleaseSystemFonts( CArrayPtr<CLafSystemFont>& aSystemFontArray);
williamr@2
   175
	
williamr@2
   176
	/** Creates busy message window.
williamr@2
   177
	
williamr@2
   178
	@param aEnv Thread's control environment
williamr@2
   179
	@return Busy message window */
williamr@2
   180
	IMPORT_C static MEikBusyMsgWin* NewBusyMsgWinL(CCoeEnv& aEnv);
williamr@2
   181
	/** Creates info message window.
williamr@2
   182
	
williamr@2
   183
	@param aEnv Thread's control environment
williamr@2
   184
	@return Info message window */
williamr@2
   185
	IMPORT_C static MEikInfoMsgWin* NewInfoMsgWinL(CCoeEnv& aEnv);
williamr@2
   186
		
williamr@2
   187
	/** Creates info message window, overridden function to allow another RWindowGroup to be
williamr@2
   188
	used rather the the the CCoeEnv's RootWin() function.
williamr@2
   189
		
williamr@2
   190
	@param aEnv Thread's control environment
williamr@2
   191
	@param aWinGroup window group for displaying the Info Msg
williamr@2
   192
	@return Info message window */
williamr@2
   193
    	IMPORT_C static MEikInfoMsgWin* NewInfoMsgWinL(CCoeEnv& aEnv, RWindowGroup& aWinGroup);
williamr@2
   194
	/** Asks if display of the task list is disabled during initialization
williamr@2
   195
williamr@2
   196
	@return ETrue if task list is disabled, otherwise EFalse */
williamr@2
   197
	IMPORT_C static TBool IsTaskListDisabledAtInitialization();
williamr@2
   198
	/** Displays a one or two line alert as a notifier window customisable by the system GUI.
williamr@2
   199
williamr@2
   200
	@param aMsg1 Line one of the message to be displayed.
williamr@2
   201
	@param aMsg2 Line two of the message to be displayed */
williamr@2
   202
	IMPORT_C static void DisplayAlertAsNotifier(const TDesC& aMsg1, const TDesC& aMsg2);
williamr@2
   203
	
williamr@2
   204
	/** Updates an existing color list
williamr@2
   205
	
williamr@2
   206
	@param aColorList The color list to be updated. */
williamr@2
   207
	IMPORT_C static void UpdateColorListL(CColorList* aColorList);
williamr@2
   208
	
williamr@2
   209
	/** Plays an audible alert, if supported by the system GUI. */
williamr@2
   210
	IMPORT_C static void Beep();
williamr@2
   211
	
williamr@2
   212
	/** Updates an existing array of system fonts.
williamr@2
   213
	
williamr@2
   214
	@param aEnv Thread's control environment
williamr@2
   215
	@param aSystemFontArray The array of fonts to be updated */
williamr@2
   216
	IMPORT_C static void UpdateSystemFontsL(CCoeEnv* aEnv, CArrayPtr<CLafSystemFont>& aSystemFontArray);
williamr@2
   217
williamr@2
   218
	/** A list of events that are handled by the HandleExtensionEventL() function.*/
williamr@2
   219
	enum TLafEnvExtensionEvent 
williamr@2
   220
        {
williamr@2
   221
        /** Event sent in CEikonEnv::ConstructL right before CCoeEnv::ConstructL() */
williamr@2
   222
        ELafEnvPreCoeEnvConstructL,
williamr@2
   223
        /** Event sent in CEikonEnv::ConstructL right after CCoeEnv::ConstructL() */
williamr@2
   224
        ELafEnvPostCoeEnvConstructL
williamr@2
   225
        };
williamr@2
   226
	
williamr@2
   227
	/** Handles events listed by TLafEnvExtensionEvent
williamr@2
   228
	@param aEnv The instance of CEikonEnv from which this function has been called
williamr@2
   229
	@param aEvent The event
williamr@2
   230
	*/
williamr@2
   231
	IMPORT_C static void HandleExtensionEventL(CEikonEnv& aEnv, TLafEnvExtensionEvent aEvent);
williamr@2
   232
	
williamr@2
   233
    /** Allows debug keys to display output.
williamr@2
   234
    @param aResourceId The resource to use for the note
williamr@2
   235
    */
williamr@2
   236
    IMPORT_C static void InfoNote(TInt aResourceId,...);
williamr@2
   237
williamr@2
   238
	/** Creates a default system colour list. 
williamr@2
   239
	@param aEnv The instance of CEikonEnv from which this function has been called
williamr@2
   240
	@return A list of colours
williamr@2
   241
	*/
williamr@2
   242
	IMPORT_C static CColorList* CreateColorListL(CEikonEnv& aEnv);
williamr@2
   243
	
williamr@2
   244
	/** Gets the name of the clock DLL
williamr@2
   245
	@return The name of the clock DLL
williamr@2
   246
	*/
williamr@2
   247
	IMPORT_C static const TDesC& ClockDllName();
williamr@2
   248
williamr@2
   249
	/** The behaviour of CEikonEnv can be customized. This enum lists
williamr@2
   250
	the things that can be customized. */
williamr@2
   251
	enum TLafEnvPolicyItem
williamr@2
   252
        {
williamr@2
   253
        /** The action to take when there is an error during startup. */
williamr@2
   254
        ELafEnvPolicyExitIfErrorDuringStartup,
williamr@2
   255
        /** The action to take when the document is corrupt. */
williamr@2
   256
        ELafEnvPolicyDeleteCorruptDocumentAndContinue,
williamr@2
   257
        /** This affects the way the environment is deleted. */
williamr@2
   258
        ELAfEnvPolicyDeferredEnvironmentDeletion,
williamr@2
   259
        };
williamr@2
   260
williamr@2
   261
	/** CEikonEnv will use this function to find out how it should behave.
williamr@2
   262
	The list of things that can be customized this way are listed by 
williamr@2
   263
	TLafEnvPolicyItem.
williamr@2
   264
	@param aItem The policy item.
williamr@2
   265
	@return An integer that indicates what the action should be.
williamr@2
   266
	*/
williamr@2
   267
    IMPORT_C static TInt PolicyItem(TLafEnvPolicyItem aItem);
williamr@2
   268
williamr@2
   269
public:
williamr@2
   270
	inline static TInt ShadowHeight();
williamr@2
   271
private:
williamr@2
   272
	/** Defines types of constant setting relevant to LAFs. */
williamr@2
   273
	enum TConstantType
williamr@2
   274
		{
williamr@2
   275
		/** Window shadow height. */
williamr@2
   276
		EShadowHeight
williamr@2
   277
		};
williamr@2
   278
private:
williamr@2
   279
	/** Gets the value for a specified constant setting.
williamr@2
   280
	
williamr@2
   281
	@param aConstant Type of constant setting to get
williamr@2
   282
	@return Value for the constant setting */
williamr@2
   283
	IMPORT_C static TInt Constant(TConstantType aConstant);
williamr@2
   284
	};
williamr@2
   285
williamr@2
   286
// identifiers for legacy system fonts
williamr@2
   287
williamr@2
   288
/** UID for the system "normal" font.
williamr@2
   289
williamr@2
   290
@see TLogicalFont::iFontId 
williamr@2
   291
@publishedPartner 
williamr@2
   292
@released */
williamr@2
   293
#define KLafUidNormalFontVal		0x10005F02
williamr@2
   294
williamr@2
   295
/** UID for the system "title" font.
williamr@2
   296
williamr@2
   297
@see TLogicalFont::iFontId 
williamr@2
   298
@publishedPartner 
williamr@2
   299
@released */
williamr@2
   300
#define KLafUidTitleFontVal			0x10005F03
williamr@2
   301
williamr@2
   302
/** UID for the system "annotation" font.
williamr@2
   303
williamr@2
   304
@see TLogicalFont::iFontId 
williamr@2
   305
@publishedPartner 
williamr@2
   306
@released */
williamr@2
   307
#define KLafUidAnnotationFontVal	0x10005F04
williamr@2
   308
williamr@2
   309
/** UID for the system "legend" font.
williamr@2
   310
williamr@2
   311
@see TLogicalFont::iFontId 
williamr@2
   312
@publishedPartner 
williamr@2
   313
@released */
williamr@2
   314
#define KLafUidLegendFontVal		0x10005F05
williamr@2
   315
williamr@2
   316
/** UID for the system "symbol" font.
williamr@2
   317
williamr@2
   318
@see TLogicalFont::iFontId 
williamr@2
   319
@publishedPartner 
williamr@2
   320
@released */
williamr@2
   321
#define KLafUidSymbolFontVal		0x10005F06
williamr@2
   322
williamr@2
   323
/** UID for the system "dense" font.
williamr@2
   324
williamr@2
   325
@see TLogicalFont::iFontId 
williamr@2
   326
@publishedPartner 
williamr@2
   327
@released */
williamr@2
   328
#define KLafUidDenseFontVal			0x10005F07
williamr@2
   329
williamr@2
   330
// identifiers for legacy system bitmaps
williamr@2
   331
/** UID for a textured block system bitmap.
williamr@2
   332
williamr@2
   333
@see LafEnv::MatchBitmap() 
williamr@2
   334
@publishedPartner 
williamr@2
   335
@released */
williamr@2
   336
#define KLafUidEikonTexturedVal		0x100048F4
williamr@2
   337
williamr@2
   338
/** UID for a gray block system bitmap.
williamr@2
   339
williamr@2
   340
@see LafEnv::MatchBitmap() 
williamr@2
   341
@publishedPartner 
williamr@2
   342
@released */
williamr@2
   343
#define KLafUidEikonGrayVal			0x100048F5
williamr@2
   344
williamr@2
   345
/** UID for a horizontal option button system bitmap.
williamr@2
   346
williamr@2
   347
@see LafEnv::MatchBitmap() 
williamr@2
   348
@publishedPartner 
williamr@2
   349
@released */
williamr@2
   350
#define KLafUidEikonOptiVal			0x100048F6
williamr@2
   351
williamr@2
   352
/** UID for a highlighted horizontal option button system bitmap.
williamr@2
   353
williamr@2
   354
@see LafEnv::MatchBitmap() 
williamr@2
   355
@publishedPartner 
williamr@2
   356
@released */
williamr@2
   357
#define KLafUidEikonOptihVal		0x100048F7
williamr@2
   358
williamr@2
   359
/** UID for a horizontal option button mask system bitmap.
williamr@2
   360
williamr@2
   361
@see LafEnv::MatchBitmap() 
williamr@2
   362
@publishedPartner 
williamr@2
   363
@released */
williamr@2
   364
#define KLafUidEikonOptimVal		0x100048F8
williamr@2
   365
williamr@2
   366
// Inlines
williamr@2
   367
williamr@2
   368
inline TInt LafEnv::ShadowHeight()
williamr@2
   369
/** Gets the height of shadows to apply to windows. 
williamr@2
   370
williamr@2
   371
@return Shadow height. */
williamr@2
   372
	{//static
williamr@2
   373
	return Constant(EShadowHeight);
williamr@2
   374
	}
williamr@2
   375
williamr@2
   376
#endif