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__