epoc32/include/gdi.h
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
     1.1 --- a/epoc32/include/gdi.h	Wed Mar 31 12:27:01 2010 +0100
     1.2 +++ b/epoc32/include/gdi.h	Wed Mar 31 12:33:34 2010 +0100
     1.3 @@ -1,9 +1,9 @@
     1.4  // Copyright (c) 1998-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 +// under the terms of "Eclipse Public License v1.0"
     1.9  // which accompanies this distribution, and is available
    1.10 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.11 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.12  //
    1.13  // Initial Contributors:
    1.14  // Nokia Corporation - initial contribution.
    1.15 @@ -19,14 +19,17 @@
    1.16  #include <e32base.h>
    1.17  #include <f32file.h>
    1.18  #include <s32std.h>
    1.19 -/**
    1.20 -The default screen number. 
    1.21 -@internalComponent
    1.22 -*/
    1.23 -const TInt KDefaultScreenNo = 0;
    1.24 +#include <displaymode.h>
    1.25 +
    1.26 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS	
    1.27 +#include <graphics/gdi/glyphsample.h>
    1.28 +#include <graphics/gdi/gdiconsts.h>
    1.29 +#endif //SYMBIAN_ENABLE_SPLIT_HEADERS	
    1.30  
    1.31  class TOpenFontCharMetrics;
    1.32  class RShapeInfo;
    1.33 +class CGraphicsContext;
    1.34 +class TTextParameters;
    1.35  
    1.36  /**
    1.37  Number of twips per inch. 
    1.38 @@ -123,17 +126,7 @@
    1.39  const TSize KDLPaperSizeInTwips(6236,12472);
    1.40  const TSize KC5PaperSizeInTwips(9184,12983);
    1.41  #endif
    1.42 -	
    1.43 -/**
    1.44 -Declaration of constant TUids for APIExtension to use as identifiers.
    1.45 -@internalComponent
    1.46 -@released
    1.47 -*/
    1.48 -const TUid KGetUnderlineMetrics = {0x102827FB};
    1.49 -const TUid KSetFastBlendDisabled = {0x10285A30};
    1.50 -const TUid KSetShadowColor = {0x10282DA1};
    1.51 -const TUid KGetShadowColor = {0x10282DA2};
    1.52 -const TUid KUidIsFbsBitmapGc = {0x10285BBE};
    1.53 +
    1.54  
    1.55  /**
    1.56  This enumeration holds the possible panic codes that may be raised 
    1.57 @@ -150,6 +143,7 @@
    1.58  	EGdiPanic_Invariant				= 3
    1.59  	};
    1.60  
    1.61 +
    1.62  /** 24-bit RGB colour value with 8 bits each for red, green and blue.
    1.63  
    1.64  All Graphics drawing functions are specified in terms of a 32-bit TRgb colour 
    1.65 @@ -268,6 +262,7 @@
    1.66  	TUint32 iValue;
    1.67  	};
    1.68  
    1.69 +
    1.70  /**
    1.71  @publishedAll
    1.72  @released
    1.73 @@ -288,50 +283,7 @@
    1.74  #define KRgbCyan		TRgb(0xffff00)
    1.75  #define KRgbGray		TRgb(0xaaaaaa)
    1.76  #define KRgbWhite		TRgb(0xffffff)
    1.77 -
    1.78 -
    1.79 -/** Display modes. 
    1.80 -@publishedAll
    1.81 -@released
    1.82 -*/
    1.83 -enum TDisplayMode
    1.84 -	{
    1.85 -	/** No display mode */
    1.86 -	ENone,
    1.87 -	/** Monochrome display mode (1 bpp) */
    1.88 -	EGray2,
    1.89 -	/** Four grayscales display mode (2 bpp) */
    1.90 -	EGray4,
    1.91 -	/** 16 grayscales display mode (4 bpp) */
    1.92 -	EGray16,
    1.93 -	/** 256 grayscales display mode (8 bpp) */
    1.94 -	EGray256,
    1.95 -	/** Low colour EGA 16 colour display mode (4 bpp) */
    1.96 -	EColor16,
    1.97 -	/** 256 colour display mode (8 bpp) */
    1.98 -	EColor256,
    1.99 -	/** 64,000 colour display mode (16 bpp) */
   1.100 -	EColor64K,
   1.101 -	/** True colour display mode (24 bpp) */
   1.102 -	EColor16M,
   1.103 -	/** (Not an actual display mode used for moving buffers containing bitmaps) */
   1.104 -	ERgb,
   1.105 -	/** 4096 colour display (12 bpp). */
   1.106 -	EColor4K,
   1.107 -	/** True colour display mode (32 bpp, but top byte is unused and unspecified) */
   1.108 -	EColor16MU,
   1.109 -	/** Display mode with alpha (24bpp colour plus 8bpp alpha) */
   1.110 -	EColor16MA,
   1.111 -	/** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */
   1.112 -	EColor16MAP,
   1.113 -	//Any new display mode should be insterted here!
   1.114 -	//There might be up to 255 display modes, so value of the last
   1.115 -	//inserted EColorXXX enum item should be less than 256 -
   1.116 -	//BC reasons!
   1.117 -	EColorLast
   1.118 -	};
   1.119 -
   1.120 -
   1.121 +#define KRgbTransparent	TRgb(0x000000,0x00)
   1.122  
   1.123  /** A set of static utility functions to get information about a display mode. 
   1.124  @publishedAll 
   1.125 @@ -346,13 +298,6 @@
   1.126  	IMPORT_C static TInt NumDisplayModeBitsPerPixel(TDisplayMode aDispMode);
   1.127  	};
   1.128  
   1.129 -/** Utility function to check if a display mode has Alpha channel information
   1.130 -@param aDisplayMode - the display mode being queried
   1.131 -@return ETrue if display mode contains Alpha information.
   1.132 -@internalTechnology
   1.133 -@released
   1.134 -*/
   1.135 -inline TBool IsAlphaChannel(TDisplayMode aDisplayMode);
   1.136  /** Provides user-definable palette support to the GDI.
   1.137  
   1.138  A palette is a user-defined set of colours, which is a subset of the full 
   1.139 @@ -487,7 +432,8 @@
   1.140  	TPoint iStart;
   1.141  	TRect iBoundingRect;
   1.142  	TBool iBoundingRectSet;
   1.143 -	TBool iInside;
   1.144 +	TInt16 iInsideX; // boolean, defined as TInt16 to maintain binary compatibility
   1.145 +	TInt16 iInsideY; // boolean, defined as TInt16 to maintain binary compatibility
   1.146  	TLineStatus iStatus;
   1.147  	};
   1.148  
   1.149 @@ -651,18 +597,28 @@
   1.150  	If the raterizer supports the outline and shadow fonts, it will set the bitmaptype as 
   1.151  	EFourColourBlendGlyphBitmap but only when glyph bitmap type is set as EAntiAliasedGlyphBitmap and 
   1.152  	when any of the EDropShadow or EOutline effect is on. Only rasterizer providers can use this enum.
   1.153 -
   1.154 -	@publishedPartner
   1.155  	*/
   1.156  	EFourColourBlendGlyphBitmap,
   1.157 +	/**
   1.158 +	This is used for glyphs, and not fonts, and is needed to inform the font drawing routines
   1.159 +	that the character should be drawn using the overall font setting. 
   1.160 +	For Internal Use Only.
   1.161 +	*/
   1.162 +	EGlyphBitmapTypeNotDefined,
   1.163 +	/**
   1.164 +	This is used to inform the rasterizer that the best match should be
   1.165 +	found for the bitmap type based upon its knowledge.
   1.166 +	For Internal Use Only.
   1.167 +	*/
   1.168 +	EAntiAliasedOrMonochromeGlyphBitmap,
   1.169  	};
   1.170  
   1.171 -
   1.172  /**
   1.173  Defines a set of font effects flags.
   1.174  
   1.175 -@publishedPartner For use by system/UI software.
   1.176 +@publishedAll 
   1.177  @released
   1.178 +WARNING: This Class is for use by system/UI software ONLY.
   1.179  */
   1.180  NONSHARABLE_CLASS(FontEffect)
   1.181  	{
   1.182 @@ -688,7 +644,6 @@
   1.183  	IMPORT_C static void SetEffect(TEffect aEffect, TBool aOn, TUint32& aFontEffect);
   1.184  	};
   1.185  
   1.186 -
   1.187  /** Encapsulates a font style. 
   1.188  
   1.189  The font style information is comprised of:
   1.190 @@ -820,8 +775,6 @@
   1.191  
   1.192  class CFont;
   1.193  
   1.194 -
   1.195 -
   1.196  /** Typeface store abstract base interface.
   1.197  
   1.198  This class provides the interface to a store for typefaces.
   1.199 @@ -935,12 +888,10 @@
   1.200  	IMPORT_C TBool IncrementFontCount(const CFont* aFont);
   1.201  private:
   1.202  	TBool FindFont(const CFont* aFont, TInt& aIdx) const;
   1.203 -
   1.204  	NONSHARABLE_CLASS(TFontAccess)
   1.205  	/**
   1.206  	Pairs a font with a count of how many clients of the typeface store 
   1.207  	are accessing that font. 
   1.208 -	@internalTechnology
   1.209      */
   1.210  		{
   1.211  	public:
   1.212 @@ -1226,11 +1177,17 @@
   1.213  
   1.214  	/** Sets the device's palette.
   1.215  	
   1.216 +	Setting the palette is only possible if the device has a modifiable palette, 
   1.217 +	which can be determined by calling PaletteAttributes().
   1.218 +	
   1.219  	@param aPalette The new palette for the device. */
   1.220  	virtual void SetPalette(CPalette* aPalette)=0;
   1.221  
   1.222  	/** Gets the device's current palette.
   1.223  	
   1.224 +	This function is only supported if the device has a modifiable palette, 
   1.225 +	which can be determined by calling PaletteAttributes().
   1.226 +	
   1.227  	@param aPalette On return, holds the device's current palette.
   1.228  	@return KErrNone, if successful; otherwise, another of the system-wide error 
   1.229  	codes. */
   1.230 @@ -1256,9 +1213,9 @@
   1.231  	};
   1.232  
   1.233  /**
   1.234 +WARNING: this Class is for internal use ONLY.  Compatibility is not guaranteed in future releases.
   1.235  UIDs corresponding to the CFont API extension functions
   1.236  @internalTechnology
   1.237 -@released
   1.238  */
   1.239  const TUid KFontCapitalAscent	= {0x1020498E};
   1.240  const TUid KFontMaxAscent		= {0x10204B10};
   1.241 @@ -1516,61 +1473,60 @@
   1.242  	// added to convert CFont to a handle-body pattern. SC is kept throught the
   1.243  	// new functions and BC is kept by keeping the protected functions in the
   1.244  	// same place in the class, and therefore in the same place in the vtable
   1.245 -	
   1.246  	/**
   1.247 -	This member is internal and not intended for use. Please see derived class for implementation
   1.248 -	@internalTechnology
   1.249 +	@publishedAll
   1.250 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.251  	*/
   1.252  	virtual TUid DoTypeUid() const=0;
   1.253  	/**
   1.254 -	This member is internal and not intended for use. Please see derived class for implementation
   1.255 -	@internalTechnology
   1.256 +	@publishedAll
   1.257 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.258  	*/
   1.259  	virtual TInt DoHeightInPixels() const=0;
   1.260  	/**
   1.261 -	This member is internal and not intended for use. Please see derived class for implementation
   1.262 -	@internalTechnology
   1.263 +	@publishedAll
   1.264 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.265  	*/
   1.266  	virtual TInt DoAscentInPixels() const=0;
   1.267  	IMPORT_C virtual TInt DoDescentInPixels() const;
   1.268  	/**
   1.269 -	This member is internal and not intended for use. Please see derived class for implementation
   1.270 -	@internalTechnology
   1.271 +	@publishedAll
   1.272 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.273  	*/
   1.274  	virtual TInt DoCharWidthInPixels(TChar aChar) const=0;
   1.275  	/**
   1.276 -	This member is internal and not intended for use. Please see derived class for implementation
   1.277 -	@internalTechnology
   1.278 +	@publishedAll
   1.279 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.280  	*/
   1.281  	virtual TInt DoTextWidthInPixels(const TDesC& aText) const=0;
   1.282  	/**
   1.283 -	This member is internal and not intended for use. Please see derived class for implementation
   1.284 -	@internalTechnology
   1.285 +	@publishedAll
   1.286 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.287  	*/
   1.288  	virtual TInt DoBaselineOffsetInPixels() const=0;
   1.289  	/**
   1.290 -	This member is internal and not intended for use. Please see derived class for implementation
   1.291 -	@internalTechnology
   1.292 +	@publishedAll
   1.293 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.294  	*/
   1.295  	virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels) const=0;
   1.296  	/**
   1.297 -	This member is internal and not intended for use. Please see derived class for implementation
   1.298 -	@internalTechnology
   1.299 +	@publishedAll
   1.300 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.301  	*/
   1.302  	virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const=0;
   1.303  	/**
   1.304 -	This member is internal and not intended for use. Please see derived class for implementation
   1.305 -	@internalTechnology
   1.306 +	@publishedAll
   1.307 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.308  	*/
   1.309  	virtual TInt DoMaxCharWidthInPixels() const=0;
   1.310  	/**
   1.311 -	This member is internal and not intended for use. Please see derived class for implementation
   1.312 -	@internalTechnology
   1.313 +	@publishedAll
   1.314 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.315  	*/
   1.316  	virtual TInt DoMaxNormalCharWidthInPixels() const=0;
   1.317  	/**
   1.318 -	This member is internal and not intended for use. Please see derived class for implementation
   1.319 -	@internalTechnology
   1.320 +	@publishedAll
   1.321 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases. Please see derived class for implementation.
   1.322  	*/
   1.323  	virtual TFontSpec DoFontSpecInTwips() const=0;
   1.324  
   1.325 @@ -1611,8 +1567,8 @@
   1.326  
   1.327  	/** Gets the font ascent in pixels.
   1.328  	Note that this deprecated function is replaced by the new @c FontMaxAscent()
   1.329 -	or in some cases @c FontCapitalAscent().
   1.330 -
   1.331 +	or in some cases @c FontCapitalAscent().	
   1.332 +	
   1.333  	@return The font ascent in pixels.
   1.334  	@see FontCapitalAscent()
   1.335  	@see FontMaxAscent()
   1.336 @@ -1621,7 +1577,7 @@
   1.337  	
   1.338  	/** Gets the font descent in pixels.
   1.339  	Note that this deprecated function is replaced by the new @c FontMaxDescent()
   1.340 -	or in some cases @c FontStandardDescent().
   1.341 +	or in some cases @c FontStandardDescent().	
   1.342  	
   1.343  	@return The font descent in pixels.
   1.344  	@see FontStandardDescent() 
   1.345 @@ -1709,6 +1665,15 @@
   1.346  	IMPORT_C static TBool CharactersJoin(TInt aLeftCharacter, TInt aRightCharacter);
   1.347  	IMPORT_C TInt ExtendedFunction(TUid aFunctionId, TAny* aParam = NULL) const;
   1.348  	IMPORT_C TBool GetCharacterPosition2(TPositionParam& aParam, RShapeInfo& aShapeInfo) const;
   1.349 +
   1.350 +	/** Gets the width in pixels of the specified descriptor when displayed in this 
   1.351 +	font.
   1.352 +	
   1.353 +	@param aText The descriptor whose width should be determined.
   1.354 +	@param aParam Parameter block that controls how much of aText is measured
   1.355 +	@return The width of the specified descriptor when displayed in this font, 
   1.356 +	in pixels. */
   1.357 +	IMPORT_C TInt TextWidthInPixels(const TDesC& aText,const TMeasureTextInput* aParam) const;
   1.358  	};
   1.359  
   1.360  class CFbsBitmap;
   1.361 @@ -1849,15 +1814,16 @@
   1.362  		/** Inverts the colour of each pixel that is drawn over, (pen and 
   1.363  		brush attributes are ignored). P=~s, B=~s */
   1.364  		EDrawModeNOTSCREEN=EInvertScreen,
   1.365 -		/** Inverts the pen and brush colours before ORing. P=(~p)|s, 
   1.366 -		B=(~b)|s */
   1.367 +		/** Inverts the screen colour before ORing. P=p|(~s), 
   1.368 +		B=b|(~s) */
   1.369  		EDrawModeNOTOR=EInvertScreen|EOr,
   1.370  		/** Inverts the pen and brush colours. P=~p, B=~b */
   1.371  		EDrawModeNOTPEN=EInvertPen|EPenmode,
   1.372 -		/** Inverts the screen, pen and brush colours before ORing. P=p|(~s), 
   1.373 -		B=b|(~s) */
   1.374 +		/** Inverts the pen and brush colours before ORing. P=(~p)|s, 
   1.375 +		B=(~b)|s */
   1.376  		EDrawModeORNOT=EOr|EInvertPen,
   1.377 -		/** NOT OR NOT mode. P=(~p)|(~s), B=(~b)|(~s) */
   1.378 +		/** Inverts the screen and pen and brush colours before ORing.
   1.379 +		P=(~p)|(~s), B=(~b)|(~s) */
   1.380  		EDrawModeNOTORNOT=EInvertScreen|EOr|EInvertPen,
   1.381  		/** Writes alpha information in the source directly into the destination, rather than blending. */
   1.382  		EDrawModeWriteAlpha=EWriteAlpha,
   1.383 @@ -1988,6 +1954,30 @@
   1.384  		Arabic and Hebrew). EFalse if left-to-right. */
   1.385  		TBool iParRightToLeft;	
   1.386  		};
   1.387 +	
   1.388 +	/**
   1.389 +	Parameters used in drawing text within supplied context.
   1.390 +	It is used by CGraphicsContext::DrawText() and CGraphicsContext::DrawTextVertical() family of API's
   1.391 +	to draw text from iStart to iEnd withing the supplied text descriptor.
   1.392 +	*/
   1.393 +	class TTextParameters
   1.394 +		{
   1.395 +	public:
   1.396 +		TTextParameters():
   1.397 +			iStart(0),
   1.398 +			iEnd(KMaxTInt),
   1.399 +			iFlags(0)
   1.400 +				{
   1.401 +				}
   1.402 +		TInt iStart;
   1.403 +		TInt iEnd;
   1.404 +		TUint16 iFlags;
   1.405 +		/* Reserved for future use */
   1.406 +		TAny* iReserved1;
   1.407 +		TAny* iReserved2;
   1.408 +		TAny* iReserved3;
   1.409 +		TAny* iReserved4;
   1.410 +		};
   1.411  public:
   1.412  	/** Gets a pointer to the graphics context's graphics device.
   1.413  	
   1.414 @@ -2054,12 +2044,21 @@
   1.415  	@see CGraphicsContext::TDrawModeComponents */
   1.416  	virtual void SetDrawMode(TDrawMode aDrawingMode)=0;
   1.417  
   1.418 -	/** Sets the clipping rectangle.
   1.419 -	
   1.420 -	The area of visible drawing depends on the clipping region. The default 
   1.421 -	clipping rectangle is the full device area.
   1.422 -	
   1.423 -	@param aRect The clipping rectangle. */
   1.424 +	/** Sets the clipping rectangle.	 
   1.425 +	
   1.426 +	The area of visible drawing depends on the clipping rectangle, any items 
   1.427 +	that fall outside the extent of the clipping rectangle will not be drawn. 
   1.428 +	The default clipping rectangle is the full device area.
   1.429 +	
   1.430 +	Note that clipping is additive. If a clipping region has been set using SetClippingRegion() 
   1.431 +	then clipping will be to the intersection of that region and this rectangle.
   1.432 +		
   1.433 +	@param aRect The rectangle to be used as the clipping rectangle. Note that 
   1.434 +	this rectangle is tranformed by the current co-ordinate origin before it is used. 
   1.435 +	The co-ordinate origin is set using SetOrigin().
   1.436 +	
   1.437 +	@see CGraphicsContext::SetClippingRegion() 
   1.438 +	@see CGraphicsContext::SetOrigin() */
   1.439  	virtual void SetClippingRect(const TRect& aRect)=0;
   1.440  
   1.441  	/** Cancels any clipping rectangle.
   1.442 @@ -2170,8 +2169,7 @@
   1.443  	gap between the space and the beginning of the next word.
   1.444  	
   1.445  	@param aExcessWidth The width (in pixels) to be distributed between the 
   1.446 -	specified number of spaces. It may be positive, in which case the text is 
   1.447 -	stretched, or negative, in which case it is shrunk. 
   1.448 +	specified number of spaces. 
   1.449  	@param aNumGaps The number of word spaces (characters with the code U+0020) 
   1.450  	over which the change in width is distributed. */
   1.451  	virtual void SetWordJustification(TInt aExcessWidth,TInt aNumGaps)=0;
   1.452 @@ -2248,7 +2246,8 @@
   1.453  	expand a line of characters.
   1.454  	
   1.455  	@param aExcessWidth The excess width (in pixels) to be distributed between 
   1.456 -	the specified number of characters. 
   1.457 +	the specified number of characters. It may be positive, in which case the text is 
   1.458 +	stretched, or negative, in which case it is shrunk.
   1.459  	@param aNumChars The number of characters involved. */
   1.460  	virtual void SetCharJustification(TInt aExcessWidth,TInt aNumChars)=0;
   1.461  
   1.462 @@ -2908,10 +2907,20 @@
   1.463  	RGB in the pair. */	
   1.464  	virtual void MapColors(const TRect &aRect,const TRgb *aColors,TInt aNumPairs,TBool aMapForwards) = 0;
   1.465  	
   1.466 -	/** Sets the clipping region.
   1.467 -	@param aClippingRegion The new clipping region. 
   1.468 +	/** Sets the clipping region, any items that fall outside the extent of the clipping 
   1.469 +	region will not be drawn.
   1.470 +	
   1.471 +	Note that clipping is additive. If a clipping rectangle has been set using SetClippingRect() 
   1.472 +	then clipping will be to the intersection of that rectangle and this region.
   1.473 +	
   1.474 +	@param aRegion The new clipping region. Note that clipping region co-ordinates are
   1.475 +	used as absolute co-ordinates, they are not transformed by the current co-ordinate 
   1.476 +	origin before use (as occurs in SetClippingRect()).
   1.477 +	 
   1.478  	@return KErrNone if successful; KErrArgument if the TRegion is not valid; KErrNoMemory if there is insufficient memory.
   1.479 -	@see CGraphicsContext::CancelClippingRegion()*/		
   1.480 +	
   1.481 +	@see CGraphicsContext::CancelClippingRegion() 
   1.482 +	@see CGraphicsContext::SetClippingRect() */		
   1.483  	virtual TInt SetClippingRegion(const TRegion &aRegion) = 0;
   1.484  	
   1.485  	/** Cancels the current clipping region. 
   1.486 @@ -2944,22 +2953,33 @@
   1.487  	@param aShadowColor Shadow colour of the font returned by the funtion.
   1.488  	@return KErrNone, if successful; otherwise, another of the system-wide errors. */
   1.489  	IMPORT_C TInt GetShadowColor(TRgb& aShadowColor);
   1.490 -	
   1.491 +
   1.492  	/** Determine if the Gc is a CFbsBitGc
   1.493  	@return ETrue, if the Gc is a CFbsBitGc, EFalse otherwise 
   1.494 -	@internalComponent
   1.495 +	@publishedAll
   1.496 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases.
   1.497  	*/
   1.498  	IMPORT_C TBool IsFbsBitGc() const;
   1.499 +
   1.500 +	IMPORT_C void DrawText(const TDesC& aText,const TTextParameters* iParam,const TPoint& aPosition);
   1.501 +	IMPORT_C void DrawText(const TDesC& aText,const TTextParameters* iParam,const TRect& aBox,TInt aBaselineOffset,TTextAlign aHrz=ELeft,TInt aMargin=0);
   1.502 +	IMPORT_C void DrawText(const TDesC& aText,const TTextParameters* iParam,const TPoint& aPosition,const TDrawTextParam& aParam);
   1.503 +
   1.504 +	IMPORT_C void DrawTextVertical(const TDesC& aText,const TTextParameters* iParam,const TPoint& aPos,TBool aUp);
   1.505 +	IMPORT_C void DrawTextVertical(const TDesC& aText,const TTextParameters* iParam,const TRect& aBox,TInt aBaselineOffset,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0);
   1.506 +	
   1.507 +	IMPORT_C TInt DrawTextExtended(const TDesC& aText,const TTextParameters* iParam,const TPoint& aPosition,const TDrawTextExtendedParam& aParam);
   1.508  	
   1.509  protected:
   1.510 -	
   1.511 +
   1.512  	/**
   1.513  	An APIExtension method to allow the addition of new APIs to retain compatibility 
   1.514  	with previous versions of gdi.dll
   1.515  	@param aOutput is for output
   1.516  	@param aInput is for input
   1.517  	@see CGraphicsContext
   1.518 -	@internalComponent
   1.519 +	@publishedAll
   1.520 +	WARNING: Function for internal use ONLY.  Compatibility is not guaranteed in future releases.
   1.521  	*/
   1.522  	IMPORT_C virtual TInt APIExtension(TUid aUid, TAny*& aOutput, TAny* aInput);	
   1.523  	
   1.524 @@ -3121,8 +3141,7 @@
   1.525  	@param aAlphaBmp A pointer to the bitmap used as an alpha blending factor.
   1.526  	@param aAlphaPt Position of the first pixel in the alpha bitmap that should be used as a source 
   1.527  	                for the alpha blending. The size of the area is the same as the 
   1.528 -	                source bitmap area - aSrcRect parameter.
   1.529 -	@return KErrNone, if successful; otherwise, another of the system-wide error codes.*/	
   1.530 +	                source bitmap area - aSrcRect parameter.*/	
   1.531  	
   1.532  	virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CFbsBitmap* aSrcBmp, const TRect& aSrcRect, const CFbsBitmap* aAlphaBmp, const TPoint& aAlphaPt) = 0;	
   1.533  	
   1.534 @@ -3136,8 +3155,7 @@
   1.535  	@param aAlphaBmp A pointer to the bitmap used as an alpha blending factor.
   1.536  	@param aAlphaPt Position of the first pixel in the alpha bitmap that should be used as a source 
   1.537  	                for the alpha blending. The size of the area is the same as the 
   1.538 -	                source bitmap area - aSrcRect parameter.
   1.539 -	@return KErrNone, if successful; otherwise, another of the system-wide error codes.*/	
   1.540 +	                source bitmap area - aSrcRect parameter.*/
   1.541  	virtual	TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CWsBitmap* aSrcBmp,	const TRect& aSrcRect, const CWsBitmap* aAlphaBmp, const TPoint& aAlphaPt) = 0;
   1.542  	
   1.543  protected:
   1.544 @@ -4101,52 +4119,11 @@
   1.545  	const MGraphicsDeviceMap* iDevice;
   1.546  	};
   1.547  
   1.548 -/**
   1.549 -Provides methods to map a TLanguage type to some pre-defined glyph samples.
   1.550 -Samples are defined per writing script, e.g. specifying ELangFrench or
   1.551 -ELangGerman will return the same set of samples.
   1.552 -These samples are typically the tallest and 'deep'est characters w.r.t
   1.553 -various scripts, useful for font rasterizers when calculating metrics.
   1.554 -@internalTechnology
   1.555 -*/
   1.556 -NONSHARABLE_CLASS(GlyphSample)
   1.557 -	{
   1.558 -public:
   1.559 -	/**
   1.560 -	Writing scripts defined according to Unicode.
   1.561 -	*/
   1.562 -	enum TScript
   1.563 -		{
   1.564 -		EScriptDefault			= 0x0,	// No script, can't be bothered
   1.565 -		EScriptNone				= 0x1,	// No script, really
   1.566 -		EScriptOther			= 0x2,	// Unsupported scripts
   1.567 -		EScriptLatin			= 0x3,	// European
   1.568 -		EScriptGreek			= 0x4,	// European
   1.569 -		EScriptCyrillic			= 0x5,	// European
   1.570 -		EScriptHebrew			= 0x6,	// Middle Eastern
   1.571 -		EScriptArabic			= 0x7,	// Middle Eastern
   1.572 -		EScriptDevanagari		= 0x8,	// Indic
   1.573 -		EScriptThai				= 0x9,	// SE Asian
   1.574 -		EScriptHanIdeographs	= 0xA,	// E Asian
   1.575 -		};
   1.576 -public:
   1.577 -	IMPORT_C static TInt TLanguage2TScript(TLanguage aLanguage);
   1.578 -	IMPORT_C static const TPtrC TScript2GlyphSample(TInt aScript);
   1.579 -private:
   1.580 -	static const TInt KTLanguage2TScript[];
   1.581 -	static const TText* const KTScript2GlyphSample[];
   1.582 -	};
   1.583 -	
   1.584 -/*
   1.585 -Structure used as a package for GetUnderlineMetrics to pass to the relevant
   1.586 -section of APIExtension.
   1.587 -@internalTechnology
   1.588 -*/
   1.589 -struct TTwoTInt
   1.590 -{
   1.591 -	TInt iTop;
   1.592 -	TInt iBottom;
   1.593 -};
   1.594 -	
   1.595 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS	
   1.596 +#include <graphics/gdi/gdistructs.h>
   1.597 +#include <graphics/gdi/gdiinline.inl>
   1.598 +#endif //SYMBIAN_ENABLE_SPLIT_HEADERS	
   1.599 +
   1.600  #include <gdi.inl>
   1.601 +
   1.602  #endif // __GDI_H__