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

Symbian

开发平台:

C/C++

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