1.1 --- a/epoc32/include/uiklaf/private/lafenv.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,376 +0,0 @@
1.4 -// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// 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
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -//
1.18 -
1.19 -#ifndef __LAFENV_H__
1.20 -#define __LAFENV_H__
1.21 -
1.22 -#include <e32std.h>
1.23 -#include <e32base.h>
1.24 -#include <gulbordr.h>
1.25 -#include <gulalign.h>
1.26 -#include <lafmain.h>
1.27 -#include <apgcli.h>
1.28 -#include <eikinfomsgwin.h>
1.29 -#include <eikbusymsgwin.h>
1.30 -#include <eikmsg.h>
1.31 -
1.32 -class MParser;
1.33 -class CCoeEnv;
1.34 -class CFont;
1.35 -class TLogicalFont;
1.36 -class CLafSystemFont;
1.37 -
1.38 -class LafEnv
1.39 -/** Application environment level LAF functions.
1.40 -
1.41 -@publishedPartner
1.42 -@released */
1.43 - {
1.44 -public:
1.45 - /** Creates an EText parser.
1.46 -
1.47 - @param aIndex Index of parser to retrieve. A LAF can supply multiple parsers,
1.48 - indexed from 0.
1.49 - @return EText parser */
1.50 - IMPORT_C static MParser* CreateTextParserL(TInt aIndex);
1.51 - /** Draws a logical border.
1.52 -
1.53 - @param aBorder Border specification to draw
1.54 - @param aGc Graphics context to which to draw
1.55 - @param aRect Drawing rectangle
1.56 - @param aBorderColors Colours with which to draw */
1.57 - IMPORT_C static void DrawLogicalBorder(const TGulBorder& aBorder,CGraphicsContext& aGc,const TRect& aRect,const TGulBorder::TColors& aBorderColors);
1.58 - /** Gets the margins of a specified logical border.
1.59 -
1.60 - @param aBorder Border specification
1.61 - @return Border's margins */
1.62 - IMPORT_C static TMargins LogicalBorderMargins(const TGulBorder& aBorder);
1.63 - /** Populates an array with a set of system bitmaps.
1.64 -
1.65 - CEikonEnv calls this to get system bitmaps, and uses the array in subsequent
1.66 - calls to MatchBitmap().
1.67 -
1.68 - @param aEnv Application's control environment
1.69 - @param aBitmaps On return, array of system bitmaps */
1.70 - IMPORT_C static void CreateSystemBitmapsL(CCoeEnv& aEnv, CArrayPtrFlat<CFbsBitmap>& aBitmaps);
1.71 - /** Populates an array with a set of system fonts.
1.72 -
1.73 - CEikonEnv calls this to get system fonts, and uses the array in subsequent
1.74 - calls to MatchFont().
1.75 -
1.76 - A minimum of one font must be created.
1.77 -
1.78 - @param aEnv Application's control environment
1.79 - @param aFonts On return, array of system fonts */
1.80 - IMPORT_C static void CreateSystemFontsL(CCoeEnv& aEnv,CArrayPtr<CLafSystemFont>& aFonts);
1.81 - /** Gets the nearest match in the specified fonts for a specified logical system
1.82 - font.
1.83 -
1.84 - The return value must be non-NULL.
1.85 -
1.86 - @param aFonts Fonts from which to select the match
1.87 - @param aLogicalFont The logical font to match
1.88 - @return Font that is the best match to aLogicalFont */
1.89 - IMPORT_C static const CFont* MatchFont(CArrayPtr<CLafSystemFont>& aFonts,const TLogicalFont& aLogicalFont);
1.90 - /** Gets the nearest match in the specified bitmaps for a specified system bitmap
1.91 - type.
1.92 -
1.93 - The desired bitmap is specified by the identifer aBmpUid: for possible UIDs,
1.94 - see KLafUidEikonTexturedVal etc.
1.95 -
1.96 - The return value must be non-NULL.
1.97 -
1.98 - @param aSystemBmps Bitmaps from which to select the match
1.99 - @param aBmpUid The bitmap type to match
1.100 - @return Bitmap that is the best match to aBmpUid */
1.101 - IMPORT_C static CFbsBitmap* MatchBitmap(const CArrayPtrFlat<CFbsBitmap>& aSystemBmps, TUid aBmpUid);
1.102 - /** Gets the corner of the screen which the busy message should appear in by default
1.103 - on the device.
1.104 -
1.105 - @return Default corner
1.106 - @see CEikonEnv::BusyMsgL() */
1.107 - IMPORT_C static TGulAlignment DefaultBusyMsgCorner();
1.108 - /** Tests if the specified key corresponds to the hardware default key.
1.109 -
1.110 - @param aCharCode Key to test
1.111 - @return True if the key is the default */
1.112 - IMPORT_C static TBool IsDefaultKey(TUint aCharCode);
1.113 - /** Gets the default line spacing used to format text paragraphs.
1.114 -
1.115 - @return Default line spacing in twips */
1.116 - IMPORT_C static TInt DefaultLineSpacingInTwips();
1.117 - /** Gets the height of single-line edit control for the system normal font.
1.118 -
1.119 - @param aLafEnv Environment access
1.120 - @return Height of single-line edit control */
1.121 - IMPORT_C static TInt EditableControlStandardHeight(const MLafEnv& aLafEnv);
1.122 - /** Sets any device-specific font attributes to be applied to the system character
1.123 - formatting layer.
1.124 -
1.125 - Applications can access the format layer through CEikonEnv::SystemCharFormatLayerL().
1.126 - This format layer is also used in Edwins.
1.127 -
1.128 - @param aCharFormat On return, the character formatting to apply
1.129 - @param aCharFormatMask On return, the character formatting mask to apply */
1.130 - IMPORT_C static void PrepareCharFormatAndMask(TCharFormat& aCharFormat,TCharFormatMask& aCharFormatMask);
1.131 - /** Specifies (and creates if necessary) a default directory for documents.
1.132 -
1.133 - The function is called on application startup. The parameters provided are
1.134 - to allow an implementation to generate a document directory based on the application
1.135 - being launched.
1.136 -
1.137 - @param aFilePath On return, the default / generated directory path
1.138 - @param aAppUid UID of application being launched
1.139 - @param aLs Application's session with the Application Architecture server
1.140 - @param aEnv Thread's control environment */
1.141 - IMPORT_C static void GetDefaultPath(TDes& aFilePath,TUid aAppUid,RApaLsSession& aLs,CCoeEnv& aEnv);
1.142 - /** Loads the system resource file.
1.143 -
1.144 - The system resource file defines resources required by the system environment,
1.145 - and which can also be used by applications. The function is called by CCoeEnv's
1.146 - construction function.
1.147 -
1.148 - @param aEnv Thread's control environment
1.149 - @return System wide error code */
1.150 - IMPORT_C static TInt LoadCoreResFileL(CCoeEnv& aEnv);
1.151 - /** Loads the private resource file.
1.152 -
1.153 - The private resource file defines resources required by the system environment,
1.154 - but not intended for application use. The function is called by CCoeEnv's
1.155 - construction function.
1.156 -
1.157 - @param aEnv Thread's control environment
1.158 - @return System wide error code */
1.159 - IMPORT_C static TInt LoadPrivResFileL(CCoeEnv& aEnv);
1.160 - /** Gets the name of the resource file that contains resources for the EIKCOCTL
1.161 - component.
1.162 -
1.163 - @return Resource file for the EIKCOCTL component */
1.164 - IMPORT_C static const TDesC& CoctlResourceFile();
1.165 - /** Allows the LAF to update the list of system bitmaps, in response to a colour
1.166 - settings change.
1.167 -
1.168 - @param aEnv Thread's control environment
1.169 - @param aBitmaps On return, updated array of system bitmaps
1.170 - @param aColorList New colour settings */
1.171 - IMPORT_C static void UpdateSystemBitmapsL(CCoeEnv& aEnv, CArrayPtrFlat<CFbsBitmap>& aBitmaps, const CColorList& aColorList);
1.172 -
1.173 - /** Performs the releasing of the fonts but doesn't delete the array itself
1.174 -
1.175 - @param aSystemFontArray array of fonts to release
1.176 - */
1.177 - IMPORT_C static void ReleaseSystemFonts( CArrayPtr<CLafSystemFont>& aSystemFontArray);
1.178 -
1.179 - /** Creates busy message window.
1.180 -
1.181 - @param aEnv Thread's control environment
1.182 - @return Busy message window */
1.183 - IMPORT_C static MEikBusyMsgWin* NewBusyMsgWinL(CCoeEnv& aEnv);
1.184 - /** Creates info message window.
1.185 -
1.186 - @param aEnv Thread's control environment
1.187 - @return Info message window */
1.188 - IMPORT_C static MEikInfoMsgWin* NewInfoMsgWinL(CCoeEnv& aEnv);
1.189 -
1.190 - /** Creates info message window, overridden function to allow another RWindowGroup to be
1.191 - used rather the the the CCoeEnv's RootWin() function.
1.192 -
1.193 - @param aEnv Thread's control environment
1.194 - @param aWinGroup window group for displaying the Info Msg
1.195 - @return Info message window */
1.196 - IMPORT_C static MEikInfoMsgWin* NewInfoMsgWinL(CCoeEnv& aEnv, RWindowGroup& aWinGroup);
1.197 - /** Asks if display of the task list is disabled during initialization
1.198 -
1.199 - @return ETrue if task list is disabled, otherwise EFalse */
1.200 - IMPORT_C static TBool IsTaskListDisabledAtInitialization();
1.201 - /** Displays a one or two line alert as a notifier window customisable by the system GUI.
1.202 -
1.203 - @param aMsg1 Line one of the message to be displayed.
1.204 - @param aMsg2 Line two of the message to be displayed */
1.205 - IMPORT_C static void DisplayAlertAsNotifier(const TDesC& aMsg1, const TDesC& aMsg2);
1.206 -
1.207 - /** Updates an existing color list
1.208 -
1.209 - @param aColorList The color list to be updated. */
1.210 - IMPORT_C static void UpdateColorListL(CColorList* aColorList);
1.211 -
1.212 - /** Plays an audible alert, if supported by the system GUI. */
1.213 - IMPORT_C static void Beep();
1.214 -
1.215 - /** Updates an existing array of system fonts.
1.216 -
1.217 - @param aEnv Thread's control environment
1.218 - @param aSystemFontArray The array of fonts to be updated */
1.219 - IMPORT_C static void UpdateSystemFontsL(CCoeEnv* aEnv, CArrayPtr<CLafSystemFont>& aSystemFontArray);
1.220 -
1.221 - /** A list of events that are handled by the HandleExtensionEventL() function.*/
1.222 - enum TLafEnvExtensionEvent
1.223 - {
1.224 - /** Event sent in CEikonEnv::ConstructL right before CCoeEnv::ConstructL() */
1.225 - ELafEnvPreCoeEnvConstructL,
1.226 - /** Event sent in CEikonEnv::ConstructL right after CCoeEnv::ConstructL() */
1.227 - ELafEnvPostCoeEnvConstructL
1.228 - };
1.229 -
1.230 - /** Handles events listed by TLafEnvExtensionEvent
1.231 - @param aEnv The instance of CEikonEnv from which this function has been called
1.232 - @param aEvent The event
1.233 - */
1.234 - IMPORT_C static void HandleExtensionEventL(CEikonEnv& aEnv, TLafEnvExtensionEvent aEvent);
1.235 -
1.236 - /** Allows debug keys to display output.
1.237 - @param aResourceId The resource to use for the note
1.238 - */
1.239 - IMPORT_C static void InfoNote(TInt aResourceId,...);
1.240 -
1.241 - /** Creates a default system colour list.
1.242 - @param aEnv The instance of CEikonEnv from which this function has been called
1.243 - @return A list of colours
1.244 - */
1.245 - IMPORT_C static CColorList* CreateColorListL(CEikonEnv& aEnv);
1.246 -
1.247 - /** Gets the name of the clock DLL
1.248 - @return The name of the clock DLL
1.249 - */
1.250 - IMPORT_C static const TDesC& ClockDllName();
1.251 -
1.252 - /** The behaviour of CEikonEnv can be customized. This enum lists
1.253 - the things that can be customized. */
1.254 - enum TLafEnvPolicyItem
1.255 - {
1.256 - /** The action to take when there is an error during startup. */
1.257 - ELafEnvPolicyExitIfErrorDuringStartup,
1.258 - /** The action to take when the document is corrupt. */
1.259 - ELafEnvPolicyDeleteCorruptDocumentAndContinue,
1.260 - /** This affects the way the environment is deleted. */
1.261 - ELAfEnvPolicyDeferredEnvironmentDeletion,
1.262 - };
1.263 -
1.264 - /** CEikonEnv will use this function to find out how it should behave.
1.265 - The list of things that can be customized this way are listed by
1.266 - TLafEnvPolicyItem.
1.267 - @param aItem The policy item.
1.268 - @return An integer that indicates what the action should be.
1.269 - */
1.270 - IMPORT_C static TInt PolicyItem(TLafEnvPolicyItem aItem);
1.271 -
1.272 -public:
1.273 - inline static TInt ShadowHeight();
1.274 -private:
1.275 - /** Defines types of constant setting relevant to LAFs. */
1.276 - enum TConstantType
1.277 - {
1.278 - /** Window shadow height. */
1.279 - EShadowHeight
1.280 - };
1.281 -private:
1.282 - /** Gets the value for a specified constant setting.
1.283 -
1.284 - @param aConstant Type of constant setting to get
1.285 - @return Value for the constant setting */
1.286 - IMPORT_C static TInt Constant(TConstantType aConstant);
1.287 - };
1.288 -
1.289 -// identifiers for legacy system fonts
1.290 -
1.291 -/** UID for the system "normal" font.
1.292 -
1.293 -@see TLogicalFont::iFontId
1.294 -@publishedPartner
1.295 -@released */
1.296 -#define KLafUidNormalFontVal 0x10005F02
1.297 -
1.298 -/** UID for the system "title" font.
1.299 -
1.300 -@see TLogicalFont::iFontId
1.301 -@publishedPartner
1.302 -@released */
1.303 -#define KLafUidTitleFontVal 0x10005F03
1.304 -
1.305 -/** UID for the system "annotation" font.
1.306 -
1.307 -@see TLogicalFont::iFontId
1.308 -@publishedPartner
1.309 -@released */
1.310 -#define KLafUidAnnotationFontVal 0x10005F04
1.311 -
1.312 -/** UID for the system "legend" font.
1.313 -
1.314 -@see TLogicalFont::iFontId
1.315 -@publishedPartner
1.316 -@released */
1.317 -#define KLafUidLegendFontVal 0x10005F05
1.318 -
1.319 -/** UID for the system "symbol" font.
1.320 -
1.321 -@see TLogicalFont::iFontId
1.322 -@publishedPartner
1.323 -@released */
1.324 -#define KLafUidSymbolFontVal 0x10005F06
1.325 -
1.326 -/** UID for the system "dense" font.
1.327 -
1.328 -@see TLogicalFont::iFontId
1.329 -@publishedPartner
1.330 -@released */
1.331 -#define KLafUidDenseFontVal 0x10005F07
1.332 -
1.333 -// identifiers for legacy system bitmaps
1.334 -/** UID for a textured block system bitmap.
1.335 -
1.336 -@see LafEnv::MatchBitmap()
1.337 -@publishedPartner
1.338 -@released */
1.339 -#define KLafUidEikonTexturedVal 0x100048F4
1.340 -
1.341 -/** UID for a gray block system bitmap.
1.342 -
1.343 -@see LafEnv::MatchBitmap()
1.344 -@publishedPartner
1.345 -@released */
1.346 -#define KLafUidEikonGrayVal 0x100048F5
1.347 -
1.348 -/** UID for a horizontal option button system bitmap.
1.349 -
1.350 -@see LafEnv::MatchBitmap()
1.351 -@publishedPartner
1.352 -@released */
1.353 -#define KLafUidEikonOptiVal 0x100048F6
1.354 -
1.355 -/** UID for a highlighted horizontal option button system bitmap.
1.356 -
1.357 -@see LafEnv::MatchBitmap()
1.358 -@publishedPartner
1.359 -@released */
1.360 -#define KLafUidEikonOptihVal 0x100048F7
1.361 -
1.362 -/** UID for a horizontal option button mask system bitmap.
1.363 -
1.364 -@see LafEnv::MatchBitmap()
1.365 -@publishedPartner
1.366 -@released */
1.367 -#define KLafUidEikonOptimVal 0x100048F8
1.368 -
1.369 -// Inlines
1.370 -
1.371 -inline TInt LafEnv::ShadowHeight()
1.372 -/** Gets the height of shadows to apply to windows.
1.373 -
1.374 -@return Shadow height. */
1.375 - {//static
1.376 - return Constant(EShadowHeight);
1.377 - }
1.378 -
1.379 -#endif