S60UIExampleappui.inc
上传用户:laixiong
上传日期:2007-03-11
资源大小:2994k
文件大小:1144k
源码类别:

Symbian

开发平台:

C/C++

  1. inline TRgb& operator|=(const TRgb& aColor);
  2. inline TRgb& operator^=(const TRgb& aColor);
  3. inline TUint32 Value() const;
  4. inline TUint32 Internal() const;
  5. inline void SetInternal(TUint32 aInternal);
  6. __declspec(dllexport) TInt Difference(const TRgb& aColor) const;
  7. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  8. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  9. __declspec(dllexport) static TRgb Color16MU(TInt a0RGB);
  10. __declspec(dllexport) TInt Color16MU() const;
  11. __declspec(dllexport) static TRgb Color16MA(TUint aARGB);
  12. __declspec(dllexport) TUint Color16MA() const;
  13. inline TInt _Gray2() const;
  14. inline TInt _Gray4() const;
  15. inline TInt _Gray16() const;
  16. inline TInt _Gray256() const;
  17. inline TInt _Color4K() const;
  18. inline TInt _Color64K() const;
  19. inline TInt _Color16M() const;
  20. inline TInt _Color16MU() const;
  21. inline TUint _Color16MA() const;
  22. inline static TRgb _Gray2(TInt aGray2);
  23. inline static TRgb _Gray4(TInt aGray4);
  24. inline static TRgb _Gray16(TInt aGray16);
  25. inline static TRgb _Gray256(TInt aGray256);
  26. inline static TRgb _Color4K(TInt aColor4K);
  27. inline static TRgb _Color64K(TInt aColor64K);
  28. inline static TRgb _Color16M(TInt aColor16M);
  29. inline static TRgb _Color16MU(TInt a0RGB);
  30. inline static TRgb _Color16MA(TUint aARGB);
  31. private:
  32. TUint32 iValue;
  33. };
  34. #line 279
  35. enum TDisplayMode
  36. {
  37. ENone,
  38. EGray2,
  39. EGray4,
  40. EGray16,
  41. EGray256,
  42. EColor16,
  43. EColor256,
  44. EColor64K,
  45. EColor16M,
  46. ERgb,
  47. EColor4K,
  48. EColor16MU,
  49. EColor16MA,
  50. EColorLast
  51. };
  52. class TDisplayModeUtils
  53. {
  54. public:
  55. __declspec(dllexport) static TBool IsDisplayModeColor(TDisplayMode aDispMode);
  56. __declspec(dllexport) static TInt NumDisplayModeColors(TDisplayMode aDispMode);
  57. __declspec(dllexport) static TInt NumDisplayModeBitsPerPixel(TDisplayMode aDispMode);
  58. };
  59. #line 351
  60. class CPalette : public CBase
  61. {
  62. public:
  63. __declspec(dllexport) static CPalette* NewL(TInt aNumberOfEntries);
  64. __declspec(dllexport) static CPalette* NewDefaultL(TDisplayMode aDispMode);
  65. __declspec(dllexport) ~CPalette();
  66. __declspec(dllexport) void Clear();
  67. inline TInt Entries() const;
  68. __declspec(dllexport) TRgb GetEntry(TInt aPaletteIndex) const;
  69. __declspec(dllexport) TRgb NearestEntry(const TRgb& aColor) const;
  70. __declspec(dllexport) TInt NearestIndex(const TRgb& aColor) const;
  71. __declspec(dllexport) void SetEntry(TInt aPaletteIndex,const TRgb& aPaletteEntry);
  72. __declspec(dllexport) void GetDataPtr(TInt aFirstColor,TInt aNumColors,TPtr8& aPtr);
  73. protected:
  74. __declspec(dllexport) CPalette();
  75. void ConstructL(TInt aNumberOfEntries);
  76. protected:
  77. TRgb* iArray;
  78. TInt iNumEntries;
  79. };
  80. class TColor256Util
  81. {
  82. public:
  83. __declspec(dllexport) void Construct(const CPalette& aPalette);
  84. __declspec(dllexport) TInt Color256(TRgb aRgb) const;
  85. __declspec(dllexport) void Color256(TUint8* aDestination,const TRgb* aSource,TInt aNumPixels) const;
  86. inline TRgb Color256(TInt aColor256) const;
  87. __declspec(dllexport) static const TColor256Util* Default();
  88. public:
  89. TUint32 iColorTable[256];
  90. #line 404
  91. TUint8 iInverseColorTable[0x1000];
  92. };
  93. #line 419
  94. class TLinearDDA
  95. {
  96. public:
  97. enum TLineMode
  98. {
  99. ECenter,
  100. ELeft
  101. };
  102. public:
  103. __declspec(dllexport) TLinearDDA();
  104. __declspec(dllexport) TLinearDDA(const TLinearDDA& aLine);
  105. __declspec(dllexport) void Construct(const TPoint& aStart,const TPoint& aFinish,TLineMode aMode=ECenter);
  106. __declspec(dllexport) TBool SingleStep(TPoint& aPosition);
  107. __declspec(dllexport) TBool SingleScanline(TPoint& aStartPosition,TPoint& aEndPosition);
  108. __declspec(dllexport) TBool NextStep(TPoint& aPosition);
  109. __declspec(dllexport) void JumpToRect(const TRect& aRect);
  110. __declspec(dllexport) void JumpToXCoord(const TInt aXCoord,TInt& aYCoord);
  111. __declspec(dllexport) void JumpToYCoord(TInt& aXCoord,const TInt aYCoord);
  112. private:
  113. void UpdatePosition();
  114. private:
  115. enum TLineStatus
  116. {
  117. EInitialised,
  118. ECurrent,
  119. EComplete
  120. };
  121. private:
  122. TInt iCount;
  123. TSize iDifference;
  124. TPoint iFinish;
  125. TInt iGradient;
  126. TPoint iInc;
  127. TPoint iPos;
  128. TPoint iStart;
  129. TRect iBoundingRect;
  130. TBool iBoundingRectSet;
  131. TBool iInside;
  132. TLineStatus iStatus;
  133. };
  134. #line 471
  135. enum TFontPosture
  136. {
  137. EPostureUpright,
  138. EPostureItalic
  139. };
  140. enum TFontStrokeWeight
  141. {
  142. EStrokeWeightNormal,
  143. EStrokeWeightBold
  144. };
  145. enum TFontPrintPosition
  146. {
  147. EPrintPosNormal,
  148. EPrintPosSuperscript,
  149. EPrintPosSubscript
  150. };
  151. enum TFontUnderline
  152. {
  153. EUnderlineOff,
  154. EUnderlineOn
  155. };
  156. enum TFontStrikethrough
  157. {
  158. EStrikethroughOff,
  159. EStrikethroughOn
  160. };
  161. const TInt KMaxTypefaceNameLength=0x18;
  162. #line 556
  163. class TTypeface
  164.     {
  165. public:
  166. enum
  167. {
  168. EProportional=1,
  169. ESerif=2,
  170. ESymbol=4
  171. };
  172. public:
  173. __declspec(dllexport) TTypeface();
  174. __declspec(dllexport) TBool operator==(const TTypeface& aTypeface) const;
  175. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  176. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  177. __declspec(dllexport) void SetAttributes(TInt aMask);
  178. __declspec(dllexport) void SetIsProportional(TBool aIsProportional);
  179. __declspec(dllexport) void SetIsSerif(TBool aIsSerif);
  180. __declspec(dllexport) void SetIsSymbol(TBool aIsSymbol);
  181. __declspec(dllexport) TInt Attributes() const;
  182. __declspec(dllexport) TBool IsProportional() const;
  183. __declspec(dllexport) TBool IsSerif() const;
  184. __declspec(dllexport) TBool IsSymbol() const;
  185. public:
  186.     TBufC<KMaxTypefaceNameLength> iName;
  187. private:
  188.     TUint32 iFlags;
  189.     };
  190. #line 600
  191. enum TGlyphBitmapType
  192. {
  193. EDefaultGlyphBitmap = 0,
  194. EMonochromeGlyphBitmap,
  195. EAntiAliasedGlyphBitmap
  196. };
  197. #line 618
  198. class FontEffect
  199. {
  200. public:
  201. enum TEffect
  202. {
  203. ENone = 0x0,
  204. EAlgorithmicBold= 0x10,
  205. EDropShadow = 0x20,
  206. EOutline = 0x40,
  207. EEmbossed = 0x80,
  208. EEngraved      = 0x100,
  209. ESoftEdge = 0x200,
  210. EUserDefined1 = 0x400,
  211. EUserDefined2 = 0x800,
  212. EUserDefined3 = 0x1000,
  213. EUserDefined4 = 0x2000,
  214. EUserDefined5 = 0x4000,
  215. EUserDefined6 = 0x8000,
  216. };
  217. public:
  218. __declspec(dllexport) static TBool IsEffectOn(TEffect aEffect, TUint32 aFontEffect);
  219. __declspec(dllexport) static void SetEffect(TEffect aEffect, TBool aOn, TUint32& aFontEffect);
  220. };
  221. #line 661
  222. class TFontStyle
  223. {
  224. public:
  225. __declspec(dllexport) TFontStyle();
  226. __declspec(dllexport) TFontStyle(TFontPosture aPost,TFontStrokeWeight aStrWgt,TFontPrintPosition aPrintPos);
  227. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  228. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  229. __declspec(dllexport) TFontPosture Posture() const;
  230. __declspec(dllexport) TFontStrokeWeight StrokeWeight() const;
  231. __declspec(dllexport) TFontPrintPosition PrintPosition() const;
  232. __declspec(dllexport) void SetPosture(TFontPosture aPosture);
  233. __declspec(dllexport) void SetStrokeWeight(TFontStrokeWeight aStrokeWeight);
  234. __declspec(dllexport) void SetPrintPosition(TFontPrintPosition aPrintPosition);
  235. inline TGlyphBitmapType BitmapType() const;
  236. inline void SetBitmapType(TGlyphBitmapType aBitmapType);
  237. inline TBool operator==(const TFontStyle& aFontStyle) const;
  238. __declspec(dllexport) TUint32 Effects() const;
  239. __declspec(dllexport) TBool IsEffectOn(FontEffect::TEffect aEffect) const;
  240. __declspec(dllexport) void SetEffects(TUint32 aEffects);
  241. __declspec(dllexport) void SetEffects(FontEffect::TEffect aEffect, TBool aOn);
  242. private:
  243. enum
  244. {
  245. EItalic=0x1,
  246. EBold=0x2,
  247. ESuper=0x4,
  248. ESub=0x8
  249. };
  250. private:
  251. TUint32 iFlags;
  252. TAny* iReserved1;
  253. TAny* iReserved2;
  254. };
  255. #line 703
  256. class TFontSpec
  257. {
  258. public:
  259. __declspec(dllexport) TFontSpec();
  260. __declspec(dllexport) TFontSpec(const TDesC& aTypefaceName,TInt aHeight);
  261. __declspec(dllexport) TBool operator==(const TFontSpec& aFontSpec) const;
  262. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  263. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  264. public:
  265. TTypeface iTypeface;
  266. TInt iHeight;
  267. TFontStyle iFontStyle;
  268. };
  269. #line 731
  270. class TTypefaceSupport
  271.     {
  272. public:
  273.     TTypeface iTypeface;
  274.     TInt iNumHeights;
  275.     TInt iMinHeightInTwips;
  276.     TInt iMaxHeightInTwips;
  277.     TBool iIsScalable;
  278.     };
  279. const TInt KSuperSubScalingPercentage=67;
  280. const TInt KSuperscriptOffsetPercentage=-28;
  281. const TInt KSubscriptOffsetPercentage=14;
  282. class CFont;
  283. #line 783
  284. class CTypefaceStore : public CBase
  285. {
  286. public:
  287. __declspec(dllexport) ~CTypefaceStore();
  288. #line 801
  289. virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  290. #line 815
  291. virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  292. #line 836
  293. virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight) = 0;
  294. virtual TInt NumTypefaces() const=0;
  295. #line 854
  296. virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const=0;
  297. #line 865
  298. virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  299. __declspec(dllexport) void ReleaseFont(CFont* aFont);
  300. __declspec(dllexport) static TInt BaselineOffset(TInt aHeight,TFontPrintPosition aPos);
  301. __declspec(dllexport) static TInt SuperSubHeight(TInt aHeight,TFontPrintPosition aPos);
  302. protected:
  303. __declspec(dllexport) CTypefaceStore();
  304. __declspec(dllexport) void ConstructL();
  305. __declspec(dllexport) void AddFontL(CFont* aFont);
  306. protected:
  307. class TFontAccess
  308. {
  309. public:
  310. CFont* iFont;
  311. TInt iAccessCount;
  312. };
  313. protected:
  314. #line 896
  315. CArrayFixFlat<TFontAccess> * iFontAccess;
  316. };
  317. const TInt KMaxFontCacheEntries=32;
  318. #line 919
  319. class CFontCache : public CBase
  320. {
  321. public:
  322. __declspec(dllexport) CFontCache();
  323. __declspec(dllexport) CFontCache(TInt aMaxEntries);
  324. __declspec(dllexport) ~CFontCache();
  325. __declspec(dllexport) CFont* Search(const TFontSpec& aFontSpec);
  326. __declspec(dllexport) CFont* AddEntryL(CFont* aFont,const TFontSpec& aFontSpec);
  327. __declspec(dllexport) CFont* RemoveFirstEntry();
  328. public:
  329. TInt iNumHits;
  330. TInt iNumMisses;
  331. private:
  332. class CFontCacheEntry : public CBase
  333. {
  334. public:
  335. CFontCacheEntry(CFont* aFont,const TFontSpec& aFontSpec,CFontCacheEntry* aNext);
  336. public:
  337. CFont* iFont;
  338. TFontSpec iSpec;
  339. CFontCacheEntry* iNext;
  340. };
  341. private:
  342. TInt iNumEntries;
  343. TInt iMaxEntries;
  344. CFontCacheEntry* iFirst;
  345. };
  346. #line 960
  347. class MGraphicsDeviceMap
  348.     {
  349. public:
  350. __declspec(dllexport) MGraphicsDeviceMap();
  351. __declspec(dllexport) virtual ~MGraphicsDeviceMap();
  352. __declspec(dllexport) TPoint TwipsToPixels(const TPoint& aTwipPoint) const;
  353. __declspec(dllexport) TRect TwipsToPixels(const TRect& aTwipRect) const;
  354. __declspec(dllexport) TPoint PixelsToTwips(const TPoint& aPixelPoint) const;
  355. __declspec(dllexport) TRect PixelsToTwips(const TRect& aPixelRect) const;
  356. virtual TInt HorizontalTwipsToPixels(TInt aTwips) const=0;
  357. virtual TInt VerticalTwipsToPixels(TInt aTwips) const=0;
  358. virtual TInt HorizontalPixelsToTwips(TInt aPixels) const=0;
  359. virtual TInt VerticalPixelsToTwips(TInt aPixels) const=0;
  360. #line 1016
  361. virtual TInt GetNearestFontInTwips(CFont*& aFont,const TFontSpec& aFontSpec)=0;
  362. #line 1034
  363. virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& , const TFontSpec& ){return 0;}
  364. #line 1056
  365. virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& , const TFontSpec& , TInt ){return 0;}
  366. #line 1068
  367. virtual void ReleaseFont(CFont* aFont)=0;
  368.     };
  369. class CGraphicsContext;
  370. #line 1083
  371. class CGraphicsDevice : public CBase , public MGraphicsDeviceMap
  372.     {
  373. public:
  374. virtual TDisplayMode DisplayMode() const=0;
  375. virtual TSize SizeInPixels() const=0;
  376. virtual TSize SizeInTwips() const=0;
  377.     virtual TInt CreateContext(CGraphicsContext*& aGC)=0;
  378.     virtual TInt NumTypefaces() const=0;
  379. #line 1129
  380.     virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const=0;
  381. #line 1143
  382. virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  383. virtual void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const=0;
  384. virtual void SetPalette(CPalette* aPalette)=0;
  385. virtual TInt GetPalette(CPalette*& aPalette) const=0;
  386.     };
  387. #line 1175
  388. class TCodeSection
  389. {
  390. public:
  391. TInt iStart;
  392. TInt iEnd;
  393. };
  394. const TUid KFontCapitalAscent = {0x1020498E};
  395. const TUid KFontMaxAscent = {0x10204B10};
  396. const TUid KFontStandardDescent = {0x10204B11};
  397. const TUid KFontMaxDescent = {0x10205AFC};
  398. const TUid KFontLineGap = {0x10204B12};
  399. #line 1209
  400. class CFont : public CBase
  401. {
  402. friend class CTypefaceStore;
  403. public:
  404. #line 1221
  405. enum TTextDirection
  406. {
  407. EHorizontal,
  408. EVertical
  409. };
  410. #line 1240
  411. class TPositionParam
  412. {
  413. public:
  414. TPositionParam():
  415. iDirection(EHorizontal),
  416. iFlags(0),
  417. iPosInText(0),
  418. iOutputGlyphs(0)
  419. {
  420. }
  421. enum
  422. {
  423. EMaxInputChars = 18,
  424. EMaxOutputGlyphs = 8
  425. };
  426. enum TFlags
  427. {
  428. EFLogicalOrder = 1
  429. };
  430. TInt16 iDirection;
  431. TUint16 iFlags;
  432. TPtrC iText;
  433. TInt iPosInText;
  434. TPoint iPen;
  435. class TOutput
  436. {
  437. public:
  438. TOutput() : iBitmapSize(TSize::EUninitialized),
  439. iBounds(TRect::EUninitialized) {}
  440. TUint iCode;
  441. const TUint8* iBitmap;
  442. TSize iBitmapSize;
  443. TRect iBounds;
  444. };
  445. TOutput iOutput[EMaxOutputGlyphs];
  446. TInt iOutputGlyphs;
  447. };
  448. #line 1317
  449. class TMeasureTextInput
  450. {
  451. public:
  452. TMeasureTextInput():
  453. iStartInputChar(0),
  454. iEndInputChar(KMaxTInt),
  455. iDirection(EHorizontal),
  456. iFlags(0),
  457. iMaxAdvance(KMaxTInt),
  458. iMaxBounds(KMaxTInt),
  459. iCharJustNum(0),
  460. iCharJustExcess(0),
  461. iWordJustNum(0),
  462. iWordJustExcess(0)
  463. {
  464. }
  465. enum TFlags
  466. {
  467. EFVisualOrder = 1
  468. };
  469. TInt iStartInputChar;
  470. TInt iEndInputChar;
  471. TUint16 iDirection;
  472. TUint16 iFlags;
  473. TInt iMaxAdvance;
  474. TInt iMaxBounds;
  475. TInt iCharJustNum;
  476. TInt iCharJustExcess;
  477. TInt iWordJustNum;
  478. TInt iWordJustExcess;
  479. };
  480. #line 1389
  481. class TMeasureTextOutput
  482. {
  483. public:
  484. TInt iChars;
  485. TInt iGlyphs;
  486. TInt iGroups;
  487. TInt iSpaces;
  488. TRect iBounds;
  489. TSize iMaxGlyphSize;
  490. };
  491. #line 1422
  492. enum TCharacterDataAvailability
  493. {
  494. ENoCharacterData,
  495. ECharacterWidthOnly,
  496. EAllCharacterData
  497. };
  498. private:
  499. virtual TUid DoTypeUid() const=0;
  500. virtual TInt DoHeightInPixels() const=0;
  501. virtual TInt DoAscentInPixels() const=0;
  502. __declspec(dllexport) virtual TInt DoDescentInPixels() const;
  503. virtual TInt DoCharWidthInPixels(TChar aChar) const=0;
  504. virtual TInt DoTextWidthInPixels(const TDesC& aText) const=0;
  505. virtual TInt DoBaselineOffsetInPixels() const=0;
  506. virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels) const=0;
  507. virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const=0;
  508. virtual TInt DoMaxCharWidthInPixels() const=0;
  509. virtual TInt DoMaxNormalCharWidthInPixels() const=0;
  510. virtual TFontSpec DoFontSpecInTwips() const=0;
  511. protected:
  512. __declspec(dllexport) virtual TCharacterDataAvailability DoGetCharacterData(TUint aCode, TOpenFontCharMetrics& aMetrics,const TUint8*& aBitmap,TSize& aBitmapSize) const;
  513. __declspec(dllexport) virtual TBool DoGetCharacterPosition(TPositionParam& aParam) const;
  514. __declspec(dllexport) virtual TInt DoExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  515. protected:
  516. __declspec(dllexport) virtual ~CFont();
  517. public:
  518. inline TInt FontCapitalAscent() const;
  519. inline TInt FontMaxAscent() const;
  520. inline TInt FontStandardDescent() const;
  521. inline TInt FontMaxDescent() const;
  522. inline TInt FontLineGap() const;
  523. inline TInt FontMaxHeight() const;
  524. public:
  525. #line 1475
  526. __declspec(dllexport) TUid TypeUid() const;
  527. __declspec(dllexport) TInt HeightInPixels() const;
  528. __declspec(dllexport) TInt AscentInPixels() const;
  529. __declspec(dllexport) TInt DescentInPixels() const;
  530. __declspec(dllexport) TInt CharWidthInPixels(TChar aChar) const;
  531. __declspec(dllexport) TInt TextWidthInPixels(const TDesC& aText) const;
  532. __declspec(dllexport) TInt BaselineOffsetInPixels() const;
  533. #line 1528
  534. __declspec(dllexport) TInt TextCount(const TDesC& aText,TInt aWidthInPixels) const;
  535. #line 1544
  536. __declspec(dllexport) TInt TextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const;
  537. __declspec(dllexport) TInt MaxCharWidthInPixels() const;
  538. __declspec(dllexport) TInt MaxNormalCharWidthInPixels() const;
  539. __declspec(dllexport) TFontSpec FontSpecInTwips() const;
  540. __declspec(dllexport) TCharacterDataAvailability GetCharacterData(TUint aCode, TOpenFontCharMetrics& aMetrics,const TUint8*& aBitmap,TSize& aBitmapSize) const;
  541. __declspec(dllexport) TBool GetCharacterPosition(TPositionParam& aParam) const;
  542. __declspec(dllexport) TInt WidthZeroInPixels() const;
  543. __declspec(dllexport) TInt MeasureText(const TDesC& aText, const TMeasureTextInput* aInput = 0 , TMeasureTextOutput* aOutput = 0 ) const;
  544. __declspec(dllexport) static TBool CharactersJoin(TInt aLeftCharacter, TInt aRightCharacter);
  545. __declspec(dllexport) TInt ExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  546. };
  547. class CFbsBitmap;
  548. class CWsBitmap;
  549. #line 1602
  550. class CGraphicsContext : public CBase
  551. {
  552. public:
  553. enum TTextAlign
  554. {
  555. ELeft,
  556. ECenter,
  557. ERight
  558. };
  559. #line 1628
  560. enum TDrawModeComponents
  561. {
  562. EInvertScreen=1,
  563. EXor=2,
  564. EOr=4,
  565. EAnd=8,
  566. ELogicalOp=14,
  567. EInvertPen=16,
  568. EPenmode=32,
  569. EWriteAlpha=64,
  570. };
  571. #line 1682
  572. enum TDrawMode
  573. {
  574. EDrawModeAND=EAnd,
  575. EDrawModeNOTAND=EInvertScreen|EAnd,
  576. EDrawModePEN=EPenmode,
  577. EDrawModeANDNOT=EAnd|EInvertPen,
  578. EDrawModeXOR=EXor,
  579. EDrawModeOR=EOr,
  580. EDrawModeNOTANDNOT=EInvertScreen|EAnd|EInvertPen,
  581. EDrawModeNOTXOR=EInvertScreen|EXor,
  582. EDrawModeNOTSCREEN=EInvertScreen,
  583. EDrawModeNOTOR=EInvertScreen|EOr,
  584. EDrawModeNOTPEN=EInvertPen|EPenmode,
  585. EDrawModeORNOT=EOr|EInvertPen,
  586. EDrawModeNOTORNOT=EInvertScreen|EOr|EInvertPen,
  587. EDrawModeWriteAlpha=EWriteAlpha,
  588. };
  589. #line 1730
  590. enum TPenStyle
  591. {
  592. ENullPen,
  593. ESolidPen,
  594. EDottedPen,
  595. EDashedPen,
  596. EDotDashPen,
  597. EDotDotDashPen
  598. };
  599. enum TBrushStyle
  600. {
  601. ENullBrush,
  602. ESolidBrush,
  603. EPatternedBrush,
  604. EVerticalHatchBrush,
  605. EForwardDiagonalHatchBrush,
  606. EHorizontalHatchBrush,
  607. ERearwardDiagonalHatchBrush,
  608. ESquareCrossHatchBrush,
  609. EDiamondCrossHatchBrush
  610. };
  611. #line 1799
  612. enum TFillRule
  613. {
  614. EAlternate,
  615. EWinding
  616. };
  617. struct TDrawTextParam
  618. {
  619. public:
  620. TDrawTextParam():
  621. iDirection(CFont::EHorizontal),
  622. iCharJustNum(0),
  623. iCharJustExcess(0),
  624. iWordJustNum(0),
  625. iWordJustExcess(0)
  626. {}
  627. public:
  628. CFont::TTextDirection iDirection;
  629. TInt iCharJustNum;
  630. TInt iCharJustExcess;
  631. TInt iWordJustNum;
  632. TInt iWordJustExcess;
  633. };
  634. struct TDrawTextExtendedParam : public TDrawTextParam
  635. {
  636. public:
  637. TDrawTextExtendedParam():
  638. iParRightToLeft(EFalse)
  639. {}
  640. public:
  641. TBool iParRightToLeft;
  642. };
  643. public:
  644. virtual CGraphicsDevice* Device() const=0;
  645. virtual void SetOrigin(const TPoint& aPos=TPoint(0,0))=0;
  646. #line 1912
  647. virtual void SetDrawMode(TDrawMode aDrawingMode)=0;
  648. virtual void SetClippingRect(const TRect& aRect)=0;
  649. virtual void CancelClippingRect()=0;
  650. #line 1941
  651. virtual void Reset()=0;
  652. #line 1964
  653. virtual void UseFont(const CFont* aFont)=0;
  654. virtual void DiscardFont()=0;
  655. virtual void SetUnderlineStyle(TFontUnderline aUnderlineStyle)=0;
  656. virtual void SetStrikethroughStyle(TFontStrikethrough aStrikethroughStyle)=0;
  657. __declspec(dllexport) static TInt JustificationInPixels(TInt aExcessPixels,TInt aTotalUnits,TInt aFirstUnit,TInt aNumUnits);
  658. __declspec(dllexport) static TInt JustificationInPixels(TInt& aExcessPixels,TInt& aTotalUnits);
  659. #line 2034
  660. virtual void SetWordJustification(TInt aExcessWidth,TInt aNumGaps)=0;
  661. #line 2110
  662. virtual void SetCharJustification(TInt aExcessWidth,TInt aNumChars)=0;
  663. #line 2125
  664. virtual void SetPenColor(const TRgb& aColor)=0;
  665. #line 2165
  666. virtual void SetPenStyle(TPenStyle aPenStyle)=0;
  667. #line 2204
  668. virtual void SetPenSize(const TSize& aSize)=0;
  669. #line 2221
  670. virtual void SetBrushColor(const TRgb& aColor)=0;
  671. #line 2242
  672. virtual void SetBrushStyle(TBrushStyle aBrushStyle)=0;
  673. #line 2270
  674. virtual void SetBrushOrigin(const TPoint& aOrigin)=0;
  675. #line 2295
  676. virtual void UseBrushPattern(const CFbsBitmap* aBitmap)=0;
  677. #line 2309
  678. virtual void DiscardBrushPattern()=0;
  679. #line 2327
  680. virtual void MoveTo(const TPoint& aPoint)=0;
  681. #line 2344
  682. virtual void MoveBy(const TPoint& aVector)=0;
  683. #line 2358
  684. virtual void Plot(const TPoint& aPoint)=0;
  685. #line 2397
  686. virtual void DrawArc(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd)=0;
  687. virtual void DrawLine(const TPoint& aPoint1,const TPoint& aPoint2)=0;
  688. virtual void DrawLineTo(const TPoint& aPoint)=0;
  689. #line 2424
  690. virtual void DrawLineBy(const TPoint& aVector)=0;
  691. virtual void DrawPolyLine(const CArrayFix<TPoint> * aPointList)=0;
  692. #line 2441
  693. virtual void DrawPolyLine(const TPoint* aPointList,TInt aNumPoints)=0;
  694. #line 2488
  695. virtual void DrawPie(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd)=0;
  696. #line 2504
  697. virtual void DrawEllipse(const TRect& aRect)=0;
  698. virtual void DrawRect(const TRect& aRect)=0;
  699. #line 2529
  700. virtual void DrawRoundRect(const TRect& aRect,const TSize& aCornerSize)=0;
  701. #line 2546
  702. virtual TInt DrawPolygon(const CArrayFix<TPoint> * aPointList,TFillRule aFillRule=EAlternate)=0;
  703. #line 2565
  704. virtual TInt DrawPolygon(const TPoint* aPointList,TInt aNumPoints,TFillRule aFillRule=EAlternate)=0;
  705. #line 2588
  706. virtual void DrawBitmap(const TPoint& aTopLeft,const CFbsBitmap* aSource)=0;
  707. #line 2611
  708. virtual void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource)=0;
  709. #line 2634
  710. virtual void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource,const TRect& aSourceRect)=0;
  711. #line 2650
  712. virtual void DrawBitmapMasked(const TRect& aDestRect,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask)=0;
  713. #line 2677
  714. virtual void DrawBitmapMasked(const TRect& aDestRect,const CWsBitmap* aBitmap,const TRect& aSourceRect,const CWsBitmap* aMaskBitmap,TBool aInvertMask)=0;
  715. #line 2694
  716. virtual void DrawText(const TDesC& aText,const TPoint& aPosition) = 0;
  717. #line 2750
  718. virtual void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TTextAlign aAlignment = ELeft,
  719. TInt aLeftMargin = 0) = 0;
  720. __declspec(dllexport) virtual void DrawText(const TDesC& aText,const TPoint& aPosition,const TDrawTextParam& aParam);
  721. __declspec(dllexport) virtual void Reserved();
  722. __declspec(dllexport) TInt DrawTextExtended(const TDesC& aText,const TPoint& aPosition,const TDrawTextExtendedParam& aParam);
  723. #line 2766
  724. virtual void MapColors(const TRect &aRect,const TRgb *aColors,TInt aNumPairs,TBool aMapForwards) = 0;
  725. virtual TInt SetClippingRegion(const TRegion &aRegion) = 0;
  726. virtual void CancelClippingRegion() = 0;
  727. virtual void DrawTextVertical(const TDesC& aText,const TPoint& aPos,TBool aUp) = 0;
  728. #line 2791
  729. virtual void DrawTextVertical(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0) = 0;
  730. protected:
  731. __declspec(dllexport) virtual void Reserved_CGraphicsContext_1();
  732. __declspec(dllexport) virtual void Reserved_CGraphicsContext_2();
  733. };
  734. #line 2822
  735. class CBitmapContext : public CGraphicsContext
  736. {
  737. public:
  738. virtual void Clear()=0;
  739. #line 2839
  740. virtual void Clear(const TRect& aRect)=0;
  741. #line 2848
  742. virtual void CopyRect(const TPoint& aOffset,const TRect& aRect)=0;
  743. #line 2857
  744. virtual void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap)=0;
  745. #line 2872
  746. virtual void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aRect)=0;
  747. #line 2906
  748. virtual void BitBltMasked(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask)=0;
  749. virtual void SetFaded(TBool aFaded)=0;
  750. #line 2932
  751. virtual void SetFadingParameters(TUint8 aBlackMap,TUint8 aWhiteMap)=0;
  752. #line 2952
  753. virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CFbsBitmap* aSrcBmp, const TRect& aSrcRect, const CFbsBitmap* aAlphaBmp, const TPoint& aAlphaPt) = 0;
  754. #line 2965
  755. virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CWsBitmap* aSrcBmp, const TRect& aSrcRect, const CWsBitmap* aAlphaBmp, const TPoint& aAlphaPt) = 0;
  756. protected:
  757. __declspec(dllexport) void Reserved_CGraphicsContext_1();
  758. __declspec(dllexport) void Reserved_CGraphicsContext_2();
  759. __declspec(dllexport) virtual void Reserved_CBitmapContext_1();
  760. __declspec(dllexport) virtual void Reserved_CBitmapContext_2();
  761. __declspec(dllexport) virtual void Reserved_CBitmapContext_3();
  762. };
  763. #line 2988
  764. class CBitmapDevice : public CGraphicsDevice
  765. {
  766. public:
  767. #line 2999
  768. virtual void GetPixel(TRgb& aColor,const TPoint& aPixel) const=0;
  769. #line 3017
  770. virtual void GetScanLine(TDes8& aBuf,const TPoint& aStartPixel,TInt aLength,TDisplayMode aDispMode) const=0;
  771. #line 3027
  772. virtual TInt AddFile(const TDesC& aName,TInt& aId)=0;
  773. virtual void RemoveFile(TInt aId=0)=0;
  774. #line 3051
  775. virtual TInt GetNearestFontInPixels(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  776. #line 3070
  777. virtual TInt GetNearestFontToDesignHeightInPixels(CFont*& , const TFontSpec& ){return 0;}
  778. #line 3092
  779. virtual TInt GetNearestFontToMaxHeightInPixels(CFont*& , const TFontSpec& , TInt ){return 0;}
  780. #line 3115
  781. virtual TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  782.     inline TInt CreateBitmapContext(CBitmapContext*& aGC);
  783. };
  784. class TMargins
  785.     {
  786. public:
  787. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  788. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  789. __declspec(dllexport) TBool operator==(const TMargins& aMargins) const;
  790. __declspec(dllexport) TBool operator!=(const TMargins& aMargins) const;
  791. public:
  792. TInt iLeft;
  793. TInt iRight;
  794.     TInt iTop;
  795. TInt iBottom;
  796. };
  797. #line 3150
  798. class TPictureCapability
  799. {
  800. public:
  801. enum TScalingType
  802. {
  803. ENotScaleable,
  804. EFullyScaleable,
  805. EScaleableMaintainingAspectRatio
  806. };
  807. public:
  808. inline TPictureCapability(TScalingType aScalingType,TBool aCroppable);
  809. public:
  810. TScalingType iScalingType;
  811. TBool iIsCroppable;
  812. };
  813. #line 3200
  814. class CPicture : public CBase
  815.     {
  816. public:
  817. enum TDetach
  818. {
  819. EDetachFull,
  820. EDetachDraw
  821. };
  822. public:
  823. __declspec(dllexport) virtual ~CPicture();
  824. #line 3227
  825. virtual void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,MGraphicsDeviceMap* aMap) const=0;
  826. __declspec(dllexport) virtual TStreamId StoreL(CStreamStore& aStore) const;
  827. virtual void DetachFromStoreL(TDetach =EDetachFull) {}
  828. #line 3239
  829. virtual void ExternalizeL(RWriteStream& aStream) const =0;
  830. virtual void GetOriginalSizeInTwips(TSize& aSize) const =0;
  831. __declspec(dllexport) virtual void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight);
  832. __declspec(dllexport) virtual void SetCropInTwips(const TMargins& aMargins);
  833. __declspec(dllexport) virtual TPictureCapability Capability() const;
  834. __declspec(dllexport) virtual void GetCropInTwips(TMargins& aMargins) const;
  835. __declspec(dllexport) virtual TInt ScaleFactorWidth() const;
  836. __declspec(dllexport) virtual TInt ScaleFactorHeight() const;
  837. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aClass,TBool aBeforePicture,TBool aHaveSpaces) const;
  838. __declspec(dllexport) virtual TBool NativePixelSize(TSize& aPixelSize);
  839. __declspec(dllexport) void GetSizeInPixels(MGraphicsDeviceMap* aMap, TSize& aSize) const;
  840. __declspec(dllexport) void SetSizeInPixels(MGraphicsDeviceMap* aMap, const TSize& aSize);
  841. __declspec(dllexport) void AddCropInPixels(MGraphicsDeviceMap* aMap, const TMargins& aMargins);
  842. __declspec(dllexport) void GetSizeInTwips(TSize& aSize) const;
  843. __declspec(dllexport) void SetSizeInTwips(const TSize& aSize);
  844. __declspec(dllexport) void ResetToOriginal();
  845. protected:
  846. __declspec(dllexport) CPicture();
  847. };
  848. #line 3277
  849. class TPictureHeader
  850. {
  851. public:
  852. __declspec(dllexport) TPictureHeader();
  853. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  854. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  855. __declspec(dllexport) void DeletePicture();
  856. public:
  857. TSwizzle<CPicture> iPicture;
  858. TUid iPictureType;
  859. TSize iSize;
  860. };
  861. #line 3304
  862. class MPictureFactory
  863. {
  864. public:
  865. #line 3324
  866. virtual void NewPictureL(TPictureHeader& aHeader,const CStreamStore& aDeferredPictureStore)const=0;
  867. };
  868. #line 3335
  869. const TInt KMaxPrinterModelNameLength=0x20;
  870. #line 3344
  871. typedef TBuf<KMaxPrinterModelNameLength> TPrinterModelName;
  872. #line 3357
  873. class TPageSpec
  874. {
  875. public:
  876. enum TPageOrientation
  877. {
  878. EPortrait,
  879. ELandscape
  880. };
  881. public:
  882. __declspec(dllexport) TPageSpec();
  883. __declspec(dllexport) TPageSpec(TPageOrientation aOrientation,const TSize& aSize);
  884. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  885. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  886. __declspec(dllexport) TSize OrientedPageSize() const;
  887. __declspec(dllexport) TBool operator==(const TPageSpec& aPageSpec) const;
  888. __declspec(dllexport) TBool operator!=(const TPageSpec& aPageSpec) const;
  889. public:
  890. TSize iPortraitPageSize;
  891. TPageOrientation iOrientation;
  892. };
  893. #line 3398
  894. class TBandAttributes
  895.     {
  896. public:
  897. TRect iRect;
  898. TBool iTextIsIgnored;
  899. TBool iGraphicsIsIgnored;
  900. TBool iFirstBandOnPage;
  901. };
  902. #line 3423
  903. class CPrinterPort : public CBase
  904. {
  905. public:
  906. virtual void WriteRequest(const TDesC8& aBuf,TRequestStatus& aRequestStatus)=0;
  907. virtual void Cancel()=0;
  908. };
  909. #line 3445
  910. class TPrinterModelEntry
  911.    {
  912. public:
  913. TPrinterModelName iModelName;
  914. TBool iRequiresPrinterPort;
  915. TUid iUid;
  916. public:
  917. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  918. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  919. };
  920. #line 3469
  921. class TPrinterModelHeader
  922.     {
  923. public:
  924. TPrinterModelEntry iEntry;
  925. TStreamId iModelDataStreamId;
  926. public:
  927. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  928. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  929. };
  930. #line 3496
  931. class CPrinterControl : public CBase
  932.     {
  933. public:
  934. enum TMoreOnPage
  935. {
  936. EMoreOnPage,
  937. ENoMoreOnPage
  938. };
  939. public:
  940. __declspec(dllexport) ~CPrinterControl();
  941. virtual TInt BandsPerPage()=0;
  942. #line 3528
  943. virtual TMoreOnPage QueueGetBand(TRequestStatus& aStatus, TBandAttributes& aBand)=0;
  944. #line 3539
  945. virtual void QueueEndPrint(TRequestStatus& aStatus)=0;
  946. virtual void AbortPrint()=0;
  947. protected:
  948. __declspec(dllexport) CPrinterControl(CPrinterPort* aPrinterPort);
  949. protected:
  950. enum TState
  951. {
  952. ENotPrinting,
  953. EPrinting
  954. };
  955. TState iState;
  956. CPrinterPort* iPrinterPort;
  957. };
  958. class CDictionaryStore;
  959. class RFs;
  960. #line 3590
  961. class CPrinterDevice : public CGraphicsDevice
  962. {
  963. public:
  964. __declspec(dllexport) ~CPrinterDevice();
  965. inline TPageSpec CurrentPageSpecInTwips() const {return(iCurrentPageSpecInTwips);}
  966. __declspec(dllexport) virtual void SelectPageSpecInTwips(const TPageSpec& aPageSpec);
  967. __declspec(dllexport) virtual TRect PrintablePageInPixels() const;
  968. virtual TPrinterModelEntry Model()const =0;
  969. virtual TInt SetModel(const TPrinterModelHeader& aModel,CStreamStore& aStore)=0;
  970. #line 3627
  971. virtual void CreateControlL(CPrinterPort* aPrinterPort)=0;
  972. __declspec(dllexport) virtual void DeleteControl();
  973. virtual void InternalizePropertiesL(RReadStream& ) {}
  974. virtual void ExternalizePropertiesL(RWriteStream& ) const {}
  975. __declspec(dllexport) void RestorePropertiesL();
  976. __declspec(dllexport) void StorePropertiesL() const;
  977. protected:
  978. __declspec(dllexport) CPrinterDevice();
  979. public:
  980. CPrinterControl* iControl;
  981. protected:
  982. TPageSpec iCurrentPageSpecInTwips;
  983. };
  984. #line 3669
  985. class CPrinterModelList : public CBase
  986.      {
  987. public:
  988.     virtual TInt ModelCount() const=0;
  989. #line 3686
  990.     virtual const TPrinterModelEntry operator[](TInt anIndex)=0;
  991. virtual TInt UidToNum(TUid aModelUid) const=0;
  992.     };
  993. #line 3705
  994. class MPageRegionPrinter
  995. {
  996. public:
  997. #line 3718
  998. virtual void PrintBandL(CGraphicsDevice* aDevice,TInt aPageNo,const TBandAttributes& aBandInPixels)=0;
  999. };
  1000. const TInt KPdrStoreFileUidVal=268435514;
  1001. const TInt KPdlUidVal=268450588;
  1002. const TInt KUdlUidVal=268450589;
  1003. #line 3746
  1004. class CPrinterDriverUI : public CBase
  1005.     {
  1006. protected:
  1007. __declspec(dllexport) CPrinterDriverUI();
  1008. public:
  1009. __declspec(dllexport) virtual TBool BeforePrintL();
  1010. __declspec(dllexport) virtual void AfterPrintL();
  1011. __declspec(dllexport) virtual void SetPropertiesL();
  1012. __declspec(dllexport) virtual TBool CanSetProperties();
  1013. virtual TInt SetPrinterDevice(CPrinterDevice* aPrinterDevice)=0;
  1014. };
  1015. class CFileStore;
  1016. #line 3790
  1017. class CPrinterDriver : public CBase
  1018.      {
  1019. public:
  1020. __declspec(dllexport) static CPrinterDriver* NewL();
  1021. __declspec(dllexport) ~CPrinterDriver();
  1022. __declspec(dllexport) void OpenPdrL(const TDesC &aName);
  1023. __declspec(dllexport) void Close();
  1024. __declspec(dllexport) TInt NumModels() const;
  1025. __declspec(dllexport) TPrinterModelEntry Model(TInt aNum) const;
  1026. inline CPrinterDevice* PrinterDevice() {return iPrinterDevice;}
  1027. __declspec(dllexport) CPrinterDevice* CreatePrinterDeviceL(TUid aModelUid);
  1028. __declspec(dllexport) CPrinterDriverUI* CreatePrinterDriverUIL();
  1029. private:
  1030. CPrinterDriver();
  1031. void DeletePrinterDevice();
  1032. void DoOpenPdrL(const TDesC &aName);
  1033. void DoCreatePrinterDeviceL(TUid aModelUid);
  1034. void LoadLibraryL(RLibrary& aLibrary,const TDesC& aExt,TUid aUid2);
  1035. private:
  1036. RFs iFs;
  1037. CFileStore *iPdrStore;
  1038. TInt iNumModels;
  1039. TPrinterModelHeader* iModelList;
  1040. TFileName iPdlName;
  1041. TUid iPdlUid;
  1042. RLibrary iPdlLibrary;
  1043. CPrinterDevice* iPrinterDevice;
  1044. RLibrary iUdlLibrary;
  1045. };
  1046. class RResourceFile;
  1047. class CPdrModelList : public CPrinterModelList
  1048.     {
  1049. public:
  1050. __declspec(dllexport) static CPdrModelList* NewL();
  1051. __declspec(dllexport) virtual ~CPdrModelList();
  1052.     __declspec(dllexport) TInt ModelCount() const;
  1053.     __declspec(dllexport) const TPrinterModelEntry operator [] (TInt anIndex);
  1054. __declspec(dllexport) TInt UidToNum(TUid aModelUid) const;
  1055. __declspec(dllexport) void AddDirectoryL(const TDesC& aDir);
  1056. __declspec(dllexport) CPrinterModelList* ScanForModelsL();
  1057. __declspec(dllexport) CPrinterDriver* CreatePrinterDriverL(TInt anIndex);
  1058. private:
  1059. CPdrModelList();
  1060. void ConstructL();
  1061. private:
  1062. class TFileEntry
  1063. {
  1064. public:
  1065. TFileName iFileName;
  1066. TDesC* iDirectory;
  1067. };
  1068. class TModelEntry
  1069. {
  1070. public:
  1071. TPrinterModelEntry iEntry;
  1072. TFileEntry* iFile;
  1073. };
  1074. private:
  1075. void ScanDirectoryL(TInt aDirIndex);
  1076. void ListModelsL(TInt aFileIndex, TParse& aParser, TFileName& aNameOfLoadedResourceFile, TFileName& aTempFileName, RResourceFile& aResourceFile, HBufC8*& aResource);
  1077. HBufC* NewPathBufL(const TFileEntry& aFileEntry);
  1078. private:
  1079. CArrayFixSeg<TModelEntry> * iModelArray;
  1080. CArrayFixFlat<TFileEntry> * iFileArray;
  1081. CArrayFixFlat<HBufC*> * iDirectoryArray;
  1082. RFs iFileServer;
  1083. };
  1084. #line 3881
  1085. class TZoomFactor : public MGraphicsDeviceMap
  1086. {
  1087. public:
  1088. __declspec(dllexport) TZoomFactor();
  1089. __declspec(dllexport) ~TZoomFactor();
  1090. inline TZoomFactor(const MGraphicsDeviceMap* aDevice);
  1091. inline TZoomFactor(const TZoomFactor* aDevice);
  1092. __declspec(dllexport) TInt ZoomFactor() const;
  1093. __declspec(dllexport) void SetZoomFactor(TInt aZoomFactor);
  1094. inline void SetGraphicsDeviceMap(const MGraphicsDeviceMap* aDevice);
  1095. inline const MGraphicsDeviceMap* GraphicsDeviceMap() const;
  1096. __declspec(dllexport) void SetTwipToPixelMapping(const TSize& aSizeInPixels,const TSize& aSizeInTwips);
  1097. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwipWidth) const;
  1098. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwipHeight) const;
  1099. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixelWidth) const;
  1100. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixelHeight) const;
  1101. __declspec(dllexport) virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  1102. __declspec(dllexport) virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  1103. __declspec(dllexport) virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  1104. __declspec(dllexport) void ReleaseFont(CFont* aFont);
  1105. public:
  1106. enum {EZoomOneToOne=1000};
  1107. private:
  1108. TInt iZoomFactor;
  1109. const MGraphicsDeviceMap* iDevice;
  1110. };
  1111. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.inl" /* stack depth 9 */
  1112. #line 11
  1113. inline TRgb::TRgb():
  1114. iValue(0xffffffff)
  1115. {}
  1116. inline TRgb::TRgb(TUint32 aValue):
  1117. iValue(((aValue & 0xff0000) >> 16) | (aValue & 0x00ff00) | ((aValue & 0x0000ff) << 16) | (0xff000000 - (aValue & 0xff000000)))
  1118. #line 32
  1119. {}
  1120. inline TRgb::TRgb(TUint32 aInternalValue, TInt aAlpha) :
  1121. iValue((aInternalValue & 0x00ffffff) | (aAlpha << 24))
  1122. #line 49
  1123. {
  1124. }
  1125. inline TRgb::TRgb(TInt aRed,TInt aGreen,TInt aBlue):
  1126. iValue(aRed<<16|aGreen<<8|aBlue|0xff000000)
  1127. {}
  1128. #line 78
  1129. inline TRgb::TRgb(TInt aRed,TInt aGreen,TInt aBlue, TInt aAlpha):
  1130. iValue(aRed<<16|aGreen<<8|aBlue|aAlpha<<24)
  1131. {}
  1132. inline TInt TRgb::Red() const
  1133. {return((iValue&0xff0000)>>16);}
  1134. inline TInt TRgb::Green() const
  1135. {return((iValue&0xff00)>>8);}
  1136. inline TInt TRgb::Blue() const
  1137. {return(iValue&0xff);}
  1138. inline TBool TRgb::operator==(const TRgb& aColor) const
  1139. #line 113
  1140. {return(iValue==aColor.iValue);}
  1141. inline TBool TRgb::operator!=(const TRgb& aColor) const
  1142. #line 125
  1143. {return(!(*this==aColor));}
  1144. inline TRgb& TRgb::operator&=(const TRgb& aColor)
  1145. #line 140
  1146. {iValue&=aColor.iValue;return(*this);}
  1147. inline TRgb& TRgb::operator|=(const TRgb& aColor)
  1148. #line 155
  1149. {iValue|=aColor.iValue;return(*this);}
  1150. inline TRgb& TRgb::operator^=(const TRgb& aColor)
  1151. #line 171
  1152. {iValue^=aColor.iValue;iValue^=0xff000000; return(*this);}
  1153. inline TUint32 TRgb::Value() const
  1154. {return (((iValue & 0xff0000) >> 16) | (iValue & 0x00ff00) | ((iValue & 0x0000ff) << 16) | (0xff000000 - (iValue & 0xff000000)));}
  1155. inline TUint32 TRgb::Internal() const
  1156. {return (iValue);}
  1157. inline void TRgb::SetInternal(TUint32 aInternal)
  1158. {iValue = aInternal;}
  1159. inline TRgb TRgb::operator~() const
  1160. {TRgb rgb; rgb.SetInternal(iValue^0x00ffffff); return rgb;}
  1161. inline TRgb TRgb::operator&(const TRgb& aColor)
  1162. {TRgb rgb; rgb.SetInternal(iValue&aColor.iValue); return rgb;}
  1163. inline TRgb TRgb::operator|(const TRgb& aColor)
  1164. {TRgb rgb; rgb.SetInternal(iValue|aColor.iValue); return rgb;}
  1165. inline TRgb TRgb::operator^(const TRgb& aColor)
  1166. {TRgb rgb; rgb.SetInternal(iValue^aColor.iValue); return rgb;}
  1167. #line 234
  1168. inline TRgb TRgb::_Gray2(TInt aGray2)
  1169. {
  1170. if(aGray2) return(TRgb(0xffffff, 0xff));
  1171. return(TRgb(0, 0xff));
  1172. }
  1173. #line 248
  1174. inline TRgb TRgb::_Gray4(TInt aGray4)
  1175. {
  1176. aGray4&=3;
  1177. aGray4|=aGray4<<2;
  1178. aGray4|=aGray4<<4;
  1179. return(TRgb(aGray4,aGray4,aGray4));
  1180. }
  1181. #line 264
  1182. inline TRgb TRgb::_Gray16(TInt aGray16)
  1183. {
  1184. aGray16&=0xf;
  1185. aGray16|=aGray16<<4;
  1186. return(TRgb(aGray16,aGray16,aGray16));
  1187. }
  1188. #line 279
  1189. inline TRgb TRgb::_Gray256(TInt aGray256)
  1190. {
  1191. aGray256&=0xff;
  1192. return(TRgb(aGray256,aGray256,aGray256));
  1193. }
  1194. #line 292
  1195. inline TRgb TRgb::_Color4K(TInt aColor4K)
  1196. {
  1197. TUint32 value = (aColor4K & 0xf00) << 8;
  1198. value |= (aColor4K & 0x0f0) << 4;
  1199. value |= (aColor4K & 0x00f);
  1200. return TRgb(value | (value << 4), 0xff);
  1201. }
  1202. #line 307
  1203. inline TRgb TRgb::_Color64K(TInt aColor64K)
  1204. {
  1205. TInt red = (aColor64K&0xF800)>>8;
  1206. red += red>>5;
  1207. TInt green = (aColor64K&0x07E0)>>3;
  1208. green += green>>6;
  1209. TInt blue = (aColor64K&0x001F)<<3;
  1210. blue += blue>>5;
  1211. return TRgb(red,green,blue);
  1212. }
  1213. #line 325
  1214. inline TRgb TRgb::_Color16M(TInt a0RGB)
  1215. {
  1216. return TRgb(a0RGB, 0xff);
  1217. }
  1218. inline TRgb TRgb::_Color16MU(TInt a0RGB)
  1219. {
  1220. return TRgb(a0RGB, 0xff);
  1221. }
  1222. inline TInt TRgb::_Gray2() const
  1223. {
  1224. return(Gray256()>>7);
  1225. }
  1226. inline TInt TRgb::_Gray4() const
  1227. {
  1228. return(Gray256()>>6);
  1229. }
  1230. inline TInt TRgb::_Gray16() const
  1231. {
  1232. return(Gray256()>>4);
  1233. }
  1234. inline TInt TRgb::_Gray256() const
  1235. {
  1236. return(((Red()<<1)+Green()+(Green()<<2)+Blue())>>3);
  1237. }
  1238. inline TInt TRgb::_Color4K() const
  1239. {
  1240. TInt color4K = (iValue & 0x0000f0) >> 4;
  1241. color4K |= (iValue & 0x00f000) >> 8;
  1242. color4K |= (iValue & 0xf00000) >> 12;
  1243. return color4K;
  1244. }
  1245. inline TInt TRgb::_Color64K() const
  1246. {
  1247. TInt color64K = (iValue & 0x0000f8) >> 3;
  1248. color64K |= (iValue & 0x00fc00) >> 5;
  1249. color64K |= (iValue & 0xf80000) >> 8;
  1250. return color64K;
  1251. }
  1252. inline TInt TRgb::_Color16M() const
  1253. {
  1254. return (iValue & 0xffffff);
  1255. }
  1256. inline TInt TRgb::_Color16MU() const
  1257. {
  1258. return (iValue & 0xffffff);
  1259. }
  1260. inline TInt TRgb::Alpha() const
  1261. {return (iValue >> 24);}
  1262. #line 432
  1263. inline TRgb TRgb::_Color16MA(TUint aARGB)
  1264. {
  1265. TRgb col; col.SetInternal(aARGB);
  1266. return col;
  1267. }
  1268. inline TUint TRgb::_Color16MA() const
  1269. {
  1270. return (iValue);
  1271. }
  1272. inline TInt CPalette::Entries() const
  1273. {return(iNumEntries);}
  1274. inline TRgb TColor256Util::Color256(TInt aColor256) const
  1275. { return TRgb(iColorTable[aColor256]); }
  1276. inline TBool TFontStyle::operator==(const TFontStyle& aFontStyle) const
  1277. {return(iFlags==aFontStyle.iFlags);}
  1278. inline TGlyphBitmapType TFontStyle::BitmapType() const
  1279. {
  1280. return (TGlyphBitmapType)(iFlags >> 16);
  1281. }
  1282. inline void TFontStyle::SetBitmapType(TGlyphBitmapType aBitmapType)
  1283. #line 502
  1284. {
  1285. iFlags &= 0xFFFF;
  1286. iFlags |= (aBitmapType << 16);
  1287. }
  1288. inline TInt CBitmapDevice::CreateBitmapContext(CBitmapContext*& aGC)
  1289. {return(CreateContext((CGraphicsContext*&)aGC));}
  1290. inline TPictureCapability::TPictureCapability(TScalingType aScalingType,TBool aCroppable):
  1291. iScalingType(aScalingType),iIsCroppable(aCroppable)
  1292. {}
  1293. inline TZoomFactor::TZoomFactor(const MGraphicsDeviceMap* aDevice):
  1294. iZoomFactor(TZoomFactor::EZoomOneToOne),
  1295. iDevice(aDevice)
  1296. {}
  1297. inline TZoomFactor::TZoomFactor(const TZoomFactor* aDevice):
  1298. iDevice(aDevice)
  1299. {
  1300. iZoomFactor=aDevice->iZoomFactor;
  1301. }
  1302. inline void TZoomFactor::SetGraphicsDeviceMap(const MGraphicsDeviceMap* aDevice)
  1303. {iDevice=aDevice;}
  1304. inline const MGraphicsDeviceMap* TZoomFactor::GraphicsDeviceMap() const
  1305. {return(iDevice);}
  1306. #line 579
  1307. inline TInt CFont::FontCapitalAscent() const
  1308. {
  1309. return ExtendedFunction(KFontCapitalAscent);
  1310. }
  1311. #line 595
  1312. inline TInt CFont::FontMaxAscent() const
  1313. {
  1314. return ExtendedFunction(KFontMaxAscent);
  1315. }
  1316. #line 608
  1317. inline TInt CFont::FontStandardDescent() const
  1318. {
  1319. return ExtendedFunction(KFontStandardDescent);
  1320. }
  1321. #line 623
  1322. inline TInt CFont::FontMaxDescent() const
  1323. {
  1324. return ExtendedFunction(KFontMaxDescent);
  1325. }
  1326. inline TInt CFont::FontLineGap() const
  1327. {
  1328. return ExtendedFunction(KFontLineGap);
  1329. }
  1330. #line 648
  1331. inline TInt CFont::FontMaxHeight() const
  1332. {
  1333. return FontMaxAscent() + FontMaxDescent();
  1334. }
  1335. #line 3912 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.h" /* stack depth 8 */
  1336. #line 21 "C:\Symbian\9.1\S60_3rd\epoc32\include\fntstore.h" /* stack depth 7 */
  1337. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\openfont.h" /* stack depth 8 */
  1338. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\Ecom.h" /* stack depth 9 */
  1339. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\EComErrorCodes.h" /* stack depth 10 */
  1340. #line 20
  1341. const TInt KEComErrBase = -17000;
  1342. const TInt KEComErrLast = -17030;
  1343. #line 39
  1344. const TInt KEComErrNoInterfaceIdentified = -17004;
  1345. const TInt KEComErrNoResolver = -17014;
  1346. const TInt KEComErrTooManyNotificationsOutstanding = -17026;
  1347. #line 64
  1348. const TInt KEComErrMissingParameter = -17028;
  1349. const TInt KEComErrListInvalidAwaitNotification = -17029;
  1350. const TInt KEComErrListCurrentlyUnavailable = -17030;
  1351. #line 90
  1352. const TInt KEComErrInvalidUnloadPolicy = -17003;
  1353. const TInt KEComErrInvalidIIC = -17008;
  1354. const TInt KEComErrDriveNotFound = -17019;
  1355. #line 117
  1356. const TInt KEComErrUnknownService = -17002;
  1357. const TInt KEComErrReferenceCountInvalid = -17013;
  1358. const TInt KEComErrDestructionFailed = -17017;
  1359. const TInt KEComErrInvalidRegistryData = -17022;
  1360. const TInt KEComErrMismatchedTags = -17023;
  1361. #line 156
  1362. const TInt KEComErrDestroyingWithNullDtorKey = -17027;
  1363. #line 166
  1364. const TInt KEComErrAlreadyReceiving = -17001;
  1365. const TInt KEComErrEnableFailed = -17005;
  1366. const TInt KEComErrDisableFailed = -17006;
  1367. const TInt KEComErrNoRegistrationsFound = -17007;
  1368. const TInt KEComErrUninstallFailed = -17009;
  1369. const TInt KEComErrReinstallFailed = -17010;
  1370. const TInt KEComErrRegistrationFailed = -17011;
  1371. const TInt KEComErrNotConnected = -17012;
  1372. const TInt KEComErrSuspendFailed = -17015;
  1373. const TInt KEComErrResumeFailed = -17016;
  1374. const TInt KEComErrDriveAlreadyInstalled = -17018;
  1375. const TInt KEComErrIndexEntryNotFound = -17020;
  1376. const TInt KEComErrNoRegistrationData = -17021;
  1377. const TInt KEComErrInstantiationPointerNotFound = -17024;
  1378. const TInt KEComErrInstantiationPointerNotAvailable = -17025;
  1379. #line 19 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\Ecom.h" /* stack depth 9 */
  1380. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\EComResolverParams.h" /* stack depth 10 */
  1381. #line 25
  1382. class TEComResolverParams
  1383. {
  1384. public:
  1385. inline TEComResolverParams();
  1386. inline const TDesC8& DataType() const;
  1387. inline void SetDataType(const TDesC8& aDataType);
  1388. inline TBool IsGenericMatch() const;
  1389. inline void SetGenericMatch(TBool aGenericMatch);
  1390. inline TBool IsWildcardMatch() const;
  1391. inline void SetWildcardMatch(TBool aWildcardMatch);
  1392. private:
  1393. TPtrC8 iDataType;
  1394. TBool iGenericMatch;
  1395. };
  1396. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\EComResolverParams.inl" /* stack depth 11 */
  1397. #line 19
  1398. TEComResolverParams::TEComResolverParams()
  1399. : iDataType(0 ,0),
  1400. iGenericMatch(EFalse)
  1401. {
  1402. }
  1403. #line 35
  1404. const TDesC8& TEComResolverParams::DataType() const
  1405. {
  1406. return iDataType;
  1407. }
  1408. #line 50
  1409. void TEComResolverParams::SetDataType(const TDesC8& aDataType)
  1410. {
  1411. iDataType.Set(aDataType);
  1412. }
  1413. #line 62
  1414. TBool TEComResolverParams::IsGenericMatch() const
  1415. {
  1416. return iGenericMatch;
  1417. }
  1418. #line 94
  1419. void TEComResolverParams::SetGenericMatch(TBool aGenericMatch)
  1420. {
  1421. iGenericMatch=aGenericMatch;
  1422. }
  1423. #line 107
  1424. TBool TEComResolverParams::IsWildcardMatch() const
  1425. {
  1426. return iGenericMatch;
  1427. }
  1428. #line 121
  1429. void TEComResolverParams::SetWildcardMatch(TBool aWildcardMatch)
  1430. {
  1431. iGenericMatch=aWildcardMatch;
  1432. }
  1433. #line 56 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\EComResolverParams.h" /* stack depth 10 */
  1434. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\Ecom.h" /* stack depth 9 */
  1435. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\ImplementationInformation.h" /* stack depth 10 */
  1436. #line 52
  1437. class CImplementationInformation : public CBase
  1438. {
  1439. public:
  1440. static CImplementationInformation* NewLC(RReadStream& aStream);
  1441. static CImplementationInformation* NewL(TUid aUid,
  1442. TInt aVersion,
  1443. HBufC*  aName,
  1444. HBufC8* aDataType,
  1445. HBufC8* aOpaqueData,
  1446. TDriveUnit aDrive,
  1447. TBool aRomOnly,
  1448. TBool aRomBased);
  1449. static CImplementationInformation* NewL(const CImplementationInformation& aImplInfo);
  1450. ~CImplementationInformation();
  1451. inline const TDesC& DisplayName() const;
  1452. inline const TDesC8& DataType() const;
  1453. inline const TDesC8& OpaqueData() const;
  1454. inline TUid ImplementationUid() const;
  1455. inline TInt Version() const;
  1456. inline TBool Disabled() const;
  1457. inline void SetDisabled(TBool aDisabled);
  1458. void ExternalizeL(RWriteStream& aStream) const;
  1459. void InternalizeL(RReadStream& aStream);
  1460. inline TDriveUnit Drive() const;
  1461. inline TBool RomOnly() const;
  1462. inline TBool RomBased() const;
  1463. void SetRomBased(TBool aRomBased);
  1464. private:
  1465. CImplementationInformation();
  1466. CImplementationInformation(TUid aUid,
  1467.    TInt aVersion,
  1468.    HBufC*  aName,
  1469.    HBufC8* aDataType,
  1470.    HBufC8* aOpaqueData,
  1471.    TDriveUnit aDrive,
  1472.    TBool aRomOnly,
  1473.    TBool aRomBased);
  1474. private:
  1475. TUid iImplementationUid;
  1476. TInt iVersion;
  1477. HBufC* iDisplayName;
  1478. HBufC8* iData;
  1479. HBufC8* iOpaqueData;
  1480. TBool iDisabled;
  1481. TDriveUnit iDrive;
  1482. TBool iRomOnly;
  1483. TBool iRomBased;
  1484. };
  1485. typedef RArray<CImplementationInformation*> RImplInfoArray;
  1486. typedef RPointerArray<CImplementationInformation> RImplInfoPtrArray;
  1487. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\ImplementationInformation.inl" /* stack depth 11 */
  1488. #line 22
  1489. const TDesC& CImplementationInformation::DisplayName() const
  1490. {
  1491. if(iDisplayName == 0 )
  1492. return KNullDesC();
  1493. else
  1494. return *iDisplayName;
  1495. }
  1496. #line 37
  1497. const TDesC8& CImplementationInformation::DataType() const
  1498. {
  1499. if(iData == 0 )
  1500. return KNullDesC8();
  1501. else
  1502. return *iData;
  1503. }
  1504. #line 52
  1505. const TDesC8& CImplementationInformation::OpaqueData() const
  1506. {
  1507. if(iOpaqueData == 0 )
  1508. return KNullDesC8();
  1509. else
  1510. return *iOpaqueData;
  1511. }
  1512. #line 67
  1513. TUid CImplementationInformation::ImplementationUid() const
  1514. {
  1515. return iImplementationUid;
  1516. }
  1517. #line 79
  1518. TInt CImplementationInformation::Version() const
  1519. {
  1520. return iVersion;
  1521. }
  1522. #line 92
  1523. TBool CImplementationInformation::Disabled() const
  1524. {
  1525. return iDisabled;
  1526. }
  1527. #line 105
  1528. void CImplementationInformation::SetDisabled(TBool aDisabled)
  1529. {
  1530. iDisabled = aDisabled;
  1531. }
  1532. #line 117
  1533. TDriveUnit CImplementationInformation::Drive() const
  1534. {
  1535. return iDrive;
  1536. }
  1537. #line 129
  1538. TBool CImplementationInformation::RomOnly() const
  1539. {
  1540. return iRomOnly;
  1541. }
  1542. TBool CImplementationInformation::RomBased() const
  1543. {
  1544. return iRomBased;
  1545. }
  1546. #line 159 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\ImplementationInformation.h" /* stack depth 10 */
  1547. #line 21 "C:\Symbian\9.1\S60_3rd\epoc32\include\Ecom\Ecom.h" /* stack depth 9 */
  1548. class CLoadManager;
  1549. class CGlobalData;
  1550. const TInt KMaxServiceArgs = 4;
  1551. #line 41
  1552. const TUid KRomOnlyResolverUid = {0x10009D92};
  1553. #line 68
  1554. class REComSession  : public RSessionBase
  1555. {
  1556. friend class CGlobalData;
  1557. public:
  1558. __declspec(dllexport) REComSession();
  1559. __declspec(dllexport) static REComSession& OpenL();
  1560. __declspec(dllexport) void Close();
  1561. __declspec(dllexport) void NotifyOnChange(TRequestStatus& aStatus);
  1562. __declspec(dllexport) void CancelNotifyOnChange(TRequestStatus& aStatus);
  1563. __declspec(dllexport) static void ListImplementationsL(TUid aInterfaceUid,
  1564.   const TEComResolverParams& aResolutionParameters,
  1565.   RImplInfoPtrArray& aImplInfoArray);
  1566. __declspec(dllexport) static void ListImplementationsL(TUid aInterfaceUid,
  1567.   RImplInfoPtrArray& aImplInfoArray);
  1568. __declspec(dllexport) static void ListImplementationsL(TUid aInterfaceUid,
  1569.   const TEComResolverParams& aResolutionParameters,
  1570.   TUid aResolverUid,
  1571.   RImplInfoPtrArray& aImplInfoArray);
  1572. #line 104
  1573. __declspec(dllexport) static TAny* CreateImplementationL(TUid aImplementationUid,
  1574. TUid& aDtorIDKey);
  1575. __declspec(dllexport) static TAny* CreateImplementationL(TUid aImplementationUid,
  1576. TInt32 aKeyOffset);
  1577. __declspec(dllexport) static TAny* CreateImplementationL(TUid aImplementationUid,
  1578. TUid& aDtorIDKey,
  1579. TAny* aConstructionParameters);
  1580. __declspec(dllexport) static TAny* CreateImplementationL(TUid aImplementationUid,
  1581. TInt32 aKeyOffset,
  1582. TAny* aConstructionParameters);
  1583. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1584. TUid& aDtorIDKey,
  1585. const TEComResolverParams& aResolutionParameters);
  1586. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1587. TInt32 aKeyOffset,
  1588. const TEComResolverParams& aResolutionParameters);
  1589. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1590. TUid& aDtorIDKey,
  1591. TAny* aConstructionParameters,
  1592. const TEComResolverParams& aResolutionParameters);
  1593. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1594. TInt32 aKeyOffset,
  1595. TAny* aConstructionParameters,
  1596. const TEComResolverParams& aResolutionParameters);
  1597. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1598. TUid& aDtorIDKey,
  1599. const TEComResolverParams& aResolutionParameters,
  1600. TUid aResolverUid);
  1601. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1602. TInt32 aKeyOffset,
  1603. const TEComResolverParams& aResolutionParameters,
  1604. TUid aResolverUid);
  1605. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1606. TUid& aDtorIDKey,
  1607. TAny* aConstructionParameters,
  1608. const TEComResolverParams& aResolutionParameters,
  1609. TUid aResolverUid);
  1610. __declspec(dllexport) static TAny* CreateImplementationL(TUid aInterfaceUid,
  1611. TInt32 aKeyOffset,
  1612. TAny* aConstructionParameters,
  1613. const TEComResolverParams& aResolutionParameters,
  1614. TUid aResolverUid);
  1615. __declspec(dllexport) static void DestroyedImplementation(TUid aDtorIDKey);
  1616. __declspec(dllexport) static void FinalClose();
  1617. private:
  1618. void ConstructL();
  1619. void ReallyClose();
  1620. static void ListImplementationsL(TInt aServiceId,
  1621.  TUid aInterfaceUid,
  1622.  const TEComResolverParams& aResolutionParameters,
  1623.  TUid aResolverUid,
  1624.  RImplInfoPtrArray& aImplInfoArray);
  1625. TAny* ResolveAndCreateImplL(TUid aImplementationUid,
  1626.  TUid& aDtorIDKey,
  1627.  TAny* aCreationParameters, TBool aCreationParamsFlag);
  1628. TAny* ResolveAndCreateImplL(TUid aInterfaceUid,
  1629.  const TEComResolverParams& aResolutionParameters,
  1630.  TUid& aDtorIDKey,
  1631.  TAny* aCreationParameters, TBool aCreationParamsFlag);
  1632. TAny* ResolveAndCreateImplL(TUid aInterfaceUid,
  1633.  const TEComResolverParams& aResolutionParameters,
  1634.  TUid aResolverUid,
  1635.  TUid& aDtorIDKey,
  1636.  TAny* aCreationParameters, TBool aCreationParamsFlag);
  1637. TAny* ResolveAndCreateImplL(TInt aServiceId,
  1638.  TUid aInterfaceUid,
  1639.  const TEComResolverParams& aResolutionParameters,
  1640.  TUid aResolverUid,
  1641.  TUid& aDtorIDKey,
  1642.  TAny* aCreationParameters, TBool aCreationParamsFlag);
  1643. public:
  1644. __declspec(dllexport) static void SetGetParametersL(const TIpcArgs &aArgs);
  1645. private:
  1646. TInt iReserved1;
  1647. TBool iDoNotCloseThis;
  1648. TInt iReserved2;
  1649. };
  1650. #line 27 "C:\Symbian\9.1\S60_3rd\epoc32\include\openfont.h" /* stack depth 8 */
  1651. class CFont;
  1652. class COpenFontFile;
  1653. class COpenFontGlyph;
  1654. class COpenFontGlyphCache;
  1655. class COpenFontGlyphTreeEntry;
  1656. class COpenFontPositioner;
  1657. class COpenFontSessionCache;
  1658. class COpenFontSessionCacheList;
  1659. class RFs;
  1660. class TCharacterMetrics;
  1661. class TFontSpec;
  1662. class TOpenFontFaceAttrib;
  1663. class CFontStore;
  1664. class TOpenFontFileData;
  1665. const TInt KUidOpenFontRasterizerPlunginInterface = 0x101F7F5D;
  1666. #line 64
  1667. const TUint KReplacementCharacter = 0xF6DB;
  1668. const TInt KFillCharacterOffset = 0x7FFF;
  1669. #line 81
  1670. class TOpenFontMetrics
  1671. {
  1672. public:
  1673. inline TOpenFontMetrics();
  1674. __declspec(dllexport) TOpenFontMetrics(const CFont* aFont);
  1675. inline TInt Size() const;
  1676. inline TInt Ascent() const;
  1677. inline TInt Descent() const;
  1678. inline TInt MaxHeight() const;
  1679. inline TInt MaxDepth() const;
  1680. inline TInt MaxWidth() const;
  1681. inline void SetSize(TInt aSize);
  1682. inline void SetAscent(TInt aAscent);
  1683. inline void SetDescent(TInt aDescent);
  1684. inline void SetMaxHeight(TInt aMaxHeight);
  1685. inline void SetMaxDepth(TInt aMaxDepth);
  1686. inline void SetMaxWidth(TInt aMaxWidth);
  1687. private:
  1688. TInt16 iDesignHeight;
  1689. TInt16 iAscent;
  1690. TInt16 iDescent;
  1691. TInt16 iMaxHeight;
  1692. TInt16 iMaxDepth;
  1693. TInt16 iMaxWidth;
  1694. TInt32 iReserved;
  1695. };
  1696. #line 128
  1697. class TOpenFontCharMetrics
  1698. {
  1699. public:
  1700. enum TUninitialized { EUninitialized };
  1701. public:
  1702. inline TOpenFontCharMetrics();
  1703. TOpenFontCharMetrics(TUninitialized) {}
  1704. __declspec(dllexport) TOpenFontCharMetrics(const TCharacterMetrics& aMetrics);
  1705. __declspec(dllexport) TBool GetTCharacterMetrics(TCharacterMetrics& aMetrics) const;
  1706. inline TInt Width() const;
  1707. inline TInt Height() const;
  1708. inline TInt HorizBearingX() const;
  1709. inline TInt HorizBearingY() const;
  1710. inline TInt HorizAdvance() const;
  1711. inline TInt VertBearingX() const;
  1712. inline TInt VertBearingY() const;
  1713. inline TInt VertAdvance() const;
  1714. inline void GetHorizBounds(TRect& aBounds) const;
  1715. inline void GetVertBounds(TRect& aBounds) const;
  1716. inline void SetWidth(TInt aWidth);
  1717. inline void SetHeight(TInt aHeight);
  1718. inline void SetHorizBearingX(TInt aHorizBearingX);
  1719. inline void SetHorizBearingY(TInt aHorizBearingY);
  1720. inline void SetHorizAdvance(TInt aHorizAdvance);
  1721. inline void SetVertBearingX(TInt aVertBearingX);
  1722. inline void SetVertBearingY(TInt aVertBearingY);
  1723. inline void SetVertAdvance(TInt aVertAdvance);
  1724. private:
  1725. TInt16 iWidth;
  1726. TInt16 iHeight;
  1727. TInt16 iHorizBearingX;
  1728. TInt16 iHorizBearingY;
  1729. TInt16 iHorizAdvance;
  1730. TInt16 iVertBearingX;
  1731. TInt16 iVertBearingY;
  1732. TInt16 iVertAdvance;
  1733. TInt32 iReserved;
  1734. };
  1735. #line 187
  1736. class TOpenFontGlyphData
  1737. {
  1738. public:
  1739. __declspec(dllexport) static TOpenFontGlyphData* New(RHeap* aHeap,TInt aBufferSize);
  1740. inline TBool Overflow() const;
  1741. inline TInt BytesNeeded() const;
  1742. inline TPtrC8 Bitmap() const;
  1743. inline const TUint8* BitmapPointer() const;
  1744. inline const TOpenFontCharMetrics* Metrics() const;
  1745. inline TInt GlyphIndex() const;
  1746. inline TUint8* BufferStart();
  1747. inline TUint8* BufferEnd();
  1748. inline void SetBytesNeeded(TInt aBytes);
  1749. inline void SetBitmapPointer(const TUint8* aBitmap);
  1750. inline void SetMetricsPointer(const TOpenFontCharMetrics* aMetrics);
  1751. inline void SetPointersToInternalBuffers();
  1752. inline void SetMetrics(TOpenFontCharMetrics& aMetrics);
  1753. inline void SetGlyphIndex(TInt aGlyphIndex);
  1754. private:
  1755. TOpenFontGlyphData();
  1756. ~TOpenFontGlyphData();
  1757. private:
  1758. TInt iBitmapBufferSize;
  1759. TInt iBytesNeeded;
  1760. TOpenFontCharMetrics iMetricsBuffer;
  1761. const TUint8* iBitmap;
  1762. const TOpenFontCharMetrics* iMetrics;
  1763. TInt iGlyphIndex;
  1764. TAny* iReserved;
  1765. TUint8 iBitmapBuffer[1];
  1766. };
  1767. #line 254
  1768. class COpenFont: public CBase
  1769. {
  1770. public:
  1771. #line 282
  1772. virtual void RasterizeL(TInt aCode,TOpenFontGlyphData* aGlyphData) = 0;
  1773. __declspec(dllexport) virtual void Reserved();
  1774. __declspec(dllexport) COpenFont(RHeap* aHeap,COpenFontSessionCacheList* aSessionCacheList,COpenFontFile* aFile);
  1775. __declspec(dllexport) COpenFont(RHeap* aHeap,COpenFontSessionCacheList* aSessionCacheList,COpenFontFile* aFile,TInt aFaceIndex);
  1776. __declspec(dllexport) ~COpenFont();
  1777. __declspec(dllexport) void operator delete(TAny*);
  1778. inline const TOpenFontMetrics& Metrics() const;
  1779. inline const TOpenFontFaceAttrib* FaceAttrib() const;
  1780. inline COpenFontFile* File() const;
  1781. inline TInt FaceIndex() const;
  1782. inline TBool CharacterNeedsToBeRasterized(TInt aSessionHandle,TInt aCode) const;
  1783. TBool Rasterize(TInt aSessionHandle,TInt aCode,TOpenFontGlyphData* aGlyphData);
  1784. TBool HasCharacterL(TInt aCode) const;
  1785. TBool GetCharacterData(TInt aSessionHandle,TInt aCode,const TOpenFontCharMetrics*& aMetrics,const TUint8*& aBitmap) const;
  1786. void OnFileDeleted();
  1787. inline TInt FontCapitalAscent() const;
  1788. inline TInt FontMaxAscent() const;
  1789. inline TInt FontStandardDescent() const;
  1790. inline TInt FontMaxDescent() const;
  1791. inline TInt FontLineGap() const;
  1792. inline TInt FontMaxHeight() const;
  1793. protected:
  1794. RHeap* iHeap;
  1795. TOpenFontMetrics iMetrics;
  1796. const COpenFontPositioner* iPositioner;
  1797. TInt iFontCapitalAscent;
  1798. TInt iFontMaxAscent;
  1799. TInt iFontStandardDescent;
  1800. TInt iFontMaxDescent;
  1801. TInt iFontLineGap;
  1802. private:
  1803. const COpenFontGlyph* Glyph(TInt aSessionHandle,TInt aCode) const;
  1804. const COpenFontGlyph* FontCacheGlyph(TInt aCode,COpenFontGlyphTreeEntry**& aNode);
  1805. const COpenFontGlyph* SessionCacheGlyph(RHeap* aHeap,TInt aSessionHandle,TInt aCode,
  1806. COpenFontSessionCache*& aCache,TInt& aIndex,TBool aCreate) const;
  1807. void RasterizeHelperL(TInt aCode,TOpenFontGlyphData* aGlyphData,TOpenFontGlyphData*& aTempGlyphData);
  1808. private:
  1809. COpenFontFile* iFile;
  1810. TInt iFaceIndex;
  1811. COpenFontGlyphCache* iGlyphCache;
  1812. COpenFontSessionCacheList* iSessionCacheList;
  1813. TAny* iReserved;
  1814. };
  1815. #line 351
  1816. class TOpenFontFaceAttribBase
  1817. {
  1818. public:
  1819. inline TOpenFontFaceAttribBase();
  1820. inline TBool HasLatin() const;
  1821. inline TBool HasGreek() const;
  1822. inline TBool HasCyrillic() const;
  1823. inline TBool HasKana() const;
  1824. inline TBool HasHangul() const;
  1825. inline TBool HasCJK() const;
  1826. inline TBool IsSymbol() const;
  1827. inline TBool IsBold() const;
  1828. inline TBool IsItalic() const;
  1829. inline TBool IsSerif() const;
  1830. inline TBool IsMonoWidth() const;
  1831. inline TPtrC Name() const;
  1832. inline const TUint* Coverage() const;
  1833. inline void SetName(const TDesC& aName);
  1834. inline void SetCoverage(TUint aCoverage0,TUint aCoverage1 = 0,TUint aCoverage2 = 0,TUint aCoverage3 = 0);
  1835. inline void SetBold(TBool aBold);
  1836. inline void SetItalic(TBool aItalic);
  1837. inline void SetSerif(TBool aSerif);
  1838. inline void SetMonoWidth(TBool aMonoWidth);
  1839. inline TBool operator==(const TOpenFontFaceAttribBase& aAttrib) const;
  1840. enum
  1841. {
  1842. ELatinSet = 0x1,
  1843. EGreekSet = 0x80,
  1844. ECyrillicSet = 0x200,
  1845. EArmenianSet = 0x400,
  1846. EHebrewSet = 0x800,
  1847. EArabicSet = 0x2000,
  1848. EDevanagariSet = 0x8000,
  1849. EBengaliSet = 0x10000,
  1850. EGurmukhiSet = 0x20000,
  1851. EGujuratiSet = 0x40000,
  1852. EOriyaSet = 0x80000,
  1853. ETamilSet = 0x100000,
  1854. ETeluguSet = 0x200000,
  1855. EKannadaSet = 0x400000,
  1856. EMalayalamSet = 0x800000,
  1857. EThaiSet = 0x1000000,
  1858. ELaoSet = 0x2000000,
  1859. EGeorgianSet = 0x8000000,
  1860. EHangulJamoSet = 0x10000000,
  1861. };
  1862. enum
  1863. {
  1864. ESymbolSets = 0xFFFE,
  1865. EKanaSets = 0x60000,
  1866. EHangulSet = 0x100000,
  1867. ECJKSet = 0x8000000
  1868. };
  1869. enum
  1870. {
  1871. EBold = 0x1,
  1872. EItalic = 0x2,
  1873. ESerif = 0x4,
  1874. EMonoWidth = 0x8
  1875. };
  1876. enum
  1877. {
  1878. ENameLength = 32
  1879. };
  1880. protected:
  1881. TBufC<ENameLength> iName;
  1882. TUint iCoverage[4];
  1883. TInt iStyle;
  1884. TInt32 iReserved;
  1885. };
  1886. #line 443
  1887. class TOpenFontFaceAttrib: public TOpenFontFaceAttribBase
  1888. {
  1889. public:
  1890. inline TOpenFontFaceAttrib();
  1891. inline TBool operator==(const TOpenFontFaceAttrib& aAttrib) const;
  1892. inline TPtrC FullName() const;
  1893. inline TPtrC FamilyName() const;
  1894. inline TPtrC LocalFullName() const;
  1895. inline TPtrC LocalFamilyName() const;
  1896. inline TPtrC ShortFullName() const;
  1897. inline TPtrC ShortFamilyName() const;
  1898. inline TPtrC ShortLocalFullName() const;
  1899. inline TPtrC ShortLocalFamilyName() const;
  1900. inline void SetFullName(const TDesC& aName);
  1901. inline void SetFamilyName(const TDesC& aName);
  1902. inline void SetLocalFullName(const TDesC& aName);
  1903. inline void SetLocalFamilyName(const TDesC& aName);
  1904. inline TInt MinSizeInPixels() const;
  1905. inline void SetMinSizeInPixels(TInt aSize);
  1906. private:
  1907. TBufC<ENameLength> iFamilyName;
  1908. TBufC<ENameLength> iLocalFullName;
  1909. TBufC<ENameLength> iLocalFamilyName;
  1910. TInt iMinSizeInPixels;
  1911. TInt32 iReserved2;
  1912. };
  1913. #line 488
  1914. class TOpenFontSpec: public TOpenFontFaceAttribBase
  1915. {
  1916. public:
  1917. __declspec(dllexport) TOpenFontSpec();
  1918. __declspec(dllexport) TOpenFontSpec(const TFontSpec& aFontSpec);
  1919. __declspec(dllexport) void operator=(const TFontSpec& aFontSpec);
  1920. inline TBool operator==(const TOpenFontSpec& aFontSpec) const;
  1921. __declspec(dllexport) void SetAttrib(const TOpenFontFaceAttribBase& aAttrib);
  1922. __declspec(dllexport) void GetTFontSpec(TFontSpec& aFontSpec) const;
  1923. __declspec(dllexport) void CompensateForAspectRatio(TInt aPixelWidth,TInt aPixelHeight);
  1924. __declspec(dllexport) void CompensateForAspectRatio(const MGraphicsDeviceMap& aMap);
  1925. inline TInt Height() const;
  1926. inline TInt32 WidthFactor() const;
  1927. inline TInt32 SlantFactor() const;
  1928. inline TGlyphBitmapType BitmapType() const;
  1929. inline TUint32 Effects() const;
  1930. inline TFontPrintPosition PrintPosition() const;
  1931. inline void SetHeight(TInt aHeight);
  1932. inline void SetWidthFactor(TInt32 aWidthFactor);
  1933. inline void SetSlantFactor(TInt32 aSlantFactor);
  1934. inline void SetBitmapType(TGlyphBitmapType aBitmapType);
  1935. inline void SetEffects(TUint32 aEffects);
  1936. __declspec(dllexport) void SetEffects(FontEffect::TEffect aEffect, TBool aOn);
  1937. __declspec(dllexport) TBool IsEffectOn(FontEffect::TEffect aEffect) const;
  1938. static TBool IsCompensationForAspectRatioNeeded(TInt aPixelWidth, TInt aPixelHeight, TReal& aRatio);
  1939. enum
  1940. {
  1941. EAlgorithmicBold = 1,
  1942. EDropShadow = 2,
  1943. EOutline = 4
  1944. };
  1945. private:
  1946. TInt iHeight;
  1947. TInt32 iWidthFactor;
  1948. TInt32 iSlantFactor;
  1949. TInt iBitmapType;
  1950. TUint32 iEffects;
  1951. TBool iSymbol;
  1952. TFontPrintPosition iPrintPosition;
  1953. TInt iReserved2;
  1954. };
  1955. enum TOpenFontAttachment
  1956. {
  1957. EBaselineLeft,
  1958. EBaselineRight,
  1959. ETopLeft,
  1960. ETopCenter,
  1961. ETopRight,
  1962. EBottomLeft,
  1963. EBottomCenter,
  1964. EBottomRight
  1965. };
  1966. #line 599
  1967. class COpenFontFile: public CBase
  1968. {
  1969. public:
  1970. virtual void GetNearestFontInPixelsL(RHeap* aHeap, COpenFontSessionCacheList* aSessionCacheList,
  1971.  const TOpenFontSpec& aDesiredFontSpec, TInt aPixelWidth, TInt aPixelHeight,
  1972.  COpenFont*& aFont, TOpenFontSpec& aActualFontSpec) = 0;
  1973. virtual void GetNearestFontToDesignHeightInPixelsL(RHeap* , COpenFontSessionCacheList* ,
  1974.    const TOpenFontSpec& , TInt , TInt ,
  1975.    COpenFont*& , TOpenFontSpec& ){}
  1976. virtual void GetNearestFontToMaxHeightInPixelsL(RHeap* , COpenFontSessionCacheList* ,
  1977. const TOpenFontSpec& , TInt , TInt ,
  1978.  COpenFont*& , TOpenFontSpec& , TInt ){}
  1979. virtual TBool HasUnicodeCharacterL(TInt aFaceIndex,TInt aCode) const = 0;
  1980. __declspec(dllexport) virtual void Reserved();
  1981. __declspec(dllexport) COpenFontFile(TInt aUid,const TDesC& aFileName);
  1982. __declspec(dllexport) ~COpenFontFile();
  1983. __declspec(dllexport) TBool GetNearestFontHelper(const TOpenFontSpec& aDesiredFontSpec,TInt aPixelWidth,TInt aPixelHeight,
  1984. TInt& aFaceIndex,TOpenFontSpec& aActualFontSpec) const;
  1985. __declspec(dllexport) void AddFaceL(const TOpenFontFaceAttrib& aAttrib);
  1986. inline TUid Uid() const;
  1987. inline const TDesC& FileName() const;
  1988. inline const TOpenFontFaceAttrib& FaceAttrib(TInt aFaceIndex) const;
  1989. inline TInt FaceCount() const;
  1990. inline void IncRefCount();
  1991. inline TBool DecRefCount();
  1992. TInt GetNearestFontInPixels(RHeap* aHeap,COpenFontSessionCacheList* aSessionCacheList,
  1993. const TOpenFontSpec& aDesiredFontSpec,TInt aPixelWidth,TInt aPixelHeight,
  1994. COpenFont*& aFont,TOpenFontSpec& aActualFontSpec);
  1995. TInt GetNearestFontToDesignHeightInPixels(RHeap* aHeap, COpenFontSessionCacheList* aSessionCacheList,
  1996.   const TOpenFontSpec& aDesiredFontSpec, TInt aPixelWidth, TInt aPixelHeight,
  1997.   COpenFont*& aFont, TOpenFontSpec& aActualFontSpec);
  1998. TInt GetNearestFontToMaxHeightInPixels(RHeap* aHeap, COpenFontSessionCacheList* aSessionCacheList,
  1999.    const TOpenFontSpec& aDesiredFontSpec, TInt aPixelWidth, TInt aPixelHeight,
  2000.    COpenFont*& aFont, TOpenFontSpec& aActualFontSpec, TInt aMaxHeight);
  2001. void RemoveFontFromList(const COpenFont* aFont);
  2002. void SetFontStoreL(CFontStore* aFontStore);
  2003. protected:
  2004. __declspec(dllexport) TBool GetNearestFontHelperOld(const TOpenFontSpec& aDesiredFontSpec,TInt aPixelWidth,TInt aPixelHeight,
  2005. TInt& aFaceIndex,TOpenFontSpec& aActualFontSpec) const;
  2006. private:
  2007. class TAttrib: public TOpenFontFaceAttrib
  2008. {
  2009. public:
  2010. COpenFontPositioner* iPositioner;
  2011. };
  2012. static TInt ScoreByName(const TOpenFontSpec& aDesiredFontSpec, const TAttrib& aAttrib);
  2013. static TInt ScoreByStyle(const TOpenFontSpec& aDesiredFontSpec, const TAttrib& aAttrib, const TOpenFontFileData* aOpenFontFileData);
  2014. private:
  2015. CArrayFixFlat<TAttrib> iFaceAttrib;
  2016. TUid iUid;
  2017. TBuf<KMaxFileName> iFileName;
  2018. TInt iRefCount;
  2019. CArrayPtrFlat<COpenFont> iFontList;
  2020. TOpenFontFileData* iData;
  2021. };
  2022. #line 697
  2023. class COpenFontRasterizer: public CBase
  2024. {
  2025. public:
  2026. #line 730
  2027. virtual COpenFontFile* NewFontFileL(TInt aUid,const TDesC& aFileName,RFs& aFileSession) = 0;
  2028. inline static COpenFontRasterizer* NewL(TUid aInterfaceImplUid);
  2029. inline virtual ~COpenFontRasterizer();
  2030. __declspec(dllexport) virtual void Reserved();
  2031. private:
  2032. TUid iDtor_ID_Key;
  2033. };
  2034. #line 753
  2035. class COpenFontRasterizerContext: public CBase
  2036. {
  2037. public:
  2038. inline COpenFontRasterizerContext();
  2039. inline void StartGlyph(TOpenFontGlyphData* aGlyphData);
  2040. inline void WriteGlyphBit(TInt aBit);
  2041. inline void WriteGlyphByte(TInt aByte);
  2042. inline void EndGlyph();
  2043. private:
  2044. TOpenFontGlyphData* iGlyphData;
  2045. TUint8* iGlyphDataStart;
  2046. TUint8* iGlyphDataPtr;
  2047. TUint8* iGlyphDataEnd;
  2048. TInt iGlyphBit;
  2049. TInt iBytesNeeded;
  2050. TBool iOverflow;
  2051. TAny* iReserved;
  2052. };
  2053. inline TOpenFontMetrics::TOpenFontMetrics()
  2054. {
  2055. Mem::FillZ(this,sizeof(*this));
  2056. }
  2057. inline TInt TOpenFontMetrics::Size() const
  2058. {
  2059. return iDesignHeight;
  2060. }
  2061. inline TInt TOpenFontMetrics::Ascent() const
  2062. {
  2063. return iAscent;
  2064. }
  2065. inline TInt TOpenFontMetrics::Descent() const
  2066. {
  2067. return iDescent;
  2068. }
  2069. #line 824
  2070. inline TInt TOpenFontMetrics::MaxHeight() const
  2071. {
  2072. return iMaxHeight;
  2073. }
  2074. #line 839
  2075. inline TInt TOpenFontMetrics::MaxDepth() const
  2076. {
  2077. return iMaxDepth;
  2078. }
  2079. inline TInt TOpenFontMetrics::MaxWidth() const
  2080. {
  2081. return iMaxWidth;
  2082. }
  2083. inline void TOpenFontMetrics::SetSize(TInt aSize)
  2084. {
  2085. iDesignHeight = static_cast<TInt16>(aSize);
  2086. }
  2087. inline void TOpenFontMetrics::SetAscent(TInt aAscent)
  2088. {
  2089. iAscent = static_cast<TInt16>(aAscent);
  2090. }
  2091. inline void TOpenFontMetrics::SetDescent(TInt aDescent)
  2092. {
  2093. iDescent = static_cast<TInt16>(aDescent);
  2094. }
  2095. inline void TOpenFontMetrics::SetMaxHeight(TInt aMaxHeight)
  2096. {
  2097. iMaxHeight = static_cast<TInt16>(aMaxHeight);
  2098. }
  2099. inline void TOpenFontMetrics::SetMaxDepth(TInt aMaxDepth)
  2100. {
  2101. iMaxDepth = static_cast<TInt16>(aMaxDepth);
  2102. }
  2103. inline void TOpenFontMetrics::SetMaxWidth(TInt aMaxWidth)
  2104. {
  2105. iMaxWidth = static_cast<TInt16>(aMaxWidth);
  2106. }
  2107. inline TOpenFontCharMetrics::TOpenFontCharMetrics()
  2108. {
  2109. Mem::FillZ(this,sizeof(*this));
  2110. }
  2111. inline TInt TOpenFontCharMetrics::Width() const
  2112. {
  2113. return iWidth;
  2114. }
  2115. inline TInt TOpenFontCharMetrics::Height() const
  2116. {
  2117. return iHeight;
  2118. }
  2119. #line 939
  2120. inline TInt TOpenFontCharMetrics::HorizBearingX() const
  2121. {
  2122. return iHorizBearingX;
  2123. }
  2124. #line 951
  2125. inline TInt TOpenFontCharMetrics::HorizBearingY() const
  2126. {
  2127. return iHorizBearingY;
  2128. }
  2129. #line 963
  2130. inline TInt TOpenFontCharMetrics::HorizAdvance() const
  2131. {
  2132. return iHorizAdvance;
  2133. }
  2134. #line 975
  2135. inline TInt TOpenFontCharMetrics::VertBearingX() const
  2136. {
  2137. return iVertBearingX;
  2138. }
  2139. #line 987
  2140. inline TInt TOpenFontCharMetrics::VertBearingY() const
  2141. {
  2142. return iVertBearingY;
  2143. }
  2144. #line 1002
  2145. inline TInt TOpenFontCharMetrics::VertAdvance() const
  2146. {
  2147. return iVertAdvance;
  2148. }
  2149. inline void TOpenFontCharMetrics::GetHorizBounds(TRect& aBounds) const
  2150. {
  2151. aBounds.iTl.iX = iHorizBearingX;
  2152. aBounds.iTl.iY = -iHorizBearingY;
  2153. aBounds.iBr.iX = aBounds.iTl.iX + iWidth;
  2154. aBounds.iBr.iY = aBounds.iTl.iY + iHeight;
  2155. }
  2156. inline void TOpenFontCharMetrics::GetVertBounds(TRect& aBounds) const
  2157. {
  2158. aBounds.iTl.iX = -iVertBearingX;
  2159. aBounds.iTl.iY = iVertBearingY;
  2160. aBounds.iBr.iX = aBounds.iTl.iX + iWidth;
  2161. aBounds.iBr.iY = aBounds.iTl.iY + iHeight;
  2162. }
  2163. inline void TOpenFontCharMetrics::SetWidth(TInt aWidth)
  2164. {
  2165. iWidth = (TInt16)aWidth;
  2166. }
  2167. inline void TOpenFontCharMetrics::SetHeight(TInt aHeight)
  2168. {
  2169. iHeight = (TInt16)aHeight;
  2170. }
  2171. #line 1058
  2172. inline void TOpenFontCharMetrics::SetHorizBearingX(TInt aHorizBearingX)
  2173. {
  2174. iHorizBearingX = (TInt16)aHorizBearingX;
  2175. }
  2176. #line 1070
  2177. inline void TOpenFontCharMetrics::SetHorizBearingY(TInt aHorizBearingY)
  2178. {
  2179. iHorizBearingY = (TInt16)aHorizBearingY;
  2180. }
  2181. #line 1082
  2182. inline void TOpenFontCharMetrics::SetHorizAdvance(TInt aHorizAdvance)
  2183. {
  2184. iHorizAdvance = (TInt16)aHorizAdvance;
  2185. }
  2186. #line 1094
  2187. inline void TOpenFontCharMetrics::SetVertBearingX(TInt aVertBearingX)
  2188. {
  2189. iVertBearingX = (TInt16)aVertBearingX;
  2190. }
  2191. #line 1106
  2192. inline void TOpenFontCharMetrics::SetVertBearingY(TInt aVertBearingY)
  2193. {
  2194. iVertBearingY = (TInt16)aVertBearingY;
  2195. }
  2196. #line 1121
  2197. inline void TOpenFontCharMetrics::SetVertAdvance(TInt aVertAdvance)
  2198. {
  2199. iVertAdvance = (TInt16)aVertAdvance;
  2200. }
  2201. inline const TOpenFontMetrics& COpenFont::Metrics() const
  2202. {
  2203. return iMetrics;
  2204. }
  2205. #line 1144
  2206. inline TInt TOpenFontGlyphData::GlyphIndex() const
  2207. {
  2208. return iGlyphIndex;
  2209. }
  2210. inline const TOpenFontFaceAttrib* COpenFont::FaceAttrib() const
  2211. {
  2212. return iFile ? &iFile->FaceAttrib(iFaceIndex) : 0 ;
  2213. }
  2214. #line 1166
  2215. inline COpenFontFile* COpenFont::File() const
  2216. {
  2217. return iFile;
  2218. }
  2219. inline TInt COpenFont::FaceIndex() const
  2220. {
  2221. return iFaceIndex;
  2222. }
  2223. #line 1188
  2224. inline TBool COpenFont::CharacterNeedsToBeRasterized(TInt aSessionHandle,TInt aCode) const
  2225. {
  2226. return Glyph(aSessionHandle,aCode) == 0 ;
  2227. }
  2228. #line 1201
  2229. inline TInt COpenFont::FontCapitalAscent() const
  2230. {
  2231. return iFontCapitalAscent;
  2232. }
  2233. #line 1217
  2234. inline TInt COpenFont::FontMaxAscent() const
  2235. {
  2236. return iFontMaxAscent;
  2237. }
  2238. #line 1230
  2239. inline TInt COpenFont::FontStandardDescent() const
  2240. {
  2241. return iFontStandardDescent;
  2242. }
  2243. #line 1245
  2244. inline TInt COpenFont::FontMaxDescent() const
  2245. {
  2246. return iFontMaxDescent;
  2247. }
  2248. inline TInt COpenFont::FontLineGap() const
  2249. {
  2250. return iFontLineGap;
  2251. }
  2252. #line 1268
  2253. inline TInt COpenFont::FontMaxHeight() const
  2254. {
  2255. return iFontMaxAscent + iFontMaxDescent;
  2256. }
  2257. inline TOpenFontFaceAttribBase::TOpenFontFaceAttribBase()
  2258. {
  2259. Mem::FillZ(this,sizeof(*this));
  2260. }
  2261. inline TOpenFontFaceAttrib::TOpenFontFaceAttrib():
  2262. iMinSizeInPixels(0),
  2263. iReserved2(0)
  2264. {
  2265. }
  2266. inline TBool TOpenFontFaceAttribBase::HasLatin() const
  2267. {
  2268. return iCoverage[0] & ELatinSet;
  2269. }
  2270. inline TBool TOpenFontFaceAttribBase::HasGreek() const
  2271. {
  2272. return iCoverage[0] & EGreekSet;
  2273. }
  2274. inline TBool TOpenFontFaceAttribBase::HasCyrillic() const
  2275. {
  2276. return iCoverage[0] & ECyrillicSet;
  2277. }
  2278. #line 1336
  2279. inline TBool TOpenFontFaceAttribBase::HasKana() const
  2280. {
  2281. return iCoverage[1] & EKanaSets;
  2282. }
  2283. #line 1350
  2284. inline TBool TOpenFontFaceAttribBase::HasHangul() const
  2285. {
  2286. return iCoverage[1] & EHangulSet;
  2287. }
  2288. #line 1363
  2289. inline TBool TOpenFontFaceAttribBase::HasCJK() const
  2290. {
  2291. return iCoverage[1] & ECJKSet;
  2292. }
  2293. inline TBool TOpenFontFaceAttribBase::IsSymbol() const
  2294. {
  2295. return iCoverage[0] == 0 && iCoverage[2] == 0 && iCoverage[3] == 0 &&
  2296.    iCoverage[1] & ESymbolSets && !(iCoverage[1] & ~ESymbolSets);
  2297. }
  2298. inline TBool TOpenFontFaceAttribBase::IsBold() const
  2299. {
  2300. return iStyle & EBold;
  2301. }
  2302. inline TBool TOpenFontFaceAttribBase::IsItalic() const
  2303. {
  2304. return iStyle & EItalic;
  2305. }
  2306. inline TBool TOpenFontFaceAttribBase::IsSerif() const
  2307. {
  2308. return iStyle & ESerif;
  2309. }
  2310. inline TBool TOpenFontFaceAttribBase::IsMonoWidth() const
  2311. {
  2312. return iStyle & EMonoWidth;
  2313. }
  2314. inline TPtrC TOpenFontFaceAttribBase::Name() const
  2315. {
  2316. return iName;
  2317. }
  2318. #line 1424
  2319. inline TPtrC TOpenFontFaceAttrib::FullName() const
  2320. {
  2321. return Name();
  2322. }
  2323. #line 1436
  2324. inline TPtrC TOpenFontFaceAttrib::FamilyName() const
  2325. {
  2326. return iFamilyName;
  2327. }
  2328. #line 1451
  2329. inline TPtrC TOpenFontFaceAttrib::LocalFullName() const
  2330. {
  2331. return iLocalFullName;
  2332. }
  2333. #line 1466
  2334. inline TPtrC TOpenFontFaceAttrib::LocalFamilyName() const
  2335. {
  2336. return iLocalFamilyName;
  2337. }
  2338. #line 1482
  2339. inline TPtrC TOpenFontFaceAttrib::ShortFullName() const
  2340. {
  2341. return TPtrC(iName.Ptr(),Min(iName.Length(),KMaxTypefaceNameLength));
  2342. }
  2343. #line 1498
  2344. inline TPtrC TOpenFontFaceAttrib::ShortFamilyName() const
  2345. {
  2346. return TPtrC(iFamilyName.Ptr(),Min(iFamilyName.Length(),KMaxTypefaceNameLength));
  2347. }
  2348. #line 1514
  2349. inline TPtrC TOpenFontFaceAttrib::ShortLocalFullName() const
  2350. {
  2351. return TPtrC(iLocalFullName.Ptr(),Min(iLocalFullName.Length(),KMaxTypefaceNameLength));
  2352. }
  2353. #line 1530
  2354. inline TPtrC TOpenFontFaceAttrib::ShortLocalFamilyName() const
  2355. {
  2356. return TPtrC(iLocalFamilyName.Ptr(),Min(iLocalFamilyName.Length(),KMaxTypefaceNameLength));
  2357. }
  2358. #line 1547
  2359. inline const TUint* TOpenFontFaceAttribBase::Coverage() const
  2360. {
  2361. return iCoverage;
  2362. }
  2363. inline TInt TOpenFontFaceAttrib::MinSizeInPixels() const
  2364. {
  2365. return iMinSizeInPixels;
  2366. }
  2367. inline void TOpenFontFaceAttribBase::SetName(const TDesC& aName)
  2368. {
  2369. iName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  2370. }
  2371. inline void TOpenFontFaceAttrib::SetFullName(const TDesC& aName)
  2372. {
  2373. SetName(aName);
  2374. }
  2375. inline void TOpenFontFaceAttrib::SetFamilyName(const TDesC& aName)
  2376. {
  2377. iFamilyName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  2378. }
  2379. inline void TOpenFontFaceAttrib::SetLocalFullName(const TDesC& aName)
  2380. {
  2381. iLocalFullName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  2382. }
  2383. inline void TOpenFontFaceAttrib::SetLocalFamilyName(const TDesC& aName)
  2384. {
  2385. iLocalFamilyName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  2386. }
  2387. #line 1620
  2388. inline void TOpenFontFaceAttribBase::SetCoverage(TUint aCoverage0,TUint aCoverage1,TUint aCoverage2,TUint aCoverage3)
  2389. {
  2390. iCoverage[0] = aCoverage0;
  2391. iCoverage[1] = aCoverage1;
  2392. iCoverage[2] = aCoverage2;
  2393. iCoverage[3] = aCoverage3;
  2394. }
  2395. inline void TOpenFontFaceAttrib::SetMinSizeInPixels(TInt aSize)
  2396. {
  2397. iMinSizeInPixels = aSize;
  2398. }
  2399. #line 1647
  2400. inline TBool TOpenFontFaceAttrib::operator==(const TOpenFontFaceAttrib& aAttrib) const
  2401. {
  2402. return TOpenFontFaceAttribBase::operator==(aAttrib) &&
  2403.    iFamilyName == aAttrib.iFamilyName &&
  2404.    iLocalFullName == aAttrib.iLocalFullName &&
  2405.    iLocalFamilyName == aAttrib.iLocalFamilyName &&
  2406.    iMinSizeInPixels == aAttrib.iMinSizeInPixels;
  2407. }
  2408. inline void TOpenFontFaceAttribBase::SetBold(TBool aBold)
  2409. {
  2410. if (aBold)
  2411. iStyle |= EBold;
  2412. else
  2413. iStyle &= ~EBold;
  2414. }
  2415. inline void TOpenFontFaceAttribBase::SetItalic(TBool aItalic)
  2416. {
  2417. if (aItalic)
  2418. iStyle |= EItalic;
  2419. else
  2420. iStyle &= ~EItalic;
  2421. }
  2422. inline void TOpenFontFaceAttribBase::SetSerif(TBool aSerif)
  2423. {
  2424. if (aSerif)
  2425. iStyle |= ESerif;
  2426. else
  2427. iStyle &= ~ESerif;
  2428. }
  2429. inline void TOpenFontFaceAttribBase::SetMonoWidth(TBool aMonoWidth)
  2430. {
  2431. if (aMonoWidth)
  2432. iStyle |= EMonoWidth;
  2433. else
  2434. iStyle &= ~EMonoWidth;
  2435. }
  2436. #line 1710
  2437. inline TBool TOpenFontFaceAttribBase::operator==(const TOpenFontFaceAttribBase& aAttrib) const
  2438. {
  2439. return iStyle == aAttrib.iStyle &&
  2440.    iCoverage[0] == aAttrib.iCoverage[0] &&
  2441.    iCoverage[1] == aAttrib.iCoverage[1] &&
  2442.    iCoverage[2] == aAttrib.iCoverage[2] &&
  2443.    iCoverage[3] == aAttrib.iCoverage[3] &&
  2444.    iName.CompareF(aAttrib.iName) == 0;
  2445. }
  2446. #line 1727
  2447. inline TBool TOpenFontSpec::operator==(const TOpenFontSpec& aFontSpec) const
  2448. {
  2449. return TOpenFontFaceAttribBase::operator==(aFontSpec) &&
  2450.    iHeight == aFontSpec.iHeight &&
  2451.    iWidthFactor == aFontSpec.iWidthFactor &&
  2452.    iSlantFactor == aFontSpec.iSlantFactor &&
  2453.    iBitmapType == aFontSpec.iBitmapType &&
  2454.    iEffects == aFontSpec.iEffects &&
  2455.    iSymbol == aFontSpec.iSymbol &&
  2456.    iPrintPosition == aFontSpec.iPrintPosition;
  2457. }
  2458. inline TInt TOpenFontSpec::Height() const
  2459. {
  2460. return iHeight;
  2461. }
  2462. inline TInt32 TOpenFontSpec::WidthFactor() const
  2463. {
  2464. return iWidthFactor;
  2465. }
  2466. inline TInt32 TOpenFontSpec::SlantFactor() const
  2467. {
  2468. return iSlantFactor;
  2469. }
  2470. inline TGlyphBitmapType TOpenFontSpec::BitmapType() const
  2471. {
  2472. return (TGlyphBitmapType)iBitmapType;
  2473. }
  2474. inline TUint32 TOpenFontSpec::Effects() const
  2475. {
  2476. return iEffects;
  2477. }
  2478. inline TFontPrintPosition TOpenFontSpec::PrintPosition() const
  2479. {
  2480. return iPrintPosition;
  2481. }
  2482. inline void TOpenFontSpec::SetHeight(TInt aHeight)
  2483. {
  2484. iHeight = aHeight;
  2485. }
  2486. #line 1811
  2487. inline void TOpenFontSpec::SetWidthFactor(TInt32 aWidthFactor)
  2488. {
  2489. iWidthFactor = aWidthFactor;
  2490. }
  2491. #line 1831
  2492. inline void TOpenFontSpec::SetSlantFactor(TInt32 aSlantFactor)
  2493. {
  2494. iSlantFactor = aSlantFactor;
  2495. }
  2496. #line 1845
  2497. inline void TOpenFontSpec::SetBitmapType(TGlyphBitmapType aBitmapType)
  2498. {
  2499. iBitmapType = aBitmapType;
  2500. }
  2501. inline void TOpenFontSpec::SetEffects(TUint32 aEffects)
  2502. {
  2503. iEffects = aEffects;
  2504. }
  2505. inline TUid COpenFontFile::Uid() const
  2506. {
  2507. return iUid;
  2508. }
  2509. inline const TDesC& COpenFontFile::FileName() const
  2510. {
  2511. return iFileName;
  2512. }
  2513. inline const TOpenFontFaceAttrib& COpenFontFile::FaceAttrib(TInt aFaceIndex) const
  2514. {
  2515. return iFaceAttrib[aFaceIndex];
  2516. }
  2517. #line 1899
  2518. inline TInt COpenFontFile::FaceCount() const
  2519. {
  2520. return iFaceAttrib.Count();
  2521. }
  2522. inline void COpenFontFile::IncRefCount()
  2523. {
  2524. iRefCount++;
  2525. }
  2526. inline TBool COpenFontFile::DecRefCount()
  2527. {
  2528. iRefCount--;
  2529. return iRefCount <= 0;
  2530. }
  2531. inline COpenFontRasterizerContext::COpenFontRasterizerContext():
  2532. iGlyphData(0 )
  2533. {
  2534. }
  2535. inline void COpenFontRasterizerContext::StartGlyph(TOpenFontGlyphData* aGlyphData)
  2536. {
  2537. aGlyphData->SetPointersToInternalBuffers();
  2538. iGlyphData = aGlyphData;
  2539. iGlyphDataStart = iGlyphDataPtr = aGlyphData->BufferStart();
  2540. iGlyphDataEnd = aGlyphData->BufferEnd() - 4;
  2541. iGlyphBit = 1;
  2542. *iGlyphDataPtr = 0;
  2543. iBytesNeeded = 1;
  2544. iOverflow = 0 ;
  2545. }
  2546. inline void COpenFontRasterizerContext::WriteGlyphBit(TInt aBit)
  2547. {
  2548. if (aBit && !iOverflow)
  2549. *iGlyphDataPtr |= iGlyphBit;
  2550. iGlyphBit <<= 1;
  2551. if (iGlyphBit == 256)
  2552. {
  2553. iGlyphBit = 1;
  2554. iBytesNeeded++;
  2555. if (++iGlyphDataPtr < iGlyphDataEnd)
  2556. *iGlyphDataPtr = 0;
  2557. else
  2558. iOverflow = 1 ;
  2559. }
  2560. }
  2561. inline void COpenFontRasterizerContext::WriteGlyphByte(TInt aByte)
  2562.   {
  2563. if (iGlyphDataPtr < iGlyphDataEnd)
  2564. *iGlyphDataPtr++ = (TUint8)aByte;
  2565. else
  2566. iOverflow = 1 ;
  2567. iBytesNeeded++;
  2568. }
  2569. inline void COpenFontRasterizerContext::EndGlyph()
  2570. {
  2571. iGlyphData->SetBytesNeeded(iBytesNeeded + 4);
  2572. iGlyphData = 0 ;
  2573. }
  2574. inline TBool TOpenFontGlyphData::Overflow() const
  2575. {
  2576. return iBytesNeeded > iBitmapBufferSize;
  2577. }
  2578. inline TInt TOpenFontGlyphData::BytesNeeded() const
  2579. {
  2580. return iBytesNeeded;
  2581. }
  2582. inline TPtrC8 TOpenFontGlyphData::Bitmap() const
  2583. {
  2584. return TPtrC8(iBitmap,iBytesNeeded);
  2585. }
  2586. inline const TUint8* TOpenFontGlyphData::BitmapPointer() const
  2587. {
  2588. return iBitmap;
  2589. }
  2590. inline const TOpenFontCharMetrics* TOpenFontGlyphData::Metrics() const
  2591. {
  2592. return iMetrics;
  2593. }
  2594. inline TUint8* TOpenFontGlyphData::BufferStart()
  2595. {
  2596. return iBitmapBuffer;
  2597. }
  2598. inline TUint8* TOpenFontGlyphData::BufferEnd()
  2599. {
  2600. return iBitmapBuffer + iBitmapBufferSize;
  2601. }
  2602. inline void TOpenFontGlyphData::SetBytesNeeded(TInt aBytes)
  2603. {
  2604. iBytesNeeded = aBytes;
  2605. }
  2606. inline void TOpenFontGlyphData::SetBitmapPointer(const TUint8* aBitmap)
  2607. {
  2608. iBitmap = aBitmap;
  2609. }
  2610. inline void TOpenFontGlyphData::SetMetricsPointer(const TOpenFontCharMetrics* aMetrics)
  2611. {
  2612. iMetrics = aMetrics;
  2613. }
  2614. inline void TOpenFontGlyphData::SetPointersToInternalBuffers()
  2615. {
  2616. iBitmap = iBitmapBuffer;
  2617. iMetrics = &iMetricsBuffer;
  2618. }
  2619. inline void TOpenFontGlyphData::SetMetrics(TOpenFontCharMetrics& aMetrics)
  2620. {
  2621. iMetricsBuffer = aMetrics;
  2622. iMetrics = &iMetricsBuffer;
  2623. }
  2624. inline void TOpenFontGlyphData::SetGlyphIndex(TInt aGlyphIndex)
  2625. {
  2626. iGlyphIndex = aGlyphIndex;
  2627. }
  2628. #line 2117
  2629. inline COpenFontRasterizer* COpenFontRasterizer::NewL(TUid aInterfaceImplUid)
  2630. {
  2631. return reinterpret_cast <COpenFontRasterizer*> (
  2632. REComSession::CreateImplementationL(
  2633. aInterfaceImplUid,
  2634. (((TInt)&(((COpenFontRasterizer *)0x1000)-> iDtor_ID_Key))-0x1000) ));
  2635. }
  2636. inline COpenFontRasterizer::~COpenFontRasterizer()
  2637. {
  2638. REComSession::DestroyedImplementation(iDtor_ID_Key);
  2639. }
  2640. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\fntstore.h" /* stack depth 7 */
  2641. class CFontStoreFile;
  2642. class CFontBitmap;
  2643. class RReadStream;
  2644. class TTypefaceFontBitmap;
  2645. class TCharacterMetrics
  2646. {
  2647. public:
  2648. __declspec(dllexport) TCharacterMetrics();
  2649. TInt16 iAscentInPixels;
  2650. TInt16 iHeightInPixels;
  2651. TInt16 iLeftAdjustInPixels;
  2652. TInt16 iMoveInPixels;
  2653. TInt16 iRightAdjustInPixels;
  2654. };
  2655. class TAlgStyle
  2656. #line 53
  2657. {
  2658. public:
  2659. __declspec(dllexport) TAlgStyle();
  2660. __declspec(dllexport) void SetIsBold(TBool aIsBold);
  2661. __declspec(dllexport) void SetIsItalic(TBool aIsItalic);
  2662. __declspec(dllexport) void SetIsMono(TBool aIsMono);
  2663. __declspec(dllexport) void SetWidthFactor(TInt aWidthFactor);
  2664. __declspec(dllexport) void SetHeightFactor(TInt aHeightFactor);
  2665. __declspec(dllexport) TBool IsBold() const;
  2666. __declspec(dllexport) TBool IsItalic() const;
  2667. __declspec(dllexport) TBool IsMono() const;
  2668. __declspec(dllexport) TInt WidthFactor() const;
  2669. __declspec(dllexport) TInt HeightFactor() const;
  2670. __declspec(dllexport) TBool operator==(const TAlgStyle& aAlgStyle) const;
  2671. public:
  2672. TInt iBaselineOffsetInPixels;
  2673. private:
  2674. enum
  2675. {
  2676. EBold=1,
  2677. EItalic=2,
  2678. EMono=4,
  2679. };
  2680.     TInt8 iFlags;
  2681. TInt8 iWidthFactor;
  2682. TInt8 iHeightFactor;
  2683. };
  2684. #line 94
  2685. class CBitmapFont : public CFont
  2686. {
  2687. friend class CFontStore;
  2688. private:
  2689. CBitmapFont(RHeap* aHeap,const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, CFontBitmap* aFontBitmap);
  2690. CBitmapFont(RHeap* aHeap,const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, COpenFont* aOpenFont);
  2691. void ConstructL();
  2692. ~CBitmapFont();
  2693. static CBitmapFont* NewL(RHeap* aHeap, const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, CFontBitmap* aFontBitmap);
  2694. static CBitmapFont* NewL(RHeap* aHeap, const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, COpenFont* aOpenFont);
  2695. private:
  2696. __declspec(dllexport) virtual TUid DoTypeUid() const;
  2697. __declspec(dllexport) virtual TInt DoHeightInPixels() const;
  2698. __declspec(dllexport) virtual TInt DoAscentInPixels() const;
  2699. __declspec(dllexport) virtual TInt DoCharWidthInPixels(TChar aChar) const;
  2700. __declspec(dllexport) virtual TInt DoTextWidthInPixels(const TDesC &aText) const;
  2701. __declspec(dllexport) virtual TInt DoBaselineOffsetInPixels() const;
  2702. __declspec(dllexport) virtual TInt DoTextCount(const TDesC &aText, TInt aWidthInPixels) const;
  2703. __declspec(dllexport) virtual TInt DoTextCount(const TDesC &aText, TInt aWidthInPixels, TInt &aExcessWidthInPixels) const;
  2704. __declspec(dllexport) virtual TInt DoMaxCharWidthInPixels() const;
  2705. __declspec(dllexport) virtual TInt DoMaxNormalCharWidthInPixels() const;
  2706. __declspec(dllexport) virtual TFontSpec DoFontSpecInTwips() const;
  2707. __declspec(dllexport) virtual TInt DoExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  2708. public:
  2709. TUid Uid() const;
  2710. __declspec(dllexport) TCharacterMetrics CharacterMetrics(TInt aCode,const TUint8*& aBytes) const;
  2711. __declspec(dllexport) TBool GetCharacterData(TInt aSessionHandle, TInt aCode, TOpenFontCharMetrics& aMetrics, const TUint8*& aBitmap) const;
  2712. __declspec(dllexport) TBool Rasterize(TInt aSessionHandle,TInt aCode,TOpenFontGlyphData* aGlyphData) const;
  2713. __declspec(dllexport) void GetFontMetrics(TOpenFontMetrics& aMetrics) const;
  2714. __declspec(dllexport) TBool GetFaceAttrib(TOpenFontFaceAttrib& aAttrib) const;
  2715. __declspec(dllexport) TInt BitmapEncoding() const;
  2716. __declspec(dllexport) TBool HasCharacterL(TInt aCode) const;
  2717. __declspec(dllexport) TBool CharacterNeedsToBeRasterized(TInt aSessionHandle,TInt aCode) const;
  2718. __declspec(dllexport) void operator delete(TAny*);
  2719. inline TBool IsOpenFont() const;
  2720. inline COpenFont* OpenFont() const;
  2721. inline TGlyphBitmapType GlyphBitmapType() const;
  2722. private:
  2723. TInt Width(TInt aNum) const;
  2724. TInt Height(TInt aNum) const;
  2725. CFontBitmap* FontBitmap() const;
  2726. private:
  2727. TFontSpec iFontSpecInTwips;
  2728. public:
  2729. TAlgStyle iAlgStyle;
  2730. private:
  2731. RHeap* iHeap;
  2732. TInt iFontBitmapOffset;
  2733. COpenFont* iOpenFont;
  2734. };
  2735. class CFontStore : public CTypefaceStore
  2736. #line 167
  2737.     {
  2738. private:
  2739. CFontStore();
  2740. void ConstructL();
  2741. public:
  2742. __declspec(dllexport) static CFontStore* NewL(RHeap* aHeap);
  2743. __declspec(dllexport) ~CFontStore();
  2744. __declspec(dllexport) TUid AddFileL(const TDesC& aName);
  2745. __declspec(dllexport) void RemoveFile(TUid aFileUid);
  2746. __declspec(dllexport) TInt GetNearestFontInTwips(CFont *&aFont, const TFontSpec& aFontSpec);
  2747. __declspec(dllexport) TInt GetNearestFontInPixels(CFont *&aFont, const TFontSpec &aFontSpec);
  2748. __declspec(dllexport) TInt GetNearestFontToDesignHeightInTwips(CFont *&aFont, const TFontSpec& aFontSpec);
  2749. __declspec(dllexport) TInt GetNearestFontToDesignHeightInPixels(CFont *&aFont, const TFontSpec& aFontSpec);
  2750. __declspec(dllexport) TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2751. __declspec(dllexport) TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2752. __declspec(dllexport) TInt GetNearestFontInTwips(CFont *&aFont, const TOpenFontSpec& aFontSpec);
  2753. __declspec(dllexport) TInt GetNearestFontInPixels(CFont *&aFont, const TOpenFontSpec &aFontSpec);
  2754. __declspec(dllexport) TInt GetNearestFontToDesignHeightInTwips(CFont *&aFont, const TOpenFontSpec& aFontSpec);
  2755. __declspec(dllexport) TInt GetNearestFontToDesignHeightInPixels(CFont *&aFont, const TOpenFontSpec& aFontSpec);
  2756. __declspec(dllexport) TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TOpenFontSpec& aFontSpec, TInt aMaxHeight);
  2757. __declspec(dllexport) TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TOpenFontSpec& aFontSpec, TInt aMaxHeight);
  2758. __declspec(dllexport) TInt GetFontById(CFont *&aFont,TUid aUid,const TAlgStyle& aAlgStyle);
  2759. __declspec(dllexport) TInt NumTypefaces() const;
  2760. __declspec(dllexport) void TypefaceSupport(TTypefaceSupport &aTypefaceSupport,TInt aTypefaceIndex) const;
  2761. __declspec(dllexport) TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const;
  2762. __declspec(dllexport) TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const;
  2763. __declspec(dllexport) void InstallRasterizerL(COpenFontRasterizer* aRasterizer);
  2764. __declspec(dllexport) void DeleteSessionCache(TInt aSessionHandle);
  2765. inline TGlyphBitmapType DefaultBitmapType() const;
  2766. inline void SetDefaultBitmapType(TGlyphBitmapType aType);
  2767. TInt BitmapFontFilesCount() const;
  2768. private:
  2769. void InternalizeFontStoreFileL(CFontStoreFile* aFontStoreFile, TInt aFontVersion);
  2770. TTypeface* GetNearestTypeface(const TTypeface& aTypeface) const;
  2771. TTypefaceFontBitmap GetNearestTypefaceFontBitmap(const TFontSpec& aFontSpecInPixels, TInt aMaxHeight = 0);
  2772. CFontBitmap* GetFontBitmapById(TUid aUid);
  2773. CBitmapFont* FindFont(const TFontSpec& aFontSpecInPixels,const TAlgStyle& aAlgStyle,TUid aUid) const;
  2774. CBitmapFont* FindFont(const TOpenFontSpec& aFontSpecInPixels,const TAlgStyle& aAlgStyle) const;
  2775. CBitmapFont* NewFontL(const TFontSpec& aFontSpecInTwips,const TAlgStyle& aAlgStyle,CFontBitmap* aFontBitmap);
  2776. CBitmapFont* NewFontL(const TOpenFontSpec& aFontSpecInTwips,const TAlgStyle& aAlgStyle,COpenFont* aOpenFont);
  2777. TInt VerticalPixelsToTwips(TInt aPixelHeight) const;
  2778. TInt VerticalTwipsToPixels(TInt aTwipsHeight) const;
  2779. TInt GetNearestBitmapFontInPixels(CBitmapFont *&aFont, TFontSpec &aFontSpec, TInt aMaxHeight = 0);
  2780. TInt GetNearestOpenFontInPixels(CBitmapFont *&aFont, TOpenFontSpec &aFontSpec, const TOpenFontSpec& aIdealFontSpecInPixels, TInt aMaxHeight = 0);
  2781. TInt GetNearestFontInPixels(CFont *&aFont, const TOpenFontSpec &aFontSpec, TInt aMaxHeight);
  2782. void UpdateTypefaceSupportListL();
  2783. public:
  2784. TInt iKPixelWidthInTwips;
  2785. TInt iKPixelHeightInTwips;
  2786. private:
  2787. RFs iFs;
  2788. RHeap* iHeap;
  2789. CArrayPtrFlat<CFontStoreFile> iFontStoreFileList;
  2790. CArrayPtrFlat<TTypeface> iTypefaceList;
  2791. CArrayPtrFlat<CFontBitmap> iFontBitmapList;
  2792. CArrayFixFlat<TTypefaceFontBitmap> iTypefaceFontBitmapList;
  2793. CArrayPtrFlat<COpenFontFile> iOpenFontFileList;
  2794. CArrayFixFlat<TTypefaceSupport> iOpenFontTypefaceSupportList;
  2795. CArrayPtrFlat<COpenFontRasterizer> iOpenFontRasterizerList;
  2796. COpenFontSessionCacheList* iOpenFontSessionCacheList;
  2797. TInt iOpenFontUid;
  2798. TGlyphBitmapType iDefaultBitmapType;
  2799. };
  2800. inline TBool CBitmapFont::IsOpenFont() const
  2801. {
  2802. return iOpenFont != 0 ;
  2803. }
  2804. inline COpenFont* CBitmapFont::OpenFont() const
  2805. {
  2806. return iOpenFont;
  2807. }
  2808. inline TGlyphBitmapType CBitmapFont::GlyphBitmapType() const
  2809. #line 275
  2810. {
  2811. return iFontSpecInTwips.iFontStyle.BitmapType();
  2812. }
  2813. inline TGlyphBitmapType CFontStore::DefaultBitmapType() const
  2814. {
  2815. return iDefaultBitmapType;
  2816. }
  2817. inline void CFontStore::SetDefaultBitmapType(TGlyphBitmapType aType)
  2818. {
  2819. iDefaultBitmapType = aType;
  2820. }
  2821. #line 23 "C:\Symbian\9.1\S60_3rd\epoc32\include\w32std.h" /* stack depth 6 */
  2822. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 7 */
  2823. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fbs.h" /* stack depth 8 */
  2824. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitmap.h" /* stack depth 9 */
  2825. #line 20
  2826. const TUid KCBitwiseBitmapUid={268435520};
  2827. const TUid KCBitwiseBitmapHardwareUid={0x10009a3d};
  2828. const TUid KMultiBitmapFileImageUid={268435522};
  2829. const TInt KCompressionBookMarkThreshold=0x2000;
  2830. class CChunkPile;
  2831. class TCompressionBookMark;
  2832. enum TBitmapfileCompression
  2833. {
  2834. ENoBitmapCompression,
  2835. EByteRLECompression,
  2836. ETwelveBitRLECompression,
  2837. ESixteenBitRLECompression,
  2838. ETwentyFourBitRLECompression,
  2839. EThirtyTwoUBitRLECompression,
  2840. ERLECompressionLast
  2841. };
  2842. class TRgb24bit
  2843. {
  2844. public:
  2845. TUint8 iRed;
  2846. TUint8 iGreen;
  2847. TUint8 iBlue;
  2848. };
  2849. class SEpocBitmapHeader
  2850. {
  2851. public:
  2852. enum TColor
  2853. {
  2854. ENoColor=0,
  2855. EColor=1,
  2856. EColorAlpha=2,
  2857. EColorUndefined=8
  2858. };
  2859. public:
  2860. TInt iBitmapSize;
  2861. TInt iStructSize;
  2862. TSize iSizeInPixels;
  2863. TSize iSizeInTwips;
  2864. TInt iBitsPerPixel;
  2865. TInt iColor;
  2866. TInt iPaletteEntries;
  2867. TBitmapfileCompression iCompression;
  2868. };
  2869. class TLineScanningPosition
  2870. {
  2871. public:
  2872. TLineScanningPosition(TUint32* aSrcDataPtr): iSrcDataPtr((TUint8*)aSrcDataPtr), iCursorPos(0), iScanLineBuffer(0 ) {}
  2873. public:
  2874. TUint8* iSrcDataPtr;
  2875. TInt iCursorPos;
  2876. HBufC8* iScanLineBuffer;
  2877. };
  2878. class CShiftedFileStore;
  2879. class CBitwiseBitmap
  2880. {
  2881. friend class CFbTop;
  2882. friend class CFbClient;
  2883. friend class CFbsBitmap;
  2884. friend class CBitmapObject;
  2885. friend class CFbsBitmapAsyncStreamer;
  2886. friend class CleanupDelete<CBitwiseBitmap>;
  2887. public:
  2888. __declspec(dllexport) TUid Uid() const;
  2889. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream,const CFbsBitmap& aHandleBitmap) const;
  2890. __declspec(dllexport) void ExternalizeRectangleL(RWriteStream& aStream,const TRect& aRect,const CFbsBitmap& aHandleBitmap) const;
  2891. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2892. __declspec(dllexport) static void InternalizeHeaderL(RReadStream& aStream,SEpocBitmapHeader& aHeader);
  2893. __declspec(dllexport) TSize SizeInPixels() const;
  2894. __declspec(dllexport) TSize SizeInTwips() const;
  2895. __declspec(dllexport) TDisplayMode DisplayMode() const;
  2896. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwips) const;
  2897. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwips) const;
  2898. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixels) const;
  2899. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixels) const;
  2900. __declspec(dllexport) void GetPixel(TRgb& aColor,const TPoint& aPos,TUint32* aBase) const;
  2901. __declspec(dllexport) TInt GetScanLinePtr(TUint32*& aSlptr, TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2902. __declspec(dllexport) TInt GetScanLinePtr(TUint32*& aSlptr, TInt& aLength, TPoint& aPixel,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2903. __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2904. __declspec(dllexport) void GetScanLine(TUint32*& aSlptr, TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode) const;
  2905. __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase) const;
  2906. __declspec(dllexport) void GetVerticalScanLine(TDes8& aBuf,TInt aX,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase) const;
  2907. __declspec(dllexport) void StretchScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aClipStrchX,TInt aClipStrchLen,TInt aStretchLength,TInt aOrgX,TInt aOrgLen,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase) const;
  2908. __declspec(dllexport) void StretchScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aClipStrchX,TInt aClipStrchLen,TInt aStretchLength,TInt aOrgX,TInt aOrgLen,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2909. __declspec(dllexport) TUint32* ScanLineAddress(TUint32* aBase,TUint aY) const;
  2910. __declspec(dllexport) TBool IsMonochrome(TUint32* aBase) const;
  2911. __declspec(dllexport) void Compress(TUint8* aNewData,TUint8* aOldData);
  2912. __declspec(dllexport) TBool IsLargeBitmap() const;
  2913. __declspec(dllexport) TInt CompressData();
  2914. __declspec(dllexport) void SetCompressionBookmark(TLineScanningPosition& aLineScanningPosition, TUint32* aBase, const CFbsBitmap* aFbsBitmap);
  2915. __declspec(dllexport) TInt HardwareBitmapHandle() const;
  2916. __declspec(dllexport) TBool IsCompressedInRAM() const;
  2917. __declspec(dllexport) TBool IsCompressed() const;
  2918. private:
  2919. __declspec(dllexport) void operator delete(TAny*);
  2920. void operator delete(TAny*, TAny*) {}
  2921. __declspec(dllexport) CBitwiseBitmap(RHeap* aHeap,CChunkPile* aPile);
  2922. __declspec(dllexport) ~CBitwiseBitmap();
  2923. __declspec(dllexport) void Reset();
  2924. __declspec(dllexport) TInt Construct(const TSize& aSize,TDisplayMode aDispMode,TUid aCreatorUid);
  2925. __declspec(dllexport) void ConstructL(RFs& aFs,const TDesC& aFilename,TInt32 aId,TUint aFileOffset);
  2926. __declspec(dllexport) void ConstructL(RFile& aFile,TInt32 aId,TUint aFileOffset);
  2927. __declspec(dllexport) void ConstructL(CShiftedFileStore* aFileStore,TStreamId aStreamId);
  2928. __declspec(dllexport) TInt Resize(const TSize& aSize);
  2929. private:
  2930. void GenerateLineFromCompressedTwelveBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2931. void GenerateLineFromCompressedEightBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2932. TUint8 GetGrayPixelEx(TInt aX,TUint32* aScanLineAddress) const;
  2933. TRgb GetRgbPixelEx(TInt aX,TUint32* aScanLineAddress) const;
  2934. void GetRgbPixelExMany(TInt aX,TUint32* aScanlinePtr,TUint32* aDest,TInt aLength) const;
  2935.     void GetRgbPixelExMany16M(TInt aX,TUint32* aScanlinePtr,TUint8* aDest,TInt aLength) const;
  2936. void GetScanLineGray2(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TUint32* aScanlinePtr) const;
  2937. void GetScanLineGray4(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TUint32* aScanlinePtr) const;
  2938. void GetScanLineGray16(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2939. void GetScanLineGray256(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2940. void GetScanLineColor16(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2941. void GetScanLineColor256(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2942. void GetScanLineColor4K(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2943. void GetScanLineColor64K(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2944. void GetScanLineColor16M(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2945. void GetScanLineColor16MU(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2946. void GetScanLineColorRgb(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  2947. void GetScanLineExBits(TDes8& aBuf,TInt aX,TInt aLength,TUint32* aScanlinePtr) const;
  2948. void GetScanLineExBytes(TDes8& aBuf,TInt aX,TInt aLength,TUint32* aScanlinePtr) const;
  2949. void DoExternalizeDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  2950. void DoExternalizeByteDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  2951. void DoExternalizeTwelveBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  2952. void DoExternalizeSixteenBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  2953. void DoExternalizeTwentyFourBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  2954. void DoExternalizeThirtyTwoUBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  2955. TInt SizeOfDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  2956. TInt SizeOfByteDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  2957. TInt SizeOfTwelveBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  2958. TInt SizeOfSixteenBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  2959. TInt SizeOfTwentyFourBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  2960. TInt SizeOfThirtyTwoUBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  2961. TBool TrueColorPointerCompare(TUint8* aColorPointer,TUint8 aComponent1,TUint8 aComponent2,TUint8 aComponent3) const;
  2962. void DoInternalizeL(RReadStream& aStream,TInt aSrceSize,TUint32* aBase);
  2963. void DoInternalizeCompressedDataL(RReadStream& aStream,TInt aSrceSize,TUint32* aBase,TBitmapfileCompression aCompression);
  2964. void DoDecompressByteData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  2965. void DoDecompressByteDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  2966. void DoDecompressTwelveBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  2967. void DoDecompressTwelveBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  2968. void DoDecompressSixteenBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  2969. void DoDecompressSixteenBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  2970. void DoDecompressTwentyFourBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  2971. void DoDecompressTwentyFourBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  2972. void DoDecompressThirtyTwoUBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  2973. void DoDecompressThirtyTwoUBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  2974. void DoStretchScanLine(TDes8& aBuf,TInt x,TInt y,TInt aClipStrchX,TInt aClipStrchLen,TInt aStretchLength,TInt aOrgX,TInt aOrgLen,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase,TLineScanningPosition& aLineScanningPosition) const;
  2975. void DoCompressScanLine(TDes8& aBuf,TInt x,TInt y,TInt aClipStrchX,TInt aClipStrchLen,TInt aStretchLength,TInt aOrgX,TInt aOrgLen,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase,TLineScanningPosition& aLineScanningPosition) const;
  2976. TUint32 HashTo1bpp(TUint32 aGray256,TBool aOddX,TBool aOddY) const;
  2977. TUint32 HashTo2bpp(TUint32 aGray256,TInt aDitherIndex) const;
  2978. TBool IsWordMonochrome(TUint32 aWord) const;
  2979. TUint32* DataAddress() const;
  2980. static void WhiteFill(TUint8* aData,TInt aDataSize,TDisplayMode aDispMode);
  2981. static TInt ByteWidth(TInt aPixelWidth,TDisplayMode aDispMode);
  2982. static TInt Bpp(TDisplayMode aDispMode);
  2983. static TInt IsColor(TDisplayMode aDispMode);
  2984. static TDisplayMode DisplayMode(TInt aBpp,TInt aColor);
  2985. static TBitmapfileCompression CompressionType(TInt aBpp, TInt aColor);
  2986. TInt DoGetScanLinePtr(TUint32*& aSlptr, TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2987. void GenerateLineFromCompressedSixteenBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  2988. TDisplayMode InitialDisplayMode() const;
  2989. TInt SetDisplayMode(TDisplayMode aDisplayMode, TUint32* aDataAddress);
  2990. TInt DisplayModeArgCheck(TDisplayMode aDisplayMode, TUint32* aDataAddress) const;
  2991. void ChangeDisplayMode( TDisplayMode aNewDisplayMode,
  2992. TInt aScanLineWidthNew,
  2993. TUint8* aDataAddrNew,
  2994. TUint32* aDataAddress,
  2995. TInt aYStart,
  2996. TInt aYInc,
  2997. TInt aYEnd);
  2998. void UpdateBitmapProperties(TDisplayMode aNewDisplayMode);
  2999. TInt SwapWidthAndHeight(TUint32* aDataAddress);
  3000. void CopyOldData(TUint8* aDest, const TUint8* aSrc, TInt aNewByteWidth, const TSize aNewSize);
  3001. void DecompressOldData(TUint8* aDest, TInt aNewByteWidth, const TSize aNewSize, HBufC8* aScanLineBuf);
  3002. TInt ResizeConditionsCheck(const TSize& aSize, TInt aNewByteWidth, TInt& aNewBitmapSize) const;
  3003. TInt Alloc(TInt aNewBitmapSize, const TSize& aNewSize, TUint8*& aNewBuf, TInt& aNewDataOffset);
  3004. void MoveData(TUint8* aDest, TUint8* aSrc, TInt aNewByteWidth, const TSize& aNewSize, HBufC8* aScanLineBuf);
  3005. void ReinitializeHeader(const TSize& aNewSize, TInt aNewBitmapSize);
  3006. void Free(TUint8* aSrc, TBool aLargeBmp, HBufC8* aScanLineBuf);
  3007. void GenerateLineFromCompressed24BitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  3008. void GenerateLineFromCompressed32UBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  3009. void AdjustXCoord(TInt& aX) const;
  3010. void GetLineScanPos(TLineScanningPosition& aLineScanPos,
  3011. const TCompressionBookMark*& aComprBookMark,
  3012. const TUint8* aBase) const;
  3013. void UpdateBookMark(const TLineScanningPosition& aLineScanPos,
  3014. TCompressionBookMark* aComprBookMark,
  3015. const TUint8* aBase) const;
  3016. void GetScanLineColor16MA(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  3017. private:
  3018. TUid iUid;
  3019. struct TSettings
  3020. {
  3021. TSettings(TDisplayMode aDisplayMode);
  3022. void SetDisplayModes(TDisplayMode aDisplayMode);
  3023. void SetCurrentDisplayMode(TDisplayMode aDisplayMode);
  3024. TDisplayMode CurrentDisplayMode() const;
  3025. TDisplayMode InitialDisplayMode() const;
  3026. void SetLargeBitmap(TBool aLargeBitmap);
  3027. TBool IsLargeBitmap() const;
  3028. TUint32 iData;
  3029. } iSettings;
  3030. RHeap* iHeap;
  3031. CChunkPile* iPile;
  3032. TInt iByteWidth;
  3033. SEpocBitmapHeader iHeader;
  3034. RChunk iLargeChunk;
  3035. TInt iDataOffset;
  3036. TBool iIsCompressedInRAM;
  3037. };
  3038. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\fbs.h" /* stack depth 8 */
  3039. const TUid KCFbsFontUid = { 268435518 };
  3040. const TUid KMultiBitmapRomImageUid = { 268435521 };
  3041. const TUint32 KFontBitmapServerUidValue = 0x10003a16;
  3042. const TUid KFontBitmapServerUid = { KFontBitmapServerUidValue };
  3043. __declspec(dllexport) TInt FbsStartup();
  3044. __declspec(dllexport) void DummyReserved1();
  3045. class SCharWidth
  3046. {
  3047. public:
  3048. TInt iLeftAdjust;
  3049. TInt iRightAdjust;
  3050. TInt iMove;
  3051. TInt iWidth;
  3052. };
  3053. class CFbsRalCache;
  3054. class RFbsSession : protected RSessionBase
  3055. {
  3056. friend class RClean;
  3057. friend class TestFbs;
  3058. friend class CTBitmap;
  3059. friend class CTClean;
  3060. friend class CTFbs;
  3061. friend class CFbsBitmap;
  3062. friend class CFbsBitmapAsyncStreamer;
  3063. public:
  3064. __declspec(dllexport) RFbsSession();
  3065. __declspec(dllexport) static TInt Connect();
  3066. __declspec(dllexport) static TInt Connect(RFs& aFileServer);
  3067. __declspec(dllexport) static void Disconnect();
  3068. __declspec(dllexport) static RFbsSession* GetSession();
  3069. __declspec(dllexport) void CallBack();
  3070. __declspec(dllexport) void SetCallBack(TCallBack aCallBack);
  3071. __declspec(dllexport) void ResetCallBack();
  3072. __declspec(dllexport) TInt ResourceCount();
  3073. __declspec(dllexport) TInt SendCommand(TInt aMessage,TInt aInt0=0,TInt aInt1=0,TInt aInt2=0,TInt aInt3=0) const;
  3074. TInt SendCommand(TInt aMessage, const TIpcArgs& aArgs) const;
  3075. __declspec(dllexport) TVersion Version();
  3076. __declspec(dllexport) TUint8* HeapBase() const;
  3077. __declspec(dllexport) TInt GetHeapSizes(TInt& aDefaultHeap, TInt& aSmallBmpHeap, TInt& aBigBmpChunk);
  3078. TInt SessionHandle() const { return Handle(); }
  3079. TInt AllocScanLineBuffer(TInt aSize);
  3080. HBufC8* GetScanLineBuffer();
  3081. void SetCallBackPtr(TInt* aBitmapHandle)const;
  3082. HBufC8* GetDecompressionBuffer(TInt aSize);
  3083. private:
  3084. TBool LookupBitmapInROM(const TDesC& aFilename, TAny*& aAddr);
  3085. RFs& FileServer() { return *((RFs*)iSpare); }
  3086. static TInt DoAlloc(RFbsSession*& aNewSession);
  3087. TInt DoConnect(RFs& aFileServer);
  3088. private:
  3089. TInt iConnections;
  3090. mutable TCallBack iCallBack;
  3091. RChunk iSharedChunk;
  3092. RMutex iAddressMutex;
  3093. RChunk iLargeBitmapChunk;
  3094. RFs iFileServer;
  3095. CFbsRalCache* iRomFileAddrCache;
  3096. HBufC8* iDecompressionBuffer;
  3097. HBufC8* iScanLineBuffer;
  3098. TUint32* iSpare;
  3099. };
  3100. #line 133
  3101. class CFbsFont: public CFont
  3102. {
  3103. friend class CFbsTypefaceStore;
  3104. private:
  3105. virtual TUid DoTypeUid() const { return KCFbsFontUid; }
  3106. __declspec(dllexport) virtual TInt DoHeightInPixels() const;
  3107. __declspec(dllexport) virtual TInt DoAscentInPixels() const;
  3108. __declspec(dllexport) virtual TInt DoCharWidthInPixels(TChar aChar) const;
  3109. __declspec(dllexport) virtual TInt DoTextWidthInPixels(const TDesC& aText) const;
  3110. __declspec(dllexport) virtual TInt DoBaselineOffsetInPixels() const;
  3111. __declspec(dllexport) virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels) const;
  3112. __declspec(dllexport) virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const;
  3113. __declspec(dllexport) virtual TInt DoMaxCharWidthInPixels() const;
  3114. __declspec(dllexport) virtual TInt DoMaxNormalCharWidthInPixels() const;
  3115. __declspec(dllexport) virtual TFontSpec DoFontSpecInTwips() const;
  3116. __declspec(dllexport) virtual CFont::TCharacterDataAvailability DoGetCharacterData(TUint aCode, TOpenFontCharMetrics& aMetrics,
  3117. const TUint8*& aBitmap, TSize& aBitmapSize) const;
  3118. __declspec(dllexport) virtual TInt DoExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  3119. public:
  3120. __declspec(dllexport) TBool GetFontMetrics(TOpenFontMetrics& aMetrics) const;
  3121. __declspec(dllexport) TInt TextWidthInPixels(const TDesC& aText) const;
  3122. __declspec(dllexport) void TextWidthInPixels(const TDesC& aText,SCharWidth& aCharWidth) const;
  3123. __declspec(dllexport) TInt Handle() const;
  3124. __declspec(dllexport) TCharacterMetrics CharacterMetrics(TInt aCode,const TUint8*& aBytes) const;
  3125. __declspec(dllexport) TInt RawTextWidthInPixels(const TDesC& aText) const;
  3126. __declspec(dllexport) TBool GetFaceAttrib(TOpenFontFaceAttrib& aAttrib) const;
  3127. __declspec(dllexport) TBool IsOpenFont() const;
  3128. __declspec(dllexport) TBool HasCharacter(TInt aCode) const;
  3129. protected:
  3130. __declspec(dllexport) CFbsFont();
  3131. __declspec(dllexport) ~CFbsFont();
  3132. __declspec(dllexport) CFbsFont(const CFbsFont& aFont);
  3133. __declspec(dllexport) CBitmapFont* Address() const;
  3134. __declspec(dllexport) TInt Duplicate(TInt aHandle);
  3135. __declspec(dllexport) void Reset();
  3136. protected:
  3137. RFbsSession* iFbs;
  3138. CBitmapFont* iAddressPointer;
  3139. TInt iHandle;
  3140. TInt iServerHandle;
  3141. };
  3142. class CDirectFileStore;
  3143. #line 201
  3144. class CFbsBitmap : public CBase
  3145. {
  3146. friend class TBitmapUtil;
  3147. friend class CBitwiseBitmap;
  3148. friend class CFbsBitmapAsyncStreamer;
  3149. public:
  3150. __declspec(dllexport) CFbsBitmap();
  3151. __declspec(dllexport) ~CFbsBitmap();
  3152. __declspec(dllexport) void Reset();
  3153. __declspec(dllexport) static TInt ScanLineLength(TInt aLength,TDisplayMode aDispMode);
  3154. __declspec(dllexport) TDisplayMode DisplayMode() const;
  3155. __declspec(dllexport) TDisplayMode InitialDisplayMode() const;
  3156. __declspec(dllexport) TInt SetDisplayMode(TDisplayMode aDisplayMode);
  3157. __declspec(dllexport) TInt Create(const TSize& aSizeInPixels,TDisplayMode aDispMode);
  3158. __declspec(dllexport) TInt Duplicate(TInt aHandle);
  3159. __declspec(dllexport) TBool IsRomBitmap() const;
  3160. __declspec(dllexport) void SetRomBitmapL(CBitwiseBitmap* aRomBitmapPointer,TInt& aBitmapSizeInBytes);
  3161. __declspec(dllexport) TInt Load(const TDesC& aFileName,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  3162. __declspec(dllexport) TInt Load(const TDesC& aFileName,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  3163. __declspec(dllexport) TInt LoadAndCompress(const TDesC& aFileName,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  3164. __declspec(dllexport) TInt LoadAndCompress(const TDesC& aFileName,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  3165. __declspec(dllexport) TInt Load(RFile& aFile,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  3166. __declspec(dllexport) TInt Load(RFile& aFile,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  3167. __declspec(dllexport) TInt LoadAndCompress(RFile& aFile,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  3168. __declspec(dllexport) TInt LoadAndCompress(RFile& aFile,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  3169. __declspec(dllexport) TInt Save(const TDesC& aFilename);
  3170. __declspec(dllexport) TInt Save(RFile& aFile);
  3171. __declspec(dllexport) static void StoreL(const TDesC& aFilename,TInt aNumSources,const TDesC* aSources[],TInt32 aSourceIds[]);
  3172. __declspec(dllexport) static void StoreL(RFile& aFile,TInt aNumSources,const TDesC* aSources[],TInt32 aSourceIds[]);
  3173.     __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TDisplayMode aDispMode) const;
  3174.     __declspec(dllexport) void SetScanLine(TDes8& aBuf,TInt aY) const;
  3175. __declspec(dllexport) void GetVerticalScanLine(TDes8& aBuf,TInt aX,TDisplayMode aDispMode) const;
  3176. __declspec(dllexport) void GetVerticalScanLine(TDes8& aBuf,TInt aX,const TPoint& aDitherOffset,TDisplayMode aDispMode) const;
  3177. __declspec(dllexport) TInt Handle() const;
  3178. __declspec(dllexport) SEpocBitmapHeader Header() const;
  3179. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixels) const;
  3180. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwips) const;
  3181. __declspec(dllexport) void GetPixel(TRgb& aColor,const TPoint& aPixel) const;
  3182. __declspec(dllexport) TInt Resize(const TSize& aSizeInPixels);
  3183. __declspec(dllexport) TSize SizeInPixels() const;
  3184. __declspec(dllexport) TSize SizeInTwips() const;
  3185. __declspec(dllexport) void SetSizeInTwips(const MGraphicsDeviceMap* aMap);
  3186. __declspec(dllexport) void SetSizeInTwips(const TSize& aSizeInTwips);
  3187. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  3188. __declspec(dllexport) void ExternalizeRectangleL(RWriteStream& aStream,const TRect& aRect) const;
  3189. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  3190. __declspec(dllexport) TInt Compress();
  3191. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixels) const;
  3192. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwips) const;
  3193. __declspec(dllexport) static TBool IsFileInRom(const TDesC& aFilename,TUint32*& aWord);
  3194. __declspec(dllexport) static TBool IsFileInRom(RFile& aFile,TUint32*& aWord);
  3195. __declspec(dllexport) TBool IsMonochrome() const;
  3196. __declspec(dllexport) TBool IsLargeBitmap() const;
  3197. __declspec(dllexport) void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const;
  3198. __declspec(dllexport) void SetPalette(CPalette* aPalette);
  3199. __declspec(dllexport) TInt GetPalette(CPalette*& aPalette) const;
  3200. __declspec(dllexport) TUint32* DataAddress() const;
  3201. __declspec(dllexport) TInt CreateHardwareBitmap(const TSize& aSizeInPixels,TDisplayMode aDispMode,TUid aCreatorUid);
  3202. __declspec(dllexport) TInt HardwareBitmapHandle() const;
  3203. __declspec(dllexport) void LockHeap(TBool aAlways=EFalse) const;
  3204. __declspec(dllexport) void UnlockHeap(TBool aAlways=EFalse) const;
  3205. __declspec(dllexport) void LockHeapLC(TBool aAlways=EFalse) const;
  3206. __declspec(dllexport) static void UnlockHeap(TAny* aFbsBitmap);
  3207. __declspec(dllexport) TBool IsCompressedInRAM() const;
  3208. __declspec(dllexport) TInt SwapWidthAndHeight();
  3209. __declspec(dllexport) static HBufC8* GetDecompressionBuffer(TInt aSize);
  3210. protected:
  3211.     __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,const TPoint& aDitherOffset,TDisplayMode aDispMode) const;
  3212. CBitwiseBitmap* Address() const;
  3213. void DoSaveL(RFile& aFile);
  3214. TInt DoCreate(const TSize& aSizeInPixels,TDisplayMode aDispMode,TUid aCreatorUid);
  3215. private:
  3216. TInt DoLoad(RFile& aFile,TUint32* aRomPointer,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  3217. TInt DoLoadAndCompress(RFile& aFile,TUint32* aRomPointer,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  3218. TBool LoadShiftedRomBmpL(const TDesC& aFileName,TInt32 aId,TUint aFileOffset);
  3219. static void DoStoreL(CDirectFileStore* aFileStore,CFbsBitmap* aBitmap,TInt aNumSources,const TDesC* aSources[],TInt32 aSourceIds[]);
  3220. protected:
  3221. RFbsSession* iFbs;
  3222. CBitwiseBitmap* iAddressPointer;
  3223. CBitwiseBitmap* iRomPointer;
  3224. TInt iHandle;
  3225. TInt iServerHandle;
  3226. };
  3227. class CDirectFileStore;
  3228. class CFbsBitmapAsyncStreamer : public CBase
  3229. {
  3230. public:
  3231. enum TMode {ELoad, ESave};
  3232. public:
  3233. __declspec(dllexport) ~CFbsBitmapAsyncStreamer();
  3234. __declspec(dllexport) static CFbsBitmapAsyncStreamer* NewL(TMode aMode);
  3235. __declspec(dllexport) TInt Load(const TDesC& aFilename,TInt32 aId,TInt& aScanLines);
  3236. __declspec(dllexport) TBool LoadScanLinesL(TInt aNumberOfScanLines,CFbsBitmap*& aBitmap);
  3237. __declspec(dllexport) TInt Save(const TDesC& aFilename,CFbsBitmap* aBitmap,TInt32& aId,TInt& aScanLines);
  3238. __declspec(dllexport) TBool SaveScanLinesL(TInt aNumberOfScanLines);
  3239. private:
  3240. CFbsBitmapAsyncStreamer(TMode aMode);
  3241. void ConstructL();
  3242. void DoLoadL(const TDesC& aFilename,TInt32 aId);
  3243. void DoSaveL(RFile& aFile);
  3244. private:
  3245. RFbsSession* iFbs;
  3246. RStoreReadStream iReadStream;
  3247. RStoreWriteStream iWriteStream;
  3248. TStreamId iId;
  3249. CDirectFileStore* iStore;
  3250. TInt iCurrentScanLine;
  3251. TUint32* iScanLineBase;
  3252. CFbsBitmap* iBitmap;
  3253. SEpocBitmapHeader iHeader;
  3254. TDisplayMode iDispMode;
  3255. TMode iMode;
  3256. };
  3257. #line 348
  3258. class TBitmapUtil
  3259. {
  3260. public:
  3261. __declspec(dllexport) void Begin(const TPoint& aPosition);
  3262. __declspec(dllexport) void Begin(const TPoint& aPosition,const TBitmapUtil& aUtil);
  3263. __declspec(dllexport) void End();
  3264. __declspec(dllexport) TBitmapUtil(CFbsBitmap* aBitmap);
  3265. __declspec(dllexport) TUint32 GetPixel() const;
  3266. __declspec(dllexport) void SetPixel(TUint32 aValue);
  3267. __declspec(dllexport) void SetPixel(const TBitmapUtil& aSource);
  3268. __declspec(dllexport) void SetPos(const TPoint& aPosition);
  3269. __declspec(dllexport) void DecXPos();
  3270. __declspec(dllexport) void DecYPos();
  3271. __declspec(dllexport) void IncXPos();
  3272. __declspec(dllexport) void IncYPos();
  3273. private:
  3274. void DoBegin(const TPoint& aPosition,const TBitmapUtil* aUtil);
  3275. private:
  3276. CFbsBitmap* iFbsBitmap;
  3277. TUint32* iWordPos;
  3278. TUint32* iMinWordPos;
  3279. TUint32* iMaxWordPos;
  3280. TInt iBpp;
  3281. TInt iPixelShift;
  3282. TInt iBitShift;
  3283. TUint32 iMask;
  3284. TInt iScanlineWordLength;
  3285. TBool iHeapLocked;
  3286. };
  3287. class TFontInfo;
  3288. class CFbsTypefaceStore : public CTypefaceStore
  3289. {
  3290. public:
  3291. __declspec(dllexport) static CFbsTypefaceStore* NewL(CGraphicsDevice* aDevice);
  3292. __declspec(dllexport) ~CFbsTypefaceStore();
  3293. __declspec(dllexport) TInt AddFile(const TDesC& aName,TInt& aId);
  3294. __declspec(dllexport) TInt InstallFile(const TDesC& aName,TInt& aId);
  3295. __declspec(dllexport) void RemoveFile(TInt aId=0);
  3296. __declspec(dllexport) virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  3297. __declspec(dllexport) TInt GetNearestFontInPixels(CFont*& aFont, const TFontSpec& aFontSpec);
  3298. __declspec(dllexport) virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  3299. __declspec(dllexport) TInt GetNearestFontToDesignHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec);
  3300. __declspec(dllexport) virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  3301. __declspec(dllexport) TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  3302. __declspec(dllexport) TInt GetFontById(CFont *&aFont,TUid aUid,const TAlgStyle& aAlgStyle);
  3303. __declspec(dllexport) virtual TInt NumTypefaces() const;
  3304. __declspec(dllexport) virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const;
  3305. __declspec(dllexport) virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const;
  3306. __declspec(dllexport) TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const;
  3307. __declspec(dllexport) TGlyphBitmapType DefaultBitmapType() const;
  3308. __declspec(dllexport) void SetDefaultBitmapType(TGlyphBitmapType aType) const;
  3309. __declspec(dllexport) void SetFontNameAliasL(const TDesC& aFontAlias,const TDesC& aFontName) const;
  3310. __declspec(dllexport) static void RemoveFontFileLocksL();
  3311. __declspec(dllexport) static void RemoveFontFileLocksL(const TDesC& aDrive, TBool aAllFonts);
  3312. __declspec(dllexport) static void RemoveFontFileLocksL(const TDesC& aFileName);
  3313. private:
  3314. CFbsTypefaceStore(CGraphicsDevice* aDevice);
  3315. TInt CreateFont(CFont*& aFont,const TFontInfo& aFontInfo);
  3316. TInt FontHeight(TInt aTypefaceIndex,TInt aHeightIndex,TInt aMessage) const;
  3317. void SetSize() const;
  3318. TInt GetNearestFontToDesignHeightInTwipsL(CFont*& aFont,const TFontSpec& aFontSpec);
  3319. private:
  3320. RFbsSession* iFbs;
  3321. CGraphicsDevice* iDevice;
  3322. CFontCache* iTwipsCache;
  3323. };
  3324. class CDitherColor256;
  3325. class CFbsColor256BitmapUtil : public CBase
  3326. {
  3327. public:
  3328. enum TDither
  3329. {
  3330. ENoDither,
  3331. EFloydSteinberg
  3332. };
  3333. public:
  3334. __declspec(dllexport) static CFbsColor256BitmapUtil* NewL(const CPalette* aPalette);
  3335. __declspec(dllexport) TInt CopyBitmap(CFbsBitmap* aColor256Destination,CFbsBitmap* aSource,TDither aDither=ENoDither);
  3336. ~CFbsColor256BitmapUtil();
  3337. private:
  3338. CFbsColor256BitmapUtil();
  3339. private:
  3340. TColor256Util* iColor256Util;
  3341. CDitherColor256* iDither;
  3342. };
  3343. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 7 */
  3344. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitbase.h" /* stack depth 8 */
  3345. #line 14
  3346. class TSpriteBase
  3347. {
  3348. public:
  3349. virtual void Hide(const TRect& aRect,const TRegion* aRegion)=0;
  3350. virtual void Reveal(const TRect& aRect,const TRegion* aRegion)=0;
  3351. };
  3352. #line 21 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 7 */
  3353. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitstd.h" /* stack depth 8 */
  3354. #line 18
  3355. class CFbsBitGcFont : public CFbsFont
  3356. {
  3357. public:
  3358. __declspec(dllexport) CFbsBitGcFont();
  3359. __declspec(dllexport) virtual ~CFbsBitGcFont();
  3360. __declspec(dllexport) CBitmapFont* Address() const;
  3361. __declspec(dllexport) TInt Duplicate(TInt aHandle);
  3362. __declspec(dllexport) void Reset();
  3363. __declspec(dllexport) void operator=(const CFbsBitGcFont& aFont);
  3364. protected:
  3365. TBool iCopy;
  3366. };
  3367. class CFbsBitGcBitmap : public CFbsBitmap
  3368. {
  3369. public:
  3370. __declspec(dllexport) CBitwiseBitmap* Address() const;
  3371. __declspec(dllexport) void LockHeap() const;
  3372. __declspec(dllexport) void UnlockHeap() const;
  3373. };
  3374. class TEllipse
  3375. {
  3376. public:
  3377. enum TEllipseStatus
  3378. {
  3379. EInitialised,
  3380. EFirstSector,
  3381. ESecondSector,
  3382. EComplete,
  3383. ELine
  3384. };
  3385. public:
  3386. __declspec(dllexport) void Construct(const TRect& aRect);
  3387. __declspec(dllexport) TBool SingleStep(TPoint& aTopLeft,TPoint& aTopRight,TPoint& aBottomLeft,TPoint& aBottomRight);
  3388. __declspec(dllexport) TBool NextStep(TPoint& aTopLeft,TPoint& aTopRight,TPoint& aBottomLeft,TPoint& aBottomRight);
  3389. __declspec(dllexport) TPoint Intersection(const TRect& aRect,const TPoint& aPoint);
  3390. protected:
  3391. __declspec(dllexport) TBool Output(TPoint& aTopLeft,TPoint& aTopRight,TPoint& aBottomLeft,TPoint& aBottomRight);
  3392. protected:
  3393. TEllipseStatus iStatus;
  3394. TInt iA;
  3395. TInt iB;
  3396. TInt64 iASquared;
  3397. TInt64 iBSquared;
  3398. TInt64 iASquBSqu;
  3399. TInt iX;
  3400. TInt iY;
  3401. TInt iXAdj;
  3402. TInt iYAdj;
  3403. TPoint iOffset;
  3404. TInt64 iD1;
  3405. TInt64 iD2;
  3406. };
  3407. class CPolygonFiller : public CBase
  3408. {
  3409. public:
  3410. enum TUsage
  3411. {
  3412. EGetAllPixelRunsSequentially,
  3413. EGetPixelRunsSequentiallyForSpecifiedScanLines
  3414. };
  3415. public:
  3416. __declspec(dllexport) CPolygonFiller();
  3417. __declspec(dllexport) ~CPolygonFiller();
  3418. __declspec(dllexport) void Construct(const CArrayFix<TPoint> * aPointArray,CGraphicsContext::TFillRule aFillRule,TUsage aUsage=EGetAllPixelRunsSequentially);
  3419. __declspec(dllexport) void Construct(const TPoint* aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule, TUsage aUsage=EGetAllPixelRunsSequentially);
  3420. __declspec(dllexport) void Reset();
  3421. __declspec(dllexport) void GetNextPixelRun(TBool& aExists, TInt& aScanLine, TInt& aStart, TInt& aEnd);
  3422. __declspec(dllexport) void GetNextPixelRunOnSpecifiedScanLine(TBool& aExists, TInt aScanLine, TInt& aStart, TInt& aEnd);
  3423. private:
  3424. struct SFastEdge
  3425. {
  3426. TInt upperVertex;
  3427. TInt lowerVertex;
  3428. TInt firstVertex;
  3429. };
  3430. struct SFastScanLineIntersection;
  3431. struct SFastActiveEdge
  3432. {
  3433. SFastEdge* edgePtr;
  3434. TLinearDDA lineGenerator;
  3435. SFastScanLineIntersection* scanLineIntersectionPtr;
  3436. };
  3437. struct SFastScanLineIntersection
  3438. {
  3439. TInt firstPixel;
  3440. TInt lastPixel;
  3441. SFastActiveEdge* activeEdgePtr;
  3442. };
  3443. private:
  3444. struct SSlowScanLineIntersection
  3445. {
  3446. TInt firstPixel;
  3447. TInt lastPixel;
  3448. TInt firstVertexOfEdge;
  3449. };
  3450. private:
  3451. struct SFastData
  3452. {
  3453. TPoint* vertexList;
  3454. SFastEdge* edgeList;
  3455. SFastActiveEdge* activeEdgeList;
  3456. SFastScanLineIntersection* scanLineIntersectionList;
  3457. TInt numActiveEdges;
  3458. TInt numScanLineIntersections;
  3459. TInt nextEdgeToActivate;
  3460. };
  3461. struct SSlowData
  3462. {
  3463. enum {EStoreSize=8};
  3464. TLinearDDA lineGenerator;
  3465. SSlowScanLineIntersection scanLineIntersectionList[EStoreSize];
  3466. TInt numIntersectionsWithSameFirstPixelPreviouslyMet;
  3467. TInt numIntersectionsWithSameFirstPixelMetThisTime;
  3468. TInt numScanLineIntersections;
  3469. TBool scanLineComplete;
  3470. TInt firstPixelOfLastIntersectionInPrevBuffer;
  3471. };
  3472. private:
  3473. void Construct(CGraphicsContext::TFillRule aFillRule,TUsage aUsage);
  3474. void FastHandleVertexIntersection(TInt& aCurrentActiveEdge, TBool aIsLowerVertex);
  3475. void SetFastIntersection(SFastActiveEdge& aActiveEdge, SFastScanLineIntersection& aScanLineIntersection);
  3476. void SlowHandleVertexIntersection(SSlowScanLineIntersection& aScanLineIntersection, TInt& aVertexStartingCurrentEdge,TBool aIsLowerVertex);
  3477. void JumpToCurrentScanLine(TLinearDDA& aLineGenerator, const TPoint& aUpper, const TPoint& aLower,TPoint& aStartPos, TPoint& aEndPos) const;
  3478. const TPoint& Point(TInt aIndex);
  3479. private:
  3480. const CArrayFix<TPoint> * iPointArray;
  3481. const TPoint* iPointList;
  3482. CGraphicsContext::TFillRule iFillRule;
  3483. TBool iUseFastAlgorithm;
  3484. TInt iNumVertexes;
  3485. TBool iToggler;
  3486. TInt iNestingLevel;
  3487. TInt iScanLineIntersection;
  3488. TInt iRightMostPixelOnScanLine;
  3489. TInt iFirstVertex;
  3490. TBool iPolygonIsAllHorizontal;
  3491. TInt iFirstScanLine;
  3492. TInt iLastScanLine;
  3493. TInt iCurrentScanLine;
  3494. SFastData iFastData;
  3495. SSlowData iSlowData;
  3496. private:
  3497. friend class TCompareEdgesUpperY;
  3498. friend class TCompareActiveEdgesFirstVertex;
  3499. friend class TCompareScanLineIntersectionsFirstPixel;
  3500. friend class TSwapEdges;
  3501. friend class TSwapActiveEdges;
  3502. friend class TSwapScanLineIntersections;
  3503. };
  3504. class CFbsDevice;
  3505. class TOpenFontCharMetrics;
  3506. class CGraphicsAccelerator;
  3507. class CWsBitmap;
  3508. #line 200
  3509. class CFbsBitGc : public CBitmapContext
  3510. {
  3511. public:
  3512. enum TGraphicsOrientation
  3513. {
  3514. EGraphicsOrientationNormal,
  3515. EGraphicsOrientationRotated90,
  3516. EGraphicsOrientationRotated180,
  3517. EGraphicsOrientationRotated270
  3518. };
  3519. public:
  3520. __declspec(dllexport) static CFbsBitGc* NewL();
  3521. __declspec(dllexport) virtual ~CFbsBitGc();
  3522. __declspec(dllexport) void Activate(CFbsDevice* aDevice);
  3523. __declspec(dllexport) void ActivateNoJustAutoUpdate(CFbsDevice* aDevice);
  3524. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitGc& aGc);
  3525. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitGc& aGc,const TRect& aSourceRect);
  3526. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap);
  3527. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect);
  3528. __declspec(dllexport) void BitBltMasked(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
  3529. __declspec(dllexport) void CancelClipping();
  3530. __declspec(dllexport) void CancelClippingRect();
  3531. __declspec(dllexport) void CancelClippingRegion();
  3532. __declspec(dllexport) void Clear();
  3533. __declspec(dllexport) void Clear(const TRect& aRect);
  3534. __declspec(dllexport) void CopyRect(const TPoint& aOffset,const TRect& aRect);
  3535. __declspec(dllexport) void CopySettings(const CFbsBitGc& aGc);
  3536. __declspec(dllexport) CGraphicsDevice* Device() const;
  3537. __declspec(dllexport) void DiscardBrushPattern();
  3538. __declspec(dllexport) void DiscardFont();
  3539. __declspec(dllexport) void DrawArc(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd);
  3540. __declspec(dllexport) void DrawPie(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd);
  3541. __declspec(dllexport) void DrawBitmap(const TPoint& aTopLeft,const CFbsBitmap* aSource);
  3542. __declspec(dllexport) void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource);
  3543. __declspec(dllexport) void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource,const TRect& aSourceRect);
  3544. __declspec(dllexport) void DrawBitmapMasked(const TRect& aDestRect,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
  3545. __declspec(dllexport) void DrawBitmapMasked(const TRect& aDestRect,const CWsBitmap* aBitmap,const TRect& aSourceRect,const CWsBitmap* aMaskBitmap,TBool aInvertMask);
  3546. __declspec(dllexport) void DrawRoundRect(const TRect& aRect,const TSize& aEllipse);
  3547. __declspec(dllexport) void DrawPolyLine(const CArrayFix<TPoint> * aPointList);
  3548. __declspec(dllexport) void DrawPolyLineNoEndPoint(const CArrayFix<TPoint> * aPointList);
  3549. __declspec(dllexport) void DrawPolyLine(const TPoint* aPointList,TInt aNumPoints);
  3550. __declspec(dllexport) void DrawPolyLineNoEndPoint(const TPoint* aPointList,TInt aNumPoints);
  3551. __declspec(dllexport) TInt DrawPolygon(const CArrayFix<TPoint> * aPointList,CGraphicsContext::TFillRule aFillRule=CGraphicsContext::EAlternate);
  3552. __declspec(dllexport) TInt DrawPolygon(const TPoint* aPointList,TInt aNumPoints,CGraphicsContext::TFillRule aFillRule=CGraphicsContext::EAlternate);
  3553. __declspec(dllexport) void DrawEllipse(const TRect& aRect);
  3554. __declspec(dllexport) void DrawLine(const TPoint& aStart,const TPoint& aEnd);
  3555. __declspec(dllexport) void DrawLineTo(const TPoint& aPoint);
  3556. __declspec(dllexport) void DrawLineBy(const TPoint& aVector);
  3557. __declspec(dllexport) void DrawRect(const TRect& aRect);
  3558. __declspec(dllexport) void DrawText(const TDesC& aText);
  3559. __declspec(dllexport) void DrawText(const TDesC& aText,const TPoint& aPosition);
  3560. __declspec(dllexport) void DrawText(const TDesC& aText,const TRect& aBox);
  3561. __declspec(dllexport) void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TTextAlign aHrz=ELeft,TInt aMargin=0);
  3562. __declspec(dllexport) void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TInt aTextWidth,TTextAlign aHrz=ELeft,TInt aMargin=0);
  3563. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,TBool aUp);
  3564. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TPoint& aPosition,TBool aUp);
  3565. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TRect& aBox,TBool aUp);
  3566. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0);
  3567. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TInt aTextWidth,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0);
  3568. __declspec(dllexport) void MapColors(const TRect& aRect,const TRgb* aColors,TInt aNumPairs=2,TBool aMapForwards=ETrue);
  3569. __declspec(dllexport) void MoveTo(const TPoint& aPoint);
  3570. __declspec(dllexport) void MoveBy(const TPoint& aVector);
  3571. __declspec(dllexport) void OrientationsAvailable(TBool aOrientation[4]);
  3572. __declspec(dllexport) void Plot(const TPoint& aPoint);
  3573. __declspec(dllexport) void RectDrawnTo(TRect& aRect);
  3574. __declspec(dllexport) void Reset();
  3575. __declspec(dllexport) void Resized();
  3576. __declspec(dllexport) void SetBrushColor(const TRgb& aColor);
  3577. __declspec(dllexport) void SetBrushOrigin(const TPoint& aOrigin);
  3578. __declspec(dllexport) void SetBrushStyle(TBrushStyle aBrushStyle);
  3579. __declspec(dllexport) void SetClippingRegion(const TRegion* aRegion);
  3580. __declspec(dllexport) void SetClippingRect(const TRect& aRect);
  3581. __declspec(dllexport) void SetDitherOrigin(const TPoint& aPoint);
  3582. __declspec(dllexport) void SetDrawMode(TDrawMode);
  3583. __declspec(dllexport) void SetOrigin(const TPoint& aPoint=TPoint(0,0));
  3584. __declspec(dllexport) void SetPenColor(const TRgb& aColor);
  3585. __declspec(dllexport) void SetPenStyle(TPenStyle);
  3586. __declspec(dllexport) void SetPenSize(const TSize& aSize);
  3587. __declspec(dllexport) void SetCharJustification(TInt aExcessWidth,TInt aNumGaps);
  3588. __declspec(dllexport) void SetWordJustification(TInt aExcessWidth,TInt aNumChars);
  3589. __declspec(dllexport) void SetUnderlineStyle(TFontUnderline aUnderlineStyle);
  3590. __declspec(dllexport) void SetUserDisplayMode(TDisplayMode aDisplayMode);
  3591. __declspec(dllexport) void SetStrikethroughStyle(TFontStrikethrough aStrikethroughStyle);
  3592. __declspec(dllexport) void SetShadowMode(TBool aShadowMode = EFalse);
  3593. inline void SetFadeMode(TBool aFadeMode = EFalse);
  3594. inline void SetFadingParameters(TUint8 aBlackMap = 0);
  3595. __declspec(dllexport) void SetFaded(TBool aFaded);
  3596. __declspec(dllexport) void SetFadingParameters(TUint8 aBlackMap,TUint8 aWhiteMap);
  3597. __declspec(dllexport) TBool SetOrientation(TGraphicsOrientation aOrientation);
  3598. __declspec(dllexport) void ShadowArea(const TRegion* aRegion);
  3599. __declspec(dllexport) void FadeArea(const TRegion* aRegion);
  3600. __declspec(dllexport) void UpdateJustification(const TDesC& aText);
  3601. __declspec(dllexport) void UpdateJustificationVertical(const TDesC& aText,TBool aUp);
  3602. __declspec(dllexport) void UseBrushPattern(const CFbsBitmap* aBitmap);
  3603. __declspec(dllexport) TInt UseBrushPattern(TInt aFbsBitmapHandle);
  3604. __declspec(dllexport) void UseFont(const CFont* aFont);
  3605. __declspec(dllexport) TInt UseFont(TInt aFontHandle);
  3606. __declspec(dllexport) void UseFontNoDuplicate(const CFbsBitGcFont* aFont);
  3607. __declspec(dllexport) TBool IsBrushPatternUsed() const;
  3608. __declspec(dllexport) TBool IsFontUsed() const;
  3609. inline static TInt16 Load16(const TUint8* aPtr) { return TInt16(aPtr[0]+(aPtr[1]<<8)); }
  3610. __declspec(dllexport) TInt AlphaBlendBitmaps(const TPoint& aDestPt,
  3611. const CFbsBitmap* aSrcBmp1,
  3612. const CFbsBitmap* aSrcBmp2,
  3613. const TRect& aSrcRect1,
  3614. const TPoint& aSrcPt2,
  3615. const CFbsBitmap* aAlphaBmp,
  3616. const TPoint& aAlphaPt);
  3617. __declspec(dllexport) TInt AlphaBlendBitmaps(const TPoint& aDestPt,
  3618. const CFbsBitmap* aSrcBmp,
  3619. const TRect& aSrcRect,
  3620. const CFbsBitmap* aAlphaBmp,
  3621. const TPoint& aAlphaPt);
  3622. __declspec(dllexport) void ExternalizeL(RWriteStream& aWriteStream);
  3623. __declspec(dllexport) void InternalizeL(RReadStream& aReadStream);
  3624. __declspec(dllexport) TInt SetClippingRegion(const TRegion& aRegion);
  3625. __declspec(dllexport) TInt AlphaBlendBitmaps(const TPoint& aDestPt,
  3626. const CWsBitmap* aSrcBmp,
  3627. const TRect& aSrcRect,
  3628. const CWsBitmap* aAlphaBmp,
  3629. const TPoint& aAlphaPt);
  3630. __declspec(dllexport) TRgb BrushColor();
  3631. __declspec(dllexport) TRgb PenColor();
  3632. private:
  3633. CFbsBitGc();
  3634. void AddRect(const TRect& aRect);
  3635. void AnalyseEllipse(const TRect& rc,TPoint& srad,TPoint& erad,TPoint& center,TInt& startq,TInt& endq,TBool* quads);
  3636. void BitMultiply(TUint32* aBinaryDataPtr,TInt aBitLength,TInt aMultiplier);
  3637. void CheckDevice() const;
  3638. TBool CheckDevice(const TRect& aRect) const;
  3639. TUint32* ClipBinaryArray(TUint32* aArray,TUint32* aArrayLimit,TInt aArrayWordWd,TInt& aDataWd,TInt& aDataHt,TPoint& aPos);
  3640. void ClipFillLine(TPoint,TPoint);
  3641. void CopyCharWord(TUint32* aBinaryDataPtr,const TUint8* aData,TInt aBitShift);
  3642. void CopyCharLine(TUint32* aBinaryDataPtr,TInt aBufferWords,const TUint8* aData,TInt aBitShift,TInt aCharWidth);
  3643. void DrawText(const TDesC& aText,const TPoint& aPosition,TTextAlign aAlignment,
  3644.   CFont::TTextDirection aDirection,const TRect* aBox = 0 );
  3645. void DoBitBlt(const TPoint& aDest,CFbsDevice* aDevice,const TRect& aSourceRect);
  3646. void DoBitBlt(const TPoint& aDest,CBitwiseBitmap* aBitmap,TUint32* aBase,const TRect& aSourceRect);
  3647. void DoBitBltMasked(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  3648. void DoBitBltMaskedFlicker(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  3649. void DoBitBltMaskedNonFlicker(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  3650. void DoBitBltMaskedNonFlickerSolid(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  3651. void DoBitBltMaskedNonFlickerPatterned(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  3652. void DoBitBltAlpha(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,const TPoint& aDitherOrigin,TInt aShadowMode);
  3653. void DoBitBltAlpha(const TPoint& aDestPt,
  3654.    const CBitwiseBitmap* aSrcBmp1,
  3655.    TUint32* aSrcBmpDataAddr1,
  3656.    const CBitwiseBitmap* aSrcBmp2,
  3657.    TUint32* aSrcBmpDataAddr2,
  3658.    const CBitwiseBitmap* aAlphaBmp,
  3659.    TUint32* aAlphaBmpDataAddr,
  3660.    const TRect& aSrcRect1,
  3661.    const TPoint& aSrcPt2,
  3662.    const TPoint& aAlphaPt,
  3663.    TInt aShadowMode);
  3664. void DoCopyRect(const TPoint&,const TRect&);
  3665. void DoDrawBitmap(const TRect&,CBitwiseBitmap*,TUint32* aBase,const TRect&,const TPoint& aDitherOrigin);
  3666. void DoDrawBitmapMasked(const TRect& aDestRect,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin);
  3667. void DoDrawLine(TPoint aStart,TPoint aEnd,TBool aDrawStartPoint);
  3668. void DoDrawDottedWideLine(const TPoint& pt1,const TPoint& pt2,TBool drawstart,const TRect& screenrect);
  3669. void DoDrawSolidWideLine(const TPoint& pt1,const TPoint& pt2,TBool drawstart,const TRect& screenrect);