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

Symbian

开发平台:

C/C++

  1. const TInt KUidOpenFontRasterizerPlunginInterface = 0x101F7F5D;
  2. #line 64
  3. const TUint KReplacementCharacter = 0xF6DB;
  4. const TInt KFillCharacterOffset = 0x7FFF;
  5. #line 81
  6. class TOpenFontMetrics
  7. {
  8. public:
  9. inline TOpenFontMetrics();
  10. __declspec(dllexport) TOpenFontMetrics(const CFont* aFont);
  11. inline TInt Size() const;
  12. inline TInt Ascent() const;
  13. inline TInt Descent() const;
  14. inline TInt MaxHeight() const;
  15. inline TInt MaxDepth() const;
  16. inline TInt MaxWidth() const;
  17. inline void SetSize(TInt aSize);
  18. inline void SetAscent(TInt aAscent);
  19. inline void SetDescent(TInt aDescent);
  20. inline void SetMaxHeight(TInt aMaxHeight);
  21. inline void SetMaxDepth(TInt aMaxDepth);
  22. inline void SetMaxWidth(TInt aMaxWidth);
  23. private:
  24. TInt16 iDesignHeight;
  25. TInt16 iAscent;
  26. TInt16 iDescent;
  27. TInt16 iMaxHeight;
  28. TInt16 iMaxDepth;
  29. TInt16 iMaxWidth;
  30. TInt32 iReserved;
  31. };
  32. #line 128
  33. class TOpenFontCharMetrics
  34. {
  35. public:
  36. enum TUninitialized { EUninitialized };
  37. public:
  38. inline TOpenFontCharMetrics();
  39. TOpenFontCharMetrics(TUninitialized) {}
  40. __declspec(dllexport) TOpenFontCharMetrics(const TCharacterMetrics& aMetrics);
  41. __declspec(dllexport) TBool GetTCharacterMetrics(TCharacterMetrics& aMetrics) const;
  42. inline TInt Width() const;
  43. inline TInt Height() const;
  44. inline TInt HorizBearingX() const;
  45. inline TInt HorizBearingY() const;
  46. inline TInt HorizAdvance() const;
  47. inline TInt VertBearingX() const;
  48. inline TInt VertBearingY() const;
  49. inline TInt VertAdvance() const;
  50. inline void GetHorizBounds(TRect& aBounds) const;
  51. inline void GetVertBounds(TRect& aBounds) const;
  52. inline void SetWidth(TInt aWidth);
  53. inline void SetHeight(TInt aHeight);
  54. inline void SetHorizBearingX(TInt aHorizBearingX);
  55. inline void SetHorizBearingY(TInt aHorizBearingY);
  56. inline void SetHorizAdvance(TInt aHorizAdvance);
  57. inline void SetVertBearingX(TInt aVertBearingX);
  58. inline void SetVertBearingY(TInt aVertBearingY);
  59. inline void SetVertAdvance(TInt aVertAdvance);
  60. private:
  61. TInt16 iWidth;
  62. TInt16 iHeight;
  63. TInt16 iHorizBearingX;
  64. TInt16 iHorizBearingY;
  65. TInt16 iHorizAdvance;
  66. TInt16 iVertBearingX;
  67. TInt16 iVertBearingY;
  68. TInt16 iVertAdvance;
  69. TInt32 iReserved;
  70. };
  71. #line 187
  72. class TOpenFontGlyphData
  73. {
  74. public:
  75. __declspec(dllexport) static TOpenFontGlyphData* New(RHeap* aHeap,TInt aBufferSize);
  76. inline TBool Overflow() const;
  77. inline TInt BytesNeeded() const;
  78. inline TPtrC8 Bitmap() const;
  79. inline const TUint8* BitmapPointer() const;
  80. inline const TOpenFontCharMetrics* Metrics() const;
  81. inline TInt GlyphIndex() const;
  82. inline TUint8* BufferStart();
  83. inline TUint8* BufferEnd();
  84. inline void SetBytesNeeded(TInt aBytes);
  85. inline void SetBitmapPointer(const TUint8* aBitmap);
  86. inline void SetMetricsPointer(const TOpenFontCharMetrics* aMetrics);
  87. inline void SetPointersToInternalBuffers();
  88. inline void SetMetrics(TOpenFontCharMetrics& aMetrics);
  89. inline void SetGlyphIndex(TInt aGlyphIndex);
  90. private:
  91. TOpenFontGlyphData();
  92. ~TOpenFontGlyphData();
  93. private:
  94. TInt iBitmapBufferSize;
  95. TInt iBytesNeeded;
  96. TOpenFontCharMetrics iMetricsBuffer;
  97. const TUint8* iBitmap;
  98. const TOpenFontCharMetrics* iMetrics;
  99. TInt iGlyphIndex;
  100. TAny* iReserved;
  101. TUint8 iBitmapBuffer[1];
  102. };
  103. #line 254
  104. class COpenFont: public CBase
  105. {
  106. public:
  107. #line 282
  108. virtual void RasterizeL(TInt aCode,TOpenFontGlyphData* aGlyphData) = 0;
  109. __declspec(dllexport) virtual void Reserved();
  110. __declspec(dllexport) COpenFont(RHeap* aHeap,COpenFontSessionCacheList* aSessionCacheList,COpenFontFile* aFile);
  111. __declspec(dllexport) COpenFont(RHeap* aHeap,COpenFontSessionCacheList* aSessionCacheList,COpenFontFile* aFile,TInt aFaceIndex);
  112. __declspec(dllexport) ~COpenFont();
  113. __declspec(dllexport) void operator delete(TAny*);
  114. inline const TOpenFontMetrics& Metrics() const;
  115. inline const TOpenFontFaceAttrib* FaceAttrib() const;
  116. inline COpenFontFile* File() const;
  117. inline TInt FaceIndex() const;
  118. inline TBool CharacterNeedsToBeRasterized(TInt aSessionHandle,TInt aCode) const;
  119. TBool Rasterize(TInt aSessionHandle,TInt aCode,TOpenFontGlyphData* aGlyphData);
  120. TBool HasCharacterL(TInt aCode) const;
  121. TBool GetCharacterData(TInt aSessionHandle,TInt aCode,const TOpenFontCharMetrics*& aMetrics,const TUint8*& aBitmap) const;
  122. void OnFileDeleted();
  123. inline TInt FontCapitalAscent() const;
  124. inline TInt FontMaxAscent() const;
  125. inline TInt FontStandardDescent() const;
  126. inline TInt FontMaxDescent() const;
  127. inline TInt FontLineGap() const;
  128. inline TInt FontMaxHeight() const;
  129. protected:
  130. RHeap* iHeap;
  131. TOpenFontMetrics iMetrics;
  132. const COpenFontPositioner* iPositioner;
  133. TInt iFontCapitalAscent;
  134. TInt iFontMaxAscent;
  135. TInt iFontStandardDescent;
  136. TInt iFontMaxDescent;
  137. TInt iFontLineGap;
  138. private:
  139. const COpenFontGlyph* Glyph(TInt aSessionHandle,TInt aCode) const;
  140. const COpenFontGlyph* FontCacheGlyph(TInt aCode,COpenFontGlyphTreeEntry**& aNode);
  141. const COpenFontGlyph* SessionCacheGlyph(RHeap* aHeap,TInt aSessionHandle,TInt aCode,
  142. COpenFontSessionCache*& aCache,TInt& aIndex,TBool aCreate) const;
  143. void RasterizeHelperL(TInt aCode,TOpenFontGlyphData* aGlyphData,TOpenFontGlyphData*& aTempGlyphData);
  144. private:
  145. COpenFontFile* iFile;
  146. TInt iFaceIndex;
  147. COpenFontGlyphCache* iGlyphCache;
  148. COpenFontSessionCacheList* iSessionCacheList;
  149. TAny* iReserved;
  150. };
  151. #line 351
  152. class TOpenFontFaceAttribBase
  153. {
  154. public:
  155. inline TOpenFontFaceAttribBase();
  156. inline TBool HasLatin() const;
  157. inline TBool HasGreek() const;
  158. inline TBool HasCyrillic() const;
  159. inline TBool HasKana() const;
  160. inline TBool HasHangul() const;
  161. inline TBool HasCJK() const;
  162. inline TBool IsSymbol() const;
  163. inline TBool IsBold() const;
  164. inline TBool IsItalic() const;
  165. inline TBool IsSerif() const;
  166. inline TBool IsMonoWidth() const;
  167. inline TPtrC Name() const;
  168. inline const TUint* Coverage() const;
  169. inline void SetName(const TDesC& aName);
  170. inline void SetCoverage(TUint aCoverage0,TUint aCoverage1 = 0,TUint aCoverage2 = 0,TUint aCoverage3 = 0);
  171. inline void SetBold(TBool aBold);
  172. inline void SetItalic(TBool aItalic);
  173. inline void SetSerif(TBool aSerif);
  174. inline void SetMonoWidth(TBool aMonoWidth);
  175. inline TBool operator==(const TOpenFontFaceAttribBase& aAttrib) const;
  176. enum
  177. {
  178. ELatinSet = 0x1,
  179. EGreekSet = 0x80,
  180. ECyrillicSet = 0x200,
  181. EArmenianSet = 0x400,
  182. EHebrewSet = 0x800,
  183. EArabicSet = 0x2000,
  184. EDevanagariSet = 0x8000,
  185. EBengaliSet = 0x10000,
  186. EGurmukhiSet = 0x20000,
  187. EGujuratiSet = 0x40000,
  188. EOriyaSet = 0x80000,
  189. ETamilSet = 0x100000,
  190. ETeluguSet = 0x200000,
  191. EKannadaSet = 0x400000,
  192. EMalayalamSet = 0x800000,
  193. EThaiSet = 0x1000000,
  194. ELaoSet = 0x2000000,
  195. EGeorgianSet = 0x8000000,
  196. EHangulJamoSet = 0x10000000,
  197. };
  198. enum
  199. {
  200. ESymbolSets = 0xFFFE,
  201. EKanaSets = 0x60000,
  202. EHangulSet = 0x100000,
  203. ECJKSet = 0x8000000
  204. };
  205. enum
  206. {
  207. EBold = 0x1,
  208. EItalic = 0x2,
  209. ESerif = 0x4,
  210. EMonoWidth = 0x8
  211. };
  212. enum
  213. {
  214. ENameLength = 32
  215. };
  216. protected:
  217. TBufC<ENameLength> iName;
  218. TUint iCoverage[4];
  219. TInt iStyle;
  220. TInt32 iReserved;
  221. };
  222. #line 443
  223. class TOpenFontFaceAttrib: public TOpenFontFaceAttribBase
  224. {
  225. public:
  226. inline TOpenFontFaceAttrib();
  227. inline TBool operator==(const TOpenFontFaceAttrib& aAttrib) const;
  228. inline TPtrC FullName() const;
  229. inline TPtrC FamilyName() const;
  230. inline TPtrC LocalFullName() const;
  231. inline TPtrC LocalFamilyName() const;
  232. inline TPtrC ShortFullName() const;
  233. inline TPtrC ShortFamilyName() const;
  234. inline TPtrC ShortLocalFullName() const;
  235. inline TPtrC ShortLocalFamilyName() const;
  236. inline void SetFullName(const TDesC& aName);
  237. inline void SetFamilyName(const TDesC& aName);
  238. inline void SetLocalFullName(const TDesC& aName);
  239. inline void SetLocalFamilyName(const TDesC& aName);
  240. inline TInt MinSizeInPixels() const;
  241. inline void SetMinSizeInPixels(TInt aSize);
  242. private:
  243. TBufC<ENameLength> iFamilyName;
  244. TBufC<ENameLength> iLocalFullName;
  245. TBufC<ENameLength> iLocalFamilyName;
  246. TInt iMinSizeInPixels;
  247. TInt32 iReserved2;
  248. };
  249. #line 488
  250. class TOpenFontSpec: public TOpenFontFaceAttribBase
  251. {
  252. public:
  253. __declspec(dllexport) TOpenFontSpec();
  254. __declspec(dllexport) TOpenFontSpec(const TFontSpec& aFontSpec);
  255. __declspec(dllexport) void operator=(const TFontSpec& aFontSpec);
  256. inline TBool operator==(const TOpenFontSpec& aFontSpec) const;
  257. __declspec(dllexport) void SetAttrib(const TOpenFontFaceAttribBase& aAttrib);
  258. __declspec(dllexport) void GetTFontSpec(TFontSpec& aFontSpec) const;
  259. __declspec(dllexport) void CompensateForAspectRatio(TInt aPixelWidth,TInt aPixelHeight);
  260. __declspec(dllexport) void CompensateForAspectRatio(const MGraphicsDeviceMap& aMap);
  261. inline TInt Height() const;
  262. inline TInt32 WidthFactor() const;
  263. inline TInt32 SlantFactor() const;
  264. inline TGlyphBitmapType BitmapType() const;
  265. inline TUint32 Effects() const;
  266. inline TFontPrintPosition PrintPosition() const;
  267. inline void SetHeight(TInt aHeight);
  268. inline void SetWidthFactor(TInt32 aWidthFactor);
  269. inline void SetSlantFactor(TInt32 aSlantFactor);
  270. inline void SetBitmapType(TGlyphBitmapType aBitmapType);
  271. inline void SetEffects(TUint32 aEffects);
  272. __declspec(dllexport) void SetEffects(FontEffect::TEffect aEffect, TBool aOn);
  273. __declspec(dllexport) TBool IsEffectOn(FontEffect::TEffect aEffect) const;
  274. static TBool IsCompensationForAspectRatioNeeded(TInt aPixelWidth, TInt aPixelHeight, TReal& aRatio);
  275. enum
  276. {
  277. EAlgorithmicBold = 1,
  278. EDropShadow = 2,
  279. EOutline = 4
  280. };
  281. private:
  282. TInt iHeight;
  283. TInt32 iWidthFactor;
  284. TInt32 iSlantFactor;
  285. TInt iBitmapType;
  286. TUint32 iEffects;
  287. TBool iSymbol;
  288. TFontPrintPosition iPrintPosition;
  289. TInt iReserved2;
  290. };
  291. enum TOpenFontAttachment
  292. {
  293. EBaselineLeft,
  294. EBaselineRight,
  295. ETopLeft,
  296. ETopCenter,
  297. ETopRight,
  298. EBottomLeft,
  299. EBottomCenter,
  300. EBottomRight
  301. };
  302. #line 599
  303. class COpenFontFile: public CBase
  304. {
  305. public:
  306. virtual void GetNearestFontInPixelsL(RHeap* aHeap, COpenFontSessionCacheList* aSessionCacheList,
  307.  const TOpenFontSpec& aDesiredFontSpec, TInt aPixelWidth, TInt aPixelHeight,
  308.  COpenFont*& aFont, TOpenFontSpec& aActualFontSpec) = 0;
  309. virtual void GetNearestFontToDesignHeightInPixelsL(RHeap* , COpenFontSessionCacheList* ,
  310.    const TOpenFontSpec& , TInt , TInt ,
  311.    COpenFont*& , TOpenFontSpec& ){}
  312. virtual void GetNearestFontToMaxHeightInPixelsL(RHeap* , COpenFontSessionCacheList* ,
  313. const TOpenFontSpec& , TInt , TInt ,
  314.  COpenFont*& , TOpenFontSpec& , TInt ){}
  315. virtual TBool HasUnicodeCharacterL(TInt aFaceIndex,TInt aCode) const = 0;
  316. __declspec(dllexport) virtual void Reserved();
  317. __declspec(dllexport) COpenFontFile(TInt aUid,const TDesC& aFileName);
  318. __declspec(dllexport) ~COpenFontFile();
  319. __declspec(dllexport) TBool GetNearestFontHelper(const TOpenFontSpec& aDesiredFontSpec,TInt aPixelWidth,TInt aPixelHeight,
  320. TInt& aFaceIndex,TOpenFontSpec& aActualFontSpec) const;
  321. __declspec(dllexport) void AddFaceL(const TOpenFontFaceAttrib& aAttrib);
  322. inline TUid Uid() const;
  323. inline const TDesC& FileName() const;
  324. inline const TOpenFontFaceAttrib& FaceAttrib(TInt aFaceIndex) const;
  325. inline TInt FaceCount() const;
  326. inline void IncRefCount();
  327. inline TBool DecRefCount();
  328. TInt GetNearestFontInPixels(RHeap* aHeap,COpenFontSessionCacheList* aSessionCacheList,
  329. const TOpenFontSpec& aDesiredFontSpec,TInt aPixelWidth,TInt aPixelHeight,
  330. COpenFont*& aFont,TOpenFontSpec& aActualFontSpec);
  331. TInt GetNearestFontToDesignHeightInPixels(RHeap* aHeap, COpenFontSessionCacheList* aSessionCacheList,
  332.   const TOpenFontSpec& aDesiredFontSpec, TInt aPixelWidth, TInt aPixelHeight,
  333.   COpenFont*& aFont, TOpenFontSpec& aActualFontSpec);
  334. TInt GetNearestFontToMaxHeightInPixels(RHeap* aHeap, COpenFontSessionCacheList* aSessionCacheList,
  335.    const TOpenFontSpec& aDesiredFontSpec, TInt aPixelWidth, TInt aPixelHeight,
  336.    COpenFont*& aFont, TOpenFontSpec& aActualFontSpec, TInt aMaxHeight);
  337. void RemoveFontFromList(const COpenFont* aFont);
  338. void SetFontStoreL(CFontStore* aFontStore);
  339. protected:
  340. __declspec(dllexport) TBool GetNearestFontHelperOld(const TOpenFontSpec& aDesiredFontSpec,TInt aPixelWidth,TInt aPixelHeight,
  341. TInt& aFaceIndex,TOpenFontSpec& aActualFontSpec) const;
  342. private:
  343. class TAttrib: public TOpenFontFaceAttrib
  344. {
  345. public:
  346. COpenFontPositioner* iPositioner;
  347. };
  348. static TInt ScoreByName(const TOpenFontSpec& aDesiredFontSpec, const TAttrib& aAttrib);
  349. static TInt ScoreByStyle(const TOpenFontSpec& aDesiredFontSpec, const TAttrib& aAttrib, const TOpenFontFileData* aOpenFontFileData);
  350. private:
  351. CArrayFixFlat<TAttrib> iFaceAttrib;
  352. TUid iUid;
  353. TBuf<KMaxFileName> iFileName;
  354. TInt iRefCount;
  355. CArrayPtrFlat<COpenFont> iFontList;
  356. TOpenFontFileData* iData;
  357. };
  358. #line 697
  359. class COpenFontRasterizer: public CBase
  360. {
  361. public:
  362. #line 730
  363. virtual COpenFontFile* NewFontFileL(TInt aUid,const TDesC& aFileName,RFs& aFileSession) = 0;
  364. inline static COpenFontRasterizer* NewL(TUid aInterfaceImplUid);
  365. inline virtual ~COpenFontRasterizer();
  366. __declspec(dllexport) virtual void Reserved();
  367. private:
  368. TUid iDtor_ID_Key;
  369. };
  370. #line 753
  371. class COpenFontRasterizerContext: public CBase
  372. {
  373. public:
  374. inline COpenFontRasterizerContext();
  375. inline void StartGlyph(TOpenFontGlyphData* aGlyphData);
  376. inline void WriteGlyphBit(TInt aBit);
  377. inline void WriteGlyphByte(TInt aByte);
  378. inline void EndGlyph();
  379. private:
  380. TOpenFontGlyphData* iGlyphData;
  381. TUint8* iGlyphDataStart;
  382. TUint8* iGlyphDataPtr;
  383. TUint8* iGlyphDataEnd;
  384. TInt iGlyphBit;
  385. TInt iBytesNeeded;
  386. TBool iOverflow;
  387. TAny* iReserved;
  388. };
  389. inline TOpenFontMetrics::TOpenFontMetrics()
  390. {
  391. Mem::FillZ(this,sizeof(*this));
  392. }
  393. inline TInt TOpenFontMetrics::Size() const
  394. {
  395. return iDesignHeight;
  396. }
  397. inline TInt TOpenFontMetrics::Ascent() const
  398. {
  399. return iAscent;
  400. }
  401. inline TInt TOpenFontMetrics::Descent() const
  402. {
  403. return iDescent;
  404. }
  405. #line 824
  406. inline TInt TOpenFontMetrics::MaxHeight() const
  407. {
  408. return iMaxHeight;
  409. }
  410. #line 839
  411. inline TInt TOpenFontMetrics::MaxDepth() const
  412. {
  413. return iMaxDepth;
  414. }
  415. inline TInt TOpenFontMetrics::MaxWidth() const
  416. {
  417. return iMaxWidth;
  418. }
  419. inline void TOpenFontMetrics::SetSize(TInt aSize)
  420. {
  421. iDesignHeight = static_cast<TInt16>(aSize);
  422. }
  423. inline void TOpenFontMetrics::SetAscent(TInt aAscent)
  424. {
  425. iAscent = static_cast<TInt16>(aAscent);
  426. }
  427. inline void TOpenFontMetrics::SetDescent(TInt aDescent)
  428. {
  429. iDescent = static_cast<TInt16>(aDescent);
  430. }
  431. inline void TOpenFontMetrics::SetMaxHeight(TInt aMaxHeight)
  432. {
  433. iMaxHeight = static_cast<TInt16>(aMaxHeight);
  434. }
  435. inline void TOpenFontMetrics::SetMaxDepth(TInt aMaxDepth)
  436. {
  437. iMaxDepth = static_cast<TInt16>(aMaxDepth);
  438. }
  439. inline void TOpenFontMetrics::SetMaxWidth(TInt aMaxWidth)
  440. {
  441. iMaxWidth = static_cast<TInt16>(aMaxWidth);
  442. }
  443. inline TOpenFontCharMetrics::TOpenFontCharMetrics()
  444. {
  445. Mem::FillZ(this,sizeof(*this));
  446. }
  447. inline TInt TOpenFontCharMetrics::Width() const
  448. {
  449. return iWidth;
  450. }
  451. inline TInt TOpenFontCharMetrics::Height() const
  452. {
  453. return iHeight;
  454. }
  455. #line 939
  456. inline TInt TOpenFontCharMetrics::HorizBearingX() const
  457. {
  458. return iHorizBearingX;
  459. }
  460. #line 951
  461. inline TInt TOpenFontCharMetrics::HorizBearingY() const
  462. {
  463. return iHorizBearingY;
  464. }
  465. #line 963
  466. inline TInt TOpenFontCharMetrics::HorizAdvance() const
  467. {
  468. return iHorizAdvance;
  469. }
  470. #line 975
  471. inline TInt TOpenFontCharMetrics::VertBearingX() const
  472. {
  473. return iVertBearingX;
  474. }
  475. #line 987
  476. inline TInt TOpenFontCharMetrics::VertBearingY() const
  477. {
  478. return iVertBearingY;
  479. }
  480. #line 1002
  481. inline TInt TOpenFontCharMetrics::VertAdvance() const
  482. {
  483. return iVertAdvance;
  484. }
  485. inline void TOpenFontCharMetrics::GetHorizBounds(TRect& aBounds) const
  486. {
  487. aBounds.iTl.iX = iHorizBearingX;
  488. aBounds.iTl.iY = -iHorizBearingY;
  489. aBounds.iBr.iX = aBounds.iTl.iX + iWidth;
  490. aBounds.iBr.iY = aBounds.iTl.iY + iHeight;
  491. }
  492. inline void TOpenFontCharMetrics::GetVertBounds(TRect& aBounds) const
  493. {
  494. aBounds.iTl.iX = -iVertBearingX;
  495. aBounds.iTl.iY = iVertBearingY;
  496. aBounds.iBr.iX = aBounds.iTl.iX + iWidth;
  497. aBounds.iBr.iY = aBounds.iTl.iY + iHeight;
  498. }
  499. inline void TOpenFontCharMetrics::SetWidth(TInt aWidth)
  500. {
  501. iWidth = (TInt16)aWidth;
  502. }
  503. inline void TOpenFontCharMetrics::SetHeight(TInt aHeight)
  504. {
  505. iHeight = (TInt16)aHeight;
  506. }
  507. #line 1058
  508. inline void TOpenFontCharMetrics::SetHorizBearingX(TInt aHorizBearingX)
  509. {
  510. iHorizBearingX = (TInt16)aHorizBearingX;
  511. }
  512. #line 1070
  513. inline void TOpenFontCharMetrics::SetHorizBearingY(TInt aHorizBearingY)
  514. {
  515. iHorizBearingY = (TInt16)aHorizBearingY;
  516. }
  517. #line 1082
  518. inline void TOpenFontCharMetrics::SetHorizAdvance(TInt aHorizAdvance)
  519. {
  520. iHorizAdvance = (TInt16)aHorizAdvance;
  521. }
  522. #line 1094
  523. inline void TOpenFontCharMetrics::SetVertBearingX(TInt aVertBearingX)
  524. {
  525. iVertBearingX = (TInt16)aVertBearingX;
  526. }
  527. #line 1106
  528. inline void TOpenFontCharMetrics::SetVertBearingY(TInt aVertBearingY)
  529. {
  530. iVertBearingY = (TInt16)aVertBearingY;
  531. }
  532. #line 1121
  533. inline void TOpenFontCharMetrics::SetVertAdvance(TInt aVertAdvance)
  534. {
  535. iVertAdvance = (TInt16)aVertAdvance;
  536. }
  537. inline const TOpenFontMetrics& COpenFont::Metrics() const
  538. {
  539. return iMetrics;
  540. }
  541. #line 1144
  542. inline TInt TOpenFontGlyphData::GlyphIndex() const
  543. {
  544. return iGlyphIndex;
  545. }
  546. inline const TOpenFontFaceAttrib* COpenFont::FaceAttrib() const
  547. {
  548. return iFile ? &iFile->FaceAttrib(iFaceIndex) : 0 ;
  549. }
  550. #line 1166
  551. inline COpenFontFile* COpenFont::File() const
  552. {
  553. return iFile;
  554. }
  555. inline TInt COpenFont::FaceIndex() const
  556. {
  557. return iFaceIndex;
  558. }
  559. #line 1188
  560. inline TBool COpenFont::CharacterNeedsToBeRasterized(TInt aSessionHandle,TInt aCode) const
  561. {
  562. return Glyph(aSessionHandle,aCode) == 0 ;
  563. }
  564. #line 1201
  565. inline TInt COpenFont::FontCapitalAscent() const
  566. {
  567. return iFontCapitalAscent;
  568. }
  569. #line 1217
  570. inline TInt COpenFont::FontMaxAscent() const
  571. {
  572. return iFontMaxAscent;
  573. }
  574. #line 1230
  575. inline TInt COpenFont::FontStandardDescent() const
  576. {
  577. return iFontStandardDescent;
  578. }
  579. #line 1245
  580. inline TInt COpenFont::FontMaxDescent() const
  581. {
  582. return iFontMaxDescent;
  583. }
  584. inline TInt COpenFont::FontLineGap() const
  585. {
  586. return iFontLineGap;
  587. }
  588. #line 1268
  589. inline TInt COpenFont::FontMaxHeight() const
  590. {
  591. return iFontMaxAscent + iFontMaxDescent;
  592. }
  593. inline TOpenFontFaceAttribBase::TOpenFontFaceAttribBase()
  594. {
  595. Mem::FillZ(this,sizeof(*this));
  596. }
  597. inline TOpenFontFaceAttrib::TOpenFontFaceAttrib():
  598. iMinSizeInPixels(0),
  599. iReserved2(0)
  600. {
  601. }
  602. inline TBool TOpenFontFaceAttribBase::HasLatin() const
  603. {
  604. return iCoverage[0] & ELatinSet;
  605. }
  606. inline TBool TOpenFontFaceAttribBase::HasGreek() const
  607. {
  608. return iCoverage[0] & EGreekSet;
  609. }
  610. inline TBool TOpenFontFaceAttribBase::HasCyrillic() const
  611. {
  612. return iCoverage[0] & ECyrillicSet;
  613. }
  614. #line 1336
  615. inline TBool TOpenFontFaceAttribBase::HasKana() const
  616. {
  617. return iCoverage[1] & EKanaSets;
  618. }
  619. #line 1350
  620. inline TBool TOpenFontFaceAttribBase::HasHangul() const
  621. {
  622. return iCoverage[1] & EHangulSet;
  623. }
  624. #line 1363
  625. inline TBool TOpenFontFaceAttribBase::HasCJK() const
  626. {
  627. return iCoverage[1] & ECJKSet;
  628. }
  629. inline TBool TOpenFontFaceAttribBase::IsSymbol() const
  630. {
  631. return iCoverage[0] == 0 && iCoverage[2] == 0 && iCoverage[3] == 0 &&
  632.    iCoverage[1] & ESymbolSets && !(iCoverage[1] & ~ESymbolSets);
  633. }
  634. inline TBool TOpenFontFaceAttribBase::IsBold() const
  635. {
  636. return iStyle & EBold;
  637. }
  638. inline TBool TOpenFontFaceAttribBase::IsItalic() const
  639. {
  640. return iStyle & EItalic;
  641. }
  642. inline TBool TOpenFontFaceAttribBase::IsSerif() const
  643. {
  644. return iStyle & ESerif;
  645. }
  646. inline TBool TOpenFontFaceAttribBase::IsMonoWidth() const
  647. {
  648. return iStyle & EMonoWidth;
  649. }
  650. inline TPtrC TOpenFontFaceAttribBase::Name() const
  651. {
  652. return iName;
  653. }
  654. #line 1424
  655. inline TPtrC TOpenFontFaceAttrib::FullName() const
  656. {
  657. return Name();
  658. }
  659. #line 1436
  660. inline TPtrC TOpenFontFaceAttrib::FamilyName() const
  661. {
  662. return iFamilyName;
  663. }
  664. #line 1451
  665. inline TPtrC TOpenFontFaceAttrib::LocalFullName() const
  666. {
  667. return iLocalFullName;
  668. }
  669. #line 1466
  670. inline TPtrC TOpenFontFaceAttrib::LocalFamilyName() const
  671. {
  672. return iLocalFamilyName;
  673. }
  674. #line 1482
  675. inline TPtrC TOpenFontFaceAttrib::ShortFullName() const
  676. {
  677. return TPtrC(iName.Ptr(),Min(iName.Length(),KMaxTypefaceNameLength));
  678. }
  679. #line 1498
  680. inline TPtrC TOpenFontFaceAttrib::ShortFamilyName() const
  681. {
  682. return TPtrC(iFamilyName.Ptr(),Min(iFamilyName.Length(),KMaxTypefaceNameLength));
  683. }
  684. #line 1514
  685. inline TPtrC TOpenFontFaceAttrib::ShortLocalFullName() const
  686. {
  687. return TPtrC(iLocalFullName.Ptr(),Min(iLocalFullName.Length(),KMaxTypefaceNameLength));
  688. }
  689. #line 1530
  690. inline TPtrC TOpenFontFaceAttrib::ShortLocalFamilyName() const
  691. {
  692. return TPtrC(iLocalFamilyName.Ptr(),Min(iLocalFamilyName.Length(),KMaxTypefaceNameLength));
  693. }
  694. #line 1547
  695. inline const TUint* TOpenFontFaceAttribBase::Coverage() const
  696. {
  697. return iCoverage;
  698. }
  699. inline TInt TOpenFontFaceAttrib::MinSizeInPixels() const
  700. {
  701. return iMinSizeInPixels;
  702. }
  703. inline void TOpenFontFaceAttribBase::SetName(const TDesC& aName)
  704. {
  705. iName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  706. }
  707. inline void TOpenFontFaceAttrib::SetFullName(const TDesC& aName)
  708. {
  709. SetName(aName);
  710. }
  711. inline void TOpenFontFaceAttrib::SetFamilyName(const TDesC& aName)
  712. {
  713. iFamilyName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  714. }
  715. inline void TOpenFontFaceAttrib::SetLocalFullName(const TDesC& aName)
  716. {
  717. iLocalFullName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  718. }
  719. inline void TOpenFontFaceAttrib::SetLocalFamilyName(const TDesC& aName)
  720. {
  721. iLocalFamilyName = TPtrC(aName.Ptr(),Min(aName.Length(),(TInt)ENameLength));
  722. }
  723. #line 1620
  724. inline void TOpenFontFaceAttribBase::SetCoverage(TUint aCoverage0,TUint aCoverage1,TUint aCoverage2,TUint aCoverage3)
  725. {
  726. iCoverage[0] = aCoverage0;
  727. iCoverage[1] = aCoverage1;
  728. iCoverage[2] = aCoverage2;
  729. iCoverage[3] = aCoverage3;
  730. }
  731. inline void TOpenFontFaceAttrib::SetMinSizeInPixels(TInt aSize)
  732. {
  733. iMinSizeInPixels = aSize;
  734. }
  735. #line 1647
  736. inline TBool TOpenFontFaceAttrib::operator==(const TOpenFontFaceAttrib& aAttrib) const
  737. {
  738. return TOpenFontFaceAttribBase::operator==(aAttrib) &&
  739.    iFamilyName == aAttrib.iFamilyName &&
  740.    iLocalFullName == aAttrib.iLocalFullName &&
  741.    iLocalFamilyName == aAttrib.iLocalFamilyName &&
  742.    iMinSizeInPixels == aAttrib.iMinSizeInPixels;
  743. }
  744. inline void TOpenFontFaceAttribBase::SetBold(TBool aBold)
  745. {
  746. if (aBold)
  747. iStyle |= EBold;
  748. else
  749. iStyle &= ~EBold;
  750. }
  751. inline void TOpenFontFaceAttribBase::SetItalic(TBool aItalic)
  752. {
  753. if (aItalic)
  754. iStyle |= EItalic;
  755. else
  756. iStyle &= ~EItalic;
  757. }
  758. inline void TOpenFontFaceAttribBase::SetSerif(TBool aSerif)
  759. {
  760. if (aSerif)
  761. iStyle |= ESerif;
  762. else
  763. iStyle &= ~ESerif;
  764. }
  765. inline void TOpenFontFaceAttribBase::SetMonoWidth(TBool aMonoWidth)
  766. {
  767. if (aMonoWidth)
  768. iStyle |= EMonoWidth;
  769. else
  770. iStyle &= ~EMonoWidth;
  771. }
  772. #line 1710
  773. inline TBool TOpenFontFaceAttribBase::operator==(const TOpenFontFaceAttribBase& aAttrib) const
  774. {
  775. return iStyle == aAttrib.iStyle &&
  776.    iCoverage[0] == aAttrib.iCoverage[0] &&
  777.    iCoverage[1] == aAttrib.iCoverage[1] &&
  778.    iCoverage[2] == aAttrib.iCoverage[2] &&
  779.    iCoverage[3] == aAttrib.iCoverage[3] &&
  780.    iName.CompareF(aAttrib.iName) == 0;
  781. }
  782. #line 1727
  783. inline TBool TOpenFontSpec::operator==(const TOpenFontSpec& aFontSpec) const
  784. {
  785. return TOpenFontFaceAttribBase::operator==(aFontSpec) &&
  786.    iHeight == aFontSpec.iHeight &&
  787.    iWidthFactor == aFontSpec.iWidthFactor &&
  788.    iSlantFactor == aFontSpec.iSlantFactor &&
  789.    iBitmapType == aFontSpec.iBitmapType &&
  790.    iEffects == aFontSpec.iEffects &&
  791.    iSymbol == aFontSpec.iSymbol &&
  792.    iPrintPosition == aFontSpec.iPrintPosition;
  793. }
  794. inline TInt TOpenFontSpec::Height() const
  795. {
  796. return iHeight;
  797. }
  798. inline TInt32 TOpenFontSpec::WidthFactor() const
  799. {
  800. return iWidthFactor;
  801. }
  802. inline TInt32 TOpenFontSpec::SlantFactor() const
  803. {
  804. return iSlantFactor;
  805. }
  806. inline TGlyphBitmapType TOpenFontSpec::BitmapType() const
  807. {
  808. return (TGlyphBitmapType)iBitmapType;
  809. }
  810. inline TUint32 TOpenFontSpec::Effects() const
  811. {
  812. return iEffects;
  813. }
  814. inline TFontPrintPosition TOpenFontSpec::PrintPosition() const
  815. {
  816. return iPrintPosition;
  817. }
  818. inline void TOpenFontSpec::SetHeight(TInt aHeight)
  819. {
  820. iHeight = aHeight;
  821. }
  822. #line 1811
  823. inline void TOpenFontSpec::SetWidthFactor(TInt32 aWidthFactor)
  824. {
  825. iWidthFactor = aWidthFactor;
  826. }
  827. #line 1831
  828. inline void TOpenFontSpec::SetSlantFactor(TInt32 aSlantFactor)
  829. {
  830. iSlantFactor = aSlantFactor;
  831. }
  832. #line 1845
  833. inline void TOpenFontSpec::SetBitmapType(TGlyphBitmapType aBitmapType)
  834. {
  835. iBitmapType = aBitmapType;
  836. }
  837. inline void TOpenFontSpec::SetEffects(TUint32 aEffects)
  838. {
  839. iEffects = aEffects;
  840. }
  841. inline TUid COpenFontFile::Uid() const
  842. {
  843. return iUid;
  844. }
  845. inline const TDesC& COpenFontFile::FileName() const
  846. {
  847. return iFileName;
  848. }
  849. inline const TOpenFontFaceAttrib& COpenFontFile::FaceAttrib(TInt aFaceIndex) const
  850. {
  851. return iFaceAttrib[aFaceIndex];
  852. }
  853. #line 1899
  854. inline TInt COpenFontFile::FaceCount() const
  855. {
  856. return iFaceAttrib.Count();
  857. }
  858. inline void COpenFontFile::IncRefCount()
  859. {
  860. iRefCount++;
  861. }
  862. inline TBool COpenFontFile::DecRefCount()
  863. {
  864. iRefCount--;
  865. return iRefCount <= 0;
  866. }
  867. inline COpenFontRasterizerContext::COpenFontRasterizerContext():
  868. iGlyphData(0 )
  869. {
  870. }
  871. inline void COpenFontRasterizerContext::StartGlyph(TOpenFontGlyphData* aGlyphData)
  872. {
  873. aGlyphData->SetPointersToInternalBuffers();
  874. iGlyphData = aGlyphData;
  875. iGlyphDataStart = iGlyphDataPtr = aGlyphData->BufferStart();
  876. iGlyphDataEnd = aGlyphData->BufferEnd() - 4;
  877. iGlyphBit = 1;
  878. *iGlyphDataPtr = 0;
  879. iBytesNeeded = 1;
  880. iOverflow = 0 ;
  881. }
  882. inline void COpenFontRasterizerContext::WriteGlyphBit(TInt aBit)
  883. {
  884. if (aBit && !iOverflow)
  885. *iGlyphDataPtr |= iGlyphBit;
  886. iGlyphBit <<= 1;
  887. if (iGlyphBit == 256)
  888. {
  889. iGlyphBit = 1;
  890. iBytesNeeded++;
  891. if (++iGlyphDataPtr < iGlyphDataEnd)
  892. *iGlyphDataPtr = 0;
  893. else
  894. iOverflow = 1 ;
  895. }
  896. }
  897. inline void COpenFontRasterizerContext::WriteGlyphByte(TInt aByte)
  898.   {
  899. if (iGlyphDataPtr < iGlyphDataEnd)
  900. *iGlyphDataPtr++ = (TUint8)aByte;
  901. else
  902. iOverflow = 1 ;
  903. iBytesNeeded++;
  904. }
  905. inline void COpenFontRasterizerContext::EndGlyph()
  906. {
  907. iGlyphData->SetBytesNeeded(iBytesNeeded + 4);
  908. iGlyphData = 0 ;
  909. }
  910. inline TBool TOpenFontGlyphData::Overflow() const
  911. {
  912. return iBytesNeeded > iBitmapBufferSize;
  913. }
  914. inline TInt TOpenFontGlyphData::BytesNeeded() const
  915. {
  916. return iBytesNeeded;
  917. }
  918. inline TPtrC8 TOpenFontGlyphData::Bitmap() const
  919. {
  920. return TPtrC8(iBitmap,iBytesNeeded);
  921. }
  922. inline const TUint8* TOpenFontGlyphData::BitmapPointer() const
  923. {
  924. return iBitmap;
  925. }
  926. inline const TOpenFontCharMetrics* TOpenFontGlyphData::Metrics() const
  927. {
  928. return iMetrics;
  929. }
  930. inline TUint8* TOpenFontGlyphData::BufferStart()
  931. {
  932. return iBitmapBuffer;
  933. }
  934. inline TUint8* TOpenFontGlyphData::BufferEnd()
  935. {
  936. return iBitmapBuffer + iBitmapBufferSize;
  937. }
  938. inline void TOpenFontGlyphData::SetBytesNeeded(TInt aBytes)
  939. {
  940. iBytesNeeded = aBytes;
  941. }
  942. inline void TOpenFontGlyphData::SetBitmapPointer(const TUint8* aBitmap)
  943. {
  944. iBitmap = aBitmap;
  945. }
  946. inline void TOpenFontGlyphData::SetMetricsPointer(const TOpenFontCharMetrics* aMetrics)
  947. {
  948. iMetrics = aMetrics;
  949. }
  950. inline void TOpenFontGlyphData::SetPointersToInternalBuffers()
  951. {
  952. iBitmap = iBitmapBuffer;
  953. iMetrics = &iMetricsBuffer;
  954. }
  955. inline void TOpenFontGlyphData::SetMetrics(TOpenFontCharMetrics& aMetrics)
  956. {
  957. iMetricsBuffer = aMetrics;
  958. iMetrics = &iMetricsBuffer;
  959. }
  960. inline void TOpenFontGlyphData::SetGlyphIndex(TInt aGlyphIndex)
  961. {
  962. iGlyphIndex = aGlyphIndex;
  963. }
  964. #line 2117
  965. inline COpenFontRasterizer* COpenFontRasterizer::NewL(TUid aInterfaceImplUid)
  966. {
  967. return reinterpret_cast <COpenFontRasterizer*> (
  968. REComSession::CreateImplementationL(
  969. aInterfaceImplUid,
  970. (((TInt)&(((COpenFontRasterizer *)0x1000)-> iDtor_ID_Key))-0x1000) ));
  971. }
  972. inline COpenFontRasterizer::~COpenFontRasterizer()
  973. {
  974. REComSession::DestroyedImplementation(iDtor_ID_Key);
  975. }
  976. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\fntstore.h" /* stack depth 5 */
  977. class CFontStoreFile;
  978. class CFontBitmap;
  979. class RReadStream;
  980. class TTypefaceFontBitmap;
  981. class TCharacterMetrics
  982. {
  983. public:
  984. __declspec(dllexport) TCharacterMetrics();
  985. TInt16 iAscentInPixels;
  986. TInt16 iHeightInPixels;
  987. TInt16 iLeftAdjustInPixels;
  988. TInt16 iMoveInPixels;
  989. TInt16 iRightAdjustInPixels;
  990. };
  991. class TAlgStyle
  992. #line 53
  993. {
  994. public:
  995. __declspec(dllexport) TAlgStyle();
  996. __declspec(dllexport) void SetIsBold(TBool aIsBold);
  997. __declspec(dllexport) void SetIsItalic(TBool aIsItalic);
  998. __declspec(dllexport) void SetIsMono(TBool aIsMono);
  999. __declspec(dllexport) void SetWidthFactor(TInt aWidthFactor);
  1000. __declspec(dllexport) void SetHeightFactor(TInt aHeightFactor);
  1001. __declspec(dllexport) TBool IsBold() const;
  1002. __declspec(dllexport) TBool IsItalic() const;
  1003. __declspec(dllexport) TBool IsMono() const;
  1004. __declspec(dllexport) TInt WidthFactor() const;
  1005. __declspec(dllexport) TInt HeightFactor() const;
  1006. __declspec(dllexport) TBool operator==(const TAlgStyle& aAlgStyle) const;
  1007. public:
  1008. TInt iBaselineOffsetInPixels;
  1009. private:
  1010. enum
  1011. {
  1012. EBold=1,
  1013. EItalic=2,
  1014. EMono=4,
  1015. };
  1016.     TInt8 iFlags;
  1017. TInt8 iWidthFactor;
  1018. TInt8 iHeightFactor;
  1019. };
  1020. #line 94
  1021. class CBitmapFont : public CFont
  1022. {
  1023. friend class CFontStore;
  1024. private:
  1025. CBitmapFont(RHeap* aHeap,const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, CFontBitmap* aFontBitmap);
  1026. CBitmapFont(RHeap* aHeap,const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, COpenFont* aOpenFont);
  1027. void ConstructL();
  1028. ~CBitmapFont();
  1029. static CBitmapFont* NewL(RHeap* aHeap, const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, CFontBitmap* aFontBitmap);
  1030. static CBitmapFont* NewL(RHeap* aHeap, const TFontSpec& aFontSpecInTwips, const TAlgStyle& aAlgStyle, COpenFont* aOpenFont);
  1031. private:
  1032. __declspec(dllexport) virtual TUid DoTypeUid() const;
  1033. __declspec(dllexport) virtual TInt DoHeightInPixels() const;
  1034. __declspec(dllexport) virtual TInt DoAscentInPixels() const;
  1035. __declspec(dllexport) virtual TInt DoCharWidthInPixels(TChar aChar) const;
  1036. __declspec(dllexport) virtual TInt DoTextWidthInPixels(const TDesC &aText) const;
  1037. __declspec(dllexport) virtual TInt DoBaselineOffsetInPixels() const;
  1038. __declspec(dllexport) virtual TInt DoTextCount(const TDesC &aText, TInt aWidthInPixels) const;
  1039. __declspec(dllexport) virtual TInt DoTextCount(const TDesC &aText, TInt aWidthInPixels, TInt &aExcessWidthInPixels) const;
  1040. __declspec(dllexport) virtual TInt DoMaxCharWidthInPixels() const;
  1041. __declspec(dllexport) virtual TInt DoMaxNormalCharWidthInPixels() const;
  1042. __declspec(dllexport) virtual TFontSpec DoFontSpecInTwips() const;
  1043. __declspec(dllexport) virtual TInt DoExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  1044. public:
  1045. TUid Uid() const;
  1046. __declspec(dllexport) TCharacterMetrics CharacterMetrics(TInt aCode,const TUint8*& aBytes) const;
  1047. __declspec(dllexport) TBool GetCharacterData(TInt aSessionHandle, TInt aCode, TOpenFontCharMetrics& aMetrics, const TUint8*& aBitmap) const;
  1048. __declspec(dllexport) TBool Rasterize(TInt aSessionHandle,TInt aCode,TOpenFontGlyphData* aGlyphData) const;
  1049. __declspec(dllexport) void GetFontMetrics(TOpenFontMetrics& aMetrics) const;
  1050. __declspec(dllexport) TBool GetFaceAttrib(TOpenFontFaceAttrib& aAttrib) const;
  1051. __declspec(dllexport) TInt BitmapEncoding() const;
  1052. __declspec(dllexport) TBool HasCharacterL(TInt aCode) const;
  1053. __declspec(dllexport) TBool CharacterNeedsToBeRasterized(TInt aSessionHandle,TInt aCode) const;
  1054. __declspec(dllexport) void operator delete(TAny*);
  1055. inline TBool IsOpenFont() const;
  1056. inline COpenFont* OpenFont() const;
  1057. inline TGlyphBitmapType GlyphBitmapType() const;
  1058. private:
  1059. TInt Width(TInt aNum) const;
  1060. TInt Height(TInt aNum) const;
  1061. CFontBitmap* FontBitmap() const;
  1062. private:
  1063. TFontSpec iFontSpecInTwips;
  1064. public:
  1065. TAlgStyle iAlgStyle;
  1066. private:
  1067. RHeap* iHeap;
  1068. TInt iFontBitmapOffset;
  1069. COpenFont* iOpenFont;
  1070. };
  1071. class CFontStore : public CTypefaceStore
  1072. #line 167
  1073.     {
  1074. private:
  1075. CFontStore();
  1076. void ConstructL();
  1077. public:
  1078. __declspec(dllexport) static CFontStore* NewL(RHeap* aHeap);
  1079. __declspec(dllexport) ~CFontStore();
  1080. __declspec(dllexport) TUid AddFileL(const TDesC& aName);
  1081. __declspec(dllexport) void RemoveFile(TUid aFileUid);
  1082. __declspec(dllexport) TInt GetNearestFontInTwips(CFont *&aFont, const TFontSpec& aFontSpec);
  1083. __declspec(dllexport) TInt GetNearestFontInPixels(CFont *&aFont, const TFontSpec &aFontSpec);
  1084. __declspec(dllexport) TInt GetNearestFontToDesignHeightInTwips(CFont *&aFont, const TFontSpec& aFontSpec);
  1085. __declspec(dllexport) TInt GetNearestFontToDesignHeightInPixels(CFont *&aFont, const TFontSpec& aFontSpec);
  1086. __declspec(dllexport) TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  1087. __declspec(dllexport) TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  1088. __declspec(dllexport) TInt GetNearestFontInTwips(CFont *&aFont, const TOpenFontSpec& aFontSpec);
  1089. __declspec(dllexport) TInt GetNearestFontInPixels(CFont *&aFont, const TOpenFontSpec &aFontSpec);
  1090. __declspec(dllexport) TInt GetNearestFontToDesignHeightInTwips(CFont *&aFont, const TOpenFontSpec& aFontSpec);
  1091. __declspec(dllexport) TInt GetNearestFontToDesignHeightInPixels(CFont *&aFont, const TOpenFontSpec& aFontSpec);
  1092. __declspec(dllexport) TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TOpenFontSpec& aFontSpec, TInt aMaxHeight);
  1093. __declspec(dllexport) TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TOpenFontSpec& aFontSpec, TInt aMaxHeight);
  1094. __declspec(dllexport) TInt GetFontById(CFont *&aFont,TUid aUid,const TAlgStyle& aAlgStyle);
  1095. __declspec(dllexport) TInt NumTypefaces() const;
  1096. __declspec(dllexport) void TypefaceSupport(TTypefaceSupport &aTypefaceSupport,TInt aTypefaceIndex) const;
  1097. __declspec(dllexport) TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const;
  1098. __declspec(dllexport) TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const;
  1099. __declspec(dllexport) void InstallRasterizerL(COpenFontRasterizer* aRasterizer);
  1100. __declspec(dllexport) void DeleteSessionCache(TInt aSessionHandle);
  1101. inline TGlyphBitmapType DefaultBitmapType() const;
  1102. inline void SetDefaultBitmapType(TGlyphBitmapType aType);
  1103. TInt BitmapFontFilesCount() const;
  1104. private:
  1105. void InternalizeFontStoreFileL(CFontStoreFile* aFontStoreFile, TInt aFontVersion);
  1106. TTypeface* GetNearestTypeface(const TTypeface& aTypeface) const;
  1107. TTypefaceFontBitmap GetNearestTypefaceFontBitmap(const TFontSpec& aFontSpecInPixels, TInt aMaxHeight = 0);
  1108. CFontBitmap* GetFontBitmapById(TUid aUid);
  1109. CBitmapFont* FindFont(const TFontSpec& aFontSpecInPixels,const TAlgStyle& aAlgStyle,TUid aUid) const;
  1110. CBitmapFont* FindFont(const TOpenFontSpec& aFontSpecInPixels,const TAlgStyle& aAlgStyle) const;
  1111. CBitmapFont* NewFontL(const TFontSpec& aFontSpecInTwips,const TAlgStyle& aAlgStyle,CFontBitmap* aFontBitmap);
  1112. CBitmapFont* NewFontL(const TOpenFontSpec& aFontSpecInTwips,const TAlgStyle& aAlgStyle,COpenFont* aOpenFont);
  1113. TInt VerticalPixelsToTwips(TInt aPixelHeight) const;
  1114. TInt VerticalTwipsToPixels(TInt aTwipsHeight) const;
  1115. TInt GetNearestBitmapFontInPixels(CBitmapFont *&aFont, TFontSpec &aFontSpec, TInt aMaxHeight = 0);
  1116. TInt GetNearestOpenFontInPixels(CBitmapFont *&aFont, TOpenFontSpec &aFontSpec, const TOpenFontSpec& aIdealFontSpecInPixels, TInt aMaxHeight = 0);
  1117. TInt GetNearestFontInPixels(CFont *&aFont, const TOpenFontSpec &aFontSpec, TInt aMaxHeight);
  1118. void UpdateTypefaceSupportListL();
  1119. public:
  1120. TInt iKPixelWidthInTwips;
  1121. TInt iKPixelHeightInTwips;
  1122. private:
  1123. RFs iFs;
  1124. RHeap* iHeap;
  1125. CArrayPtrFlat<CFontStoreFile> iFontStoreFileList;
  1126. CArrayPtrFlat<TTypeface> iTypefaceList;
  1127. CArrayPtrFlat<CFontBitmap> iFontBitmapList;
  1128. CArrayFixFlat<TTypefaceFontBitmap> iTypefaceFontBitmapList;
  1129. CArrayPtrFlat<COpenFontFile> iOpenFontFileList;
  1130. CArrayFixFlat<TTypefaceSupport> iOpenFontTypefaceSupportList;
  1131. CArrayPtrFlat<COpenFontRasterizer> iOpenFontRasterizerList;
  1132. COpenFontSessionCacheList* iOpenFontSessionCacheList;
  1133. TInt iOpenFontUid;
  1134. TGlyphBitmapType iDefaultBitmapType;
  1135. };
  1136. inline TBool CBitmapFont::IsOpenFont() const
  1137. {
  1138. return iOpenFont != 0 ;
  1139. }
  1140. inline COpenFont* CBitmapFont::OpenFont() const
  1141. {
  1142. return iOpenFont;
  1143. }
  1144. inline TGlyphBitmapType CBitmapFont::GlyphBitmapType() const
  1145. #line 275
  1146. {
  1147. return iFontSpecInTwips.iFontStyle.BitmapType();
  1148. }
  1149. inline TGlyphBitmapType CFontStore::DefaultBitmapType() const
  1150. {
  1151. return iDefaultBitmapType;
  1152. }
  1153. inline void CFontStore::SetDefaultBitmapType(TGlyphBitmapType aType)
  1154. {
  1155. iDefaultBitmapType = aType;
  1156. }
  1157. #line 23 "C:\Symbian\9.1\S60_3rd\epoc32\include\w32std.h" /* stack depth 4 */
  1158. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 5 */
  1159. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fbs.h" /* stack depth 6 */
  1160. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitmap.h" /* stack depth 7 */
  1161. #line 20
  1162. const TUid KCBitwiseBitmapUid={268435520};
  1163. const TUid KCBitwiseBitmapHardwareUid={0x10009a3d};
  1164. const TUid KMultiBitmapFileImageUid={268435522};
  1165. const TInt KCompressionBookMarkThreshold=0x2000;
  1166. class CChunkPile;
  1167. class TCompressionBookMark;
  1168. enum TBitmapfileCompression
  1169. {
  1170. ENoBitmapCompression,
  1171. EByteRLECompression,
  1172. ETwelveBitRLECompression,
  1173. ESixteenBitRLECompression,
  1174. ETwentyFourBitRLECompression,
  1175. EThirtyTwoUBitRLECompression,
  1176. ERLECompressionLast
  1177. };
  1178. class TRgb24bit
  1179. {
  1180. public:
  1181. TUint8 iRed;
  1182. TUint8 iGreen;
  1183. TUint8 iBlue;
  1184. };
  1185. class SEpocBitmapHeader
  1186. {
  1187. public:
  1188. enum TColor
  1189. {
  1190. ENoColor=0,
  1191. EColor=1,
  1192. EColorAlpha=2,
  1193. EColorUndefined=8
  1194. };
  1195. public:
  1196. TInt iBitmapSize;
  1197. TInt iStructSize;
  1198. TSize iSizeInPixels;
  1199. TSize iSizeInTwips;
  1200. TInt iBitsPerPixel;
  1201. TInt iColor;
  1202. TInt iPaletteEntries;
  1203. TBitmapfileCompression iCompression;
  1204. };
  1205. class TLineScanningPosition
  1206. {
  1207. public:
  1208. TLineScanningPosition(TUint32* aSrcDataPtr): iSrcDataPtr((TUint8*)aSrcDataPtr), iCursorPos(0), iScanLineBuffer(0 ) {}
  1209. public:
  1210. TUint8* iSrcDataPtr;
  1211. TInt iCursorPos;
  1212. HBufC8* iScanLineBuffer;
  1213. };
  1214. class CShiftedFileStore;
  1215. class CBitwiseBitmap
  1216. {
  1217. friend class CFbTop;
  1218. friend class CFbClient;
  1219. friend class CFbsBitmap;
  1220. friend class CBitmapObject;
  1221. friend class CFbsBitmapAsyncStreamer;
  1222. friend class CleanupDelete<CBitwiseBitmap>;
  1223. public:
  1224. __declspec(dllexport) TUid Uid() const;
  1225. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream,const CFbsBitmap& aHandleBitmap) const;
  1226. __declspec(dllexport) void ExternalizeRectangleL(RWriteStream& aStream,const TRect& aRect,const CFbsBitmap& aHandleBitmap) const;
  1227. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1228. __declspec(dllexport) static void InternalizeHeaderL(RReadStream& aStream,SEpocBitmapHeader& aHeader);
  1229. __declspec(dllexport) TSize SizeInPixels() const;
  1230. __declspec(dllexport) TSize SizeInTwips() const;
  1231. __declspec(dllexport) TDisplayMode DisplayMode() const;
  1232. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwips) const;
  1233. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwips) const;
  1234. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixels) const;
  1235. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixels) const;
  1236. __declspec(dllexport) void GetPixel(TRgb& aColor,const TPoint& aPos,TUint32* aBase) const;
  1237. __declspec(dllexport) TInt GetScanLinePtr(TUint32*& aSlptr, TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1238. __declspec(dllexport) TInt GetScanLinePtr(TUint32*& aSlptr, TInt& aLength, TPoint& aPixel,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1239. __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1240. __declspec(dllexport) void GetScanLine(TUint32*& aSlptr, TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode) const;
  1241. __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase) const;
  1242. __declspec(dllexport) void GetVerticalScanLine(TDes8& aBuf,TInt aX,TBool aDither,const TPoint& aDitherOffset,TDisplayMode aDispMode,TUint32* aBase) const;
  1243. __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;
  1244. __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;
  1245. __declspec(dllexport) TUint32* ScanLineAddress(TUint32* aBase,TUint aY) const;
  1246. __declspec(dllexport) TBool IsMonochrome(TUint32* aBase) const;
  1247. __declspec(dllexport) void Compress(TUint8* aNewData,TUint8* aOldData);
  1248. __declspec(dllexport) TBool IsLargeBitmap() const;
  1249. __declspec(dllexport) TInt CompressData();
  1250. __declspec(dllexport) void SetCompressionBookmark(TLineScanningPosition& aLineScanningPosition, TUint32* aBase, const CFbsBitmap* aFbsBitmap);
  1251. __declspec(dllexport) TInt HardwareBitmapHandle() const;
  1252. __declspec(dllexport) TBool IsCompressedInRAM() const;
  1253. __declspec(dllexport) TBool IsCompressed() const;
  1254. private:
  1255. __declspec(dllexport) void operator delete(TAny*);
  1256. void operator delete(TAny*, TAny*) {}
  1257. __declspec(dllexport) CBitwiseBitmap(RHeap* aHeap,CChunkPile* aPile);
  1258. __declspec(dllexport) ~CBitwiseBitmap();
  1259. __declspec(dllexport) void Reset();
  1260. __declspec(dllexport) TInt Construct(const TSize& aSize,TDisplayMode aDispMode,TUid aCreatorUid);
  1261. __declspec(dllexport) void ConstructL(RFs& aFs,const TDesC& aFilename,TInt32 aId,TUint aFileOffset);
  1262. __declspec(dllexport) void ConstructL(RFile& aFile,TInt32 aId,TUint aFileOffset);
  1263. __declspec(dllexport) void ConstructL(CShiftedFileStore* aFileStore,TStreamId aStreamId);
  1264. __declspec(dllexport) TInt Resize(const TSize& aSize);
  1265. private:
  1266. void GenerateLineFromCompressedTwelveBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1267. void GenerateLineFromCompressedEightBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength,TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1268. TUint8 GetGrayPixelEx(TInt aX,TUint32* aScanLineAddress) const;
  1269. TRgb GetRgbPixelEx(TInt aX,TUint32* aScanLineAddress) const;
  1270. void GetRgbPixelExMany(TInt aX,TUint32* aScanlinePtr,TUint32* aDest,TInt aLength) const;
  1271.     void GetRgbPixelExMany16M(TInt aX,TUint32* aScanlinePtr,TUint8* aDest,TInt aLength) const;
  1272. void GetScanLineGray2(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TUint32* aScanlinePtr) const;
  1273. void GetScanLineGray4(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TBool aDither,const TPoint& aDitherOffset,TUint32* aScanlinePtr) const;
  1274. void GetScanLineGray16(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1275. void GetScanLineGray256(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1276. void GetScanLineColor16(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1277. void GetScanLineColor256(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1278. void GetScanLineColor4K(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1279. void GetScanLineColor64K(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1280. void GetScanLineColor16M(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1281. void GetScanLineColor16MU(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1282. void GetScanLineColorRgb(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1283. void GetScanLineExBits(TDes8& aBuf,TInt aX,TInt aLength,TUint32* aScanlinePtr) const;
  1284. void GetScanLineExBytes(TDes8& aBuf,TInt aX,TInt aLength,TUint32* aScanlinePtr) const;
  1285. void DoExternalizeDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  1286. void DoExternalizeByteDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  1287. void DoExternalizeTwelveBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  1288. void DoExternalizeSixteenBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  1289. void DoExternalizeTwentyFourBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  1290. void DoExternalizeThirtyTwoUBitDataCompressedL(RWriteStream& aStream,TUint8* aData,TInt aSizeInBytes) const;
  1291. TInt SizeOfDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  1292. TInt SizeOfByteDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  1293. TInt SizeOfTwelveBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  1294. TInt SizeOfSixteenBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  1295. TInt SizeOfTwentyFourBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  1296. TInt SizeOfThirtyTwoUBitDataCompressed(TUint8* aData,TInt aSizeInBytes) const;
  1297. TBool TrueColorPointerCompare(TUint8* aColorPointer,TUint8 aComponent1,TUint8 aComponent2,TUint8 aComponent3) const;
  1298. void DoInternalizeL(RReadStream& aStream,TInt aSrceSize,TUint32* aBase);
  1299. void DoInternalizeCompressedDataL(RReadStream& aStream,TInt aSrceSize,TUint32* aBase,TBitmapfileCompression aCompression);
  1300. void DoDecompressByteData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  1301. void DoDecompressByteDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  1302. void DoDecompressTwelveBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  1303. void DoDecompressTwelveBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  1304. void DoDecompressSixteenBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  1305. void DoDecompressSixteenBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  1306. void DoDecompressTwentyFourBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  1307. void DoDecompressTwentyFourBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  1308. void DoDecompressThirtyTwoUBitData(TUint8* aDestBuffer,TInt aDestSize,TUint8* aSrceBuffer,TInt aSrceSize);
  1309. void DoDecompressThirtyTwoUBitDataAltL(RReadStream& aStream,TInt aSrceSizeInBytes,TUint32* aBase);
  1310. 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;
  1311. 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;
  1312. TUint32 HashTo1bpp(TUint32 aGray256,TBool aOddX,TBool aOddY) const;
  1313. TUint32 HashTo2bpp(TUint32 aGray256,TInt aDitherIndex) const;
  1314. TBool IsWordMonochrome(TUint32 aWord) const;
  1315. TUint32* DataAddress() const;
  1316. static void WhiteFill(TUint8* aData,TInt aDataSize,TDisplayMode aDispMode);
  1317. static TInt ByteWidth(TInt aPixelWidth,TDisplayMode aDispMode);
  1318. static TInt Bpp(TDisplayMode aDispMode);
  1319. static TInt IsColor(TDisplayMode aDispMode);
  1320. static TDisplayMode DisplayMode(TInt aBpp,TInt aColor);
  1321. static TBitmapfileCompression CompressionType(TInt aBpp, TInt aColor);
  1322. TInt DoGetScanLinePtr(TUint32*& aSlptr, TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1323. void GenerateLineFromCompressedSixteenBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1324. TDisplayMode InitialDisplayMode() const;
  1325. TInt SetDisplayMode(TDisplayMode aDisplayMode, TUint32* aDataAddress);
  1326. TInt DisplayModeArgCheck(TDisplayMode aDisplayMode, TUint32* aDataAddress) const;
  1327. void ChangeDisplayMode( TDisplayMode aNewDisplayMode,
  1328. TInt aScanLineWidthNew,
  1329. TUint8* aDataAddrNew,
  1330. TUint32* aDataAddress,
  1331. TInt aYStart,
  1332. TInt aYInc,
  1333. TInt aYEnd);
  1334. void UpdateBitmapProperties(TDisplayMode aNewDisplayMode);
  1335. TInt SwapWidthAndHeight(TUint32* aDataAddress);
  1336. void CopyOldData(TUint8* aDest, const TUint8* aSrc, TInt aNewByteWidth, const TSize aNewSize);
  1337. void DecompressOldData(TUint8* aDest, TInt aNewByteWidth, const TSize aNewSize, HBufC8* aScanLineBuf);
  1338. TInt ResizeConditionsCheck(const TSize& aSize, TInt aNewByteWidth, TInt& aNewBitmapSize) const;
  1339. TInt Alloc(TInt aNewBitmapSize, const TSize& aNewSize, TUint8*& aNewBuf, TInt& aNewDataOffset);
  1340. void MoveData(TUint8* aDest, TUint8* aSrc, TInt aNewByteWidth, const TSize& aNewSize, HBufC8* aScanLineBuf);
  1341. void ReinitializeHeader(const TSize& aNewSize, TInt aNewBitmapSize);
  1342. void Free(TUint8* aSrc, TBool aLargeBmp, HBufC8* aScanLineBuf);
  1343. void GenerateLineFromCompressed24BitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1344. void GenerateLineFromCompressed32UBitData(TUint8* aDestBuffer, const TPoint& aPixel,TInt aLength, TUint32* aBase, TLineScanningPosition& aLineScanningPosition) const;
  1345. void AdjustXCoord(TInt& aX) const;
  1346. void GetLineScanPos(TLineScanningPosition& aLineScanPos,
  1347. const TCompressionBookMark*& aComprBookMark,
  1348. const TUint8* aBase) const;
  1349. void UpdateBookMark(const TLineScanningPosition& aLineScanPos,
  1350. TCompressionBookMark* aComprBookMark,
  1351. const TUint8* aBase) const;
  1352. void GetScanLineColor16MA(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TUint32* aScanlinePtr) const;
  1353. private:
  1354. TUid iUid;
  1355. struct TSettings
  1356. {
  1357. TSettings(TDisplayMode aDisplayMode);
  1358. void SetDisplayModes(TDisplayMode aDisplayMode);
  1359. void SetCurrentDisplayMode(TDisplayMode aDisplayMode);
  1360. TDisplayMode CurrentDisplayMode() const;
  1361. TDisplayMode InitialDisplayMode() const;
  1362. void SetLargeBitmap(TBool aLargeBitmap);
  1363. TBool IsLargeBitmap() const;
  1364. TUint32 iData;
  1365. } iSettings;
  1366. RHeap* iHeap;
  1367. CChunkPile* iPile;
  1368. TInt iByteWidth;
  1369. SEpocBitmapHeader iHeader;
  1370. RChunk iLargeChunk;
  1371. TInt iDataOffset;
  1372. TBool iIsCompressedInRAM;
  1373. };
  1374. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\fbs.h" /* stack depth 6 */
  1375. const TUid KCFbsFontUid = { 268435518 };
  1376. const TUid KMultiBitmapRomImageUid = { 268435521 };
  1377. const TUint32 KFontBitmapServerUidValue = 0x10003a16;
  1378. const TUid KFontBitmapServerUid = { KFontBitmapServerUidValue };
  1379. __declspec(dllexport) TInt FbsStartup();
  1380. __declspec(dllexport) void DummyReserved1();
  1381. class SCharWidth
  1382. {
  1383. public:
  1384. TInt iLeftAdjust;
  1385. TInt iRightAdjust;
  1386. TInt iMove;
  1387. TInt iWidth;
  1388. };
  1389. class CFbsRalCache;
  1390. class RFbsSession : protected RSessionBase
  1391. {
  1392. friend class RClean;
  1393. friend class TestFbs;
  1394. friend class CTBitmap;
  1395. friend class CTClean;
  1396. friend class CTFbs;
  1397. friend class CFbsBitmap;
  1398. friend class CFbsBitmapAsyncStreamer;
  1399. public:
  1400. __declspec(dllexport) RFbsSession();
  1401. __declspec(dllexport) static TInt Connect();
  1402. __declspec(dllexport) static TInt Connect(RFs& aFileServer);
  1403. __declspec(dllexport) static void Disconnect();
  1404. __declspec(dllexport) static RFbsSession* GetSession();
  1405. __declspec(dllexport) void CallBack();
  1406. __declspec(dllexport) void SetCallBack(TCallBack aCallBack);
  1407. __declspec(dllexport) void ResetCallBack();
  1408. __declspec(dllexport) TInt ResourceCount();
  1409. __declspec(dllexport) TInt SendCommand(TInt aMessage,TInt aInt0=0,TInt aInt1=0,TInt aInt2=0,TInt aInt3=0) const;
  1410. TInt SendCommand(TInt aMessage, const TIpcArgs& aArgs) const;
  1411. __declspec(dllexport) TVersion Version();
  1412. __declspec(dllexport) TUint8* HeapBase() const;
  1413. __declspec(dllexport) TInt GetHeapSizes(TInt& aDefaultHeap, TInt& aSmallBmpHeap, TInt& aBigBmpChunk);
  1414. TInt SessionHandle() const { return Handle(); }
  1415. TInt AllocScanLineBuffer(TInt aSize);
  1416. HBufC8* GetScanLineBuffer();
  1417. void SetCallBackPtr(TInt* aBitmapHandle)const;
  1418. HBufC8* GetDecompressionBuffer(TInt aSize);
  1419. private:
  1420. TBool LookupBitmapInROM(const TDesC& aFilename, TAny*& aAddr);
  1421. RFs& FileServer() { return *((RFs*)iSpare); }
  1422. static TInt DoAlloc(RFbsSession*& aNewSession);
  1423. TInt DoConnect(RFs& aFileServer);
  1424. private:
  1425. TInt iConnections;
  1426. mutable TCallBack iCallBack;
  1427. RChunk iSharedChunk;
  1428. RMutex iAddressMutex;
  1429. RChunk iLargeBitmapChunk;
  1430. RFs iFileServer;
  1431. CFbsRalCache* iRomFileAddrCache;
  1432. HBufC8* iDecompressionBuffer;
  1433. HBufC8* iScanLineBuffer;
  1434. TUint32* iSpare;
  1435. };
  1436. #line 133
  1437. class CFbsFont: public CFont
  1438. {
  1439. friend class CFbsTypefaceStore;
  1440. private:
  1441. virtual TUid DoTypeUid() const { return KCFbsFontUid; }
  1442. __declspec(dllexport) virtual TInt DoHeightInPixels() const;
  1443. __declspec(dllexport) virtual TInt DoAscentInPixels() const;
  1444. __declspec(dllexport) virtual TInt DoCharWidthInPixels(TChar aChar) const;
  1445. __declspec(dllexport) virtual TInt DoTextWidthInPixels(const TDesC& aText) const;
  1446. __declspec(dllexport) virtual TInt DoBaselineOffsetInPixels() const;
  1447. __declspec(dllexport) virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels) const;
  1448. __declspec(dllexport) virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const;
  1449. __declspec(dllexport) virtual TInt DoMaxCharWidthInPixels() const;
  1450. __declspec(dllexport) virtual TInt DoMaxNormalCharWidthInPixels() const;
  1451. __declspec(dllexport) virtual TFontSpec DoFontSpecInTwips() const;
  1452. __declspec(dllexport) virtual CFont::TCharacterDataAvailability DoGetCharacterData(TUint aCode, TOpenFontCharMetrics& aMetrics,
  1453. const TUint8*& aBitmap, TSize& aBitmapSize) const;
  1454. __declspec(dllexport) virtual TInt DoExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  1455. public:
  1456. __declspec(dllexport) TBool GetFontMetrics(TOpenFontMetrics& aMetrics) const;
  1457. __declspec(dllexport) TInt TextWidthInPixels(const TDesC& aText) const;
  1458. __declspec(dllexport) void TextWidthInPixels(const TDesC& aText,SCharWidth& aCharWidth) const;
  1459. __declspec(dllexport) TInt Handle() const;
  1460. __declspec(dllexport) TCharacterMetrics CharacterMetrics(TInt aCode,const TUint8*& aBytes) const;
  1461. __declspec(dllexport) TInt RawTextWidthInPixels(const TDesC& aText) const;
  1462. __declspec(dllexport) TBool GetFaceAttrib(TOpenFontFaceAttrib& aAttrib) const;
  1463. __declspec(dllexport) TBool IsOpenFont() const;
  1464. __declspec(dllexport) TBool HasCharacter(TInt aCode) const;
  1465. protected:
  1466. __declspec(dllexport) CFbsFont();
  1467. __declspec(dllexport) ~CFbsFont();
  1468. __declspec(dllexport) CFbsFont(const CFbsFont& aFont);
  1469. __declspec(dllexport) CBitmapFont* Address() const;
  1470. __declspec(dllexport) TInt Duplicate(TInt aHandle);
  1471. __declspec(dllexport) void Reset();
  1472. protected:
  1473. RFbsSession* iFbs;
  1474. CBitmapFont* iAddressPointer;
  1475. TInt iHandle;
  1476. TInt iServerHandle;
  1477. };
  1478. class CDirectFileStore;
  1479. #line 201
  1480. class CFbsBitmap : public CBase
  1481. {
  1482. friend class TBitmapUtil;
  1483. friend class CBitwiseBitmap;
  1484. friend class CFbsBitmapAsyncStreamer;
  1485. public:
  1486. __declspec(dllexport) CFbsBitmap();
  1487. __declspec(dllexport) ~CFbsBitmap();
  1488. __declspec(dllexport) void Reset();
  1489. __declspec(dllexport) static TInt ScanLineLength(TInt aLength,TDisplayMode aDispMode);
  1490. __declspec(dllexport) TDisplayMode DisplayMode() const;
  1491. __declspec(dllexport) TDisplayMode InitialDisplayMode() const;
  1492. __declspec(dllexport) TInt SetDisplayMode(TDisplayMode aDisplayMode);
  1493. __declspec(dllexport) TInt Create(const TSize& aSizeInPixels,TDisplayMode aDispMode);
  1494. __declspec(dllexport) TInt Duplicate(TInt aHandle);
  1495. __declspec(dllexport) TBool IsRomBitmap() const;
  1496. __declspec(dllexport) void SetRomBitmapL(CBitwiseBitmap* aRomBitmapPointer,TInt& aBitmapSizeInBytes);
  1497. __declspec(dllexport) TInt Load(const TDesC& aFileName,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  1498. __declspec(dllexport) TInt Load(const TDesC& aFileName,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  1499. __declspec(dllexport) TInt LoadAndCompress(const TDesC& aFileName,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  1500. __declspec(dllexport) TInt LoadAndCompress(const TDesC& aFileName,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  1501. __declspec(dllexport) TInt Load(RFile& aFile,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  1502. __declspec(dllexport) TInt Load(RFile& aFile,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  1503. __declspec(dllexport) TInt LoadAndCompress(RFile& aFile,TInt32 aId=0,TBool aShareIfLoaded=ETrue);
  1504. __declspec(dllexport) TInt LoadAndCompress(RFile& aFile,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  1505. __declspec(dllexport) TInt Save(const TDesC& aFilename);
  1506. __declspec(dllexport) TInt Save(RFile& aFile);
  1507. __declspec(dllexport) static void StoreL(const TDesC& aFilename,TInt aNumSources,const TDesC* aSources[],TInt32 aSourceIds[]);
  1508. __declspec(dllexport) static void StoreL(RFile& aFile,TInt aNumSources,const TDesC* aSources[],TInt32 aSourceIds[]);
  1509.     __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TDisplayMode aDispMode) const;
  1510.     __declspec(dllexport) void SetScanLine(TDes8& aBuf,TInt aY) const;
  1511. __declspec(dllexport) void GetVerticalScanLine(TDes8& aBuf,TInt aX,TDisplayMode aDispMode) const;
  1512. __declspec(dllexport) void GetVerticalScanLine(TDes8& aBuf,TInt aX,const TPoint& aDitherOffset,TDisplayMode aDispMode) const;
  1513. __declspec(dllexport) TInt Handle() const;
  1514. __declspec(dllexport) SEpocBitmapHeader Header() const;
  1515. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixels) const;
  1516. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwips) const;
  1517. __declspec(dllexport) void GetPixel(TRgb& aColor,const TPoint& aPixel) const;
  1518. __declspec(dllexport) TInt Resize(const TSize& aSizeInPixels);
  1519. __declspec(dllexport) TSize SizeInPixels() const;
  1520. __declspec(dllexport) TSize SizeInTwips() const;
  1521. __declspec(dllexport) void SetSizeInTwips(const MGraphicsDeviceMap* aMap);
  1522. __declspec(dllexport) void SetSizeInTwips(const TSize& aSizeInTwips);
  1523. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1524. __declspec(dllexport) void ExternalizeRectangleL(RWriteStream& aStream,const TRect& aRect) const;
  1525. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1526. __declspec(dllexport) TInt Compress();
  1527. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixels) const;
  1528. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwips) const;
  1529. __declspec(dllexport) static TBool IsFileInRom(const TDesC& aFilename,TUint32*& aWord);
  1530. __declspec(dllexport) static TBool IsFileInRom(RFile& aFile,TUint32*& aWord);
  1531. __declspec(dllexport) TBool IsMonochrome() const;
  1532. __declspec(dllexport) TBool IsLargeBitmap() const;
  1533. __declspec(dllexport) void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const;
  1534. __declspec(dllexport) void SetPalette(CPalette* aPalette);
  1535. __declspec(dllexport) TInt GetPalette(CPalette*& aPalette) const;
  1536. __declspec(dllexport) TUint32* DataAddress() const;
  1537. __declspec(dllexport) TInt CreateHardwareBitmap(const TSize& aSizeInPixels,TDisplayMode aDispMode,TUid aCreatorUid);
  1538. __declspec(dllexport) TInt HardwareBitmapHandle() const;
  1539. __declspec(dllexport) void LockHeap(TBool aAlways=EFalse) const;
  1540. __declspec(dllexport) void UnlockHeap(TBool aAlways=EFalse) const;
  1541. __declspec(dllexport) void LockHeapLC(TBool aAlways=EFalse) const;
  1542. __declspec(dllexport) static void UnlockHeap(TAny* aFbsBitmap);
  1543. __declspec(dllexport) TBool IsCompressedInRAM() const;
  1544. __declspec(dllexport) TInt SwapWidthAndHeight();
  1545. __declspec(dllexport) static HBufC8* GetDecompressionBuffer(TInt aSize);
  1546. protected:
  1547.     __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,const TPoint& aDitherOffset,TDisplayMode aDispMode) const;
  1548. CBitwiseBitmap* Address() const;
  1549. void DoSaveL(RFile& aFile);
  1550. TInt DoCreate(const TSize& aSizeInPixels,TDisplayMode aDispMode,TUid aCreatorUid);
  1551. private:
  1552. TInt DoLoad(RFile& aFile,TUint32* aRomPointer,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  1553. TInt DoLoadAndCompress(RFile& aFile,TUint32* aRomPointer,TInt32 aId,TBool aShareIfLoaded,TUint aFileOffset);
  1554. TBool LoadShiftedRomBmpL(const TDesC& aFileName,TInt32 aId,TUint aFileOffset);
  1555. static void DoStoreL(CDirectFileStore* aFileStore,CFbsBitmap* aBitmap,TInt aNumSources,const TDesC* aSources[],TInt32 aSourceIds[]);
  1556. protected:
  1557. RFbsSession* iFbs;
  1558. CBitwiseBitmap* iAddressPointer;
  1559. CBitwiseBitmap* iRomPointer;
  1560. TInt iHandle;
  1561. TInt iServerHandle;
  1562. };
  1563. class CDirectFileStore;
  1564. class CFbsBitmapAsyncStreamer : public CBase
  1565. {
  1566. public:
  1567. enum TMode {ELoad, ESave};
  1568. public:
  1569. __declspec(dllexport) ~CFbsBitmapAsyncStreamer();
  1570. __declspec(dllexport) static CFbsBitmapAsyncStreamer* NewL(TMode aMode);
  1571. __declspec(dllexport) TInt Load(const TDesC& aFilename,TInt32 aId,TInt& aScanLines);
  1572. __declspec(dllexport) TBool LoadScanLinesL(TInt aNumberOfScanLines,CFbsBitmap*& aBitmap);
  1573. __declspec(dllexport) TInt Save(const TDesC& aFilename,CFbsBitmap* aBitmap,TInt32& aId,TInt& aScanLines);
  1574. __declspec(dllexport) TBool SaveScanLinesL(TInt aNumberOfScanLines);
  1575. private:
  1576. CFbsBitmapAsyncStreamer(TMode aMode);
  1577. void ConstructL();
  1578. void DoLoadL(const TDesC& aFilename,TInt32 aId);
  1579. void DoSaveL(RFile& aFile);
  1580. private:
  1581. RFbsSession* iFbs;
  1582. RStoreReadStream iReadStream;
  1583. RStoreWriteStream iWriteStream;
  1584. TStreamId iId;
  1585. CDirectFileStore* iStore;
  1586. TInt iCurrentScanLine;
  1587. TUint32* iScanLineBase;
  1588. CFbsBitmap* iBitmap;
  1589. SEpocBitmapHeader iHeader;
  1590. TDisplayMode iDispMode;
  1591. TMode iMode;
  1592. };
  1593. #line 348
  1594. class TBitmapUtil
  1595. {
  1596. public:
  1597. __declspec(dllexport) void Begin(const TPoint& aPosition);
  1598. __declspec(dllexport) void Begin(const TPoint& aPosition,const TBitmapUtil& aUtil);
  1599. __declspec(dllexport) void End();
  1600. __declspec(dllexport) TBitmapUtil(CFbsBitmap* aBitmap);
  1601. __declspec(dllexport) TUint32 GetPixel() const;
  1602. __declspec(dllexport) void SetPixel(TUint32 aValue);
  1603. __declspec(dllexport) void SetPixel(const TBitmapUtil& aSource);
  1604. __declspec(dllexport) void SetPos(const TPoint& aPosition);
  1605. __declspec(dllexport) void DecXPos();
  1606. __declspec(dllexport) void DecYPos();
  1607. __declspec(dllexport) void IncXPos();
  1608. __declspec(dllexport) void IncYPos();
  1609. private:
  1610. void DoBegin(const TPoint& aPosition,const TBitmapUtil* aUtil);
  1611. private:
  1612. CFbsBitmap* iFbsBitmap;
  1613. TUint32* iWordPos;
  1614. TUint32* iMinWordPos;
  1615. TUint32* iMaxWordPos;
  1616. TInt iBpp;
  1617. TInt iPixelShift;
  1618. TInt iBitShift;
  1619. TUint32 iMask;
  1620. TInt iScanlineWordLength;
  1621. TBool iHeapLocked;
  1622. };
  1623. class TFontInfo;
  1624. class CFbsTypefaceStore : public CTypefaceStore
  1625. {
  1626. public:
  1627. __declspec(dllexport) static CFbsTypefaceStore* NewL(CGraphicsDevice* aDevice);
  1628. __declspec(dllexport) ~CFbsTypefaceStore();
  1629. __declspec(dllexport) TInt AddFile(const TDesC& aName,TInt& aId);
  1630. __declspec(dllexport) TInt InstallFile(const TDesC& aName,TInt& aId);
  1631. __declspec(dllexport) void RemoveFile(TInt aId=0);
  1632. __declspec(dllexport) virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  1633. __declspec(dllexport) TInt GetNearestFontInPixels(CFont*& aFont, const TFontSpec& aFontSpec);
  1634. __declspec(dllexport) virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  1635. __declspec(dllexport) TInt GetNearestFontToDesignHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec);
  1636. __declspec(dllexport) virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  1637. __declspec(dllexport) TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  1638. __declspec(dllexport) TInt GetFontById(CFont *&aFont,TUid aUid,const TAlgStyle& aAlgStyle);
  1639. __declspec(dllexport) virtual TInt NumTypefaces() const;
  1640. __declspec(dllexport) virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const;
  1641. __declspec(dllexport) virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const;
  1642. __declspec(dllexport) TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const;
  1643. __declspec(dllexport) TGlyphBitmapType DefaultBitmapType() const;
  1644. __declspec(dllexport) void SetDefaultBitmapType(TGlyphBitmapType aType) const;
  1645. __declspec(dllexport) void SetFontNameAliasL(const TDesC& aFontAlias,const TDesC& aFontName) const;
  1646. __declspec(dllexport) static void RemoveFontFileLocksL();
  1647. __declspec(dllexport) static void RemoveFontFileLocksL(const TDesC& aDrive, TBool aAllFonts);
  1648. __declspec(dllexport) static void RemoveFontFileLocksL(const TDesC& aFileName);
  1649. private:
  1650. CFbsTypefaceStore(CGraphicsDevice* aDevice);
  1651. TInt CreateFont(CFont*& aFont,const TFontInfo& aFontInfo);
  1652. TInt FontHeight(TInt aTypefaceIndex,TInt aHeightIndex,TInt aMessage) const;
  1653. void SetSize() const;
  1654. TInt GetNearestFontToDesignHeightInTwipsL(CFont*& aFont,const TFontSpec& aFontSpec);
  1655. private:
  1656. RFbsSession* iFbs;
  1657. CGraphicsDevice* iDevice;
  1658. CFontCache* iTwipsCache;
  1659. };
  1660. class CDitherColor256;
  1661. class CFbsColor256BitmapUtil : public CBase
  1662. {
  1663. public:
  1664. enum TDither
  1665. {
  1666. ENoDither,
  1667. EFloydSteinberg
  1668. };
  1669. public:
  1670. __declspec(dllexport) static CFbsColor256BitmapUtil* NewL(const CPalette* aPalette);
  1671. __declspec(dllexport) TInt CopyBitmap(CFbsBitmap* aColor256Destination,CFbsBitmap* aSource,TDither aDither=ENoDither);
  1672. ~CFbsColor256BitmapUtil();
  1673. private:
  1674. CFbsColor256BitmapUtil();
  1675. private:
  1676. TColor256Util* iColor256Util;
  1677. CDitherColor256* iDither;
  1678. };
  1679. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 5 */
  1680. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitbase.h" /* stack depth 6 */
  1681. #line 14
  1682. class TSpriteBase
  1683. {
  1684. public:
  1685. virtual void Hide(const TRect& aRect,const TRegion* aRegion)=0;
  1686. virtual void Reveal(const TRect& aRect,const TRegion* aRegion)=0;
  1687. };
  1688. #line 21 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 5 */
  1689. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitstd.h" /* stack depth 6 */
  1690. #line 18
  1691. class CFbsBitGcFont : public CFbsFont
  1692. {
  1693. public:
  1694. __declspec(dllexport) CFbsBitGcFont();
  1695. __declspec(dllexport) virtual ~CFbsBitGcFont();
  1696. __declspec(dllexport) CBitmapFont* Address() const;
  1697. __declspec(dllexport) TInt Duplicate(TInt aHandle);
  1698. __declspec(dllexport) void Reset();
  1699. __declspec(dllexport) void operator=(const CFbsBitGcFont& aFont);
  1700. protected:
  1701. TBool iCopy;
  1702. };
  1703. class CFbsBitGcBitmap : public CFbsBitmap
  1704. {
  1705. public:
  1706. __declspec(dllexport) CBitwiseBitmap* Address() const;
  1707. __declspec(dllexport) void LockHeap() const;
  1708. __declspec(dllexport) void UnlockHeap() const;
  1709. };
  1710. class TEllipse
  1711. {
  1712. public:
  1713. enum TEllipseStatus
  1714. {
  1715. EInitialised,
  1716. EFirstSector,
  1717. ESecondSector,
  1718. EComplete,
  1719. ELine
  1720. };
  1721. public:
  1722. __declspec(dllexport) void Construct(const TRect& aRect);
  1723. __declspec(dllexport) TBool SingleStep(TPoint& aTopLeft,TPoint& aTopRight,TPoint& aBottomLeft,TPoint& aBottomRight);
  1724. __declspec(dllexport) TBool NextStep(TPoint& aTopLeft,TPoint& aTopRight,TPoint& aBottomLeft,TPoint& aBottomRight);
  1725. __declspec(dllexport) TPoint Intersection(const TRect& aRect,const TPoint& aPoint);
  1726. protected:
  1727. __declspec(dllexport) TBool Output(TPoint& aTopLeft,TPoint& aTopRight,TPoint& aBottomLeft,TPoint& aBottomRight);
  1728. protected:
  1729. TEllipseStatus iStatus;
  1730. TInt iA;
  1731. TInt iB;
  1732. TInt64 iASquared;
  1733. TInt64 iBSquared;
  1734. TInt64 iASquBSqu;
  1735. TInt iX;
  1736. TInt iY;
  1737. TInt iXAdj;
  1738. TInt iYAdj;
  1739. TPoint iOffset;
  1740. TInt64 iD1;
  1741. TInt64 iD2;
  1742. };
  1743. class CPolygonFiller : public CBase
  1744. {
  1745. public:
  1746. enum TUsage
  1747. {
  1748. EGetAllPixelRunsSequentially,
  1749. EGetPixelRunsSequentiallyForSpecifiedScanLines
  1750. };
  1751. public:
  1752. __declspec(dllexport) CPolygonFiller();
  1753. __declspec(dllexport) ~CPolygonFiller();
  1754. __declspec(dllexport) void Construct(const CArrayFix<TPoint> * aPointArray,CGraphicsContext::TFillRule aFillRule,TUsage aUsage=EGetAllPixelRunsSequentially);
  1755. __declspec(dllexport) void Construct(const TPoint* aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule, TUsage aUsage=EGetAllPixelRunsSequentially);
  1756. __declspec(dllexport) void Reset();
  1757. __declspec(dllexport) void GetNextPixelRun(TBool& aExists, TInt& aScanLine, TInt& aStart, TInt& aEnd);
  1758. __declspec(dllexport) void GetNextPixelRunOnSpecifiedScanLine(TBool& aExists, TInt aScanLine, TInt& aStart, TInt& aEnd);
  1759. private:
  1760. struct SFastEdge
  1761. {
  1762. TInt upperVertex;
  1763. TInt lowerVertex;
  1764. TInt firstVertex;
  1765. };
  1766. struct SFastScanLineIntersection;
  1767. struct SFastActiveEdge
  1768. {
  1769. SFastEdge* edgePtr;
  1770. TLinearDDA lineGenerator;
  1771. SFastScanLineIntersection* scanLineIntersectionPtr;
  1772. };
  1773. struct SFastScanLineIntersection
  1774. {
  1775. TInt firstPixel;
  1776. TInt lastPixel;
  1777. SFastActiveEdge* activeEdgePtr;
  1778. };
  1779. private:
  1780. struct SSlowScanLineIntersection
  1781. {
  1782. TInt firstPixel;
  1783. TInt lastPixel;
  1784. TInt firstVertexOfEdge;
  1785. };
  1786. private:
  1787. struct SFastData
  1788. {
  1789. TPoint* vertexList;
  1790. SFastEdge* edgeList;
  1791. SFastActiveEdge* activeEdgeList;
  1792. SFastScanLineIntersection* scanLineIntersectionList;
  1793. TInt numActiveEdges;
  1794. TInt numScanLineIntersections;
  1795. TInt nextEdgeToActivate;
  1796. };
  1797. struct SSlowData
  1798. {
  1799. enum {EStoreSize=8};
  1800. TLinearDDA lineGenerator;
  1801. SSlowScanLineIntersection scanLineIntersectionList[EStoreSize];
  1802. TInt numIntersectionsWithSameFirstPixelPreviouslyMet;
  1803. TInt numIntersectionsWithSameFirstPixelMetThisTime;
  1804. TInt numScanLineIntersections;
  1805. TBool scanLineComplete;
  1806. TInt firstPixelOfLastIntersectionInPrevBuffer;
  1807. };
  1808. private:
  1809. void Construct(CGraphicsContext::TFillRule aFillRule,TUsage aUsage);
  1810. void FastHandleVertexIntersection(TInt& aCurrentActiveEdge, TBool aIsLowerVertex);
  1811. void SetFastIntersection(SFastActiveEdge& aActiveEdge, SFastScanLineIntersection& aScanLineIntersection);
  1812. void SlowHandleVertexIntersection(SSlowScanLineIntersection& aScanLineIntersection, TInt& aVertexStartingCurrentEdge,TBool aIsLowerVertex);
  1813. void JumpToCurrentScanLine(TLinearDDA& aLineGenerator, const TPoint& aUpper, const TPoint& aLower,TPoint& aStartPos, TPoint& aEndPos) const;
  1814. const TPoint& Point(TInt aIndex);
  1815. private:
  1816. const CArrayFix<TPoint> * iPointArray;
  1817. const TPoint* iPointList;
  1818. CGraphicsContext::TFillRule iFillRule;
  1819. TBool iUseFastAlgorithm;
  1820. TInt iNumVertexes;
  1821. TBool iToggler;
  1822. TInt iNestingLevel;
  1823. TInt iScanLineIntersection;
  1824. TInt iRightMostPixelOnScanLine;
  1825. TInt iFirstVertex;
  1826. TBool iPolygonIsAllHorizontal;
  1827. TInt iFirstScanLine;
  1828. TInt iLastScanLine;
  1829. TInt iCurrentScanLine;
  1830. SFastData iFastData;
  1831. SSlowData iSlowData;
  1832. private:
  1833. friend class TCompareEdgesUpperY;
  1834. friend class TCompareActiveEdgesFirstVertex;
  1835. friend class TCompareScanLineIntersectionsFirstPixel;
  1836. friend class TSwapEdges;
  1837. friend class TSwapActiveEdges;
  1838. friend class TSwapScanLineIntersections;
  1839. };
  1840. class CFbsDevice;
  1841. class TOpenFontCharMetrics;
  1842. class CGraphicsAccelerator;
  1843. class CWsBitmap;
  1844. #line 200
  1845. class CFbsBitGc : public CBitmapContext
  1846. {
  1847. public:
  1848. enum TGraphicsOrientation
  1849. {
  1850. EGraphicsOrientationNormal,
  1851. EGraphicsOrientationRotated90,
  1852. EGraphicsOrientationRotated180,
  1853. EGraphicsOrientationRotated270
  1854. };
  1855. public:
  1856. __declspec(dllexport) static CFbsBitGc* NewL();
  1857. __declspec(dllexport) virtual ~CFbsBitGc();
  1858. __declspec(dllexport) void Activate(CFbsDevice* aDevice);
  1859. __declspec(dllexport) void ActivateNoJustAutoUpdate(CFbsDevice* aDevice);
  1860. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitGc& aGc);
  1861. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitGc& aGc,const TRect& aSourceRect);
  1862. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap);
  1863. __declspec(dllexport) void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect);
  1864. __declspec(dllexport) void BitBltMasked(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
  1865. __declspec(dllexport) void CancelClipping();
  1866. __declspec(dllexport) void CancelClippingRect();
  1867. __declspec(dllexport) void CancelClippingRegion();
  1868. __declspec(dllexport) void Clear();
  1869. __declspec(dllexport) void Clear(const TRect& aRect);
  1870. __declspec(dllexport) void CopyRect(const TPoint& aOffset,const TRect& aRect);
  1871. __declspec(dllexport) void CopySettings(const CFbsBitGc& aGc);
  1872. __declspec(dllexport) CGraphicsDevice* Device() const;
  1873. __declspec(dllexport) void DiscardBrushPattern();
  1874. __declspec(dllexport) void DiscardFont();
  1875. __declspec(dllexport) void DrawArc(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd);
  1876. __declspec(dllexport) void DrawPie(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd);
  1877. __declspec(dllexport) void DrawBitmap(const TPoint& aTopLeft,const CFbsBitmap* aSource);
  1878. __declspec(dllexport) void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource);
  1879. __declspec(dllexport) void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource,const TRect& aSourceRect);
  1880. __declspec(dllexport) void DrawBitmapMasked(const TRect& aDestRect,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
  1881. __declspec(dllexport) void DrawBitmapMasked(const TRect& aDestRect,const CWsBitmap* aBitmap,const TRect& aSourceRect,const CWsBitmap* aMaskBitmap,TBool aInvertMask);
  1882. __declspec(dllexport) void DrawRoundRect(const TRect& aRect,const TSize& aEllipse);
  1883. __declspec(dllexport) void DrawPolyLine(const CArrayFix<TPoint> * aPointList);
  1884. __declspec(dllexport) void DrawPolyLineNoEndPoint(const CArrayFix<TPoint> * aPointList);
  1885. __declspec(dllexport) void DrawPolyLine(const TPoint* aPointList,TInt aNumPoints);
  1886. __declspec(dllexport) void DrawPolyLineNoEndPoint(const TPoint* aPointList,TInt aNumPoints);
  1887. __declspec(dllexport) TInt DrawPolygon(const CArrayFix<TPoint> * aPointList,CGraphicsContext::TFillRule aFillRule=CGraphicsContext::EAlternate);
  1888. __declspec(dllexport) TInt DrawPolygon(const TPoint* aPointList,TInt aNumPoints,CGraphicsContext::TFillRule aFillRule=CGraphicsContext::EAlternate);
  1889. __declspec(dllexport) void DrawEllipse(const TRect& aRect);
  1890. __declspec(dllexport) void DrawLine(const TPoint& aStart,const TPoint& aEnd);
  1891. __declspec(dllexport) void DrawLineTo(const TPoint& aPoint);
  1892. __declspec(dllexport) void DrawLineBy(const TPoint& aVector);
  1893. __declspec(dllexport) void DrawRect(const TRect& aRect);
  1894. __declspec(dllexport) void DrawText(const TDesC& aText);
  1895. __declspec(dllexport) void DrawText(const TDesC& aText,const TPoint& aPosition);
  1896. __declspec(dllexport) void DrawText(const TDesC& aText,const TRect& aBox);
  1897. __declspec(dllexport) void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TTextAlign aHrz=ELeft,TInt aMargin=0);
  1898. __declspec(dllexport) void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TInt aTextWidth,TTextAlign aHrz=ELeft,TInt aMargin=0);
  1899. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,TBool aUp);
  1900. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TPoint& aPosition,TBool aUp);
  1901. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TRect& aBox,TBool aUp);
  1902. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0);
  1903. __declspec(dllexport) void DrawTextVertical(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TInt aTextWidth,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0);
  1904. __declspec(dllexport) void MapColors(const TRect& aRect,const TRgb* aColors,TInt aNumPairs=2,TBool aMapForwards=ETrue);
  1905. __declspec(dllexport) void MoveTo(const TPoint& aPoint);
  1906. __declspec(dllexport) void MoveBy(const TPoint& aVector);
  1907. __declspec(dllexport) void OrientationsAvailable(TBool aOrientation[4]);
  1908. __declspec(dllexport) void Plot(const TPoint& aPoint);
  1909. __declspec(dllexport) void RectDrawnTo(TRect& aRect);
  1910. __declspec(dllexport) void Reset();
  1911. __declspec(dllexport) void Resized();
  1912. __declspec(dllexport) void SetBrushColor(const TRgb& aColor);
  1913. __declspec(dllexport) void SetBrushOrigin(const TPoint& aOrigin);
  1914. __declspec(dllexport) void SetBrushStyle(TBrushStyle aBrushStyle);
  1915. __declspec(dllexport) void SetClippingRegion(const TRegion* aRegion);
  1916. __declspec(dllexport) void SetClippingRect(const TRect& aRect);
  1917. __declspec(dllexport) void SetDitherOrigin(const TPoint& aPoint);
  1918. __declspec(dllexport) void SetDrawMode(TDrawMode);
  1919. __declspec(dllexport) void SetOrigin(const TPoint& aPoint=TPoint(0,0));
  1920. __declspec(dllexport) void SetPenColor(const TRgb& aColor);
  1921. __declspec(dllexport) void SetPenStyle(TPenStyle);
  1922. __declspec(dllexport) void SetPenSize(const TSize& aSize);
  1923. __declspec(dllexport) void SetCharJustification(TInt aExcessWidth,TInt aNumGaps);
  1924. __declspec(dllexport) void SetWordJustification(TInt aExcessWidth,TInt aNumChars);
  1925. __declspec(dllexport) void SetUnderlineStyle(TFontUnderline aUnderlineStyle);
  1926. __declspec(dllexport) void SetUserDisplayMode(TDisplayMode aDisplayMode);
  1927. __declspec(dllexport) void SetStrikethroughStyle(TFontStrikethrough aStrikethroughStyle);
  1928. __declspec(dllexport) void SetShadowMode(TBool aShadowMode = EFalse);
  1929. inline void SetFadeMode(TBool aFadeMode = EFalse);
  1930. inline void SetFadingParameters(TUint8 aBlackMap = 0);
  1931. __declspec(dllexport) void SetFaded(TBool aFaded);
  1932. __declspec(dllexport) void SetFadingParameters(TUint8 aBlackMap,TUint8 aWhiteMap);
  1933. __declspec(dllexport) TBool SetOrientation(TGraphicsOrientation aOrientation);
  1934. __declspec(dllexport) void ShadowArea(const TRegion* aRegion);
  1935. __declspec(dllexport) void FadeArea(const TRegion* aRegion);
  1936. __declspec(dllexport) void UpdateJustification(const TDesC& aText);
  1937. __declspec(dllexport) void UpdateJustificationVertical(const TDesC& aText,TBool aUp);
  1938. __declspec(dllexport) void UseBrushPattern(const CFbsBitmap* aBitmap);
  1939. __declspec(dllexport) TInt UseBrushPattern(TInt aFbsBitmapHandle);
  1940. __declspec(dllexport) void UseFont(const CFont* aFont);
  1941. __declspec(dllexport) TInt UseFont(TInt aFontHandle);
  1942. __declspec(dllexport) void UseFontNoDuplicate(const CFbsBitGcFont* aFont);
  1943. __declspec(dllexport) TBool IsBrushPatternUsed() const;
  1944. __declspec(dllexport) TBool IsFontUsed() const;
  1945. inline static TInt16 Load16(const TUint8* aPtr) { return TInt16(aPtr[0]+(aPtr[1]<<8)); }
  1946. __declspec(dllexport) TInt AlphaBlendBitmaps(const TPoint& aDestPt,
  1947. const CFbsBitmap* aSrcBmp1,
  1948. const CFbsBitmap* aSrcBmp2,
  1949. const TRect& aSrcRect1,
  1950. const TPoint& aSrcPt2,
  1951. const CFbsBitmap* aAlphaBmp,
  1952. const TPoint& aAlphaPt);
  1953. __declspec(dllexport) TInt AlphaBlendBitmaps(const TPoint& aDestPt,
  1954. const CFbsBitmap* aSrcBmp,
  1955. const TRect& aSrcRect,
  1956. const CFbsBitmap* aAlphaBmp,
  1957. const TPoint& aAlphaPt);
  1958. __declspec(dllexport) void ExternalizeL(RWriteStream& aWriteStream);
  1959. __declspec(dllexport) void InternalizeL(RReadStream& aReadStream);
  1960. __declspec(dllexport) TInt SetClippingRegion(const TRegion& aRegion);
  1961. __declspec(dllexport) TInt AlphaBlendBitmaps(const TPoint& aDestPt,
  1962. const CWsBitmap* aSrcBmp,
  1963. const TRect& aSrcRect,
  1964. const CWsBitmap* aAlphaBmp,
  1965. const TPoint& aAlphaPt);
  1966. __declspec(dllexport) TRgb BrushColor();
  1967. __declspec(dllexport) TRgb PenColor();
  1968. private:
  1969. CFbsBitGc();
  1970. void AddRect(const TRect& aRect);
  1971. void AnalyseEllipse(const TRect& rc,TPoint& srad,TPoint& erad,TPoint& center,TInt& startq,TInt& endq,TBool* quads);
  1972. void BitMultiply(TUint32* aBinaryDataPtr,TInt aBitLength,TInt aMultiplier);
  1973. void CheckDevice() const;
  1974. TBool CheckDevice(const TRect& aRect) const;
  1975. TUint32* ClipBinaryArray(TUint32* aArray,TUint32* aArrayLimit,TInt aArrayWordWd,TInt& aDataWd,TInt& aDataHt,TPoint& aPos);
  1976. void ClipFillLine(TPoint,TPoint);
  1977. void CopyCharWord(TUint32* aBinaryDataPtr,const TUint8* aData,TInt aBitShift);
  1978. void CopyCharLine(TUint32* aBinaryDataPtr,TInt aBufferWords,const TUint8* aData,TInt aBitShift,TInt aCharWidth);
  1979. void DrawText(const TDesC& aText,const TPoint& aPosition,TTextAlign aAlignment,
  1980.   CFont::TTextDirection aDirection,const TRect* aBox = 0 );
  1981. void DoBitBlt(const TPoint& aDest,CFbsDevice* aDevice,const TRect& aSourceRect);
  1982. void DoBitBlt(const TPoint& aDest,CBitwiseBitmap* aBitmap,TUint32* aBase,const TRect& aSourceRect);
  1983. void DoBitBltMasked(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  1984. void DoBitBltMaskedFlicker(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  1985. void DoBitBltMaskedNonFlicker(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  1986. void DoBitBltMaskedNonFlickerSolid(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  1987. void DoBitBltMaskedNonFlickerPatterned(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin,TInt aShadowMode);
  1988. void DoBitBltAlpha(const TPoint& aDest,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,const TPoint& aDitherOrigin,TInt aShadowMode);
  1989. void DoBitBltAlpha(const TPoint& aDestPt,
  1990.    const CBitwiseBitmap* aSrcBmp1,
  1991.    TUint32* aSrcBmpDataAddr1,
  1992.    const CBitwiseBitmap* aSrcBmp2,
  1993.    TUint32* aSrcBmpDataAddr2,
  1994.    const CBitwiseBitmap* aAlphaBmp,
  1995.    TUint32* aAlphaBmpDataAddr,
  1996.    const TRect& aSrcRect1,
  1997.    const TPoint& aSrcPt2,
  1998.    const TPoint& aAlphaPt,
  1999.    TInt aShadowMode);
  2000. void DoCopyRect(const TPoint&,const TRect&);
  2001. void DoDrawBitmap(const TRect&,CBitwiseBitmap*,TUint32* aBase,const TRect&,const TPoint& aDitherOrigin);
  2002. void DoDrawBitmapMasked(const TRect& aDestRect,CBitwiseBitmap* aSourceBitmap,TUint32* aSourceBase,const TRect& aSourceRect,CBitwiseBitmap* aMaskBitmap,TUint32* aMaskBase,TBool aInvertMask,const TPoint& aDitherOrigin);
  2003. void DoDrawLine(TPoint aStart,TPoint aEnd,TBool aDrawStartPoint);
  2004. void DoDrawDottedWideLine(const TPoint& pt1,const TPoint& pt2,TBool drawstart,const TRect& screenrect);
  2005. void DoDrawSolidWideLine(const TPoint& pt1,const TPoint& pt2,TBool drawstart,const TRect& screenrect);
  2006. void DoDrawText(CFont::TPositionParam& aParam);
  2007. void DoDrawCharacter(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData);
  2008. void DoDrawTextEx(CFont::TPositionParam& aParam,const CBitmapFont* font);
  2009. void DoDrawCharacterEx(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData,
  2010. TBool aBold,TBool aItalic,TInt aSemiAscent);
  2011. void DoDrawCharacterAntiAliased(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData);
  2012. void DoDrawTextLarge(CFont::TPositionParam& aParam,const CBitmapFont* font);
  2013. void DoDrawCharacterLarge(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData,
  2014. TBool aBold,TBool aItalic,TInt aSemiAscent,TInt aWidthFactor,TInt aHeightFactor);
  2015. void DoDrawCharacterExLarge(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData,
  2016. TBool aBold,TBool aItalic,TInt aSemiAscent,TInt aWidthFactor,TInt aHeightFactor);
  2017. void DoDrawCharacterMultiplied(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData,
  2018. TBool aBold,TBool aItalic,TInt aSemiAscent,TInt aWidthMultiplier,TInt aHeightMultiplier);
  2019. void DoDrawTextVertical(CFont::TPositionParam& aParam,const CBitmapFont* font,TBool aUp);
  2020. void DoDrawCharacterVertical(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData,
  2021. TBool aBold,TBool aItalic,TInt aSemiAscent,TInt aWidthFactor,TInt aHeightFactor,TBool aUp);
  2022. void DoDrawCharacterVerticalAntiAliased(const TPoint& aTopLeft,const TSize& aDataSize,const TUint8* aData,TBool aUp);
  2023. void DoPlot(const TPoint& pt);
  2024. void EllipseFill(const TRect& aRect);
  2025. void EllipseOutline(const TRect& aRect);
  2026. void EllipseOutlineWide(const TRect& aRect);
  2027. void GetUnderlineMetrics(TInt& aTop,TInt& aBottom);
  2028. void GetStrikethroughMetrics(TInt& aTop,TInt& aBottom);
  2029. void OutputCharLine(TPoint aPrintPos,TUint32* aBuffer,TInt aDataLength,TInt aNum,TBool aBold,TInt aWidthFactor,TInt aHeightFactor);
  2030. void OutputCharLineMultiplied(TPoint aPrintPos,TUint32* aBuffer,TInt aDataLength,TInt aNum,TBool aBold,TInt aWidthMultiplier,TInt aHeightMultiplier);
  2031. void OutputCharLineVertical(TPoint aPrintPos,TUint32* aBuffer,TInt aDataLength,TInt aNum,TBool aBold,TInt aWidthFactor,TInt aHeightFactor,TBool aUp);
  2032. void PenAllocate();
  2033. void PenDrawClipped(TPoint aPoint);
  2034. void PenDrawDeferred(TPoint aPoint,TInt* aArray,TInt aFirstElement);
  2035. void PieArcOutline(const TRect& aRect,const TPoint& aStartRadius,const TPoint& aEndRadius,TBool aDoPie);
  2036. void PieFill(const TRect& aRect,const TPoint& aStartRadius,const TPoint& aEndRadius);
  2037. void PieShell(const TRect& ellrect,const TPoint& startradius,const TPoint& endradius,TBool quads[5],TInt startquad,TInt endquad);
  2038. void PieTriangles(TBool aInside,const TPoint& aStart,const TPoint& aEnd);
  2039. void PieSliver(const TRect& ellrect,const TPoint& startradius,const TPoint& endradius,TInt quad);
  2040. void PolyFill(const CArrayFix<TPoint> * aPointList,TFillRule aFillRule);
  2041. void PolyFillLarge(const CArrayFix<TPoint> * aPointList,TFillRule aFillRule);
  2042. void PolyFill(const TPoint* aPointList,TInt aNumPoints,TFillRule aFillRule);
  2043. void PolyFillLarge(const TPoint* aPointList,TInt aNumPoints,TFillRule aFillRule);
  2044. void PolyOutline(const CArrayFix<TPoint> * aPointList);
  2045. void PolyOutline(const TPoint* aPointList,TInt aNumPoints);
  2046. void RectFill(const TRect& aRect);
  2047. void RoundRectFill(const TRect& aRect,TSize aSize);
  2048. void RoundRectOutline(const TRect& aRect,TSize aSize);
  2049. void SetupDevice() const;
  2050. void ShadowFadeArea(const TRegion* aRegion,TInt8 aShadowMode);
  2051. TBool UserClipRect(TRect& aRect);
  2052. CGraphicsAccelerator* GraphicsAccelerator();
  2053. private:
  2054. __declspec(dllexport) void Reserved_CGraphicsContext_1();
  2055. __declspec(dllexport) void Reserved_CGraphicsContext_2();
  2056. __declspec(dllexport) void Reserved_CBitmapContext_1();
  2057. __declspec(dllexport) void Reserved_CBitmapContext_2();
  2058. __declspec(dllexport) void Reserved_CBitmapContext_3();
  2059. __declspec(dllexport) virtual void Reserved_CFbsBitGc_1();
  2060. __declspec(dllexport) virtual void Reserved_CFbsBitGc_2();
  2061. __declspec(dllexport) virtual void Reserved_CFbsBitGc_3();
  2062. __declspec(dllexport) virtual void Reserved_CFbsBitGc_4();
  2063. __declspec(dllexport) virtual void Reserved_CFbsBitGc_5();
  2064. private:
  2065. CFbsBitGcBitmap iBrushBitmap;
  2066. TBool iBrushUsed;
  2067. TRgb iBrushColor;
  2068. TPoint iBrushOrigin;
  2069. TBrushStyle iBrushStyle;
  2070. TRect iClipRect;
  2071. TRegionFix<1> iDefaultRegion;
  2072. const TRegion* iDefaultRegionPtr;
  2073. TRect iUserClipRect;
  2074. CFbsDevice* iDevice;
  2075. TPoint iDitherOrigin;
  2076. TInt iDotLength;
  2077. TInt iDotMask;
  2078. TInt iDotParam;
  2079. TInt iDotDirection;
  2080. TDrawMode iDrawMode;
  2081. TRect iDrawnTo;
  2082. CFbsBitGcFont iFont;
  2083. TInt iCharJustExcess;
  2084. TInt iCharJustNum;
  2085. TInt iWordJustExcess;
  2086. TInt iWordJustNum;
  2087. TPoint iLastPrintPosition;
  2088. TPoint iLinePosition;
  2089. TPoint iOrigin;
  2090. TInt* iPenArray;
  2091. TRgb iPenColor;
  2092. TPenStyle iPenStyle;
  2093. TSize iPenSize;
  2094. TInt8 iShadowMode;
  2095. TInt8 iAutoUpdateJustification;
  2096. TUint8 iFadeBlackMap;
  2097. TUint8 iFadeWhiteMap;
  2098. TFontStrikethrough iStrikethrough;
  2099. TFontUnderline iUnderline;
  2100. TDisplayMode iUserDisplayMode;
  2101. RRegion iClippingRegion;
  2102. };
  2103. inline void CFbsBitGc::SetFadeMode(TBool aFadeMode )
  2104. {SetFaded(aFadeMode);}
  2105. inline void CFbsBitGc::SetFadingParameters(TUint8 aBlackMap )
  2106. {SetFadingParameters(aBlackMap,255);}
  2107. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 5 */
  2108. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\graphicsaccelerator.h" /* stack depth 6 */
  2109. #line 17
  2110. class CFbsBitmap;
  2111. class TAcceleratedBitmapSpec;
  2112. #line 32
  2113. class TAcceleratedBitmapInfo
  2114. {
  2115. public:
  2116. TDisplayMode iDisplayMode;
  2117. TUint8* iAddress;
  2118. TSize iSize;
  2119. TInt iLinePitch;
  2120. TInt iPixelShift;
  2121. TUint8* iPhysicalAddress;
  2122. };
  2123. #line 69
  2124. class RHardwareBitmap
  2125. {
  2126. friend class CBitwiseBitmap;
  2127. friend class CFbsScreenDevice;
  2128. public:
  2129. inline RHardwareBitmap();
  2130. inline RHardwareBitmap(TInt aHandle);
  2131. __declspec(dllexport) TInt GetInfo(TAcceleratedBitmapInfo& aInfo) const;
  2132. private:
  2133. __declspec(dllexport) TInt SetAsScreenReference(TInt aScreen=-1);
  2134. __declspec(dllexport) TInt Create(TDisplayMode aDisplayMode, TSize aSize, TUid aCreatorUid);
  2135. __declspec(dllexport) void Destroy();
  2136. public:
  2137. TInt iHandle;
  2138. };
  2139. inline RHardwareBitmap::RHardwareBitmap()
  2140. : iHandle(0)
  2141. {}
  2142. inline RHardwareBitmap::RHardwareBitmap(TInt aHandle)
  2143. : iHandle(aHandle)
  2144. {}
  2145. #line 114
  2146. class TBitmapLockCount
  2147. {
  2148. friend class TAcceleratedBitmapSpec;
  2149. public:
  2150. inline TBitmapLockCount() : iCount(0) {}
  2151. private:
  2152. inline TInt Inc() { return iCount++; }
  2153. inline TInt Dec() { return --iCount; }
  2154. private:
  2155. TInt iCount;
  2156. };
  2157. #line 139
  2158. class TAcceleratedBitmapSpec
  2159. {
  2160. public:
  2161. inline TAcceleratedBitmapSpec();
  2162. __declspec(dllexport) TAcceleratedBitmapSpec(CFbsBitmap* aBitmap);
  2163. __declspec(dllexport) TAcceleratedBitmapSpec(RHardwareBitmap aBitmap);
  2164. __declspec(dllexport) TInt GetInfo(TAcceleratedBitmapInfo& aInfo) const;
  2165. inline void Lock(TBitmapLockCount& aCount);
  2166. inline void Lock(TBitmapLockCount& aCount,TAcceleratedBitmapInfo& aInfo);
  2167. inline void Unlock(TBitmapLockCount& aCount);
  2168. enum TAcceleratedBitmapType
  2169. {
  2170. ENoBitmap,
  2171. EFbsBitmap,
  2172. EHardwareBitmap,
  2173. };
  2174. enum TAcceleratedBitmapLock
  2175. {
  2176. EBitmapIsStatic,
  2177. EBitmapNeedsLocking,
  2178. };
  2179. inline TAcceleratedBitmapType Type() const;
  2180. inline TInt Handle() const;
  2181. private:
  2182. __declspec(dllexport) void DoLock(TBitmapLockCount& aCount);
  2183. __declspec(dllexport) void DoLock(TBitmapLockCount& aCount,TAcceleratedBitmapInfo& aInfo);
  2184. __declspec(dllexport) void DoUnlock(TBitmapLockCount& aCount);
  2185. private:
  2186. TUint8 iType;
  2187. TUint8 iLockStatus;
  2188. TUint8 iSpare1;
  2189. TUint8 iSpare2;
  2190. TInt iHandle;
  2191. };
  2192. inline TAcceleratedBitmapSpec::TAcceleratedBitmapSpec()
  2193. : iType(ENoBitmap), iLockStatus(EBitmapIsStatic)
  2194. {}
  2195. #line 210
  2196. inline void TAcceleratedBitmapSpec::Lock(TBitmapLockCount& aCount)
  2197. { if(iLockStatus==EBitmapNeedsLocking) DoLock(aCount); }
  2198. #line 226
  2199. inline void TAcceleratedBitmapSpec::Lock(TBitmapLockCount& aCount,TAcceleratedBitmapInfo& aInfo)
  2200. { if(iLockStatus==EBitmapNeedsLocking) DoLock(aCount,aInfo); }
  2201. #line 237
  2202. inline void TAcceleratedBitmapSpec::Unlock(TBitmapLockCount& aCount)
  2203. { if(iLockStatus==EBitmapNeedsLocking) DoUnlock(aCount); }
  2204. inline TAcceleratedBitmapSpec::TAcceleratedBitmapType TAcceleratedBitmapSpec::Type() const
  2205. { return (TAcceleratedBitmapSpec::TAcceleratedBitmapType)iType; }
  2206. inline TInt TAcceleratedBitmapSpec::Handle() const
  2207. { return iHandle; }
  2208. #line 268
  2209. enum TTransparencyType
  2210. {
  2211. ETransparentPixelZero,
  2212. ETransparentPixel,
  2213. ETransparentColor,
  2214. ETransparent1555,
  2215. };
  2216. #line 303
  2217. class TGraphicsAcceleratorCaps
  2218. {
  2219. public:
  2220. enum TClipCaps
  2221. {
  2222. EClipToBitmap = 1,
  2223. EClipping = 2
  2224. };
  2225. enum TMaskBitmapCaps
  2226. {
  2227. EMaskBitmapNone = 0,
  2228. EMaskBitmapAnyDisplayMode,
  2229. EMaskBitmapMatchingDisplayMode,
  2230. EMaskBitmapGray2,
  2231. };
  2232. enum TAlphaChannelCaps
  2233.      {
  2234. EAlpha4444 = 1,
  2235. EAlpha8888 = 2,
  2236. EAlpha1555 = 4,
  2237. };
  2238. enum TAlphaBitmapCaps
  2239.      {
  2240. EAlphaBitmapGray256 = 1,
  2241. EAlphaBitmapColor16M = 2,
  2242. EAlphaBitmapMatchingMode = 4,
  2243. };
  2244. enum TPatternSizeCaps
  2245. {
  2246. EPatternSizeAny = 0xFFFFFFFF,
  2247. };
  2248. enum TPatternCaps
  2249. {
  2250. EPatternAnyDisplayMode = 1,
  2251. EPatternMatchingDisplayMode = 2,
  2252. EPatternMustBeSquare = 4,
  2253. };
  2254. enum TPolygonCaps
  2255. {
  2256. EPolygonFillAlternate = 1,
  2257. EPolygonFillWinding = 2,
  2258. };
  2259. TInt iStructureSize;
  2260. TInt iVersion;
  2261. TUid iVendorUid;
  2262. TUint iDisplayModes;
  2263. TUint iClipping;
  2264. TMaskBitmapCaps iMaskType;
  2265. TUint iTransparency;
  2266. TUint iAlphaChannel;
  2267. TUint iAlphaBitmap;
  2268. #line 473
  2269. TUint iPatternSizes;
  2270. TUint iPattern;
  2271. TUint iPolygon;
  2272. TUint iReserved[4];
  2273. };
  2274. #line 508
  2275. class TGraphicsOperation
  2276. {
  2277. public:
  2278. enum TGopFunction
  2279. {
  2280. EFilledRect,
  2281. EFilledRectUsingDrawMode,
  2282. EFilledRectWithPattern,
  2283. EInvertRect,
  2284. EFadeRect,
  2285. EBitBlt,
  2286. EBitBltMasked,
  2287. EBitBltTransparent,
  2288. EBitBltAlphaChannel,
  2289. EBitBltAlphaBitmap,
  2290. EScaledBitBlt,
  2291. EScaledBitBltMasked,
  2292. EScaledBitBltTransparent,
  2293. EScaledBitBltAlphaChannel,
  2294. EScaledBitBltAlphaBitmap,
  2295. EFilledPolygon,
  2296. EFilledPolygonWithPattern,
  2297. };
  2298. public:
  2299. inline TGopFunction Function() const { return iFunction; }
  2300. inline TInt Size() const { return iSize; }
  2301. inline TGraphicsOperation* Next() const;
  2302. inline void Append(TInt aNumBytes,TAny* aData);
  2303. protected:
  2304. inline TGraphicsOperation(TGopFunction aFunction, TInt aArgSize);
  2305. inline TGraphicsOperation() {}
  2306. protected:
  2307. TGopFunction iFunction;
  2308. TInt iSize;
  2309. };
  2310. inline TGraphicsOperation::TGraphicsOperation(TGopFunction aFunction, TInt aSize)
  2311. : iFunction(aFunction) , iSize(aSize) {}
  2312. inline TGraphicsOperation* TGraphicsOperation::Next() const
  2313. { return (TGraphicsOperation*)((TUint8*)this+iSize); }
  2314. inline void TGraphicsOperation::Append(TInt aNumBytes,TAny* aData)
  2315. {
  2316. Mem::Copy(Next(),aData,aNumBytes);
  2317. iSize += aNumBytes;
  2318. }
  2319. #line 579
  2320. class CGraphicsAccelerator : public CBase
  2321. {
  2322. public:
  2323. virtual const TGraphicsAcceleratorCaps* Capabilities() = 0;
  2324. #line 598
  2325. virtual TInt Operation(const TGraphicsOperation& aOperation) = 0;
  2326. #line 611
  2327. virtual TInt Operation(const TGraphicsOperation& aOperation,TInt aNumClipRects,TRect* aClipRects) = 0;
  2328. #line 634
  2329. virtual TInt Operation(TDes8& aBuffer) = 0;
  2330. #line 657
  2331. virtual TInt Operation(TDes8& aBuffer,TInt aNumClipRects,TRect* aClipRects) = 0;
  2332. public:
  2333. virtual void Reserved_1() = 0;
  2334. virtual void Reserved_2() = 0;
  2335. virtual void Reserved_3() = 0;
  2336. virtual void Reserved_4() = 0;
  2337. };
  2338. #line 678
  2339. class CSoftwareGraphicsAccelerator : public CGraphicsAccelerator
  2340. {
  2341. public:
  2342. __declspec(dllexport) static CSoftwareGraphicsAccelerator* NewL(CFbsBitmap* aBitmap);
  2343. __declspec(dllexport) static const TGraphicsAcceleratorCaps* GenericCapabilities();
  2344. public:
  2345. virtual const TGraphicsAcceleratorCaps* Capabilities() = 0;
  2346. virtual TInt Operation(const TGraphicsOperation& aOperation) = 0;
  2347. virtual TInt Operation(const TGraphicsOperation& aOperation,TInt aNumClipRects,TRect* aClipRects) = 0;
  2348. virtual TInt Operation(TDes8& aBuffer) = 0;
  2349. virtual TInt Operation(TDes8& aBuffer,TInt aNumClipRects,TRect* aClipRects) = 0;
  2350. virtual void Reserved_1() = 0;
  2351. virtual void Reserved_2() = 0;
  2352. virtual void Reserved_3() = 0;
  2353. virtual void Reserved_4() = 0;
  2354. };
  2355. #line 713
  2356. class CHardwareGraphicsAccelerator : public CGraphicsAccelerator
  2357. {
  2358. public:
  2359. __declspec(dllexport) static CHardwareGraphicsAccelerator* NewL(RHardwareBitmap aBitmap);
  2360. __declspec(dllexport) static const TGraphicsAcceleratorCaps* GenericCapabilities();
  2361. public:
  2362. virtual const TGraphicsAcceleratorCaps* Capabilities() = 0;
  2363. virtual TInt Operation(const TGraphicsOperation& aOperation) = 0;
  2364. virtual TInt Operation(const TGraphicsOperation& aOperation,TInt aNumClipRects,TRect* aClipRects) = 0;
  2365. virtual TInt Operation(TDes8& aBuffer) = 0;
  2366. virtual TInt Operation(TDes8& aBuffer,TInt aNumClipRects,TRect* aClipRects) = 0;
  2367. virtual void Reserved_1() = 0;
  2368. virtual void Reserved_2() = 0;
  2369. virtual void Reserved_3() = 0;
  2370. virtual void Reserved_4() = 0;
  2371. };
  2372. #line 752
  2373. class TGopFillPattern
  2374. {
  2375. public:
  2376. TAcceleratedBitmapSpec iBitmap;
  2377. TPoint iOrigin;
  2378. };
  2379. #line 789
  2380. class TGopFadeParams
  2381. {
  2382. public:
  2383. TInt iScale;
  2384. TInt iOffset;
  2385. };
  2386. #line 814
  2387. class TGopTransparency
  2388. {
  2389. public:
  2390. inline TGopTransparency(TTransparencyType aType) : iType(aType), iParam(0) {}
  2391. inline TGopTransparency(TInt aPixelValue) : iType(ETransparentPixel), iParam(aPixelValue) {}
  2392. inline TGopTransparency(TRgb aRgb) : iType(ETransparentColor), iParam(aRgb.Value()) {}
  2393. inline TRgb Color() const { return TRgb(iParam); }
  2394. inline TInt Pixel() const { return iParam; }
  2395. public:
  2396. TTransparencyType iType;
  2397. TUint32 iParam;
  2398. };
  2399. #line 865
  2400. #pragma warning(disable : 4355) 
  2401. #line 876
  2402. class TGopFilledRect : public TGraphicsOperation
  2403. {
  2404. public:
  2405. inline TGopFilledRect(const TRect& aRect,TRgb aColor)
  2406. : TGraphicsOperation(EFilledRect,sizeof(*this)), iRect(aRect) , iColor(aColor) {}
  2407. public:
  2408. TRect iRect;
  2409. TRgb iColor;
  2410. };
  2411. #line 905
  2412. class TGopFilledRectUsingDrawMode : public TGraphicsOperation
  2413. {
  2414. public:
  2415. inline TGopFilledRectUsingDrawMode(const TRect& aRect,TRgb aColor,CGraphicsContext::TDrawMode aDrawMode)
  2416. : TGraphicsOperation(EFilledRectUsingDrawMode,sizeof(*this)), iRect(aRect) , iColor(aColor) , iDrawMode(aDrawMode) {}
  2417. public:
  2418. TRect iRect;
  2419. TRgb iColor;
  2420. CGraphicsContext::TDrawMode iDrawMode;
  2421. };
  2422. #line 935
  2423. class TGopFilledRectWithPattern : public TGraphicsOperation
  2424. {
  2425. public:
  2426. inline TGopFilledRectWithPattern(const TRect& aRect,TGopFillPattern aPattern)
  2427. : TGraphicsOperation(EFilledRectWithPattern,sizeof(*this)), iRect(aRect) , iPattern(aPattern) {}
  2428. public:
  2429. TRect iRect;
  2430. TGopFillPattern iPattern;
  2431. };
  2432. #line 963
  2433. class TGopInvertRect : public TGraphicsOperation
  2434. {
  2435. public:
  2436. inline TGopInvertRect(const TRect& aRect)
  2437. : TGraphicsOperation(EInvertRect,sizeof(*this)), iRect(aRect) {}
  2438. public:
  2439. TRect iRect;
  2440. };
  2441. #line 984
  2442. class TGopFadeRect : public TGraphicsOperation
  2443. {
  2444. public:
  2445. inline TGopFadeRect(const TRect& aRect, const TGopFadeParams aFade)
  2446. : TGraphicsOperation(EFadeRect,sizeof(*this)), iRect(aRect), iFade(aFade) {}
  2447. public:
  2448. TRect iRect;
  2449. TGopFadeParams iFade;
  2450. };
  2451. #line 1011
  2452. class TGopBitBlt : public TGraphicsOperation
  2453. {
  2454. public:
  2455. inline TGopBitBlt(const TPoint& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect)
  2456. : TGraphicsOperation(EBitBlt,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect) {}
  2457. public:
  2458. TPoint iDestination;
  2459. TAcceleratedBitmapSpec iSourceBitmap;
  2460. TRect iSourceRect;
  2461. };
  2462. #line 1050
  2463. class TGopBitBltMasked : public TGraphicsOperation
  2464. {
  2465. public:
  2466. #line 1062
  2467. inline TGopBitBltMasked(const TPoint& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect, TAcceleratedBitmapSpec aMask)
  2468. : TGraphicsOperation(EBitBltMasked,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect), iMask(aMask) {}
  2469. public:
  2470. TPoint iDestination;
  2471. TAcceleratedBitmapSpec iSourceBitmap;
  2472. TRect iSourceRect;
  2473. TAcceleratedBitmapSpec iMask;
  2474. };
  2475. #line 1091
  2476. class TGopBitBltTransparent : public TGraphicsOperation
  2477. {
  2478. public:
  2479. #line 1106
  2480. inline TGopBitBltTransparent(const TPoint& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect, TGopTransparency aTransparency)
  2481. : TGraphicsOperation(EBitBltTransparent,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect), iTransparency(aTransparency) {}
  2482. public:
  2483. TPoint iDestination;
  2484. TAcceleratedBitmapSpec iSourceBitmap;
  2485. TRect iSourceRect;
  2486. TGopTransparency iTransparency;
  2487. };
  2488. #line 1139
  2489. class TGopBitBltAlphaChannel : public TGraphicsOperation
  2490. {
  2491. public:
  2492. inline TGopBitBltAlphaChannel(const TPoint& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect)
  2493. : TGraphicsOperation(EBitBltAlphaChannel,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect) {}
  2494. public:
  2495. TPoint iDestination;
  2496. TAcceleratedBitmapSpec iSourceBitmap;
  2497. TRect iSourceRect;
  2498. };
  2499. #line 1188
  2500. class TGopBitBltAlphaBitmap : public TGraphicsOperation
  2501. {
  2502. public:
  2503. #line 1200
  2504. inline TGopBitBltAlphaBitmap(const TPoint& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect, TAcceleratedBitmapSpec aAlphaBitmap)
  2505. : TGraphicsOperation(EBitBltAlphaBitmap,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect), iAlphaBitmap(aAlphaBitmap) {}
  2506. public:
  2507. TPoint iDestination;
  2508. TAcceleratedBitmapSpec iSourceBitmap;
  2509. TRect iSourceRect;
  2510. TAcceleratedBitmapSpec iAlphaBitmap;
  2511. };
  2512. #line 1227
  2513. class TGopScaledBitBlt : public TGraphicsOperation
  2514. {
  2515. public:
  2516. #line 1238
  2517. inline TGopScaledBitBlt(const TRect& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect)
  2518. : TGraphicsOperation(EScaledBitBlt,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect) {}
  2519. public:
  2520. TRect iDestination;
  2521. TAcceleratedBitmapSpec iSourceBitmap;
  2522. TRect iSourceRect;
  2523. };
  2524. #line 1267
  2525. class TGopScaledBitBltMasked : public TGraphicsOperation
  2526. {
  2527. public:
  2528. #line 1280
  2529. inline TGopScaledBitBltMasked(const TRect& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect, TAcceleratedBitmapSpec aMask)
  2530. : TGraphicsOperation(EScaledBitBltMasked,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect), iMask(aMask) {}
  2531. public:
  2532. TRect iDestination;
  2533. TAcceleratedBitmapSpec iSourceBitmap;
  2534. TRect iSourceRect;
  2535. TAcceleratedBitmapSpec iMask;
  2536. };
  2537. #line 1310
  2538. class TGopScaledBitBltTransparent : public TGraphicsOperation
  2539. {
  2540. public:
  2541. #line 1325
  2542. inline TGopScaledBitBltTransparent(const TRect& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect, TGopTransparency aTransparency)
  2543. : TGraphicsOperation(EScaledBitBltTransparent,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect), iTransparency(aTransparency) {}
  2544. public:
  2545. TRect iDestination;
  2546. TAcceleratedBitmapSpec iSourceBitmap;
  2547. TRect iSourceRect;
  2548. TGopTransparency iTransparency;
  2549. };
  2550. #line 1355
  2551. class TGopScaledBitBltAlphaChannel : public TGraphicsOperation
  2552. {
  2553. public:
  2554. #line 1367
  2555. inline TGopScaledBitBltAlphaChannel(const TRect& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect)
  2556. : TGraphicsOperation(EScaledBitBltAlphaChannel,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect) {}
  2557. public:
  2558. TRect iDestination;
  2559. TAcceleratedBitmapSpec iSourceBitmap;
  2560. TRect iSourceRect;
  2561. };
  2562. #line 1394
  2563. class TGopScaledBitBltAlphaBitmap : public TGraphicsOperation
  2564. {
  2565. public:
  2566. #line 1406
  2567. inline TGopScaledBitBltAlphaBitmap(const TRect& aDestination, TAcceleratedBitmapSpec aSourceBitmap, TRect& aSourceRect, TAcceleratedBitmapSpec aAlphaBitmap)
  2568. : TGraphicsOperation(EScaledBitBltAlphaBitmap,sizeof(*this)), iDestination(aDestination), iSourceBitmap(aSourceBitmap), iSourceRect(aSourceRect), iAlphaBitmap(aAlphaBitmap) {}
  2569. public:
  2570. TRect iDestination;
  2571. TAcceleratedBitmapSpec iSourceBitmap;
  2572. TRect iSourceRect;
  2573. TAcceleratedBitmapSpec iAlphaBitmap;
  2574. };
  2575. #line 1434
  2576. class TGopFilledPolygon : public TGraphicsOperation
  2577. {
  2578. public:
  2579. inline TGopFilledPolygon(TRgb aColor, CGraphicsContext::TFillRule aFillRule)
  2580. : TGraphicsOperation(EFilledPolygon,sizeof(*this)), iColor(aColor), iFillRule(aFillRule), iNumPoints(0) {}
  2581. inline void AddPoints(TInt aNumPoints, TPoint* aPoints);
  2582. public:
  2583. TRgb iColor;
  2584. CGraphicsContext::TFillRule iFillRule;
  2585. TInt iNumPoints;
  2586. };
  2587. inline void TGopFilledPolygon::AddPoints(TInt aNumPoints, TPoint* aPoints)
  2588. { Append(aNumPoints*sizeof(TPoint),aPoints); iNumPoints += aNumPoints; }
  2589. #line 1478
  2590. class TGopFilledPolygonWithPattern : public TGraphicsOperation
  2591. {
  2592. public:
  2593. inline TGopFilledPolygonWithPattern(TGopFillPattern aPattern, CGraphicsContext::TFillRule aFillRule)
  2594. : TGraphicsOperation(EFilledPolygonWithPattern,sizeof(*this)), iPattern(aPattern), iFillRule(aFillRule), iNumPoints(0) {}
  2595. inline void AddPoints(TInt aNumPoints, TPoint* aPoints);
  2596. public:
  2597. TGopFillPattern iPattern;
  2598. CGraphicsContext::TFillRule iFillRule;
  2599. TInt iNumPoints;
  2600. };
  2601. inline void TGopFilledPolygonWithPattern::AddPoints(TInt aNumPoints, TPoint* aPoints)
  2602. { Append(aNumPoints*sizeof(TPoint),aPoints); iNumPoints += aNumPoints; }
  2603. #line 23 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 5 */
  2604. enum {EScanBufSize=0x80};
  2605. class CFbsDrawDevice;
  2606. #line 53
  2607. class CFbsDevice : public CBitmapDevice
  2608. {
  2609. friend class CFbsBitGc;
  2610. public:
  2611. __declspec(dllexport) ~CFbsDevice();
  2612. __declspec(dllexport) TInt CreateContext(CFbsBitGc*& aGc);
  2613. inline TInt CreateContext(CGraphicsContext*& aGc);
  2614. __declspec(dllexport) TDisplayMode DisplayMode() const;
  2615. __declspec(dllexport) TSize SizeInPixels() const;
  2616. __declspec(dllexport) TBool RectCompare(const TRect& aSourceRect,const CFbsDevice& aDevice,const TRect& aDeviceRect) const;
  2617. __declspec(dllexport) TInt AddFile(const TDesC& aName,TInt& aId);
  2618. __declspec(dllexport) void RemoveFile(TInt aId=0);
  2619. __declspec(dllexport) virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  2620. __declspec(dllexport) virtual TInt GetNearestFontInPixels(CFont*& aFont, const TFontSpec& aFontSpec);
  2621. __declspec(dllexport) virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  2622. __declspec(dllexport) virtual TInt GetNearestFontToDesignHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec);
  2623. __declspec(dllexport) virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2624. __declspec(dllexport) virtual TInt GetNearestFontToMaxHeightInPixels(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2625. __declspec(dllexport) TInt GetFontById(CFont*& aFont,TUid aFileId,const TAlgStyle& aStyle);
  2626. inline TInt GetNearestFontInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec);
  2627. inline TInt GetNearestFontInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec);
  2628. inline TInt GetNearestFontToDesignHeightInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec);
  2629. inline TInt GetNearestFontToDesignHeightInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec);
  2630. inline TInt GetNearestFontToMaxHeightInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2631. inline TInt GetNearestFontToMaxHeightInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2632. inline TInt GetFontById(CFbsFont*& aFont,TUid aFileId,const TAlgStyle& aStyle);
  2633. __declspec(dllexport) void ReleaseFont(CFont* aFont);
  2634. __declspec(dllexport) TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const;
  2635. __declspec(dllexport) TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const;
  2636. __declspec(dllexport) TInt NumTypefaces() const;
  2637. __declspec(dllexport) void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const;
  2638. __declspec(dllexport) TInt SetCustomPalette(const CPalette* aPalette);
  2639. inline CGraphicsAccelerator* GraphicsAccelerator() const;
  2640. inline CFbsBitGc::TGraphicsOrientation Orientation() const;
  2641. __declspec(dllexport) static TDisplayMode DisplayMode16M();
  2642. __declspec(dllexport) TInt SetScalingFactor(const TPoint& aOrigin,
  2643.    TInt aFactorX, TInt aFactorY,
  2644.    TInt aDivisorX, TInt aDivisorY);
  2645. __declspec(dllexport) void GetDrawRect(TRect& aRect) const;
  2646. protected:
  2647. CFbsDevice();
  2648. virtual void DrawingBegin(TBool = EFalse) {}
  2649. virtual void DrawingEnd(TBool = EFalse) {}
  2650. virtual void SetBits() {}
  2651. virtual void CancelSprite() const {}
  2652. virtual TSpriteBase* HideSprite() const {return(0 );}
  2653. virtual TSpriteBase* HideSprite(const TRect&,const TRegion*) const {return(0 );}
  2654. virtual void ShowSprite(TSpriteBase*) const {}
  2655. virtual void ShowSprite(TSpriteBase*,const TRect&,const TRegion*) const {}
  2656. TInt GetNearestFbsFont(CFbsFont*& aFont,const TFontSpec& aFontSpec);
  2657. void DoGetScanLine(TDes8& aBuf,const TPoint& aPixel,TInt aLength,TDisplayMode aDispMode);
  2658. void ReadLineDiffMode(TInt,TInt,TInt,TAny*,TDisplayMode) const;
  2659. void TruncateRect(TRect& aRect);
  2660. TBool SetOrientation(CFbsBitGc::TGraphicsOrientation aOrientation);
  2661. void DrawingBegin(const CFbsBitmap* aBitmap,TBool aAlways);
  2662. void DrawingEnd(const CFbsBitmap* aBitmap,TBool aAlways);
  2663. protected:
  2664. CFbsDrawDevice* iDrawDevice;
  2665. RFbsSession* iFbs;
  2666. CFbsTypefaceStore* iTypefaceStore;
  2667. TBool iLockHeap;
  2668. TBool iScreenDevice;
  2669. TUint8* iBitBltMaskedBuffer;
  2670. CGraphicsAccelerator* iGraphicsAccelerator;
  2671. CFbsBitGc::TGraphicsOrientation iOrientation;
  2672. };
  2673. #line 131
  2674. class CFbsScreenDevice : public CFbsDevice
  2675. {
  2676. public:
  2677. __declspec(dllexport) static CFbsScreenDevice* NewL(const TDesC& aLibname,TDisplayMode aDispMode);
  2678. __declspec(dllexport) static CFbsScreenDevice* NewL(const TDesC& aLibname,TDisplayMode aDispMode, TRgb aWhite);
  2679. __declspec(dllexport) static CFbsScreenDevice* NewL(TInt aScreenNo, TDisplayMode aDispMode);
  2680. __declspec(dllexport) virtual ~CFbsScreenDevice();
  2681. __declspec(dllexport) void GetScanLine(TDes8& aBuf,const TPoint& aStartPixel,TInt aLength,TDisplayMode aDispMode) const;
  2682. __declspec(dllexport) void GetPixel(TRgb& aColor,const TPoint& aPixel) const;
  2683. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixels) const;
  2684. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixels) const;
  2685. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwips) const;
  2686. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwips) const;
  2687. __declspec(dllexport) void SetAutoUpdate(TBool aValue);
  2688. __declspec(dllexport) void DrawSpriteBegin();
  2689. __declspec(dllexport) void DrawSpriteEnd();
  2690. __declspec(dllexport) void CancelSprite() const;
  2691. __declspec(dllexport) TSpriteBase* HideSprite() const;
  2692. __declspec(dllexport) TSpriteBase* HideSprite(const TRect& aRect,const TRegion* aClippingRegion) const;
  2693. __declspec(dllexport) void ShowSprite(TSpriteBase* aSprite) const;
  2694. __declspec(dllexport) void ShowSprite(TSpriteBase* aSprite,const TRect& aRect,const TRegion* aClippingRegion) const;
  2695. __declspec(dllexport) void ChangeScreenDevice(CFbsScreenDevice* aOldDevice);
  2696. __declspec(dllexport) void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const;
  2697. __declspec(dllexport) void SetPalette(CPalette* aPalette);
  2698. __declspec(dllexport) TInt GetPalette(CPalette*& aPalette) const;
  2699. __declspec(dllexport) void Update();
  2700. __declspec(dllexport) void Update(const TRegion& aRegion);
  2701. __declspec(dllexport) TSize SizeInTwips() const;
  2702. __declspec(dllexport) RHardwareBitmap HardwareBitmap();
  2703. private:
  2704. CFbsScreenDevice(TInt aScreenNo);
  2705. void ConstructL(TInt aScreenNo, TDisplayMode aDispMode);
  2706. private:
  2707. TSpriteBase* iSprite;
  2708. TBool iSpriteDraw;
  2709.     TInt iScreenNo;
  2710. };
  2711. #line 177
  2712. class CFbsBitmapDevice : public CFbsDevice
  2713. {
  2714. public:
  2715. __declspec(dllexport) static CFbsBitmapDevice* NewL(CFbsBitmap* aFbsBitmap);
  2716. __declspec(dllexport) static CFbsBitmapDevice* NewL(CFbsBitmap* aFbsBitmap,const TDesC& aLibname);
  2717. __declspec(dllexport) virtual ~CFbsBitmapDevice();
  2718. __declspec(dllexport) TInt Resize(const TSize& aSize);
  2719. __declspec(dllexport) virtual void GetScanLine(TDes8& aBuf,const TPoint& aStartPixel,TInt aLength,TDisplayMode iDispMode) const;
  2720. __declspec(dllexport) virtual void GetPixel(TRgb& aColor,const TPoint& aPixel) const;
  2721. __declspec(dllexport) virtual TInt HorizontalPixelsToTwips(TInt aPixels) const;
  2722. __declspec(dllexport) virtual TInt VerticalPixelsToTwips(TInt aPixels) const;
  2723. __declspec(dllexport) virtual TInt HorizontalTwipsToPixels(TInt aTwips) const;
  2724. __declspec(dllexport) virtual TInt VerticalTwipsToPixels(TInt aTwips) const;
  2725. __declspec(dllexport) virtual TSize SizeInTwips() const;
  2726. __declspec(dllexport) virtual void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const;
  2727. __declspec(dllexport) virtual void SetPalette(CPalette* aPalette);
  2728. __declspec(dllexport) virtual TInt GetPalette(CPalette*& aPalette) const;
  2729. __declspec(dllexport) virtual void DrawingBegin(TBool aAlways);
  2730. __declspec(dllexport) virtual void DrawingEnd(TBool aAlways);
  2731. __declspec(dllexport) TInt SwapWidthAndHeight();
  2732. private:
  2733. CFbsBitmapDevice();
  2734. virtual void SetBits();
  2735. void ConstructL(CFbsBitmap* aFbsBitmap);
  2736. void ConstructL(CFbsBitmap* aFbsBitmap,const TDesC& aLibname);
  2737. private:
  2738. CFbsBitGcBitmap* iFbsBmp;
  2739. };
  2740. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.inl" /* stack depth 6 */
  2741. #line 16
  2742. TInt CFbsDevice::CreateContext(CGraphicsContext*& aGc)
  2743. {
  2744. return CreateContext((CFbsBitGc*&)aGc);
  2745. }
  2746. #line 36
  2747. TInt CFbsDevice::GetNearestFontInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec)
  2748. {
  2749. return GetNearestFontToDesignHeightInTwips(aFont, aFontSpec);
  2750. }
  2751. #line 55
  2752. TInt CFbsDevice::GetNearestFontInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec)
  2753. {
  2754. return GetNearestFontToDesignHeightInPixels(aFont, aFontSpec);
  2755. }
  2756. #line 74
  2757. TInt CFbsDevice::GetNearestFontToDesignHeightInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec)
  2758. {
  2759. return GetNearestFontToDesignHeightInTwips((CFont*&)aFont, aFontSpec);
  2760. }
  2761. #line 92
  2762. TInt CFbsDevice::GetNearestFontToDesignHeightInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec)
  2763. {
  2764. return GetNearestFontToDesignHeightInPixels((CFont*&)aFont, aFontSpec);
  2765. }
  2766. #line 117
  2767. TInt CFbsDevice::GetNearestFontToMaxHeightInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight)
  2768. {
  2769. return GetNearestFontToMaxHeightInTwips((CFont*&)aFont, aFontSpec, aMaxHeight);
  2770. }
  2771. #line 142
  2772. TInt CFbsDevice::GetNearestFontToMaxHeightInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight)
  2773. {
  2774. return GetNearestFontToMaxHeightInPixels((CFont*&)aFont, aFontSpec, aMaxHeight);
  2775. }
  2776. #line 156
  2777. TInt CFbsDevice::GetFontById(CFbsFont*& aFont,TUid aFileId,const TAlgStyle& aStyle)
  2778. {
  2779. return GetFontById((CFont*&)aFont,aFileId,aStyle);
  2780. }
  2781. CGraphicsAccelerator* CFbsDevice::GraphicsAccelerator() const
  2782. {
  2783. return iGraphicsAccelerator;
  2784. }
  2785. CFbsBitGc::TGraphicsOrientation CFbsDevice::Orientation() const
  2786. {
  2787. return iOrientation;
  2788. }
  2789. #line 206 "C:\Symbian\9.1\S60_3rd\epoc32\include\bitdev.h" /* stack depth 5 */
  2790. #line 26 "C:\Symbian\9.1\S60_3rd\epoc32\include\w32std.h" /* stack depth 4 */
  2791. const static TLitC<sizeof(L"Wserv")/2> KWSERVThreadName={sizeof(L"Wserv")/2-1,L"Wserv"} ;
  2792. const static TLitC<sizeof(L"!Windowserver")/2> KWSERVServerName={sizeof(L"!Windowserver")/2-1,L"!Windowserver"} ;
  2793. class RWindowBase;
  2794. class RWindow;
  2795. class RWsBuffer;
  2796. class TSizeMode
  2797. {
  2798. public:
  2799. inline TSizeMode(){}
  2800. inline TSizeMode(TSize& aSize);
  2801. static inline TInt ScaledCord(TInt aOrigin,TInt aScale);
  2802. inline TPoint ScaledOrigin();
  2803. public:
  2804. CFbsBitGc::TGraphicsOrientation iRotation;
  2805. TPoint iOrigin;
  2806. TSize iScreenSize;
  2807. TSize iScreenTwipsSize;
  2808. TUint iAlternativeRotations;
  2809. TRect iPointerCursorArea;
  2810. TSize iScreenScale;
  2811. TDisplayMode iDefaultDisplayMode;
  2812. };
  2813. #line 79
  2814. enum TScreenModeEnforcement
  2815. {
  2816. ESizeEnforcementNone,
  2817. ESizeEnforcementPixelsAndRotation,
  2818. ESizeEnforcementPixelsTwipsAndRotation,
  2819. };
  2820. struct TPixelsAndRotation
  2821. #line 112
  2822. {
  2823. TSize iPixelSize;
  2824. CFbsBitGc::TGraphicsOrientation iRotation;
  2825. };
  2826. struct TPixelsTwipsAndRotation
  2827. #line 128
  2828. {
  2829. TSize iPixelSize;
  2830. TSize iTwipsSize;
  2831. CFbsBitGc::TGraphicsOrientation iRotation;
  2832. };
  2833. #line 144
  2834. enum {
  2835. KLogMessageLength=0x80
  2836. };
  2837. typedef TBuf<KLogMessageLength> TLogMessageText;
  2838. #line 165
  2839. enum
  2840. {
  2841. KPasswordWindowGroupPriority=1000
  2842. };
  2843. #line 185
  2844. enum {
  2845. KOrdinalPositionSwitchToOwningWindow=0x80000000
  2846. };
  2847. #line 201
  2848. enum TCornerType
  2849. {
  2850. EWindowCornerSquare,
  2851. EWindowCorner1,
  2852. EWindowCorner2,
  2853. EWindowCorner3,
  2854. EWindowCorner5,
  2855. EWindowCornerRegion,
  2856. ECornerTypeMask=0xFFFF
  2857. };
  2858. #line 240
  2859. enum TCornerFlags
  2860. {
  2861. EWindowCornerNotTL=0x10000,
  2862. EWindowCornerNotTR=0x20000,
  2863. EWindowCornerNotBL=0x40000,
  2864. EWindowCornerNotBR=0x80000,
  2865. };
  2866. enum TWindowBackupType
  2867. {
  2868. EWindowBackupAreaBehind=0x0001,
  2869. EWindowBackupFullScreen=0x0002,
  2870. };
  2871. #line 281
  2872. enum TEventCode
  2873. {
  2874. EEventNull,
  2875. #line 298
  2876. EEventKey,
  2877. EEventKeyUp,
  2878. EEventKeyDown,
  2879. EEventModifiersChanged,
  2880. #line 325
  2881. EEventPointer,
  2882. EEventPointerEnter,
  2883. EEventPointerExit,
  2884. EEventPointerBufferReady,
  2885. EEventDragDrop,
  2886. EEventFocusLost,
  2887. EEventFocusGained,
  2888. EEventSwitchOn,
  2889. #line 370
  2890. EEventPassword,
  2891. EEventWindowGroupsChanged,
  2892. #line 386
  2893. EEventErrorMessage,
  2894. EEventMessageReady,
  2895. EEventMarkInvalid,
  2896. #line 401
  2897. EEventSwitchOff,
  2898. EEventKeySwitchOff,
  2899. EEventScreenDeviceChanged,
  2900. EEventFocusGroupChanged,
  2901. EEventCaseOpened,
  2902. #line 427
  2903. EEventCaseClosed,
  2904. EEventWindowGroupListChanged,
  2905. EEventWindowVisibilityChanged,
  2906. EEventKeyRepeat=100,
  2907. EEventDirectScreenAccessBegin=200,
  2908. EEventDirectScreenAccessEnd,
  2909. EEventHeartbeatTimerStateChange,
  2910. #line 472
  2911. EEventUser=1000,
  2912. };
  2913. enum THotKey
  2914. {
  2915. EHotKeyEnableLogging,
  2916. EHotKeyDisableLogging,
  2917. EHotKeyStateDump,
  2918. EHotKeyOfDeath,
  2919. EHotKeyShutDown,
  2920. EHotKeyHeapDump,
  2921. EHotKeyIncContrast,
  2922. EHotKeyDecContrast,
  2923. EHotKeyOff,
  2924. EHotKeyBacklightOn,
  2925. EHotKeyBacklightOff,
  2926. EHotKeyBacklightToggle,
  2927. EHotKeyScreenDimension0,
  2928. EHotKeyScreenDimension1,
  2929. EHotKeyScreenDimension2,
  2930. EHotKeyScreenDimension3,
  2931. #line 569
  2932. EHotKeyCycleDisplaySize,
  2933. #line 583
  2934. EHotKeyCycleOrientation,
  2935. EHotKeyIncBrightness,
  2936. EHotKeyDecBrightness,
  2937. EHotKeyCycleFocusScreen,
  2938. EHotKeyFirstKeyType=EHotKeyEnableLogging,
  2939. EHotKeyLastKeyType=EHotKeyCycleFocusScreen,
  2940. };
  2941. enum TPasswordMode
  2942. {
  2943. EPasswordCancel,
  2944. EPasswordNone,
  2945. EPasswordOnceADay,
  2946. EPasswordAlways,
  2947. EPasswordAlwaysTriggerNow,
  2948. EPasswordOnceADayTriggerNow,
  2949. };
  2950. struct TTextCursor
  2951. #line 662
  2952.     {
  2953. #line 675
  2954. enum ENamedCursors
  2955. {
  2956. ETypeNone,
  2957. ETypeRectangle,
  2958. ETypeHollowRectangle,
  2959. ETypeFirst=ETypeRectangle,
  2960. ETypeLast=ETypeHollowRectangle,
  2961. ETypeLastBasic = 1000,
  2962. };
  2963. typedef TInt EType;
  2964. enum EFlags
  2965. {
  2966. EFlagNoFlash = 0x00000001,
  2967. EFlagClipHorizontal = 0x00000002,
  2968. EFlagClipVertical = 0x00000004,
  2969. EUserFlags = 0x0000FFFF,
  2970. EFlagClipped = 0x00010000,
  2971. EPrivateFlags = 0xFFFF0000,
  2972. };
  2973. TInt iType;
  2974.     TInt iHeight;
  2975.     TInt iAscent;
  2976.     TInt iWidth;
  2977.     TUint iFlags;
  2978. TRgb iColor;
  2979.     };
  2980. #line 762
  2981. enum TSpriteFlags
  2982. {
  2983. ESpriteFlash=0x1,
  2984. #line 782
  2985. ESpriteNoChildClip=0x2,
  2986. ESpriteNoShadows=0x4,
  2987. ESpriteNonSystemFlags=0x0000FFFF,
  2988. ESpriteSystemFlags=   0xFFFF0000,
  2989. ESpritePointer=0x10000,
  2990. ESpriteOOM=0x20000,
  2991. ESpriteDisabled=0x40000,
  2992. ESpriteActive=0x80000,
  2993. };
  2994. struct TSpriteMember
  2995. {
  2996. CFbsBitmap *iBitmap;
  2997. #line 832
  2998. CFbsBitmap *iMaskBitmap;
  2999. TBool iInvertMask;
  3000. CGraphicsContext::TDrawMode iDrawMode;
  3001. TPoint iOffset;
  3002. TTimeIntervalMicroSeconds32 iInterval;
  3003. };
  3004. #line 860
  3005. enum TEventControl
  3006. {
  3007. EEventControlAlways,
  3008. EEventControlOnlyWithKeyboardFocus,
  3009. EEventControlOnlyWhenVisible
  3010. };
  3011. #line 882
  3012. enum TPointerFilter
  3013. {
  3014. EPointerFilterEnterExit=0x1,
  3015. EPointerFilterMove=0x2,
  3016. EPointerFilterDrag=0x4,
  3017. EPointerGenerateSimulatedMove=0x8,
  3018. #line 907
  3019. EPointerMoveEvents=EPointerFilterMove|EPointerGenerateSimulatedMove,
  3020. };
  3021. struct TPointerEvent
  3022. {
  3023. enum TType
  3024. {
  3025. EButton1Down,
  3026. EButton1Up,
  3027. EButton2Down,
  3028. EButton2Up,
  3029. EButton3Down,
  3030. EButton3Up,
  3031. EDrag,
  3032. EMove,
  3033. EButtonRepeat,
  3034. ESwitchOn,
  3035. };
  3036. TType iType;
  3037. TUint iModifiers;
  3038. TPoint iPosition;
  3039. TPoint iParentPosition;
  3040. };
  3041. struct TKeyEvent
  3042. #line 989
  3043. {
  3044. TUint iCode;
  3045. TInt iScanCode;
  3046. TUint iModifiers;
  3047. TInt iRepeats;
  3048. };
  3049. struct TModifiersChangedEvent
  3050. {
  3051. TUint iChangedModifiers;
  3052. TUint iModifiers;
  3053. };
  3054. struct TWsVisibilityChangedEvent
  3055. {
  3056. enum
  3057. {
  3058. ECanBeSeen = 0x01,
  3059. ECantBeSeen = 0x02,
  3060. };
  3061. enum
  3062. {
  3063. EPartiallyVisible = 0x01,
  3064. ENotVisible = 0x02,
  3065. EFullyVisible = 0x04,
  3066. };
  3067. TUint iFlags;
  3068. };
  3069. struct TWsErrorMessage
  3070. {
  3071. enum TErrorCategory
  3072. {
  3073. EDrawingRegion,
  3074. EBackLight,
  3075. ELogging,
  3076. EContrast,
  3077. };
  3078. TErrorCategory iErrorCategory;
  3079. TUint iError;
  3080. };
  3081. class TWsRedrawEvent
  3082. #line 1096
  3083. {
  3084. public:
  3085. inline TUint Handle() const;
  3086. inline TRect Rect() const;
  3087. public:
  3088. void SetHandle(TUint aHandle);
  3089. void SetRect(TRect aRect);
  3090. protected:
  3091. TUint iHandle;
  3092. TRect iRect;
  3093. };
  3094. class TWsPriorityKeyEvent
  3095. {
  3096. public:
  3097. inline TKeyEvent *Key() const;
  3098. inline TUint Handle() const;
  3099. inline void SetHandle(TUint aHandle);
  3100. protected:
  3101. TUint iHandle;
  3102. TUint8 iEventData[sizeof(TKeyEvent)];
  3103. };
  3104. class TWsEvent
  3105. #line 1143
  3106. {
  3107. public:
  3108. enum
  3109. {
  3110. EWsEventDataSize=sizeof(TPointerEvent)+8
  3111. };
  3112. public:
  3113. inline TPointerEvent* Pointer() const;
  3114. inline TKeyEvent* Key() const;
  3115. inline TModifiersChangedEvent* ModifiersChanged() const;
  3116. inline TWsVisibilityChangedEvent* VisibilityChanged();
  3117. inline const TWsVisibilityChangedEvent* VisibilityChanged() const;
  3118. inline TWsErrorMessage* ErrorMessage() const;
  3119. inline TUint8* EventData() const;
  3120. inline TInt Type() const;
  3121. inline TUint Handle() const;
  3122. inline TTime Time() const;
  3123. inline void SetType(TInt aType);
  3124. inline void SetHandle(TUint aHandle);
  3125. inline void SetTimeNow();
  3126. inline TInt* Int() const;
  3127. protected:
  3128. TInt iType;
  3129. TUint iHandle;
  3130. TTime iTime;
  3131. TUint8 iEventData[EWsEventDataSize];
  3132. };
  3133. class RWsPointerCursor;
  3134. #line 1192
  3135. enum TPointerCursorMode
  3136. {
  3137. EPointerCursorNone,
  3138. EPointerCursorFixed,
  3139. EPointerCursorNormal,
  3140. EPointerCursorWindow,
  3141. EPointerCursorFirstMode=EPointerCursorNone,
  3142. EPointerCursorLastMode=EPointerCursorWindow,
  3143. };
  3144. #line 1229
  3145. enum TLongCaptureFlags
  3146. {
  3147. ELongCaptureShortEventImmediately=0x01,
  3148. ELongCaptureRepeatEvents=0x02,
  3149. ELongCaptureNormal=ELongCaptureShortEventImmediately,
  3150. ELongCaptureWaitShort=0,
  3151. };
  3152. class TIpcArgs;
  3153. class TReadDescriptorType;
  3154. class TWriteDescriptorType;
  3155. class CWindowGc;
  3156. class MWsClientClass
  3157. {
  3158. friend class CWindowGc;
  3159. public:
  3160. MWsClientClass();
  3161. MWsClientClass(RWsBuffer *aBuffer);
  3162. inline TInt WsHandle() const;
  3163. protected:
  3164. void Write(const TAny *aData, TInt aLength,const TAny *aData2, TInt aLength2,TUint aOpcode) const;
  3165. void Write(const TAny *aBuf, TInt aBufLen,TUint aOpcode) const;
  3166. void Write(TUint aOpcode) const;
  3167. void WriteInt(TInt aInt, TUint aOpcode) const;
  3168. void WriteRect(const TRect &aRect, TUint aOpcode) const;
  3169. void WritePoint(const TPoint &aPoint, TUint aOpcode) const;
  3170. void WriteSize(const TSize &aSize, TUint aOpcode) const;
  3171. TInt WriteReply(TUint aOpcode,const TIpcArgs* aIpcArgs=0 ) const;
  3172. TInt WriteReplyInt(TInt aInt, TUint aOpcode,const TIpcArgs* aIpcArgs=0 ) const;
  3173. TInt WriteReply(const TAny *aBuf, TInt aBufLen,TUint aOpcode,const TIpcArgs* aIpcArgs=0 ) const;
  3174. TInt WriteReply(const TAny *aBuf, TInt aBufLen,const TAny *aBuf2, TInt aBuflen2,TUint aOpcode,const TIpcArgs* aIpcArgs=0 ) const;
  3175. TInt WriteReplyP(const TWriteDescriptorType& aReplyPackage,TUint aOpcode) const;
  3176. TInt WriteReplyIntP(TInt aInt, const TWriteDescriptorType& aReplyPackage,TUint aOpcode) const;
  3177. TInt WriteReplyP(const TAny *aBuf, TInt aBufLen, const TWriteDescriptorType& aReplyPackage,TUint aOpcode) const;
  3178. TInt WriteReplyP(const TAny *aBuf, TInt aBufLen,const TAny *aBuf2, TInt aBuflen2, const TWriteDescriptorType& aReplyPackage,TUint aOpcode) const;
  3179. TInt WriteReplyByProvidingRemoteReadAccess(const TAny* aBuf, TInt aBufLen,const TReadDescriptorType& aRemoteReadBuffer,TUint aOpcode) const;
  3180. void AddToBitmapArray(const TInt aBitmapHandle)const;
  3181. protected:
  3182. TInt32 iWsHandle;
  3183. RWsBuffer *iBuffer;
  3184. };
  3185. class RWindowTreeNode;
  3186. class CWsScreenDevice;
  3187. class CWsBitmap;
  3188. class RAnimDll;
  3189. class RWsSpriteBase;
  3190. class RDirectScreenAccess;
  3191. class RSoundPlugIn;
  3192. class RWsSession : public MWsClientClass, public RSessionBase
  3193. #line 1339
  3194. {
  3195. friend class RWsBuffer;
  3196. friend class RWindowTreeNode;
  3197. friend class CWsScreenDevice;
  3198. friend class CWsBitmap;
  3199. friend class RAnimDll;
  3200. friend class RWsSpriteBase;
  3201. friend class RDirectScreenAccess;
  3202. friend class RSoundPlugIn;
  3203. public:
  3204. #line 1357
  3205. enum TComputeMode
  3206. {
  3207. EPriorityControlDisabled,
  3208. EPriorityControlComputeOn,
  3209. EPriorityControlComputeOff
  3210. };
  3211. enum {ESystemInfoArraySize=16};
  3212. enum TLoggingCommand
  3213. {
  3214. ELoggingEnable,
  3215. ELoggingDisable,
  3216. ELoggingStatusDump,
  3217. ELoggingHeapDump,
  3218. };
  3219. struct TWindowGroupChainInfo
  3220. {
  3221. TInt iId;
  3222. TInt iParentId;
  3223. };
  3224. struct SSystemInfo
  3225. {
  3226. TInt iInfo[ESystemInfoArraySize];
  3227. };
  3228. enum TCustomTextCursorAlignment
  3229. {
  3230. ECustomTextCursorAlignTop,
  3231. ECustomTextCursorAlignBaseline,
  3232. ECustomTextCursorAlignBottom
  3233. };
  3234. public:
  3235. __declspec(dllexport) RWsSession();
  3236. __declspec(dllexport) TInt Connect();
  3237. __declspec(dllexport) TInt Connect(RFs& aFileServer);
  3238. __declspec(dllexport) void Close();
  3239. __declspec(dllexport) TVersion Version();
  3240. __declspec(dllexport) TInt SetHotKey(THotKey aType, TUint aKeyCode, TUint aModifierMask, TUint aModifier);
  3241. __declspec(dllexport) TInt ClearHotKeys(THotKey aType);
  3242. __declspec(dllexport) TInt RestoreDefaultHotKey(THotKey aType);
  3243. __declspec(dllexport) void EventReady(TRequestStatus *aStat);
  3244. __declspec(dllexport) void EventReadyCancel();
  3245. __declspec(dllexport) void GetEvent(TWsEvent &aEvent);
  3246. __declspec(dllexport) void PurgePointerEvents();
  3247. __declspec(dllexport) void RedrawReady(TRequestStatus *aStat);
  3248. __declspec(dllexport) void RedrawReadyCancel();
  3249. __declspec(dllexport) void GetRedraw(TWsRedrawEvent &aEvent);
  3250. __declspec(dllexport) void PriorityKeyReady(TRequestStatus *aStat);
  3251. __declspec(dllexport) void PriorityKeyReadyCancel();
  3252. __declspec(dllexport) void GetPriorityKey(TWsPriorityKeyEvent &aEvent);
  3253. __declspec(dllexport) void Flush();
  3254. __declspec(dllexport) TBool SetAutoFlush(TBool aState);
  3255. __declspec(dllexport) TInt SetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitialTime, const TTimeIntervalMicroSeconds32 &aTime);
  3256. __declspec(dllexport) void GetKeyboardRepeatRate(TTimeIntervalMicroSeconds32 &aInitialTime, TTimeIntervalMicroSeconds32 &aTime);
  3257. __declspec(dllexport) void GetDoubleClickSettings(TTimeIntervalMicroSeconds32 &aInterval, TInt &aDistance);
  3258. __declspec(dllexport) TInt SetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval, TInt aDistance);
  3259. __declspec(dllexport) TInt NumWindowGroups() const;
  3260. __declspec(dllexport) TInt WindowGroupList(CArrayFixFlat<TInt> *aWindowList);
  3261. __declspec(dllexport) TInt WindowGroupList(RArray<TWindowGroupChainInfo> * aWindowList);
  3262. __declspec(dllexport) TInt NumWindowGroups(TInt aPriority) const;
  3263. __declspec(dllexport) TInt WindowGroupList(TInt aPriority, CArrayFixFlat<TInt> *aWindowList);
  3264. __declspec(dllexport) TInt WindowGroupList(TInt aPriority, RArray<TWindowGroupChainInfo> * aWindowList);
  3265. __declspec(dllexport) TInt GetFocusWindowGroup();
  3266. __declspec(dllexport) TInt GetDefaultOwningWindow();
  3267. __declspec(dllexport) TInt SetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition);
  3268. __declspec(dllexport) TInt GetWindowGroupClientThreadId(TInt aIdentifier, TThreadId &aThreadId);
  3269. __declspec(dllexport) TInt GetWindowGroupHandle(TInt aIdentifier);
  3270. __declspec(dllexport) TInt GetWindowGroupOrdinalPriority(TInt aIdentifier);
  3271. __declspec(dllexport) TInt SendEventToWindowGroup(TInt aIdentifier, const TWsEvent &aEvent);
  3272. __declspec(dllexport) TInt SendEventToAllWindowGroups(const TWsEvent &aEvent);
  3273. __declspec(dllexport) TInt SendEventToAllWindowGroups(TInt aPriority, const TWsEvent &aEvent);
  3274. __declspec(dllexport) TInt SendEventToOneWindowGroupsPerClient(const TWsEvent &aEvent);
  3275. __declspec(dllexport) TInt GetWindowGroupNameFromIdentifier(TInt aIdentifier, TDes &aWindowName);
  3276. __declspec(dllexport) TInt FindWindowGroupIdentifier(TInt aPreviousIdentifier,const TDesC& aMatch,TInt aOffset=0);
  3277. __declspec(dllexport) TInt FindWindowGroupIdentifier(TInt aPreviousIdentifier,TThreadId aThreadId);
  3278. __declspec(dllexport) TInt SendMessageToWindowGroup(TInt aIdentifier, TUid aUid, const TDesC8 &aParams);
  3279. __declspec(dllexport) TInt SendMessageToAllWindowGroups(TUid aUid, const TDesC8& aParams);
  3280. __declspec(dllexport) TInt SendMessageToAllWindowGroups(TInt aPriority, TUid aUid, const TDesC8& aParams);
  3281. __declspec(dllexport) TInt FetchMessage(TUid &aUid, TPtr8 &aParams, const TWsEvent& aMessageEvent);
  3282. __declspec(dllexport) void SetShadowVector(const TPoint &aVector);
  3283. __declspec(dllexport) TPoint ShadowVector() const;
  3284. __declspec(dllexport) void SetBackgroundColor(TRgb aColor);
  3285. __declspec(dllexport) TRgb GetBackgroundColor() const;
  3286. __declspec(dllexport) TInt SetSystemPointerCursor(const RWsPointerCursor &aPointerCursor,TInt aCursorNumber);