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

Symbian

开发平台:

C/C++

  1. ELineBreakClasses
  2. };
  3. __declspec(dllexport) virtual TUint LineBreakClass(TUint aCode,
  4. TUint& aRangeStart, TUint& aRangeEnd) const;
  5. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aPrevClass, TUint aNextClass,
  6. TBool aHaveSpaces) const;
  7. __declspec(dllexport) virtual TBool GetLineBreakInContext(const TDesC16& aText,
  8. TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,
  9. TInt& aBreakPos) const;
  10. __declspec(dllexport) virtual TBool IsHangingCharacter(TUint aChar) const;
  11. __declspec(dllexport) TBool GetLineBreak(const TDesC16& aText,
  12. TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,
  13. MContingentLineBreaker* aCbDelegate,
  14. TInt& aBreakPos, TInt& aBreakPosAfterSpaces) const;
  15. __declspec(dllexport) TBool GetLineBreakL(const TDesC16& aText,
  16. TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,
  17. MContingentLineBreakerL* aCbDelegate,
  18. TInt& aBreakPos, TInt& aBreakPosAfterSpaces) const;
  19. __declspec(dllexport) virtual void* ExtendedInterface(TUid& aUid) const;
  20. };
  21. class MContingentLineBreaker
  22. {
  23. public:
  24. #line 171
  25. virtual TBool IsLegalBreakBefore(TInt aTextPosition, TInt aPrecedingClass,
  26. TBool aHasSpaces) = 0;
  27. #line 181
  28. virtual TBool IsLegalBreakAfter(TInt aTextPosition, TInt aFollowingClass,
  29. TBool aHasSpaces) = 0;
  30. };
  31. class MContingentLineBreakerL
  32. {
  33. public:
  34. #line 205
  35. virtual TBool IsLegalBreakBeforeL(TInt aTextPosition, TInt aPrecedingClass,
  36. TBool aHasSpaces) = 0;
  37. #line 215
  38. virtual TBool IsLegalBreakAfterL(TInt aTextPosition, TInt aFollowingClass,
  39. TBool aHasSpaces) = 0;
  40. };
  41. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\tagma.h" /* stack depth 8 */
  42. class TTmLineInfo;
  43. class CTmTextImp;
  44. class RWindow;
  45. class RWsSession;
  46. class RParagraphStyleInfo;
  47. class CStyleList;
  48. class TTmDocPosSpec;
  49. class TTmDocPos;
  50. class TTmCharFormatMask
  51. {
  52. public:
  53. enum TAttrib
  54. {
  55. EFontName = 0x1,
  56. EFontCoverage = 0x2,
  57. EBold = 0x4,
  58. EItalic = 0x8,
  59. ESerif = 0x10,
  60. EMonoWidth = 0x20,
  61. EHeight = 0x40,
  62. EPrintPosition = 0x80,
  63. ETextColor = 0x100,
  64. EBackgroundColor = 0x200,
  65. EBackground = 0x400,
  66. EUnderline = 0x800,
  67. EStrikethrough = 0x1000,
  68. EShadow = 0x2000,
  69. EUserDefinedEffects = 0x4000,
  70. ELanguage = 0x8000,
  71. EPictureAlignment = 0x10000
  72. };
  73. inline TTmCharFormatMask();
  74. __declspec(dllexport) TTmCharFormatMask(const TCharFormatMask& aMask);
  75. __declspec(dllexport) void GetTCharFormatMask(TCharFormatMask& aMask) const;
  76. inline void Clear(TAttrib aAttrib);
  77. inline void Set(TAttrib aAttrib);
  78. inline TBool IsSet(TAttrib aAttrib);
  79. TUint iFlags;
  80. };
  81. #line 81
  82. class TTmCharFormat
  83. {
  84. public:
  85. enum
  86. {
  87. EBackground = 1,
  88. ERounded = 2,
  89. EUnderline = 4,
  90. EStrikethrough = 8,
  91. EShadow = 16,
  92. EUserDefinedMask = 0xFF000000,
  93. EUserDefinedShift = 24,
  94. ENoMatchesIndicator = 0x4000000,
  95. ECustomDrawEffectIsExternallyDefined = 0x80000000
  96. };
  97. enum TPictureAlignment
  98. {
  99. EPictureAlignBaseline,
  100. EPictureAlignTop,
  101. EPictureAlignBottom,
  102. EPictureAlignCenter
  103. };
  104. __declspec(dllexport) TTmCharFormat();
  105. __declspec(dllexport) TTmCharFormat(const TDesC& aFontName,TInt aFontHeight);
  106. __declspec(dllexport) void operator=(const TCharFormat& aFormat);
  107. inline TTmCharFormat(const TCharFormat& aFormat);
  108. __declspec(dllexport) void GetTCharFormat(TCharFormat& aFormat) const;
  109. __declspec(dllexport) TBool operator==(const TTmCharFormat& aFormat) const;
  110. inline TBool operator!=(const TTmCharFormat& aFormat) const;
  111. TOpenFontSpec iFontSpec;
  112. TLogicalRgb iTextColor;
  113. TLogicalRgb iBackgroundColor;
  114. TUint iEffects;
  115. TUint iLanguage;
  116. TPictureAlignment iPictureAlignment;
  117. TUint iTag;
  118. };
  119. class TTmTab
  120. {
  121. public:
  122. enum TType
  123. {
  124. EStandardTab,
  125. ECenterTab,
  126. EReverseTab
  127. };
  128. inline TTmTab();
  129. inline TTmTab(const TTabStop& aTab);
  130. __declspec(dllexport) void operator=(const TTabStop& aTab);
  131. __declspec(dllexport) void GetTTabStop(TTabStop& aTab) const;
  132. __declspec(dllexport) TBool operator==(const TTmTab& aTab) const;
  133. inline TBool operator!=(const TTmTab& aTab) const;
  134. TInt iPosition;
  135. TType iType;
  136. };
  137. class TTmBullet
  138. {
  139. public:
  140. enum TStyle
  141. {
  142. EBulletStyle,
  143. EArabicNumberStyle,
  144. ESmallRomanNumberStyle,
  145. ECapitalRomanNumberStyle,
  146. ESmallLetterStyle,
  147. ECapitalLetterStyle
  148. };
  149.   enum TAlignment
  150. {
  151. ELeftAlign,
  152. ECenterAlign,
  153. ERightAlign
  154. };
  155. __declspec(dllexport) TTmBullet();
  156. __declspec(dllexport) void operator=(const TBullet& aBullet);
  157. inline TTmBullet(const TBullet& aBullet);
  158. __declspec(dllexport) void GetTBullet(TBullet& aBullet) const;
  159. __declspec(dllexport) TBool operator==(const TTmBullet& aBullet) const;
  160. inline TBool operator!=(const TTmBullet& aBullet) const;
  161. TChar iCharacterCode;
  162. TOpenFontSpec iFontSpec;
  163. TBool iHangingIndent;
  164. TLogicalRgb iColor;
  165. TStyle iStyle;
  166. TInt iStartNumber;
  167. TAlignment iAlignment;
  168. };
  169. class TTmParBorder
  170. {
  171. public:
  172. enum TStyle
  173. {
  174. ESolidStyle,
  175. EDoubleStyle,
  176. EDotStyle,
  177. EDashStyle,
  178. EDotDashStyle,
  179. EDotDotDashStyle
  180. };
  181. __declspec(dllexport) TTmParBorder();
  182. __declspec(dllexport) void operator=(const TParaBorder& aBorder);
  183. inline TTmParBorder(const TParaBorder& aBorder);
  184. __declspec(dllexport) void GetTParaBorder(TParaBorder& aBorder) const;
  185. __declspec(dllexport) TBool operator==(const TTmParBorder& aBorder) const;
  186. inline TBool operator!=(const TTmParBorder& aBorder) const;
  187. TStyle iStyle;
  188. TInt iWeight;
  189. TLogicalRgb iColor;
  190. TBool iAutoColor;
  191. };
  192. class TTmParFormatMask
  193. {
  194. public:
  195. enum TAttrib
  196. {
  197. EAlignment = 0x1,
  198. EDirection = 0x2,
  199. EKeepTogether = 0x4,
  200. EKeepWithNext = 0x8,
  201. EStartNewPage = 0x10,
  202. EWidowOrphan = 0x20,
  203. ENoWrap = 0x40,
  204. EExactLineSpacing = 0x80,
  205. EPixelLineSpacing = 0x100,
  206. ELeadingMargin = 0x200,
  207. ETrailingMargin = 0x400,
  208. EFirstLineIndent = 0x800,
  209. ELineSpacing = 0x1000,
  210. ESpaceAbove = 0x2000,
  211. ESpaceBelow = 0x4000,
  212. ETabSize = 0x8000,
  213. EBorderMargin = 0x10000,
  214. ETabList = 0x20000,
  215. EBullet = 0x40000,
  216. EBorder = 0x80000
  217. };
  218. inline TTmParFormatMask();
  219. __declspec(dllexport) TTmParFormatMask(const TParaFormatMask& aMask);
  220. __declspec(dllexport) void GetTParaFormatMask(TParaFormatMask& aMask) const;
  221. inline void Clear(TAttrib aAttrib);
  222. inline void Set(TAttrib aAttrib);
  223. inline TBool IsSet(TAttrib aAttrib);
  224. TUint iFlags;
  225. };
  226. class RTmParFormat
  227. {
  228. public:
  229. enum TBorderIndex
  230. {
  231. ETopBorder = 0,
  232. EBottomBorder = 1,
  233. ELeadingBorder = 2,
  234. ETrailingBorder = 3,
  235. };
  236. enum
  237. {
  238. ERightToLeft = 1,
  239. EKeepTogether = 2,
  240. EKeepWithNext = 4,
  241. EStartNewPage = 8,
  242. EWidowOrphan = 16,
  243. ENoWrap = 32,
  244. EExactLineSpacing = 64,
  245. EPixelLineSpacing = 128,
  246. EDirectionalityFromText = 256
  247. };
  248. enum TAlignment
  249. {
  250. EAlignNormalBidirectional,
  251. EAlignNormal = EAlignNormalBidirectional,
  252. EAlignCenter,
  253. EAlignReverseBidirectional,
  254. EAlignReverse = EAlignReverseBidirectional,
  255. EAlignJustify,
  256. EAlignAbsoluteLeft,
  257. EAlignAbsoluteRight
  258. };
  259. __declspec(dllexport) RTmParFormat();
  260. __declspec(dllexport) void Close();
  261. inline ~RTmParFormat();
  262. __declspec(dllexport) void CopyL(const RTmParFormat& aFormat);
  263. __declspec(dllexport) void CopyL(const CParaFormat& aFormat);
  264. __declspec(dllexport) void GetCParaFormatL(CParaFormat& aFormat) const;
  265. __declspec(dllexport) TBool operator==(const RTmParFormat& aFormat) const;
  266. inline TBool operator!=(const RTmParFormat& aFormat) const;
  267. __declspec(dllexport) TInt Tabs() const;
  268. inline const TTmTab& Tab(TInt aIndex) const;
  269. inline const TTmBullet* Bullet() const;
  270. inline const TTmParBorder* Border(TBorderIndex aIndex) const;
  271. __declspec(dllexport) TBool HaveBorders() const;
  272. inline TBool RightToLeft() const;
  273. TAlignment iAlignment;
  274. TUint iFlags;
  275. TInt iLeadingMargin;
  276. TInt iTrailingMargin;
  277. TInt iFirstLineIndent;
  278. TInt iLineSpacing;
  279. TInt iSpaceAbove;
  280. TInt iSpaceBelow;
  281. TInt iTabSize;
  282. TInt iBorderMargin;
  283. TLogicalRgb iBackgroundColor;
  284. private:
  285. RTmParFormat(const RTmParFormat& aFormat);
  286. void operator=(const RTmParFormat& aFormat);
  287. RArray<TTmTab> * iTabList;
  288. TTmBullet* iBullet;
  289. TTmParBorder* iBorder[4];
  290. };
  291. #line 389
  292. class MTmCustom
  293. : public MLineBreaker
  294. {
  295. public:
  296. #line 403
  297. class TLineHeightParam
  298. {
  299. public:
  300. inline TLineHeightParam();
  301. TInt iMaxCharHeight;
  302. TInt iMaxCharDepth;
  303. TInt iMaxTopPictureHeight;
  304. TInt iMaxBottomPictureHeight;
  305. TInt iMaxCenterPictureHeight;
  306. TInt iFontMaxCharHeight;
  307. TInt iFontMaxCharDepth;
  308. TInt iFontMaxAscent;
  309. TInt iFontMaxDescent;
  310. TInt iDesiredLineHeight;
  311. TBool iExactLineHeight;
  312. };
  313. #line 438
  314. enum
  315. {
  316. EOpLineBreakClass,
  317. EClLineBreakClass,
  318. EQuLineBreakClass,
  319. EGlLineBreakClass,
  320. ENsLineBreakClass,
  321. EExLineBreakClass,
  322. ESyLineBreakClass,
  323. EIsLineBreakClass,
  324. EPrLineBreakClass,
  325. EPoLineBreakClass,
  326. ENuLineBreakClass,
  327. EAlLineBreakClass,
  328. EIdLineBreakClass,
  329. EInLineBreakClass,
  330. EHyLineBreakClass,
  331. EBaLineBreakClass,
  332. EBbLineBreakClass,
  333. EB2LineBreakClass,
  334. EZwLineBreakClass,
  335. ECmLineBreakClass,
  336. EBkLineBreakClass,
  337. ECrLineBreakClass,
  338. ELfLineBreakClass,
  339. ESgLineBreakClass,
  340. ECbLineBreakClass,
  341. ESpLineBreakClass,
  342. ESaLineBreakClass,
  343. EAiLineBreakClass,
  344. EXxLineBreakClass,
  345. ELineBreakClasses
  346. };
  347. __declspec(dllexport) virtual TRgb SystemColor(TUint aColorIndex,TRgb aDefaultColor) const;
  348. __declspec(dllexport) virtual TInt Stretch(TUint aChar) const;
  349. __declspec(dllexport) virtual TUint Map(TUint aChar) const;
  350. __declspec(dllexport) virtual void SetLineHeight(const TLineHeightParam& aParam,TInt& aAscent,TInt& aDescent) const;
  351. __declspec(dllexport) virtual void DrawBackground(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  352.  const TLogicalRgb& aBackground,TRect& aRectDrawn) const;
  353. __declspec(dllexport) virtual void DrawLineGraphics(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  354.    const TTmLineInfo& aLineInfo) const;
  355. __declspec(dllexport) virtual void DrawText(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aRect,
  356.    const TTmLineInfo& aLineInfo,const TTmCharFormat& aFormat,
  357.    const TDesC& aText,const TPoint& aTextOrigin,TInt aExtraPixels) const;
  358. __declspec(dllexport) virtual void DrawPicture(CGraphicsContext& aGc,
  359. const TPoint& aTextLayoutTopLeft, const TRect& aRect,
  360. MGraphicsDeviceMap& aDevice, const CPicture& aPicture) const;
  361. __declspec(dllexport) virtual TUint LineBreakClass(TUint aCode,TUint& aRangeStart,TUint& aRangeEnd) const;
  362. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aPrevClass,TUint aNextClass,TBool aHaveSpaces) const;
  363. __declspec(dllexport) virtual TBool GetLineBreakInContext(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,
  364.  TBool aForwards,TInt& aBreakPos) const;
  365. __declspec(dllexport) virtual TBool IsHangingCharacter(TUint aChar) const;
  366. __declspec(dllexport) void SetPenColor(CGraphicsContext& aGc,TLogicalRgb aColor) const;
  367. __declspec(dllexport) void SetBrushColor(CGraphicsContext& aGc,TLogicalRgb aColor) const;
  368. __declspec(dllexport) TRgb SystemColor(TLogicalRgb aColor) const;
  369. };
  370. const TUid KTmTextDrawExtId = {0x10203665};
  371. #line 564
  372. class MTmTextDrawExt
  373. {
  374. public:
  375. virtual void DrawLine(CGraphicsContext& aGc, const TPoint& aPt1, const TPoint& aPt2) const = 0;
  376. virtual void DrawText(CGraphicsContext& aGc, const TDesC& aText, const TPoint& aPt) const = 0;
  377. virtual void DrawRect(CGraphicsContext& aGc, const TRect& aRc) const = 0;
  378. };
  379. const TUid KFormLabelApiExtensionUid = { 0x101FD03C};
  380. #line 584
  381. class MTmSource: public MTmCustom
  382. {
  383. public:
  384. enum TLabelType
  385. {
  386. ENoLabel,
  387. EParLabel
  388. };
  389. enum
  390. {
  391. ELineBreakContext = 32
  392. };
  393. virtual MGraphicsDeviceMap& FormatDevice() const = 0;
  394. virtual MGraphicsDeviceMap& InterpretDevice() const = 0;
  395. virtual TInt DocumentLength() const = 0;
  396. virtual void GetText(TInt aPos,TPtrC& aText,TTmCharFormat& aFormat) const = 0;
  397. virtual void GetParagraphFormatL(TInt aPos,RTmParFormat& aFormat) const = 0;
  398. virtual TInt ParagraphStart(TInt aPos) const = 0;
  399. __declspec(dllexport) virtual CPicture* PictureL(TInt aPos) const;
  400. __declspec(dllexport) virtual TInt GetPictureSizeInTwipsL(TInt aPos,TSize& aSize) const;
  401. __declspec(dllexport) virtual TAny* GetExtendedInterface(const TUid& aInterfaceId);
  402. __declspec(dllexport) virtual void MTmSource_Reserved_1();
  403. __declspec(dllexport) virtual void MTmSource_Reserved_2();
  404. __declspec(dllexport) virtual TBool PageBreakInRange(TInt aStartPos,TInt aEndPos) const;
  405. __declspec(dllexport) TInt ParagraphEnd(TInt aPos) const;
  406. __declspec(dllexport) TBool GetLineBreakL(const TDesC& aText,TInt aDocPos,TInt aMinBreakPos,TInt aMaxBreakPos,TBool aForwards,
  407.  TInt& aBreakPos,TInt& aHangingChars,TInt& aBreakPosAfterSpaces) const;
  408. __declspec(dllexport) static void GetStandardLineBreak(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,
  409.   TInt& aBreakPos,TInt& aNextLineStart);
  410. };
  411. #line 664
  412. class MFormLabelApi
  413. {
  414. public:
  415. __declspec(dllexport) virtual TBool LabelModeSelect(MTmSource::TLabelType aType, TInt aPos);
  416. __declspec(dllexport) virtual void LabelModeCancel();
  417. __declspec(dllexport) virtual void LabelMetrics(MTmSource::TLabelType aType, TSize& aLabelSize, TInt& aMarginSize) const;
  418. };
  419. class CTmBufSeg: public CBufSeg
  420. {
  421. public:
  422. inline CTmBufSeg(TInt aExpandSize);
  423. TInt MemoryUsed() const;
  424. };
  425. class CTmCode: public CBase
  426. {
  427. public:
  428. inline ~CTmCode();
  429. void InsertByteL(TUint8 aByte,TInt aPos);
  430. TInt InsertNumberL(TInt aNumber,TInt aPos);
  431. TInt InsertRectL(const TRect& aRect,TInt aPos);
  432. void AppendByteL(TUint8 aByte);
  433. TInt AppendNumberL(TInt aNumber);
  434. TInt AppendRectL(const TRect& aRect);
  435. void ChangeL(TInt aStart,TInt aEnd,CTmCode& aNewCode);
  436. TInt MemoryUsed() const;
  437. TInt Size() const;
  438. void Delete(TInt aPos,TInt aLength);
  439. void Reset();
  440. inline TPtr8 Ptr(TInt aPos);
  441. void CreateBufferL();
  442. inline CBufBase* Buffer();
  443. inline const CBufBase* Buffer() const;
  444. private:
  445. enum
  446. {
  447. EExpandSize = 512
  448. };
  449. TInt WriteNumber(TInt aNumber,TUint8* aBuffer);
  450. CTmBufSeg* iBuffer;
  451. };
  452. class TTmFormatParamBase
  453. {
  454. public:
  455. enum
  456. {
  457. EWrap = 1,
  458. EAtLeastMaxHeight = 2,
  459. ETruncateWithEllipsis = 4,
  460. ELegalLineBreaksOnly = 8
  461. };
  462. __declspec(dllexport) TTmFormatParamBase();
  463. inline TBool IsWrapping() const;
  464. inline TBool IsTruncatingWithEllipsis() const;
  465. inline TBool LegalLineBreaksOnly() const;
  466. TInt iWrapWidth;
  467. TInt iMaxHeight;
  468. TInt iMaxLines;
  469. TInt iFlags;
  470. TChar iEllipsis;
  471. };
  472. class TTmFormatParam: public TTmFormatParamBase
  473. {
  474. public:
  475. __declspec(dllexport) TTmFormatParam();
  476. __declspec(dllexport) TTmFormatParam(const TTmFormatParamBase& aBase);
  477. TInt iStartChar;
  478. TInt iEndChar;
  479. TInt iLineInPar;
  480. };
  481. class TTmReformatParam
  482. {
  483. public:
  484. __declspec(dllexport) TTmReformatParam();
  485. TInt iStartChar;
  486. TInt iOldLength;
  487. TInt iNewLength;
  488. TInt iMaxExtraLines;
  489. TBool iParFormatChanged;
  490. TBool iParInvalid;
  491. };
  492. class TTmReformatResult
  493. {
  494. public:
  495. __declspec(dllexport) TTmReformatResult();
  496. TRect iRedrawRect;
  497. TInt iHeightChange;
  498. TInt iUnchangedTop;
  499. TInt iUnformattedStart;
  500. };
  501. #line 806
  502. class TTmLineInfo
  503. {
  504. public:
  505. enum
  506. {
  507. EParStart = 1,
  508. EParEnd = 2,
  509. EParRightToLeft = 4,
  510. ELineEndsInForcedLineBreak = 8
  511. };
  512. inline TTmLineInfo();
  513. TRect iOuterRect;
  514. TRect iInnerRect;
  515. TInt iBaseline;
  516. TInt iStart;
  517. TInt iEnd;
  518. TInt iLineNumber;
  519. TInt iParNumber;
  520. TInt iLineInPar;
  521. TInt iParTop;
  522. TUint iFlags;
  523. };
  524. #line 871
  525. class TTmDocPosSpec
  526. {
  527. public:
  528. enum TType
  529. {
  530. ETrailing,
  531. ELeading,
  532. ELeftToRight,
  533. ERightToLeft
  534. };
  535. inline TTmDocPosSpec();
  536. inline TTmDocPosSpec(TInt aPos,TType aType);
  537. inline TTmDocPosSpec(const TTmDocPos& aRawDocPos);
  538. TInt iPos;
  539. TType iType;
  540. };
  541. #line 913
  542. class TTmDocPos
  543. {
  544. public:
  545. inline TTmDocPos();
  546. inline TTmDocPos(TInt aPos,TBool aLeadingEdge);
  547. __declspec(dllexport) TBool operator==(const TTmDocPos& aPos) const;
  548. inline TBool operator!=(const TTmDocPos& aPos) const;
  549. __declspec(dllexport) TBool operator>(const TTmDocPos& aPos) const;
  550. __declspec(dllexport) TBool operator>=(const TTmDocPos& aPos) const;
  551. inline TBool operator<(const TTmDocPos& aPos) const;
  552. inline TBool operator<=(const TTmDocPos& aPos) const;
  553. TInt iPos;
  554. TBool iLeadingEdge;
  555. };
  556. class TTmPosInfo2
  557. {
  558. public:
  559. TTmDocPos iDocPos;
  560. TBool iRightToLeft;
  561. TPoint iEdge;
  562. };
  563. class TTmPosInfo
  564. {
  565. public:
  566. TTmPosInfo() {}
  567. TTmPosInfo(const TTmPosInfo2& a) : iDocPos(a.iDocPos), iEdge(a.iEdge) {}
  568. TTmDocPos iDocPos;
  569. TPoint iEdge;
  570. };
  571. class TTmHighlightExtensions
  572. {
  573. public:
  574. inline TTmHighlightExtensions();
  575. inline void SetAll(TInt aExtension);
  576. inline void SetLeftExtension(TInt aExtension);
  577. inline void SetRightExtension(TInt aExtension);
  578. inline void SetTopExtension(TInt aExtension);
  579. inline void SetBottomExtension(TInt aExtension);
  580. inline TInt LeftExtension() const;
  581. inline TInt RightExtension() const;
  582. inline TInt TopExtension() const;
  583. inline TInt BottomExtension() const;
  584. inline TBool Extends() const;
  585. inline void ExtendRect(TRect& aRect) const;
  586. inline void AdjustRect(TRect& aRect) const;
  587. public:
  588. TInt iLeftExtension;
  589. TInt iRightExtension;
  590. TInt iTopExtension;
  591. TInt iBottomExtension;
  592. };
  593. enum TTmCursorPlacement
  594. {
  595. ECursorVertical,
  596. ECursorUnderlineNext,
  597. ECursorUnderlinePrev
  598. };
  599. #line 1041
  600. class CTmTextLayout: public CBase
  601. {
  602. public:
  603. class TTmChunkDescription
  604. {
  605. public:
  606. TInt iStart;
  607. TInt iEnd;
  608. TBool iRightToLeft;
  609. };
  610. __declspec(dllexport) CTmTextLayout();
  611. __declspec(dllexport) ~CTmTextLayout();
  612. __declspec(dllexport) void SetTextL(MTmSource& aSource,const TTmFormatParam& aParam);
  613. __declspec(dllexport) void FormatL(const TTmFormatParamBase& aParam,const TTmReformatParam& aReformatParam,
  614.   TTmReformatResult& TTmReformatResult);
  615. __declspec(dllexport) TBool AddParL(const TTmFormatParamBase& aParam,TBool aAtStart,TInt& aHeightIncrease,TInt& aParagraphsIncrease);
  616. __declspec(dllexport) TBool DeletePar(const TTmFormatParamBase& aParam,TBool aAtStart,TInt aMaxDeletedHeight,TInt& aHeightDecrease);
  617. __declspec(dllexport) void Clear();
  618. __declspec(dllexport) void DrawLayout(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  619.  const TLogicalRgb* aDocBackground,TBool aDrawParBackground) const;
  620. __declspec(dllexport) void DrawBackground(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  621.  const TLogicalRgb& aBackground) const;
  622. __declspec(dllexport) void InvertLayout(CGraphicsContext& aGc, const TPoint& aTopLeft,
  623. TInt aStartDocPos, TInt aEndDocPos) const;
  624. __declspec(dllexport) void HighlightSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  625. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect) const;
  626. __declspec(dllexport) void DrawSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  627. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect) const;
  628. __declspec(dllexport) void HighlightSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  629. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions,
  630. TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  631. __declspec(dllexport) void InvertLayout(CGraphicsContext& aGc,
  632. const TPoint& aTopLeft, TInt aStartDocPos,TInt aEndDocPos, const TTmHighlightExtensions& aHighlightExtensions,
  633. TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  634. __declspec(dllexport) void DrawSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  635. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions,
  636. TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  637. __declspec(dllexport) TBool FindDocPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aPosInfo,TTmLineInfo& aLineInfo) const;
  638. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo2& aPosInfo,TTmLineInfo& aLineInfo) const;
  639. __declspec(dllexport) TBool FindXyPosWithDisambiguation(const TPoint& aXyPos,
  640. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight,
  641. TTmLineInfo& aLineInfo) const;
  642. __declspec(dllexport) TInt FindNextPos(TInt aStart) const;
  643. __declspec(dllexport) TInt FindPreviousPos(TInt aStart) const;
  644. __declspec(dllexport) TInt Lines() const;
  645. __declspec(dllexport) TInt Paragraphs() const;
  646. __declspec(dllexport) TBool DocPosToLine(const TTmDocPosSpec& aDocPos,TTmLineInfo& aLineInfo) const;
  647. __declspec(dllexport) TBool LineNumberToLine(TInt aLineNumber,TTmLineInfo& aLineInfo) const;
  648. __declspec(dllexport) TBool ParNumberToLine(TInt aParNumber,TInt aLineInPar,TTmLineInfo& aLineInfo) const;
  649. __declspec(dllexport) TBool YPosToLine(TInt aYPos,TTmLineInfo& aLineInfo) const;
  650. __declspec(dllexport) TBool GetDisplayedTextL(TInt aLineNumber,TDes& aText,TInt& aNeeded) const;
  651. __declspec(dllexport) void GetMinimumLayoutSizeL(TInt aWrapWidth,TSize& aSize) const;
  652. __declspec(dllexport) void GetMinimumLayoutSizeL(TInt aWrapWidth,TBool aAllowLegalLineBreaksOnly,TSize& aSize) const;
  653. __declspec(dllexport) TInt WidthOfWidestLine(TInt aTop = 0,TInt aBottom = KMaxTInt) const;
  654. __declspec(dllexport) void HorizontalExtremes(TInt &aLeft, TInt &aRight,
  655. TInt aTopY = 0, TInt aBottomY = KMaxTInt) const;
  656. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aInfo,TBool aToLeft) const;
  657. __declspec(dllexport) TBool GetNextPosLeftWithDisambiguation(const TTmDocPosSpec& aDocPos,
  658. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight) const;
  659. __declspec(dllexport) TBool GetNextPosRightWithDisambiguation(const TTmDocPosSpec& aDocPos,
  660. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight) const;
  661. __declspec(dllexport) TBool LineExtreme(const TTmDocPosSpec& aPos, TBool aToRight,
  662. TTmDocPos& aExtreme) const;
  663. __declspec(dllexport) TBool FindAdjacentChunks(const TTmDocPosSpec& aPos,
  664. TTmChunkDescription& aLeft, TTmChunkDescription& aRight) const;
  665. __declspec(dllexport) TBool GetCursor(const TTmDocPosSpec& aDocPos,TTmCursorPlacement aPlacement,
  666.  TTmLineInfo& aLineInfo,TPoint& aOrigin,TInt& aWidth,TInt& aAscent,TInt& aDescent) const;
  667. __declspec(dllexport) TInt MemoryUsed() const;
  668. inline TInt StartChar() const;
  669. inline TInt EndChar() const;
  670. inline TInt LayoutWidth() const;
  671. inline TInt LayoutHeight() const;
  672. inline MTmSource* Source();
  673. inline const MTmSource* Source() const;
  674. inline const CTmCode& Code() const;
  675. __declspec(dllexport) TBool GetDisplayedText(TInt aLineNumber,TDes& aText,TInt& aNeeded) const;
  676. __declspec(dllexport) TBool FindDocPos(const TTmDocPos& aDocPos,TTmPosInfo& aPosInfo,TTmLineInfo& aLineInfo) const;
  677. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo& aPosInfo,TTmLineInfo& aLineInfo) const;
  678. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPos& aDocPos,TTmPosInfo& aInfo,TBool aToLeft) const;
  679. __declspec(dllexport) TBool DocPosToLine(const TTmDocPos& aDocPos,TTmLineInfo& aLineInfo) const;
  680. __declspec(dllexport) TBool GetCursor(const TTmDocPos& aDocPos,
  681. TTmCursorPlacement aPlacement, TTmLineInfo& aLineInfo,
  682. TPoint& aOrigin, TInt& aWidth, TInt& aAscent, TInt& aDescent) const;
  683. private:
  684. void Invariant() const;
  685. void AdjustWidth(const TTmFormatParamBase& aParam,TInt aWidthOfNewText);
  686. void HighlightRect(CGraphicsContext& aGc, const TPoint& aTopLeft, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions, const TRect& aRect) const;
  687. void InvertLayout(CGraphicsContext& aGc, const TPoint& aTopLeft, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions, TInt aStartDocPos,TInt aEndDocPos, TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  688. void InvertRect(CGraphicsContext& aGc, const TPoint& aTopLeft, const TTmHighlightExtensions& aHighlightExtensions, const TRect& aInvertRect,TInt aOriginalHighlightStartPos,TInt aOriginalHighlightEndPos, TInt aNewHighlightStartPos,TInt aNewHighlightEndPos) const;
  689. TBool FindOverlapRect(const TPoint& aTopLeft, const TTmHighlightExtensions& aHighlightExtensions, const TRect& aRect, TInt aHighlightStartPos,TInt aHighlightEndPos, TRect& aOverlapRect) const;
  690. void DrawRect(CGraphicsContext& aGc, const TPoint& aTopLeft, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions, const TRect& aRect) const;
  691. void DrawRectExcludingHighlight(CGraphicsContext& aGc, const TPoint& aTopLeft, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions, TInt aHighlightStartPos,TInt aHighlightEndPos, const TRect& aRect) const;
  692. MTmSource* iSource;
  693. CTmCode iCode;
  694. TInt iWidth;
  695. TInt iHeight;
  696. TInt iStartChar;
  697. TInt iEndChar;
  698. };
  699. #line 1181
  700. class MTmTextLayoutForwarder
  701. {
  702. public:
  703. __declspec(dllexport) void DrawLayout(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  704.  const TLogicalRgb* aDocBackground,TBool aDrawParBackground) const;
  705. __declspec(dllexport) void DrawBackground(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  706.  const TLogicalRgb& aBackground) const;
  707. __declspec(dllexport) void InvertLayout(CGraphicsContext& aGc,const TPoint& aTopLeft,TInt aStartDocPos,TInt aEndDocPos);
  708. __declspec(dllexport) TBool FindDocPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aPosInfo,TTmLineInfo& aLineInfo) const;
  709. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo2& aPosInfo,TTmLineInfo& aLineInfo) const;
  710. __declspec(dllexport) TBool FindXyPosWithDisambiguation(const TPoint& aXyPos,
  711. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight,
  712. TTmLineInfo& aLineInfo) const;
  713. __declspec(dllexport) TBool DocPosToLine(const TTmDocPosSpec& aDocPos,TTmLineInfo& aLineInfo) const;
  714. __declspec(dllexport) TBool LineNumberToLine(TInt aLineNumber,TTmLineInfo& aLineInfo) const;
  715. __declspec(dllexport) TBool ParNumberToLine(TInt aParNumber,TInt aLineInPar,TTmLineInfo& aLineInfo) const;
  716. __declspec(dllexport) TBool YPosToLine(TInt aYPos,TTmLineInfo& aLineInfo) const;
  717. __declspec(dllexport) TInt WidthOfWidestLine(TInt aTop = 0,TInt aBottom = KMaxTInt) const;
  718. __declspec(dllexport) void HorizontalExtremes(TInt &aLeft, TInt &aRight,
  719. TInt aTopY = 0, TInt aBottomY = KMaxTInt) const;
  720. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aInfo,TBool aToLeft) const;
  721. __declspec(dllexport) TBool GetNextPosLeftWithDisambiguation(const TTmDocPosSpec& aDocPos,
  722. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight) const;
  723. __declspec(dllexport) TBool GetNextPosRightWithDisambiguation(const TTmDocPosSpec& aDocPos,
  724. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight) const;
  725. __declspec(dllexport) TBool GetCursor(const TTmDocPosSpec& aDocPos,TTmCursorPlacement aPlacement,
  726.  TTmLineInfo& aLineInfo,TPoint& aOrigin,TInt& aWidth,TInt& aAscent,TInt& aDescent) const;
  727. __declspec(dllexport) TInt Lines() const;
  728. __declspec(dllexport) TInt Paragraphs() const;
  729. __declspec(dllexport) TBool GetDisplayedText(TInt aLineNumber,TDes& aText,TInt& aNeeded) const;
  730. __declspec(dllexport) void GetMinimumLayoutSizeL(TInt aWrapWidth,TSize& aSize) const;
  731. __declspec(dllexport) void GetMinimumLayoutSizeL(TInt aWrapWidth,TBool aAllowLegalLineBreaksOnly,TSize& aSize) const;
  732. __declspec(dllexport) TInt StartChar() const;
  733. __declspec(dllexport) TInt EndChar() const;
  734. __declspec(dllexport) TInt LayoutWidth() const;
  735. __declspec(dllexport) TInt LayoutHeight() const;
  736. __declspec(dllexport) TBool FindDocPos(const TTmDocPos& aDocPos,TTmPosInfo& aPosInfo,TTmLineInfo& aLineInfo) const;
  737. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo& aPosInfo,TTmLineInfo& aLineInfo) const;
  738. __declspec(dllexport) TBool DocPosToLine(const TTmDocPos& aDocPos,TTmLineInfo& aLineInfo) const;
  739. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPos& aDocPos,TTmPosInfo& aInfo,TBool aToLeft) const;
  740. __declspec(dllexport) TBool GetCursor(const TTmDocPos& aDocPos,
  741. TTmCursorPlacement aPlacement, TTmLineInfo& aLineInfo,
  742. TPoint& aOrigin, TInt& aWidth, TInt& aAscent, TInt& aDescent) const;
  743. private:
  744. virtual const CTmTextLayout& TextLayout() const = 0;
  745. __declspec(dllexport) virtual void GetOrigin(TPoint& aPoint) const;
  746. void FixUpLineInfo(TTmLineInfo& aInfo,const TPoint* aOrigin = 0 ) const;
  747. };
  748. class TTmCharFormatLayer
  749. {
  750. public:
  751. inline TTmCharFormatLayer();
  752. __declspec(dllexport) TTmCharFormatLayer(const CCharFormatLayer& aFormat);
  753. TTmCharFormat iFormat;
  754. TTmCharFormatMask iMask;
  755. };
  756. class RTmParFormatLayer
  757. {
  758. public:
  759. inline void Close();
  760. __declspec(dllexport) void CopyL(const CParaFormatLayer& aFormat);
  761. RTmParFormat iFormat;
  762. TTmParFormatMask iMask;
  763. };
  764. class RTmStyle
  765. {
  766. public:
  767. enum
  768. {
  769. EMaxName = KMaxParagraphStyleName
  770. };
  771. inline void Close();
  772. __declspec(dllexport) void CopyL(const RParagraphStyleInfo& aStyle);
  773. __declspec(dllexport) void GetRParagraphStyleInfoL(RParagraphStyleInfo& aStyle,
  774. const CParaFormatLayer& aGlobalParaFormatLayer,const CCharFormatLayer& aGlobalCharFormatLayer,
  775. const CStyleList& aList) const;
  776. TBuf<KMaxName> iName;
  777. TBuf<KMaxName> iNextStyleName;
  778. TTmCharFormatLayer iCharFormat;
  779. RTmParFormatLayer iParFormat;
  780. TInt iOutlineLevel;
  781. };
  782. class CTmText: public CBase, public MTmTextLayoutForwarder
  783. {
  784. public:
  785. __declspec(dllexport) static CTmText* NewL(MGraphicsDeviceMap* aDevice = 0 ,const TTmFormatParamBase* aFormatParam = 0 );
  786. __declspec(dllexport) static CTmText* NewL(MGraphicsDeviceMap& aDevice,const TTmFormatParamBase& aFormatParam);
  787. __declspec(dllexport) static CTmText* NewL(MGraphicsDeviceMap& aDevice,TInt aWrapWidth,TInt aFlags);
  788. __declspec(dllexport) ~CTmText();
  789. __declspec(dllexport) void InsertL(TInt aPos,const TDesC& aText,
  790.   const TTmCharFormat* aCharFormat = 0 ,const RTmParFormat* aParFormat = 0 ,
  791.   TRect* aRedrawRect = 0 ,TInt* aScroll = 0 );
  792. __declspec(dllexport) void GetFormat(TTmFormatParamBase& aFormatParam) const;
  793. __declspec(dllexport) void SetWrapWidthL(TInt aWrapWidth);
  794. __declspec(dllexport) void ChangeFormatL(const TTmFormatParamBase& aFormatParam);
  795. __declspec(dllexport) void Clear();
  796. __declspec(dllexport) void CustomizeL(const MTmCustom* aCustom);
  797. __declspec(dllexport) TInt MemoryUsed() const;
  798. inline void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  799.  const TLogicalRgb* aDocBackground,TBool aDrawParBackground);
  800. private:
  801. CTmText();
  802. __declspec(dllexport) void Spare1();
  803. const CTmTextLayout& TextLayout() const;
  804. CTmTextImp* iImp;
  805. };
  806. TTmCharFormatMask::TTmCharFormatMask(): iFlags(0xFFFFFFFF)
  807. {
  808. }
  809. void TTmCharFormatMask::Clear(TAttrib aAttrib)
  810. {
  811. iFlags &= ~aAttrib;
  812. }
  813. void TTmCharFormatMask::Set(TAttrib aAttrib)
  814. {
  815. iFlags |= aAttrib;
  816. }
  817. TBool TTmCharFormatMask::IsSet(TAttrib aAttrib)
  818. {
  819. return iFlags & aAttrib;
  820. }
  821. TTmCharFormat::TTmCharFormat(const TCharFormat& aFormat)
  822. {
  823. *this = aFormat;
  824. }
  825. TBool TTmCharFormat::operator!=(const TTmCharFormat& aFormat) const
  826. {
  827. return !operator==(aFormat);
  828. }
  829. TTmTab::TTmTab():
  830. iPosition(0),
  831. iType(EStandardTab)
  832. {
  833. }
  834. TTmTab::TTmTab(const TTabStop& aTab)
  835. {
  836. *this = aTab;
  837. }
  838. TBool TTmTab::operator!=(const TTmTab& aTab) const
  839. {
  840. return !operator==(aTab);
  841. }
  842. TTmBullet::TTmBullet(const TBullet& aBullet)
  843. {
  844. *this = aBullet;
  845. }
  846. TBool TTmBullet::operator!=(const TTmBullet& aBullet) const
  847. {
  848. return !operator==(aBullet);
  849. }
  850. TTmParBorder::TTmParBorder(const TParaBorder& aBorder)
  851. {
  852. *this = aBorder;
  853. }
  854. TBool TTmParBorder::operator!=(const TTmParBorder& aBorder) const
  855. {
  856. return !operator==(aBorder);
  857. }
  858. TTmParFormatMask::TTmParFormatMask():
  859. iFlags(0xFFFFFFFF)
  860. {
  861. }
  862. void TTmParFormatMask::Clear(TAttrib aAttrib)
  863. {
  864. iFlags &= ~aAttrib;
  865. }
  866. void TTmParFormatMask::Set(TAttrib aAttrib)
  867. {
  868. iFlags |= aAttrib;
  869. }
  870. TBool TTmParFormatMask::IsSet(TAttrib aAttrib)
  871. {
  872. return iFlags & aAttrib;
  873. }
  874. RTmParFormat::~RTmParFormat()
  875. {
  876. (void)((!iTabList && !iBullet && !HaveBorders())||( User::Invariant(),0)) ;
  877. }
  878. TBool RTmParFormat::operator!=(const RTmParFormat& aFormat) const
  879. {
  880. return !operator==(aFormat);
  881. }
  882. const TTmTab& RTmParFormat::Tab(TInt aIndex) const
  883. {
  884. return (*iTabList)[aIndex];
  885. }
  886. const TTmBullet* RTmParFormat::Bullet() const
  887. {
  888. return iBullet;
  889. }
  890. const TTmParBorder* RTmParFormat::Border(TBorderIndex aIndex) const
  891. {
  892. return iBorder[aIndex];
  893. }
  894. TBool RTmParFormat::RightToLeft() const
  895. {
  896. return iFlags & ERightToLeft;
  897. }
  898. MTmCustom::TLineHeightParam::TLineHeightParam()
  899. {
  900. Mem::FillZ(this,sizeof(*this));
  901. }
  902. CTmBufSeg::CTmBufSeg(TInt aExpandSize):
  903. CBufSeg(aExpandSize)
  904. {
  905. }
  906. CTmCode::~CTmCode()
  907. {
  908. delete iBuffer;
  909. }
  910. TPtr8 CTmCode::Ptr(TInt aPos)
  911. {
  912. return iBuffer->Ptr(aPos);
  913. }
  914. CBufBase* CTmCode::Buffer()
  915. {
  916. return iBuffer;
  917. }
  918. const CBufBase* CTmCode::Buffer() const
  919. {
  920. return iBuffer;
  921. }
  922. TBool TTmFormatParamBase::IsWrapping() const
  923. {
  924. return iFlags & EWrap;
  925. }
  926. TBool TTmFormatParamBase::IsTruncatingWithEllipsis() const
  927. {
  928. return iFlags & ETruncateWithEllipsis;
  929. }
  930. TBool TTmFormatParamBase::LegalLineBreaksOnly() const
  931. {
  932. return iFlags & ELegalLineBreaksOnly;
  933. }
  934. TTmLineInfo::TTmLineInfo()
  935. {
  936. Mem::FillZ(this,sizeof(*this));
  937. }
  938. TTmDocPos::TTmDocPos():
  939. iPos(0),
  940. iLeadingEdge(0 )
  941. {
  942. }
  943. TTmDocPos::TTmDocPos(TInt aPos,TBool aLeadingEdge):
  944. iPos(aPos),
  945. iLeadingEdge(aLeadingEdge)
  946. {
  947. }
  948. TTmDocPosSpec::TTmDocPosSpec():
  949. iPos(0),
  950. iType(ETrailing)
  951. {
  952. }
  953. TBool TTmDocPos::operator!=(const TTmDocPos& aPos) const { return !((*this)==aPos); }
  954. TBool TTmDocPos::operator<(const TTmDocPos& aPos) const { return !((*this)>=aPos); }
  955. TBool TTmDocPos::operator<=(const TTmDocPos& aPos) const { return !((*this)>aPos); }
  956. TTmDocPosSpec::TTmDocPosSpec(TInt aPos,TType aType):
  957. iPos(aPos),
  958. iType(aType)
  959. {
  960. }
  961. TTmDocPosSpec::TTmDocPosSpec(const TTmDocPos& aDocPos):
  962. iPos(aDocPos.iPos),
  963. iType(aDocPos.iLeadingEdge ? ELeading : ETrailing)
  964. {
  965. }
  966. TInt CTmTextLayout::StartChar() const
  967. {
  968. return iStartChar;
  969. }
  970. TInt CTmTextLayout::EndChar() const
  971. {
  972. return iEndChar;
  973. }
  974. TInt CTmTextLayout::LayoutWidth() const
  975. {
  976. return iWidth;
  977. }
  978. TInt CTmTextLayout::LayoutHeight() const
  979. {
  980. return iHeight;
  981. }
  982. MTmSource* CTmTextLayout::Source()
  983. {
  984. return iSource;
  985. }
  986. const MTmSource* CTmTextLayout::Source() const
  987. {
  988. return iSource;
  989. }
  990. const CTmCode& CTmTextLayout::Code() const
  991. {
  992. return iCode;
  993. }
  994. TTmCharFormatLayer::TTmCharFormatLayer()
  995. {
  996. }
  997. void RTmParFormatLayer::Close()
  998. {
  999. iFormat.Close();
  1000. }
  1001. void RTmStyle::Close()
  1002. {
  1003. iParFormat.Close();
  1004. }
  1005. void CTmText::Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  1006.    const TLogicalRgb* aDocBackground,TBool aDrawParBackground)
  1007. {
  1008. DrawLayout(aGc,aTopLeft,aClipRect,aDocBackground,aDrawParBackground);
  1009. }
  1010. TTmHighlightExtensions::TTmHighlightExtensions()
  1011. {
  1012. }
  1013. void TTmHighlightExtensions::SetAll(TInt aExtension)
  1014. {
  1015. iLeftExtension=iRightExtension=iTopExtension=iBottomExtension=aExtension;
  1016. }
  1017. void TTmHighlightExtensions::SetLeftExtension(TInt aExtension)
  1018. {
  1019. iLeftExtension=aExtension;
  1020. }
  1021. void TTmHighlightExtensions::SetRightExtension(TInt aExtension)
  1022. {
  1023. iRightExtension=aExtension;
  1024. }
  1025. void TTmHighlightExtensions::SetTopExtension(TInt aExtension)
  1026. {
  1027. iTopExtension=aExtension;
  1028. }
  1029. void TTmHighlightExtensions::SetBottomExtension(TInt aExtension)
  1030. {
  1031. iBottomExtension=aExtension;
  1032. }
  1033. TInt TTmHighlightExtensions::LeftExtension() const
  1034. {
  1035. return iLeftExtension;
  1036. }
  1037. TInt TTmHighlightExtensions::RightExtension() const
  1038. {
  1039. return iRightExtension;
  1040. }
  1041. TInt TTmHighlightExtensions::TopExtension() const
  1042. {
  1043. return iTopExtension;
  1044. }
  1045. TInt TTmHighlightExtensions::BottomExtension() const
  1046. {
  1047. return iBottomExtension;
  1048. }
  1049. TBool TTmHighlightExtensions::Extends() const
  1050. {
  1051. if (iTopExtension>0 || iBottomExtension>0 || iLeftExtension>0 || iRightExtension>0)
  1052. return ETrue;
  1053. else
  1054. return EFalse;
  1055. }
  1056. inline void TTmHighlightExtensions::ExtendRect(TRect& aRect) const
  1057. {
  1058. if (iLeftExtension>0)
  1059. aRect.iTl.iX-=iLeftExtension;
  1060. if (iRightExtension>0)
  1061. aRect.iBr.iX+=iRightExtension;
  1062. if (iTopExtension>0)
  1063. aRect.iTl.iY-=iTopExtension;
  1064. if (iBottomExtension>0)
  1065. aRect.iBr.iY+=iBottomExtension;
  1066. }
  1067. inline void TTmHighlightExtensions::AdjustRect(TRect& aRect) const
  1068. {
  1069. aRect.iTl.iX-=iLeftExtension;
  1070. aRect.iTl.iY-=iTopExtension;
  1071. aRect.iBr.iX+=iRightExtension;
  1072. aRect.iBr.iY+=iBottomExtension;
  1073. }
  1074. #line 17 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmtlay.h" /* stack depth 7 */
  1075. class CWindowGc;
  1076. class MLayDoc;
  1077. class TLayDocTextSource;
  1078. #line 35
  1079. class MFormCustomInterfaceProvider
  1080.     {
  1081.     public:
  1082. #line 47
  1083. virtual TAny* GetExtendedInterface(const TUid& aInterfaceId) = 0;
  1084.     };
  1085. #line 58
  1086. class TViewYPosQualifier
  1087. {
  1088. friend class CTextLayout;
  1089. friend class CTextView;
  1090. public:
  1091. enum TPartOfLine
  1092. {
  1093. EFViewTopOfLine = 1,
  1094. EFViewBaseLine = 0,
  1095. EFViewBottomOfLine = 2
  1096. };
  1097. enum TFullyVisible
  1098. {
  1099. EFViewForceLineFullyVisible = ETrue,
  1100. EFViewDontForceLineFullyVisible = EFalse
  1101. };
  1102. public:
  1103. inline TViewYPosQualifier();
  1104. __declspec(dllexport) void SetHotSpot(TPartOfLine aHotSpot);
  1105. __declspec(dllexport) void SetFillScreen(TBool aFillScreen = ETrue);
  1106. __declspec(dllexport) void SetMakeLineFullyVisible(TFullyVisible aMakeLineFullyVisible = EFViewForceLineFullyVisible);
  1107. private:
  1108. TPartOfLine iHotSpot;
  1109. TBool iFillScreen;
  1110. TFullyVisible iFullyVisible;
  1111. };
  1112. class TViewRectChanges
  1113. {
  1114. public:
  1115. inline TViewRectChanges();
  1116. void AdjustAll(TInt aDelta);
  1117. public:
  1118. TInt iFormattedFrom;
  1119. TInt iFormattedTo;
  1120. TInt iScrollAtTop;
  1121. TInt iScrollAtBottom;
  1122. };
  1123. #line 131
  1124. class TCursorSelection
  1125. {
  1126. public:
  1127. inline TCursorSelection();
  1128. inline TCursorSelection(TInt aCursorPos,TInt aAnchorPos);
  1129. inline void SetSelection(TInt aCursorPos,TInt aAnchorPos);
  1130. inline TInt LowerPos() const;
  1131. inline TInt HigherPos() const;
  1132. inline TInt Length() const;
  1133. public:
  1134. TInt iCursorPos;
  1135. TInt iAnchorPos;
  1136. };
  1137. #line 160
  1138. class TDrawTextLayoutContext
  1139. {
  1140. private:
  1141. enum TDrawMode
  1142. {
  1143. EFDrawText=0x001,
  1144. EFDrawGraphics=0x002,
  1145. EFUseClippingRect=0x004,
  1146. EFUseWindowGc=0x008,
  1147. EFUseGcClear=0x020,
  1148. EFUseBackgroundColor=0x040,
  1149. EFUseOverrideTextColor=0x080,
  1150. EFParagraphFillTextOnly=0x100,
  1151. EFAllFlags=0xfff
  1152. };
  1153. public:
  1154. __declspec(dllexport) TDrawTextLayoutContext();
  1155. __declspec(dllexport) void SetGc(CGraphicsContext* aGc,CGraphicsContext* aPictureGc=0 );
  1156. __declspec(dllexport) void SetBitmapGc(CBitmapContext* aGc,CBitmapContext* aPictureGc=0 );
  1157. __declspec(dllexport) void SetWindowGc(CWindowGc* aGc,CWindowGc* aPictureGc=0 );
  1158. __declspec(dllexport) void SetDrawToEveryPixel(TBool aDrawToEveryPixel);
  1159. __declspec(dllexport) void SetTextColorOverride(const TRgb *aOverrideColor);
  1160. __declspec(dllexport) void SetDrawTextOnly();
  1161. __declspec(dllexport) void SetDrawGraphicsOnly();
  1162. __declspec(dllexport) void SetDrawTextAndGraphics();
  1163. __declspec(dllexport) void SetClipping(TBool aClipping);
  1164. __declspec(dllexport) void SetParagraphFillTextOnly(TBool aFillTextOnly);
  1165. __declspec(dllexport) const TRgb* TextOverrideColor() const;
  1166. __declspec(dllexport) CGraphicsContext* PrimaryGc() const;
  1167. __declspec(dllexport) CGraphicsContext* PictureGc() const;
  1168. __declspec(dllexport) TBool UseClippingRect() const;
  1169. __declspec(dllexport) TBool UseGcClear() const;
  1170. __declspec(dllexport) TBool DrawText() const;
  1171. __declspec(dllexport) TBool DrawGraphics() const;
  1172. __declspec(dllexport) TBool UseBackgroundColor() const;
  1173. __declspec(dllexport) TBool ParagraphFillTextOnly() const;
  1174. __declspec(dllexport) TRect TextArea() const;
  1175. __declspec(dllexport) TInt DisplayHeight() const;
  1176. __declspec(dllexport) TPoint TopLeftTextArea() const;
  1177. __declspec(dllexport) TRect TotalMargin() const;
  1178. __declspec(dllexport) TRect LabelMargin() const;
  1179. __declspec(dllexport) TBool IsLabelMargin() const;
  1180. __declspec(dllexport) TRect GutterMargin() const;
  1181. __declspec(dllexport) TBool IsGutterMargin() const;
  1182. __declspec(dllexport) TPoint TopLeftText() const;
  1183. __declspec(dllexport) void WindowToText(TPoint& aWinPos) const;
  1184. __declspec(dllexport) void WindowToText(TRect& aRect) const;
  1185. __declspec(dllexport) void TextToWindow(TPoint& aTextAreaPos) const;
  1186. __declspec(dllexport) void TextToWindow(TRect& aRect) const;
  1187. public:
  1188. TRect iViewRect;
  1189. TInt iLabelMarginWidth;
  1190. TInt iGutterMarginWidth;
  1191. TInt iTextStartX;
  1192. TLogicalRgb iBackgroundColor;
  1193. private:
  1194. CGraphicsContext* iGc;
  1195. CGraphicsContext* iPictureGc;
  1196. TLogicalRgb iOverrideTextColor;
  1197. TUint iDrawMode;
  1198. };
  1199. #line 256
  1200. class MFormCustomDraw
  1201. {
  1202. public:
  1203. class TParam
  1204. {
  1205. public:
  1206. TParam(CGraphicsContext& aGc,MGraphicsDeviceMap& aMap,const TPoint& aTextLayoutTopLeft,const TRect& aDrawRect):
  1207. iGc(aGc), iMap(aMap), iTextLayoutTopLeft(aTextLayoutTopLeft), iDrawRect(aDrawRect) { }
  1208. CGraphicsContext& iGc;
  1209. MGraphicsDeviceMap& iMap;
  1210. const TPoint& iTextLayoutTopLeft;
  1211. const TRect& iDrawRect;
  1212. };
  1213. class TLineInfo
  1214. {
  1215. public:
  1216. TLineInfo(const TRect& aOuterRect,const TRect& aInnerRect,TInt aBaseline):
  1217. iOuterRect(aOuterRect), iInnerRect(aInnerRect), iBaseline(aBaseline) { }
  1218. const TRect& iOuterRect;
  1219. const TRect& iInnerRect;
  1220. TInt iBaseline;
  1221. };
  1222. __declspec(dllexport) virtual void DrawBackground(const TParam& aParam,const TRgb& aBackground,TRect& aDrawn) const;
  1223. __declspec(dllexport) virtual void DrawLineGraphics(const TParam& aParam,const TLineInfo& aLineInfo) const;
  1224. __declspec(dllexport) virtual void DrawText(const TParam& aParam,const TLineInfo& aLineInfo,const TCharFormat& aFormat,
  1225.    const TDesC& aText,const TPoint& aTextOrigin,TInt aExtraPixels) const;
  1226. __declspec(dllexport) virtual TRgb SystemColor(TUint aColorIndex,TRgb aDefaultColor) const;
  1227. __declspec(dllexport) virtual void MFormCustomDraw_Reserved_1();
  1228. __declspec(dllexport) virtual void MFormCustomDraw_Reserved_2();
  1229. };
  1230. #line 326
  1231. class MFormCustomWrap
  1232. {
  1233. public:
  1234. __declspec(dllexport) virtual TUint LineBreakClass(TUint aCode,TUint& aRangeStart,TUint& aRangeEnd) const;
  1235. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aPrevClass,TUint aNextClass,TBool aHaveSpaces) const;
  1236. __declspec(dllexport) virtual TBool GetLineBreakInContext(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,
  1237.  TBool aForwards,TInt& aBreakPos) const;
  1238. __declspec(dllexport) virtual TBool IsHangingCharacter(TUint aChar) const;
  1239. private:
  1240. __declspec(dllexport) virtual void MFormCustomWrap_Reserved_1();
  1241. __declspec(dllexport) virtual void MFormCustomWrap_Reserved_2();
  1242. };
  1243. #line 349
  1244. class MFormCustomInvisibleCharacterRemapper
  1245. {
  1246. public:
  1247. __declspec(dllexport) static TUint DefaultMapping(TUint aChar, const TNonPrintingCharVisibility aNonPrintingCharVisibility, const TLayDocTextSource& aLayDoc);
  1248. #line 373
  1249. virtual TUint Remap(TUint aChar, const TNonPrintingCharVisibility aNonPrintingCharVisibility, const TLayDocTextSource& aLayDoc) = 0;
  1250. };
  1251. class TLayDocTextSource : public MTmSource, public MFormLabelApi, public MTmTextDrawExt
  1252. {
  1253. public:
  1254. enum
  1255. {
  1256. EDefaultFontHeightIncreaseFactor = 7,
  1257. EDefaultMinimumLineDescent = 3
  1258. };
  1259. TLayDocTextSource();
  1260. MGraphicsDeviceMap& FormatDevice() const;
  1261. MGraphicsDeviceMap& InterpretDevice() const;
  1262. TInt DocumentLength() const;
  1263. void GetText(TInt aPos,TPtrC& aText,TTmCharFormat& aFormat) const;
  1264. void GetParagraphFormatL(TInt aPos,RTmParFormat& aFormat) const;
  1265. TInt ParagraphStart(TInt aPos) const;
  1266. TRgb SystemColor(TUint aColorIndex,TRgb aDefaultColor) const;
  1267. CPicture* PictureL(TInt aPos) const;
  1268. TInt GetPictureSizeInTwipsL(TInt aPos,TSize& aSize) const;
  1269. TBool LabelModeSelect(TLabelType aType, TInt aPos);
  1270. void LabelModeCancel();
  1271. void LabelMetrics(TLabelType aType, TSize& aLabelSize, TInt& aMarginSize) const;
  1272. TUint Map(TUint aChar) const;
  1273. void SetLineHeight(const TLineHeightParam& aParam,TInt& aAscent,TInt& aDescent) const;
  1274. TBool PageBreakInRange(TInt aStartPos,TInt aEndPos) const;
  1275. void DrawBackground(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  1276. const TLogicalRgb& aBackground,TRect& aRectDrawn) const;
  1277. void DrawLineGraphics(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  1278.   const TTmLineInfo& aLineInfo) const;
  1279. void DrawText(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  1280.   const TTmLineInfo& aLineInfo,const TTmCharFormat& aFormat,
  1281.   const TDesC& aText,const TPoint& aTextOrigin,TInt aExtraPixels) const;
  1282. virtual void DrawPicture(CGraphicsContext& aGc,
  1283.  const TPoint& aTextLayoutTopLeft, const TRect& aRect,
  1284.  MGraphicsDeviceMap& aDevice, const CPicture& aPicture) const;
  1285. TBool LineBreakPossible(TUint aPrevClass,TUint aNextClass,TBool aHaveSpaces) const;
  1286. TUint LineBreakClass(TUint aCode,TUint& aRangeStart,TUint& aRangeEnd) const;
  1287. TBool GetLineBreakInContext(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,
  1288.  TBool aForwards,TInt& aBreakPos) const;
  1289. TBool IsHangingCharacter(TUint aChar) const;
  1290. TBool CanMap() const;
  1291. TAny* GetExtendedInterface(const TUid& aInterfaceId);
  1292. virtual void DrawLine(CGraphicsContext& aGc, const TPoint& aPt1, const TPoint& aPt2) const;
  1293. virtual void DrawText(CGraphicsContext& aGc, const TDesC& aText, const TPoint& aPt) const;
  1294. virtual void DrawRect(CGraphicsContext& aGc, const TRect& aRc) const;
  1295. void SetOpaque(CGraphicsContext& aGc) const;
  1296. void ResetOpaque(CGraphicsContext& aGc) const;
  1297. enum
  1298. {
  1299. EWrap = 1,
  1300. ETruncateWithEllipsis = 2,
  1301. EUseLabelsDevice = 4
  1302. };
  1303. MLayDoc* iLayDoc;
  1304. TUint iFlags;
  1305. TInt iWidth;
  1306. TChar iEllipsis;
  1307. TInt iLabelsWidth;
  1308. TInt iLabelsGutter;
  1309. CLayoutData::TFormatMode iFormatMode;
  1310. MGraphicsDeviceMap* iImageDevice;
  1311. MGraphicsDeviceMap* iLabelsDevice;
  1312. MGraphicsDeviceMap* iFormatDevice;
  1313. TInt iFontHeightIncreaseFactor;
  1314. TInt iMinimumLineDescent;
  1315. TNonPrintingCharVisibility iNonPrintingCharVisibility;
  1316. const MFormParam* iFormParam;
  1317. const MFormCustomDraw* iCustomDraw;
  1318. const MFormCustomWrap* iCustomWrap;
  1319. MFormCustomInterfaceProvider* iInterfaceProvider;
  1320. TBool iDrawOpaque;
  1321. TInt iExcessHeightRequired;
  1322. MFormCustomInvisibleCharacterRemapper* iInvisibleCharacterRemapper;
  1323. };
  1324. #line 513
  1325. class CTextLayout: public CBase
  1326. {
  1327. public:
  1328. enum TDiscard
  1329. {
  1330. EFViewDiscardAllFormat = 1 ,
  1331. EFViewDontDiscardFormat = 0
  1332. };
  1333. enum TAllowDisallow
  1334. {
  1335. EFAllowScrollingBlankSpace = 1 ,
  1336. EFDisallowScrollingBlankSpace = 0
  1337. };
  1338. enum
  1339. {
  1340. EFCharacterInsert,
  1341. EFParagraphDelimiter,
  1342. EFLeftDelete,
  1343. EFRightDelete
  1344. };
  1345. enum
  1346. {
  1347. EFScrollRedrawWholeScreen = CLayoutData::EFLargeNumber,
  1348. EFMaximumLineWidth = CLayoutData::EFBodyWidthForNoWrapping,
  1349. };
  1350. enum
  1351. {
  1352. EFAllParagraphsNotWrapped = 1 ,
  1353. EFParagraphsWrappedByDefault = 0
  1354. };
  1355. enum TAmountFormatted
  1356. {
  1357. EFFormatAllText = 0 ,
  1358. EFFormatBand = 1 ,
  1359. };
  1360. enum TScrollFlags
  1361. {
  1362. EFScrollOnlyToTopsOfLines = 1
  1363. };
  1364. enum TCurrentFormat
  1365. {
  1366. EFNoCurrentFormat = -1,
  1367. EFNotInCurrentFormat = 0
  1368. };
  1369. public:
  1370. class TRangeChange
  1371. #line 618
  1372. {
  1373. public:
  1374. enum TChangeType
  1375. {
  1376. ESet,
  1377. EClear
  1378. };
  1379. __declspec(dllexport) TRangeChange(TInt aStart, TInt aEnd, TChangeType aChange);
  1380. __declspec(dllexport) TRangeChange();
  1381. __declspec(dllexport) void Set(TInt aStart, TInt aEnd, TChangeType aChange);
  1382. __declspec(dllexport) TChangeType Get(TInt& aStart, TInt& aEnd) const;
  1383. __declspec(dllexport) void OptimizeWith(TRangeChange& aBuddy);
  1384. __declspec(dllexport) TBool NonNull() const;
  1385. __declspec(dllexport) TBool Clip(TInt aMin, TInt aMax);
  1386. private:
  1387. TInt iA;
  1388. TInt iB;
  1389. };
  1390. public:
  1391. class TTagmaForwarder: public MTmTextLayoutForwarder
  1392. #line 652
  1393. {
  1394. public:
  1395. inline TTagmaForwarder(const CTextLayout& aLayout);
  1396. private:
  1397. inline const CTmTextLayout& TextLayout() const;
  1398. inline void GetOrigin(TPoint& aPoint) const;
  1399. const CTextLayout& iLayout;
  1400. };
  1401. class TUtf32SourceCache
  1402. {
  1403. public:
  1404. TUtf32SourceCache(const MTmSource& aSource);
  1405. TUtf32SourceCache(const CTextLayout& aLayout);
  1406. TText GetUtf16(TInt aIndex);
  1407. TChar GetUtf32(TInt aIndex);
  1408. private:
  1409. const MTmSource* iSource;
  1410. TPtrC16 iCurrentView;
  1411. TInt iCurrentViewIndex;
  1412. };
  1413. friend class TUtf32SourceCache;
  1414. __declspec(dllexport) static CTextLayout *NewL(MLayDoc *aDoc,TInt aWrapWidth);
  1415. __declspec(dllexport) ~CTextLayout();
  1416. __declspec(dllexport) void DiscardFormat();
  1417. __declspec(dllexport) void SetLayDoc(MLayDoc *aDoc);
  1418. __declspec(dllexport) void SetWrapWidth(TInt aWrapWidth);
  1419. __declspec(dllexport) void SetBandHeight(TInt aHeight);
  1420. __declspec(dllexport) TInt BandHeight() const;
  1421. __declspec(dllexport) void SetImageDeviceMap(MGraphicsDeviceMap *aGd);
  1422. __declspec(dllexport) void SetLabelsDeviceMap(MGraphicsDeviceMap *aDeviceMap);
  1423. __declspec(dllexport) void SetAmountToFormat(TAmountFormatted aAmountOfFormat = EFFormatBand);
  1424. __declspec(dllexport) TBool IsFormattingBand() const;
  1425. __declspec(dllexport) void SetFormatMode(CLayoutData::TFormatMode aFormatMode,TInt aWrapWidth,MGraphicsDeviceMap* aFormatDevice);
  1426. __declspec(dllexport) void ForceNoWrapping(TBool aNoWrapping = EFAllParagraphsNotWrapped);
  1427. __declspec(dllexport) TBool IsWrapping() const;
  1428. __declspec(dllexport) void SetTruncating(TBool aOn);
  1429. __declspec(dllexport) TBool Truncating() const;
  1430. __declspec(dllexport) void SetTruncatingEllipsis(TChar aEllipsis);
  1431. __declspec(dllexport) TChar TruncatingEllipsis() const;
  1432. __declspec(dllexport) void SetLabelsMarginWidth(TInt aWidth);
  1433. __declspec(dllexport) void SetNonPrintingCharsVisibility(TNonPrintingCharVisibility aVisibility);
  1434. __declspec(dllexport) TNonPrintingCharVisibility NonPrintingCharsVisibility() const;
  1435. __declspec(dllexport) TBool IsBackgroundFormatting() const;
  1436. __declspec(dllexport) void NotifyTerminateBackgroundFormatting();
  1437. __declspec(dllexport) void SetExcludePartialLines(TBool aExcludePartialLines = 1 );
  1438. __declspec(dllexport) TBool ExcludingPartialLines() const;
  1439. __declspec(dllexport) void SetFontHeightIncreaseFactor(TInt aPercentage);
  1440. __declspec(dllexport) TInt FontHeightIncreaseFactor() const;
  1441. __declspec(dllexport) void SetMinimumLineDescent(TInt aPixels);
  1442. __declspec(dllexport) TInt MinimumLineDescent() const;
  1443. __declspec(dllexport) TInt DocumentLength() const;
  1444. __declspec(dllexport) TInt ToParagraphStart(TInt& aDocPos) const;
  1445. __declspec(dllexport) TInt PixelsAboveBand() const;
  1446. __declspec(dllexport) TInt YBottomLastFormattedLine() const;
  1447. __declspec(dllexport) TInt FormattedHeightInPixels() const;
  1448. __declspec(dllexport) TInt PosRangeInBand(TInt& aDocPos) const;
  1449. __declspec(dllexport) TBool PosInBand(const TTmDocPos& aDocPos,TTmLineInfo* aLineInfo = 0 ) const;
  1450. __declspec(dllexport) TBool PosInBand(TTmDocPos aDocPos,TPoint& aXyPos) const;
  1451. __declspec(dllexport) TBool PosInBand(TInt aDocPos,TPoint& aXyPos) const;
  1452. __declspec(dllexport) TBool PosIsFormatted(TInt aDocPos) const;
  1453. __declspec(dllexport) TInt FirstCharOnLine(TInt aLineNo) const;
  1454. __declspec(dllexport) TInt FormattedLength() const;
  1455. __declspec(dllexport) TInt FirstFormattedPos() const;
  1456. __declspec(dllexport) TInt NumFormattedLines() const;
  1457. __declspec(dllexport) TInt FirstLineInBand() const;
  1458. __declspec(dllexport) TInt GetLineRect(TInt aYPos,TRect& aLine) const;
  1459. __declspec(dllexport) TInt ParagraphHeight(TInt aDocPos) const;
  1460. __declspec(dllexport) TRect ParagraphRectL(TInt aDocPos) const;
  1461. __declspec(dllexport) TBool CalculateHorizontalExtremesL(TInt& aLeftX,TInt& aRightX,TBool aOnlyVisibleLines,
  1462. TBool aIgnoreWrapCharacters = 0 ) const;
  1463. __declspec(dllexport) void GetCharacterHeightAndAscentL(TInt aDocPos,TInt& aHeight,TInt& aAscent) const;
  1464. __declspec(dllexport) void GetFontHeightAndAscentL(const TFontSpec& aFontSpec,TInt& aHeight,TInt& aAscent) const;
  1465. __declspec(dllexport) TInt XyPosToDocPosL(TPoint &aPos, TUint aFlags = 0) const;
  1466. __declspec(dllexport) TBool DocPosToXyPosL(TInt aDocPos, TPoint& aPos, TUint aFlags = 0) const;
  1467. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo2& aPosInfo,TTmLineInfo* aLineInfo = 0 ) const;
  1468. __declspec(dllexport) TBool FindDocPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aPosInfo,TTmLineInfo* aLineInfo = 0 ) const;
  1469. __declspec(dllexport) TRect GetLineRectL(TInt aDocPos1,TInt aDocPos2) const;
  1470. __declspec(dllexport) TBool PictureRectangleL(TInt aDocPos,TRect& aPictureRect,TBool* aCanScaleOrCrop = 0 ) const;
  1471. __declspec(dllexport) TBool PictureRectangleL(const TPoint& aXyPos,TRect& aPictureRect,TBool* aCanScaleOrCrop = 0 ) const;
  1472. __declspec(dllexport) TInt FirstDocPosFullyInBand() const;
  1473. __declspec(dllexport) void GetMinimumSizeL(TInt aWrapWidth,TSize& aSize);
  1474. __declspec(dllexport) void GetMinimumSizeL(TInt aWrapWidth,TBool aAllowLegalLineBreaksOnly,TSize& aSize);
  1475. __declspec(dllexport) TInt MajorVersion() const;
  1476. __declspec(dllexport) TInt SetViewL(const TTmDocPos& aDocPos,TInt& aYPos,TViewYPosQualifier aYPosQualifier,
  1477.    TDiscard aDiscardFormat = EFViewDontDiscardFormat);
  1478. __declspec(dllexport) TInt SetViewL(TInt aDocPos,TInt& aYPos,TViewYPosQualifier aYPosQualifier,
  1479.    TDiscard aDiscardFormat = EFViewDontDiscardFormat);
  1480. __declspec(dllexport) void FormatBandL();
  1481. __declspec(dllexport) void FormatCharRangeL(TInt aStartDocPos,TInt aEndDocPos);
  1482. void FormatCharRangeL(TInt aStartDocPos,TInt aEndDocPos,TInt aPixelOffset);
  1483. __declspec(dllexport) TBool FormatNextLineL(TInt& aBotPixel);
  1484. __declspec(dllexport) TBool FormatLineL(CParaFormat* aParaFormat,TInt& aDocPos,TInt& aHeight,TBool& aPageBreak);
  1485. __declspec(dllexport) TInt ScrollParagraphsL(TInt& aNumParas,TAllowDisallow aScrollBlankSpace);
  1486. __declspec(dllexport) TInt ScrollLinesL(TInt& aNumLines,TAllowDisallow aScrollBlankSpace = EFDisallowScrollingBlankSpace);
  1487. __declspec(dllexport) TInt ChangeBandTopL(TInt& aPixels,TAllowDisallow aScrollBlankSpace = EFDisallowScrollingBlankSpace);
  1488. __declspec(dllexport) void PageUpL(TInt& aYCursorPos,TInt& aPixelsScrolled);
  1489. __declspec(dllexport) void PageDownL(TInt& aYCursorPos,TInt& aPixelsScrolled);
  1490. __declspec(dllexport) TBool HandleCharEditL(TUint aType,TInt& aCursorPos,TInt& aGood,TInt& aFormattedUpTo,
  1491.    TInt& aFormattedFrom,TInt& aScroll,TBool aFormatChanged);
  1492. __declspec(dllexport) void HandleBlockChangeL(TCursorSelection aSelection,TInt aOldCharsChanged,TViewRectChanges& aViewChanges,
  1493.  TBool aFormatChanged);
  1494. __declspec(dllexport) void HandleAdditionalCharactersAtEndL(TInt& aFirstPixel,TInt& aLastPixel);
  1495. __declspec(dllexport) void ReformatVerticalSpaceL();
  1496. __declspec(dllexport) void AdjustVerticalAlignment(CParaFormat::TAlignment aVerticalAlignment);
  1497. __declspec(dllexport) static void DrawBorders(const MGraphicsDeviceMap* aGd,CGraphicsContext& aGc,const TRect& aRect,
  1498.  const TParaBorderArray& aBorder,const TRgb* aBackground = 0 ,
  1499.  TRegion* aClipRegion = 0 ,const TRect* aDrawRect = 0 );
  1500. __declspec(dllexport) void DrawL(const TRect& aDrawRect,const TDrawTextLayoutContext* aDrawTextLayoutContext,
  1501. const TCursorSelection* aHighlight = 0 );
  1502. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPosSpec& aDocPos,
  1503. TTmPosInfo2& aPosInfo, TBool aToLeft) const;
  1504. __declspec(dllexport) void InvertRangeL(const TCursorSelection& aHighlight,const TRect& aDrawRect,
  1505.    const TDrawTextLayoutContext* aDrawTextLayoutContext);
  1506. __declspec(dllexport) void Highlight(const TRangeChange& aHighlight,const TRect& aDrawRect,
  1507. const TDrawTextLayoutContext* aDrawTextLayoutContext);
  1508. __declspec(dllexport) void SetCustomDraw(const MFormCustomDraw* aCustomDraw);
  1509. __declspec(dllexport) const MFormCustomDraw* CustomDraw() const;
  1510. __declspec(dllexport) void SetCustomWrap(const MFormCustomWrap* aCustomWrap);
  1511. __declspec(dllexport) const MFormCustomWrap* CustomWrap() const;
  1512. __declspec(dllexport) void ExtendFormattingToCoverYL(TInt aYPos);
  1513. __declspec(dllexport) void ExtendFormattingToCoverPosL(TInt aDocPos);
  1514. __declspec(dllexport) TInt GetLineNumber(TInt aDocPos);
  1515. __declspec(dllexport) void SetHighlightExtensions(TInt aLeftExtension, TInt aRightExtension, TInt aTopExtension, TInt aBottomExtension);
  1516. void SetExcessHeightRequired(TInt aExcessHeightRequired);
  1517.     __declspec(dllexport) void SetInterfaceProvider( MFormCustomInterfaceProvider* aProvider );
  1518. inline const CTmTextLayout& TagmaTextLayout() const;
  1519. inline void GetOrigin(TPoint& aPoint) const;
  1520. inline void RestrictScrollToTopsOfLines(TBool aRestrict);
  1521. void DrawBackground(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  1522. const TLogicalRgb& aBackground) const;
  1523. TBool CalculateHorizontalExtremes(TInt& aLeftX,TInt& aRightX,TBool aOnlyVisibleLines) const;
  1524. TBool GetCursor(const TTmDocPos& aDocPos,TTmCursorPlacement aPlacement,
  1525.     TRect& aLineRect,TPoint& aOrigin,TInt& aWidth,TInt& aAscent,TInt& aDescent) const;
  1526. void GetParagraphRect(const TTmDocPos& aDocPos,TRect& aRect) const;
  1527. TInt ScrollDocPosIntoViewL(const TTmDocPos& aDocPos);
  1528. TInt PictureRectangleAndPosL(const TPoint& aXyPos, TRect& aPictureRect,
  1529. TBool* aCanScaleOrCrop = 0) const;
  1530. void HighlightUsingExtensions(const CTextLayout::TRangeChange& aChangeHighlight,const TRangeChange& aFullHighlight,
  1531. const TRect& aDrawRect, const TDrawTextLayoutContext* aDrawTextLayoutContext);
  1532. inline const TTmHighlightExtensions& HighlightExtensions() const;
  1533. void GetHighlightRemnants(const TRect& aRect, const TDrawTextLayoutContext& aDrawTextLayoutContext, TRect* aRemainderRects) const;
  1534. void ClearHighlightRemnants(const TRect& aDrawRect, const TDrawTextLayoutContext& aDrawTextLayoutContext);
  1535. TInt WrapWidth() const;
  1536. void SetOpaqueLC();
  1537. __declspec(dllexport) void SetCustomInvisibleCharacterRemapper(MFormCustomInvisibleCharacterRemapper* aInvisibleCharacterRemapper);
  1538. __declspec(dllexport) MFormCustomInvisibleCharacterRemapper* GetCustomInvisibleCharacterRemapper();
  1539. TBool __DbgIsFormattingUpToDate() const;
  1540. enum TPanicNumber
  1541. {
  1542. EUnimplemented,
  1543. ENoMemory,
  1544. EDrawingBorderError,
  1545. EFormatDeviceNotSet,
  1546. EImageDeviceNotSet,
  1547. EPixelNotInFormattedLine,
  1548. EInvalidDocPos,
  1549. ENoCharRangeToFormat,
  1550. ECharacterNotFormatted,
  1551. EPrintPreviewModeError,
  1552. EBadCharacterEditType,
  1553. EInvalidLineNumber,
  1554. EPosNotFormatted,
  1555. EMustFormatAllText,
  1556. EPageScrollError
  1557. };
  1558. static void Panic(TPanicNumber aNumber);
  1559. private:
  1560. __declspec(dllexport) CTextLayout();
  1561.   __declspec(dllexport) void ConstructL(MLayDoc *aDoc,TInt aWrapWidth);
  1562. void InitFormatParam(TTmFormatParamBase& aParam);
  1563. TInt ScrollL(TInt aDy,TAllowDisallow aScrollBlankSpace);
  1564. void FormatBandL(TInt aStartDocPos,TInt aEndDocPos);
  1565. void PruneFormat(TBool aFromStart);
  1566. TInt VisibleHeightInPixels() const;
  1567. TInt BandHeightInPixels() const;
  1568. TInt SuggestCursorPos(TInt aCurrentCursorPos) const;
  1569. TInt SetBandTop();
  1570. static void ResetOpaque(void* aThis);
  1571. CTmTextLayout iText;
  1572. TInt iExcessHeightRequired;
  1573. TInt iDummy[16];
  1574. TInt iBandTop;
  1575. TInt iVisibleHeight;
  1576. TInt iBandHeight;
  1577. TInt iScrollFlags;
  1578. TInt iUnformattedStart;
  1579. TBool iParInvalid;
  1580. TTmHighlightExtensions iHighlightExtensions;
  1581. TLayDocTextSource iSource;
  1582. };
  1583. #line 894
  1584. class TCursorPosition
  1585. {
  1586. public:
  1587. enum TMovementType
  1588. {
  1589. EFNoMovement,
  1590. EFLeft,
  1591. EFRight,
  1592. EFLineUp,
  1593. EFLineDown,
  1594. EFPageUp,
  1595. EFPageDown,
  1596. EFLineBeg,
  1597. EFLineEnd
  1598. };
  1599. enum TVisualEnd
  1600. {
  1601. EVisualLeft,
  1602. EVisualRight
  1603. };
  1604. enum TPosHint
  1605. {
  1606. EPosHintUndefined           = 0,
  1607. EInsertStrongL2R = 1,
  1608. EInsertStrongR2L = 2,
  1609. EPosHintLast
  1610. };
  1611. inline TCursorPosition();
  1612. inline void SetLayout(CTextLayout *aLayout);
  1613. inline void UpdateLatentX(TInt aX);
  1614. inline void SetToPreviousHighlight();
  1615. inline void SetToCurrentHighlight();
  1616. inline void CancelHighlight();
  1617. inline void SetDocPos(const TTmDocPos& aDocPos);
  1618. void UpdateLatentPosition();
  1619. TInt SetSelectionL(const TCursorSelection& aSelection);
  1620. void SetPendingSelection(const TCursorSelection& aSelection);
  1621. void GetOldSelection(TCursorSelection& aSelection) const;
  1622. void GetSelection(TCursorSelection& aSelection) const;
  1623. TInt SetDocPosL(TBool aDragSelectOn,const TTmDocPos& aDocPos);
  1624. TInt SetXyPosL(TBool aDragSelectOn,TPoint aPos,TBool aAllowPictureFrame);
  1625. TInt MoveL(TBool aDragSelectOn,TMovementType& aMovement,TBool aAllowPictureFrame);
  1626. const TTmDocPos& VisualEndOfRunL(
  1627. const TTmDocPos& aStart, const TTmDocPos& aEnd,
  1628. TVisualEnd aDirection);
  1629. void TextMoveVertically();
  1630. inline void DontDrawOldPictureFrame();
  1631. inline TBool IsSelection() const;
  1632. inline TBool IsSelectionToDraw() const;
  1633. TBool IsPictureFrame() const;
  1634. TBool IsNewPictureFrame() const;
  1635. inline const TTmDocPos& TmDocPos() const;
  1636. inline TInt DocPos() const;
  1637. inline TBool DrawHighlight() const;
  1638. inline TBool DrawOldPictureFrame() const;
  1639. inline TBool DrawNewPictureFrame() const;
  1640. TBool GetCursor(TTmCursorPlacement aPlacement,TPoint& aOrigin,TInt& aWidth,TInt& aAscent,TInt& aDescent) const;
  1641. TPosHint PositioningHint() const { return iPositioningHint; }
  1642. void SetPositioningHint (TPosHint aHint)
  1643. {iPositioningHint = aHint;}
  1644. TTmPosInfo2& ChoosePosition(TTmPosInfo2& aPreferred,
  1645. TTmPosInfo2& aBackup);
  1646. private:
  1647. enum
  1648. {
  1649. EFAbove = -1,
  1650. EFInside = 0,
  1651. EFBelow = 1
  1652. };
  1653. enum
  1654. {
  1655. EDrawHighlight = 1,
  1656. EDrawOldPictureFrame = 2,
  1657. EDrawNewPictureFrame = 4,
  1658. EReturnPreviousHighlight = 8,
  1659. ESelected = 16
  1660. };
  1661. TInt ViewTopOfLineL(const TTmDocPos& aDocPos,TInt& aYPos);
  1662. void CheckSelection(TBool aSelect);
  1663. void CheckNullSelection();
  1664. inline void UpdateLatentY(TInt aY);
  1665. TInt CheckCursorOnScreenL(TInt& aY);
  1666. TBool LeftRightL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove);
  1667. void StartEndL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove);
  1668. void UpDownL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove);
  1669. TInt PageScrollL(TMovementType& aMove);
  1670. TInt DoSetDocPosL(const TTmDocPos& aDocPos);
  1671. TInt DoSetVisibleDocPosL(const TTmDocPos& aDocPos);
  1672. void DoSetXyPos(TPoint& aXy);
  1673. void SetPictureFrame(const TTmDocPos& aDocPos,TInt aAnchor,const TRect& aPictureRect);
  1674. inline TBool CalculateCursorPos(TPoint& aCurPos);
  1675. TTmDocPos iDocPos;
  1676. TInt iAnchor;
  1677. TInt iOldDocPos;
  1678. TInt iOldAnchor;
  1679. TUint iFlags;
  1680. TInt iLatentX;
  1681. TInt iLatentY;
  1682. CTextLayout* iLayout;
  1683. TPosHint iPositioningHint;
  1684. };
  1685. inline const CTmTextLayout& CTextLayout::TagmaTextLayout() const
  1686. {
  1687. return iText;
  1688. }
  1689. inline void CTextLayout::GetOrigin(TPoint& aPoint) const
  1690. {
  1691. aPoint.iX = 0;
  1692. aPoint.iY = -iBandTop;
  1693. }
  1694. inline CTextLayout::TTagmaForwarder::TTagmaForwarder(const CTextLayout& aLayout):
  1695. iLayout(aLayout)
  1696. {
  1697. }
  1698. inline const CTmTextLayout& CTextLayout::TTagmaForwarder::TextLayout() const
  1699. {
  1700. return iLayout.TagmaTextLayout();
  1701. }
  1702. inline void CTextLayout::TTagmaForwarder::GetOrigin(TPoint& aPoint) const
  1703. {
  1704. iLayout.GetOrigin(aPoint);
  1705. }
  1706. inline const TTmHighlightExtensions& CTextLayout::HighlightExtensions() const
  1707. {
  1708. return iHighlightExtensions;
  1709. }
  1710. void CTextLayout::RestrictScrollToTopsOfLines(TBool a)
  1711. {
  1712. if (a)
  1713. iScrollFlags |= EFScrollOnlyToTopsOfLines;
  1714. else
  1715. iScrollFlags &= ~EFScrollOnlyToTopsOfLines;
  1716. }
  1717. inline TViewYPosQualifier::TViewYPosQualifier():
  1718. iHotSpot(EFViewBaseLine),
  1719. iFillScreen(EFalse),
  1720. iFullyVisible(EFViewDontForceLineFullyVisible)
  1721. {
  1722. }
  1723. inline TViewRectChanges::TViewRectChanges():
  1724. iScrollAtTop(0),
  1725. iScrollAtBottom(0)
  1726. {
  1727. }
  1728. inline TCursorSelection::TCursorSelection():
  1729. iCursorPos(0),
  1730. iAnchorPos(0)
  1731. {
  1732. }
  1733. inline TCursorSelection::TCursorSelection(TInt aCursorPos,TInt aAnchorPos):
  1734. iCursorPos(aCursorPos),
  1735. iAnchorPos(aAnchorPos)
  1736. {
  1737. }
  1738. inline void TCursorSelection::SetSelection(TInt aCursorPos,TInt aAnchorPos)
  1739. {
  1740. iCursorPos = aCursorPos;
  1741. iAnchorPos = aAnchorPos;
  1742. }
  1743. inline TInt TCursorSelection::LowerPos() const
  1744. {
  1745. return Min(iCursorPos,iAnchorPos);
  1746. }
  1747. inline TInt TCursorSelection::HigherPos() const
  1748. {
  1749. return Max(iCursorPos,iAnchorPos);
  1750. }
  1751. inline TInt TCursorSelection::Length() const
  1752. {
  1753. return Abs(iCursorPos - iAnchorPos);
  1754. }
  1755. inline TCursorPosition::TCursorPosition():
  1756. iAnchor(0),
  1757. iOldDocPos(0),
  1758. iOldAnchor(0),
  1759. iFlags(0),
  1760. iLatentX(0),
  1761. iLatentY(0),
  1762. iLayout(0 ),
  1763. iPositioningHint(EPosHintUndefined)
  1764. {
  1765. }
  1766. inline void TCursorPosition::SetLayout(CTextLayout *aLayout)
  1767. {
  1768. iLayout = aLayout;
  1769. }
  1770. inline TBool TCursorPosition::IsSelection() const
  1771. {
  1772. return iFlags & ESelected;
  1773. }
  1774. inline TBool TCursorPosition::IsSelectionToDraw() const
  1775. {
  1776. return iFlags & (EDrawHighlight | EDrawOldPictureFrame | EDrawNewPictureFrame);
  1777. }
  1778. inline void TCursorPosition::SetToPreviousHighlight()
  1779. {
  1780. iFlags |= EReturnPreviousHighlight;
  1781. }
  1782. inline void TCursorPosition::SetToCurrentHighlight()
  1783. {
  1784. iFlags &= ~EReturnPreviousHighlight;
  1785. }
  1786. inline void TCursorPosition::CancelHighlight()
  1787. {
  1788. iFlags &= ~(ESelected | EDrawHighlight | EDrawOldPictureFrame | EDrawNewPictureFrame);
  1789. }
  1790. inline void TCursorPosition::UpdateLatentX(TInt aX)
  1791. {
  1792. iLatentX = aX;
  1793. }
  1794. inline void TCursorPosition::UpdateLatentY(TInt aY)
  1795. {
  1796. iLatentY = aY;
  1797. }
  1798. inline TBool TCursorPosition::CalculateCursorPos(TPoint& aPos)
  1799. {
  1800. TTmPosInfo2 pos_info;
  1801. TBool result = iLayout->FindDocPos(iDocPos,pos_info);
  1802. aPos = pos_info.iEdge;
  1803. return result;
  1804. }
  1805. inline const TTmDocPos& TCursorPosition::TmDocPos() const
  1806. {
  1807. return iDocPos;
  1808. }
  1809. inline TInt TCursorPosition::DocPos() const
  1810. {
  1811. return iDocPos.iPos;
  1812. }
  1813. inline void TCursorPosition::SetDocPos(const TTmDocPos& aDocPos)
  1814. {
  1815. iDocPos = aDocPos;
  1816. }
  1817. inline TBool TCursorPosition::DrawHighlight() const
  1818. {
  1819. return iFlags & EDrawHighlight;
  1820. }
  1821. inline TBool TCursorPosition::DrawOldPictureFrame() const
  1822. {
  1823. return iFlags & EDrawOldPictureFrame;
  1824. }
  1825. inline TBool TCursorPosition::DrawNewPictureFrame() const
  1826. {
  1827. return iFlags & EDrawNewPictureFrame;
  1828. }
  1829. inline void TCursorPosition::DontDrawOldPictureFrame()
  1830. {
  1831. iFlags &= ~EDrawOldPictureFrame;
  1832. }
  1833. #line 13 "C:\Symbian\9.1\S60_3rd\epoc32\include\lafmain.h" /* stack depth 6 */
  1834. class CCoeControl;
  1835. class CFont;
  1836. class TLogicalFont;
  1837. class MLafEnv;
  1838. class CLafEdwinCustomDrawBase : public CBase, public MFormCustomDraw
  1839. #line 31
  1840. {
  1841. public:
  1842. __declspec(dllexport) static CLafEdwinCustomDrawBase* NewL(const MLafEnv& aEnv,const CCoeControl& aControl);
  1843. public:
  1844. __declspec(dllexport) void DrawBackground(const TParam& aParam,const TRgb& aBackground,TRect& aDrawn) const;
  1845. __declspec(dllexport) TRgb SystemColor(TUint aColorIndex,TRgb aDefaultColor) const;
  1846. public:
  1847. __declspec(dllexport) virtual void LineSpacingChanged();
  1848. protected:
  1849. __declspec(dllexport) CLafEdwinCustomDrawBase(const MLafEnv& aEnv,const CCoeControl& aControl);
  1850. protected:
  1851. const MLafEnv& iEnv;
  1852. const CCoeControl& iControl;
  1853. private:
  1854. TInt iSpare;
  1855. };
  1856. class CLafEdwinCustomWrapBase : public CBase, public MFormCustomWrap
  1857. #line 90
  1858. {
  1859. public:
  1860. __declspec(dllexport) static CLafEdwinCustomWrapBase* NewL(const CCoeControl& aControl);
  1861. __declspec(dllexport) ~CLafEdwinCustomWrapBase();
  1862. public:
  1863. #line 111
  1864. __declspec(dllexport) TUint LineBreakClass(TUint aCode,TUint& aRangeStart,TUint& aRangeEnd) const;
  1865. #line 123
  1866. __declspec(dllexport) TBool LineBreakPossible(TUint aPrevClass,TUint aNextClass,TBool aHaveSpaces) const;
  1867. #line 142
  1868. __declspec(dllexport) TBool GetLineBreakInContext(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,TBool aForwards,TInt& aBreakPos) const;
  1869. __declspec(dllexport) TBool IsHangingCharacter(TUint aChar) const;
  1870. private:
  1871. __declspec(dllexport) void MFormCustomWrap_Reserved_1();
  1872. __declspec(dllexport) void MFormCustomWrap_Reserved_2();
  1873. protected:
  1874. __declspec(dllexport) CLafEdwinCustomWrapBase(const CCoeControl& aControl);
  1875. protected:
  1876. const CCoeControl& iControl;
  1877. private:
  1878. TInt iSpare;
  1879. };
  1880. class MLafEnv
  1881. #line 178
  1882. {
  1883. public:
  1884. virtual const CFont* Font(const TLogicalFont& aLogicalFont) const=0;
  1885. virtual const CFbsBitmap* Bitmap(TUid aBmpUid) const=0;
  1886. #line 201
  1887. virtual TRgb ControlColor(TLogicalColor aLogicalColor, const CCoeControl& aControl) const=0;
  1888. #line 210
  1889. virtual TRgb Color(TLogicalColor aLogicalColor, TUid aColorListUid=TUid::Null() ) const=0;
  1890. virtual TDisplayMode DefaultDisplayMode() const=0;
  1891. };
  1892. class MLafClientRectResolver
  1893. #line 228
  1894. {
  1895. public:
  1896. enum TScreenFurniture
  1897. {
  1898. EMenuBar,
  1899. EButtonGroup,
  1900. EToolBand,
  1901. ETitleBand,
  1902. EStatusPane,
  1903. ECba
  1904. };
  1905. public:
  1906. virtual void ReduceRect(TScreenFurniture aScreenFurniture,TRect& aRect) const=0;
  1907. };
  1908. #line 23 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikenv.h" /* stack depth 5 */
  1909. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikvcurs.h" /* stack depth 6 */
  1910. #line 16
  1911. class TEikVirtualCursor
  1912. {
  1913. public:
  1914. enum TState
  1915. {
  1916. EOff=0,
  1917. EOn,
  1918. ESuspended
  1919. };
  1920. public:
  1921. TEikVirtualCursor();
  1922. private:
  1923. inline TEikVirtualCursor(const TEikVirtualCursor&);
  1924. public:
  1925. __declspec(dllexport) void SetCursorStateL(TState aState, CCoeEnv& aEnv);
  1926. __declspec(dllexport) TState CursorState(CCoeEnv& aEnv);
  1927. public:
  1928. void HandleAppToForeground(CCoeEnv& aEnv);
  1929. private:
  1930. void SwitchOffEmulationAndBitmap(CCoeEnv& aEnv);
  1931. void SwitchOnEmulationAndBitmap(CCoeEnv& aEnv);
  1932. private:
  1933. TState iState;
  1934. };
  1935. inline TEikVirtualCursor::TEikVirtualCursor(const TEikVirtualCursor&)
  1936. {}
  1937. #line 24 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikenv.h" /* stack depth 5 */
  1938. class CEikProcess;
  1939. class MEikInfoMsgWin;
  1940. class MEikBusyMsgWin;
  1941. class CEikAppUi;
  1942. class CEikHotKeyTable;
  1943. class CCoeControl;
  1944. class CParaFormatLayer;
  1945. class CCharFormatLayer;
  1946. class CCoeBrushAndPenContext;
  1947. class CEikCommandButton;
  1948. class CPrintSetup;
  1949. class CDictionaryStore;
  1950. class CApaWindowGroupName;
  1951. class CEikErrorIdler;
  1952. class CEikApplication;
  1953. class MEikInfoDialog;
  1954. class MEikAlertWin;
  1955. class CEikDialog;
  1956. class MEikDebugKeys;
  1957. class CEikLibrary;
  1958. class MEikAppUiFactory;
  1959. class MEikIrFactory;
  1960. class CGulIcon;
  1961. class CApaMaskedBitmap;
  1962. class CEikLogicalBorder;
  1963. class CEikLafEnv;
  1964. class TLogicalFont;
  1965. class CEikPictureFactory;
  1966. class CEikEnvExtra;
  1967. class TApaApplicationFactory;
  1968. class CEikAppServer;
  1969. class CLafSystemFont;
  1970. const TInt KEikDefaultCursorWidth=2;
  1971. const TInt KTimeBetweenClicks=1000000;
  1972. const TInt KDoubleClickDistance=10;
  1973. const TInt KKeyboardRepeatRate=50000;
  1974. const TInt KKeyboardRepeatInitialDelay=800000;
  1975. const TUid KSystemIniFileUid = {0x1000010C};
  1976. const TUid KUikonLibraryUid = {0x10004CC1 };
  1977. const TInt KEikErrorResolverMaxTextLength = 256;
  1978. const TInt KLastSystemWideErrCode = KErrPermissionDenied;
  1979. typedef void (*TRequestDialogFunc)();
  1980. const static TLitC8<sizeof( "-DebugMemFail:")> KDebugStart={sizeof( "-DebugMemFail:")-1, "-DebugMemFail:"} ;
  1981. #line 132
  1982. typedef CEikLibrary* (*EikLibraryEntryPoint)();
  1983. class MEikPictureFactory
  1984. {
  1985. public:
  1986. __declspec(dllexport) virtual TUid Id() const;
  1987. virtual TBool SupportsPictureType(TUid aPictureType) const=0;
  1988. virtual const MPictureFactory* PictureFactory(TUid aPictureType) const=0;
  1989. virtual TPictureHeader InsertL(TUid aPictureType,CBase* aData)=0;
  1990. virtual void EditL(const TPictureHeader& aPictureHeader,TBool aReadOnly)=0;
  1991. private:
  1992. __declspec(dllexport) virtual void MEikPictureFactory_Reserved_1();
  1993. __declspec(dllexport) virtual void MEikPictureFactory_Reserved_2();
  1994. };
  1995. class CEikonEnv : public CCoeEnv
  1996. #line 188
  1997. {
  1998. public:
  1999. enum TErrorValidity
  2000. { EErrorNumValid, EErrorNumInvalid };
  2001. public:
  2002. __declspec(dllexport) ~CEikonEnv();
  2003. __declspec(dllexport) CEikonEnv();
  2004. __declspec(dllexport) void ConstructL();
  2005. __declspec(dllexport) void ConstructL(TBool aInitialFocusState);
  2006. __declspec(dllexport) void ConstructL(TBool aInitialFocusState, TInt aWindowGroupID);
  2007. __declspec(dllexport) void ConstructAppFromCommandLineL(const TApaApplicationFactory& aApplicationFactory,const CApaCommandLine& aCommandLine);
  2008. __declspec(dllexport) void ControlStackReadyL();
  2009. __declspec(dllexport) static TVersion Version();
  2010. inline static CEikonEnv* Static();
  2011. __declspec(dllexport) const CFont* AnnotationFont() const;
  2012. __declspec(dllexport) const CFont* TitleFont() const;
  2013. __declspec(dllexport) const CFont* LegendFont() const;
  2014. __declspec(dllexport) const CFont* SymbolFont() const;
  2015. __declspec(dllexport) const CFont* DenseFont() const;
  2016. __declspec(dllexport) const CFont* Font(const TLogicalFont& aLogicalFont) const;
  2017. public:
  2018. __declspec(dllexport) const CFbsBitmap* TexturedBitmap() const;
  2019. public:
  2020. __declspec(dllexport) const CFbsBitmap* GrayBitmap() const;
  2021. __declspec(dllexport) const CFbsBitmap* OptionBitmap() const;
  2022. __declspec(dllexport) const CFbsBitmap* HighlightedOptionBitmap() const;
  2023. __declspec(dllexport) const CFbsBitmap* OptionMaskBitmap() const;
  2024. public:
  2025. __declspec(dllexport) const CFbsBitmap* Bitmap(TUid aUidBmp) const;
  2026. void InitSystemBitmapsL();
  2027. public:
  2028. __declspec(dllexport) MLafEnv& LafEnv() const;
  2029. inline TInt EditableControlStandardHeight() const;
  2030. public:
  2031. inline CEikProcess* Process() const;
  2032. inline const MEikAlertWin* Alert() const;
  2033. __declspec(dllexport) MPictureFactory* PictureFactory()const;
  2034. __declspec(dllexport) MEikPictureFactory* ExtendedPictureFactory(TUid aPictureType) const;
  2035. __declspec(dllexport) void AddPictureFactoryL(MEikPictureFactory& aFactory);
  2036. __declspec(dllexport) void RemovePictureFactory(TUid aFactoryId);
  2037. __declspec(dllexport) void SetAlertWin(MEikAlertWin* aAlertWin);
  2038. __declspec(dllexport) void AlertWin(const TDesC& aMsg);
  2039. __declspec(dllexport) void AlertWin(const TDesC& aMsg1,const TDesC& aMsg2);
  2040. __declspec(dllexport) void LeaveWithInfoMsg(TInt aResourceId,...);
  2041. public:
  2042. __declspec(dllexport) void LeaveWithErrorContext(TInt aError,const TDesC& aContextText);
  2043. __declspec(dllexport) void GetErrorText(TDes& aDes,TInt aError) const;
  2044. __declspec(dllexport) TErrorValidity GetErrorText(TDes& aDes,TInt aError,TUid aAppUid) const;
  2045. public:
  2046. __declspec(dllexport) void ResolveError(TInt aError,TUid aAppUid=TUid::Null() ) const;
  2047. __declspec(dllexport) void InfoMsg(const TDesC& aDes);
  2048. __declspec(dllexport) void InfoMsgWithAlignment(TGulAlignment aCorner,const TDesC& aDes);
  2049. __declspec(dllexport) void InfoMsg(TInt aResourceId,...);
  2050. __declspec(dllexport) void InfoMsg(TInt aResourceId,VA_LIST aList);
  2051. __declspec(dllexport) void InfoMsgWithAlignment(TGulAlignment aCorner,TInt aResourceId,...);
  2052. __declspec(dllexport) void InfoMsgWithAlignment(TGulAlignment aCorner,TInt aResourceId,VA_LIST aList);
  2053. __declspec(dllexport) void InfoMsgWithDuration(const TDesC& aDes, TTimeIntervalMicroSeconds32 aDuration);
  2054. __declspec(dllexport) void InfoMsgWithDuration(TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration,...);
  2055. __declspec(dllexport) void InfoMsgWithDuration(TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration, VA_LIST aList);
  2056. __declspec(dllexport) void InfoMsgWithAlignmentAndDuration(TGulAlignment aCorner,const TDesC& aDes, TTimeIntervalMicroSeconds32 aDuration);
  2057. __declspec(dllexport) void InfoMsgWithAlignmentAndDuration(TGulAlignment aCorner,TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration,...);
  2058. __declspec(dllexport) void InfoMsgWithAlignmentAndDuration(TGulAlignment aCorner,TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration,VA_LIST aList);
  2059. __declspec(dllexport) void InfoMsgCancel();
  2060. __declspec(dllexport) void VerboseInfoMsg(const TDesC& aDes);
  2061. public:
  2062. __declspec(dllexport) void SetVerboseInfoReporting(TBool aVerbose);
  2063. public:
  2064. __declspec(dllexport) void BusyMsgL(const TDesC& aDes);
  2065. __declspec(dllexport) void BusyMsgL(const TDesC& aDes,TGulAlignment aCorner);
  2066. __declspec(dllexport) void BusyMsgL(TInt aResourceId);
  2067. __declspec(dllexport) void BusyMsgL(const TDesC& aDes,TTimeIntervalMicroSeconds32 aInitialDelay);
  2068. __declspec(dllexport) void BusyMsgL(const TDesC& aDes,TGulAlignment aCorner,TTimeIntervalMicroSeconds32 aInitialDelay);
  2069. __declspec(dllexport) void BusyMsgL(TInt aResourceId,TTimeIntervalMicroSeconds32 aInitialDelay);
  2070. __declspec(dllexport) void BusyMsgCancel();
  2071. __declspec(dllexport) TBool ConfirmLossOfAllChangesL() const;
  2072. __declspec(dllexport) static TBool QueryWinL(const TDesC& aFirstLine,const TDesC& aSecondLine);
  2073. __declspec(dllexport) TBool QueryWinL(TInt aFirstLineId,TInt aSecondLineId=0) const;
  2074. __declspec(dllexport) static void InfoWinL(const TDesC& aFirstLine,const TDesC& aSecondLine);
  2075. __declspec(dllexport) void InfoWinL(TInt aFirstLineId,TInt aSecondLineId=0) const;
  2076. __declspec(dllexport) void SetQueryDialog(MEikInfoDialog* aQueryDialog);
  2077. __declspec(dllexport) void SetInfoDialog(MEikInfoDialog* aInfoDialog);
  2078. __declspec(dllexport) void SetRequestQueryDialogFunc(TRequestDialogFunc aQueryDialogFunc);
  2079. __declspec(dllexport) void SetRequestInfoDialogFunc(TRequestDialogFunc aInfoDialogFunc);
  2080. __declspec(dllexport) void AllocInfoMsg();
  2081. __declspec(dllexport) void WservAllocInfoMsg();
  2082. __declspec(dllexport) void FservAllocInfoMsg();
  2083. __declspec(dllexport) static void Beep();
  2084. __declspec(dllexport) CWsBitmap* CreateBitmapL(const TDesC& aFileName,TInt aId);
  2085. __declspec(dllexport) CWsBitmap* CreateBitmapL(const TDesC& aFileName,TInt aId, TBool aShowDlgIfErr);
  2086. __declspec(dllexport) CGulIcon* CreateIconL(const TDesC& aFileName,TInt aBitmapId,TInt aMaskId=-1);
  2087. __declspec(dllexport) static CGulIcon* CreateIconFromMaskedBitmapL(const CApaMaskedBitmap& aApaMaskedBitmap);
  2088. public:
  2089. __declspec(dllexport) void SetDebugKeys(MEikDebugKeys* aDebugKeys);
  2090. __declspec(dllexport) void LaunchPopupMenuL(TInt aResourceId,const TPoint& aTargetPos,TPopupTargetPosType aTargetType=EPopupTargetTopLeft,const CEikHotKeyTable* aHotKeyTable=0 );
  2091. public:
  2092. __declspec(dllexport) static void AddWindowShadow(CCoeControl* aWinArea);
  2093. __declspec(dllexport) RAnimDll& ClockDllL();
  2094. __declspec(dllexport) CParaFormatLayer* SystemSingleLineParaFormatLayerL();
  2095. __declspec(dllexport) CParaFormatLayer* SystemParaFormatLayerL();
  2096. __declspec(dllexport) CCharFormatLayer* SystemCharFormatLayerL();
  2097. __declspec(dllexport) static CParaFormatLayer* NewDefaultSingleLineParaFormatLayerL();
  2098. __declspec(dllexport) static CParaFormatLayer* NewDefaultParaFormatLayerL();
  2099. __declspec(dllexport) static CCharFormatLayer* NewDefaultCharFormatLayerL();
  2100. __declspec(dllexport) static void GetPrinterNamesL(CPrinterModelList* aModelNameList,CDesCArray& aPrinterNameList);
  2101. inline CEikAppUi* EikAppUi() const;
  2102. __declspec(dllexport) void AddDialogLikeControlToStackL(CCoeControl* aControl);
  2103. __declspec(dllexport) void AddAlertDialogLikeControlToStackL(CCoeControl* aControl);
  2104. __declspec(dllexport) void RemoveFromStack(CCoeControl* aControl);
  2105. __declspec(dllexport) void AddSleepingDialogToStackL(CCoeControl* aControl);
  2106. __declspec(dllexport) void AddSleepingAlertDialogToStackL(CCoeControl* aControl);
  2107. __declspec(dllexport) void RouseSleepingDialog(CCoeControl* aControl,TBool aRoused);
  2108. __declspec(dllexport) void DrawCursor(const CCoeControl* aControl,const TPoint& aPosition,TInt aWidth);
  2109. __declspec(dllexport) void DrawCursor(const CCoeControl* aControl,const TPoint& aPosition,TInt aWidth,TInt aAscent,TInt aHeight);
  2110. __declspec(dllexport) void HideCursor(const CCoeControl* aControl);
  2111. __declspec(dllexport) void UpdateTaskNameL();
  2112. __declspec(dllexport) void BringForwards(TBool aForwards,TInt aPriority=ECoeWinPriorityAlwaysAtFront);
  2113. __declspec(dllexport) void SetAutoForwarding(TBool aForwarding);
  2114. public:
  2115. __declspec(dllexport) TPtrC KeyPressLabel(TInt aIndex) const;
  2116. public:
  2117. __declspec(dllexport) CPrintSetup* NewDefaultPrintSetupL();
  2118. public:
  2119. __declspec(dllexport) void DisplayTaskList();
  2120. __declspec(dllexport) void DismissTaskList();
  2121. __declspec(dllexport) void SendEventToEikonServer(TInt aEvent,const TAny* aPtr,TInt aLength);
  2122. public:
  2123. __declspec(dllexport) void SetBusy(TBool aBusy);
  2124. __declspec(dllexport) TBool IsBusy() const;
  2125. __declspec(dllexport) void SetSystem(TBool aSystem);
  2126. __declspec(dllexport) TBool IsSystem() const;
  2127. __declspec(dllexport) void SetDocNameIsAFile(TBool aDocNameIsAFile);
  2128. __declspec(dllexport) TBool DocNameIsAFile() const;
  2129. __declspec(dllexport) void SetRespondsToShutdownEvent(TBool aRespondsToShutdownEvent);
  2130. __declspec(dllexport) TBool RespondsToShutdownEvent() const;
  2131. __declspec(dllexport) void SetRespondsToSwitchFilesEvent(TBool aRespondsToSwitchFilesEvent);
  2132. __declspec(dllexport) TBool RespondsToSwitchFilesEvent() const;
  2133. __declspec(dllexport) TEikVirtualCursor& VirtualCursor();
  2134. __declspec(dllexport) void NotifyIdleErrorWhileRedrawing(TInt aError);
  2135. __declspec(dllexport) void NotifyIdleError(TInt aError,TInt aContextRid);
  2136. __declspec(dllexport) void HandleErrorWithContext(TInt aError,TInt aContextRid);
  2137. __declspec(dllexport) MEikAppUiFactory* AppUiFactory() const;
  2138. __declspec(dllexport) MEikAppUiFactory* AppUiFactory(const CEikAppUi& aAppUi) const;
  2139. public:
  2140. __declspec(dllexport) void SetAppUiFactoryL(MEikAppUiFactory* aAppUiFactory);
  2141. __declspec(dllexport) void AddAppUiFactoryL(MEikAppUiFactory* aAppUiFactory);
  2142. __declspec(dllexport) void RemoveAppUiFactory();
  2143. __declspec(dllexport) CColorList* PopulateColorArrayL();
  2144. public:
  2145. __declspec(dllexport) TInt AddLibraryL(TCreateByTypeFunction aControlFactory, TFileName* aResourceFile);
  2146. inline TInt AddLibraryL(TCreateByTypeFunction aControlFactory);
  2147. inline TInt AddLibraryL(TFileName* aResourceFile);
  2148. __declspec(dllexport) void RemoveLibrary(TCreateByTypeFunction aControlFactory, TInt aResourceFileOffset);
  2149. inline void RemoveLibrary(TCreateByTypeFunction aControlFactory);
  2150. inline void RemoveLibrary(TInt aResourceFileOffset);
  2151. inline TChar NudgeCharMinus() const;
  2152. inline TChar NudgeCharPlus() const;
  2153. inline CColorList& ColorList() const;
  2154. inline TRgb Color(TLogicalColor aLogicalColor) const;
  2155. inline void SetColor(TLogicalColor aLogicalColor, TRgb aColor);
  2156. __declspec(dllexport) TRgb ControlColor(TLogicalColor aLogicalColor,const CCoeControl& aControl) const;
  2157. inline CColorArray& CustomColorArray() const;
  2158. __declspec(dllexport) CColorList* CreateSystemColorListL();
  2159. __declspec(dllexport) CColorList* CreateSystemColorListL(const CColorList& aColorList);
  2160. __declspec(dllexport) void UpdateSystemColorListL(const CColorList& aColorList);
  2161. __declspec(dllexport) void UpdateSystemFontsL();
  2162. public:
  2163. inline void SetCDlgDialogFactory(MEikCDlgDialogFactory* aDialogFactory);
  2164. inline void SetPrintDialogFactory(MEikPrintDialogFactory* aDialogFactory);
  2165. inline void SetFileDialogFactory(MEikFileDialogFactory* aDialogFactory);
  2166. inline void SetIrFactory(MEikIrFactory* aIrFactory);
  2167. inline MEikCDlgDialogFactory* CDlgDialogFactory() const;
  2168. inline MEikPrintDialogFactory* PrintDialogFactory() const;
  2169. inline MEikFileDialogFactory* FileDialogFactory() const;
  2170. inline MEikIrFactory* IrFactory() const;
  2171. CArrayFix<TCreateByTypeFunction> * ControlFactoryFuncArray() const;
  2172. inline TInt StatusPaneCoreResId() const;
  2173. inline void SetStatusPaneCoreResId(TInt aStatusPaneCoreResId);
  2174. __declspec(dllexport) void AddAutoMenuTitleL(CEikAutoMenuTitle* aTitle);
  2175. inline CEikAutoMenuTitleArray* AutoMenuTitleArray() const;
  2176. public:
  2177. __declspec(dllexport) TDisplayMode DefaultDisplayMode() const;
  2178. public:
  2179. __declspec(dllexport) void SetExtension(CBase* aExtension);
  2180. inline CBase* Extension() const;
  2181. public:
  2182. __declspec(dllexport) void HandleError(TInt aError);
  2183. public:
  2184. __declspec(dllexport) void WriteInternalStateOfStackedControlsL();
  2185. public:
  2186. void UpdateColorListL();
  2187. void PostAppUiInitializeL();
  2188. __declspec(dllexport) void DoGetErrorText(TDes& aDes,TInt aError) const;
  2189. public:
  2190. __declspec(dllexport) void DestroyEnvironment();
  2191. private:
  2192. __declspec(dllexport) virtual void CEikonEnv_Reserved_1();
  2193. __declspec(dllexport) virtual void CEikonEnv_Reserved_2();
  2194. __declspec(dllexport) virtual void CEikonEnv_Reserved_3();
  2195. __declspec(dllexport) virtual void CEikonEnv_Reserved_4();
  2196. __declspec(dllexport) virtual void CEikonEnv_Reserved_5();
  2197. private:
  2198. __declspec(dllexport) void DestroyScreen();
  2199. __declspec(dllexport) void InitSystemFontsL();
  2200. __declspec(dllexport) TInt ResourceFileVersionNumber() const;
  2201. __declspec(dllexport) void Reserved_1();
  2202. __declspec(dllexport) void Reserved_2();
  2203. public:
  2204. __declspec(dllexport) MEikInfoDialog* QueryDialog() const;
  2205. __declspec(dllexport) MEikInfoDialog* InfoDialog() const;
  2206. public:
  2207. __declspec(dllexport) CEikAppServer* AppServer() const;
  2208. __declspec(dllexport) TBool StartedAsServerApp() const;
  2209. protected:
  2210. friend class CEikServAppUi;
  2211. private:
  2212. void InitSystemResourceFileL();
  2213. void InitPrivateResourceFileL();
  2214. void InitInfoMsgL();
  2215. void PrepareBusyMsgL();
  2216. void InitAlertWinL();
  2217. TErrorHandlerResponse PrepareToHandleError(TInt aError);
  2218. void DoHandleError(TErrorHandlerResponse aType);
  2219. static TInt IdleErrorCallBack(TAny* aThis);
  2220. void InitColorsL();
  2221. void LoadParserListL();
  2222. void LoadLibrariesL();
  2223. void CloseLibraries();
  2224. TRequestDialogFunc RequestQueryDialogFunc();
  2225. TRequestDialogFunc RequestInfoDialogFunc();
  2226. void SetAppReady();
  2227. TBool IsEiksrvThread() const;
  2228. TBool InfoWinOrQueryWinL(TInt aFirstLineId,TInt aSecondLineId,TBool aIsQueryWin=EFalse) const;
  2229. void SetCommandLineDebugMemFailL(const CApaCommandLine& aCommandLine);
  2230. void StoreAppLanguageL();
  2231. public:
  2232. TLanguage ApplicationLanguage() const;
  2233. public:
  2234. void PostAppUiDestroy();
  2235. private:
  2236. __declspec(dllexport) virtual void CEikonEnv_Reserved_6();
  2237. __declspec(dllexport) virtual void CEikonEnv_Reserved_7();
  2238. __declspec(dllexport) virtual void CEikonEnv_Reserved_8();
  2239. __declspec(dllexport) virtual void CEikonEnv_Reserved_9();
  2240. __declspec(dllexport) virtual void CEikonEnv_Reserved_10();
  2241. private:
  2242. class TEikAppUiFactory
  2243. {
  2244. public:
  2245. MEikAppUiFactory* iFactory;
  2246. CEikAppUi* iAppUi;
  2247. };
  2248. private:
  2249. TBitFlags iEikonEnvFlags;
  2250. TInt iForwardsCount;
  2251. TInt iBusyCount;
  2252. CEikProcess* iProcess;
  2253. RAnimDll* iClockDll;
  2254. CArrayPtr<
  2255. CLafSystemFont
  2256. > * iFontArray;
  2257. MEikInfoMsgWin* iInfoMsgWin;
  2258. MEikBusyMsgWin* iBusyMsgWin;
  2259. MEikAlertWin* iAlertWin;
  2260. TInt iSystemResourceFileOffset;
  2261. HBufC8* iKeyPressLabels;
  2262. CParaFormatLayer* iSingleLineParaFormatLayer;
  2263. CParaFormatLayer* iParaFormatLayer;
  2264. CCharFormatLayer* iCharFormatLayer;
  2265. const CCoeControl* iCursorWindow;
  2266. TInt iEditableControlStandardHeight;
  2267. CApaWindowGroupName* iWgName;
  2268. CEikErrorIdler* iErrorIdler;
  2269. TInt iPrivateResourceFileOffset;
  2270. CColorList* iColorList;
  2271. CEikPictureFactory* iPictureFactory;
  2272. TBuf<2> iNudgeChars;
  2273. MEikInfoDialog* iQueryDialog;
  2274. MEikInfoDialog* iInfoDialog;
  2275. TRequestDialogFunc iQueryDialogFunc;
  2276. TRequestDialogFunc iInfoDialogFunc;
  2277. CArrayFix<TCreateByTypeFunction> * iControlFactoryFuncArray;
  2278. CArrayFix<TInt> * iResourceFileOffsetArray;
  2279. TBool iAlertWinInitialized;
  2280. MEikDebugKeys* iDebugKeys;
  2281. MEikCDlgDialogFactory* iCDlgDialogFactory;
  2282. MEikPrintDialogFactory* iPrintDialogFactory;
  2283. MEikFileDialogFactory* iFileDialogFactory;
  2284. CArrayFix<TEikAppUiFactory> * iAppUiFactoryArray;
  2285. MEikIrFactory* iIrFactory;
  2286. CArrayPtr<CEikLibrary> * iLibraries;
  2287. TInt iEmbeddedAppLevel;
  2288. TInt iAutoLoadedResourceFiles;
  2289. TInt iAutoLoadedControlFactories;
  2290. CBase* iExtension;
  2291. TInt iStatusPaneCoreResId;
  2292. CEikAutoMenuTitleArray* iAutoMenuTitleArray;
  2293. TEikVirtualCursor iVirtualCursor;
  2294. CEikLogicalBorder* iLogicalBorder;
  2295. CEikLafEnv* iLafEnv;
  2296. CArrayPtrFlat<CFbsBitmap> * iBitmapArray;
  2297. CEikEnvExtra* iEikEnvExtra;
  2298. HBufC* iOOMErrorText;
  2299. TInt iSpare3;
  2300. };
  2301. class MEikInfoDialog
  2302. #line 542
  2303. {
  2304. public:
  2305. #line 553
  2306. virtual TBool RunDlgLD(TInt aResource, const TDesC& aTitle, const TDesC& aMsg) = 0;
  2307. };
  2308. class MEikAlertWin
  2309. {
  2310. public:
  2311. virtual void ConstructL() = 0;
  2312. virtual void RunAlert(const TDesC& aTitle, const TDesC& aMsg) = 0;
  2313. virtual void Release() = 0;
  2314. virtual CEikDialog* AsEikDialog() = 0;
  2315. inline const CEikDialog* AsEikDialog() const;
  2316. __declspec(dllexport) virtual CCoeControl* AsCoeControl();
  2317. inline const CCoeControl* AsCoeControl() const;
  2318. private:
  2319. __declspec(dllexport) virtual void MEikAlertWin_Reserved2();
  2320. __declspec(dllexport) virtual void MEikAlertWin_Reserved3();
  2321. };
  2322. class MEikDebugKeys
  2323. {
  2324. public:
  2325. virtual void ConstructL() = 0;
  2326. virtual void Release() = 0;
  2327. private:
  2328. __declspec(dllexport) virtual void MEikDebugKeys_Reserved1();
  2329. __declspec(dllexport) virtual void MEikDebugKeys_Reserved2();
  2330. __declspec(dllexport) virtual void MEikDebugKeys_Reserved3();
  2331. };
  2332. inline CEikonEnv* CEikonEnv::Static()
  2333. #line 604
  2334. { return((CEikonEnv*)(CCoeEnv::Static())); }
  2335. inline TInt CEikonEnv::EditableControlStandardHeight() const
  2336. { return(iEditableControlStandardHeight); }
  2337. inline CEikProcess* CEikonEnv::Process() const
  2338. { return(iProcess); }
  2339. inline CEikAppUi* CEikonEnv::EikAppUi() const
  2340. { return((CEikAppUi*)iAppUi); }
  2341. inline const MEikAlertWin* CEikonEnv::Alert() const
  2342. { return(iAlertWin); }
  2343. inline TChar CEikonEnv::NudgeCharMinus() const
  2344. {return(iNudgeChars[0]);}
  2345. inline TChar CEikonEnv::NudgeCharPlus() const
  2346. {return(iNudgeChars[1]);}
  2347. inline TRgb CEikonEnv::Color(TLogicalColor aLogicalColor) const
  2348. {return ColorList().Color(aLogicalColor); }
  2349. inline CColorArray& CEikonEnv::CustomColorArray() const
  2350. {return *(ColorList().ColorArray(TUid::Uid(KEikCustomColorsArrayValue)));}
  2351. inline CColorList& CEikonEnv::ColorList() const
  2352. {(void)((iColorList)||(User::Invariant(),0)) ; return *iColorList; }
  2353. inline void CEikonEnv::SetColor(TLogicalColor aLogicalColor, TRgb aColor)
  2354. { ColorList().SetColor(aLogicalColor, aColor); }
  2355. inline void CEikonEnv::SetCDlgDialogFactory(MEikCDlgDialogFactory* aDialogFactory)
  2356. {iCDlgDialogFactory=aDialogFactory;}
  2357. inline void CEikonEnv::SetPrintDialogFactory(MEikPrintDialogFactory* aDialogFactory)
  2358. {iPrintDialogFactory=aDialogFactory;}
  2359. inline void CEikonEnv::SetFileDialogFactory(MEikFileDialogFactory* aDialogFactory)
  2360. {iFileDialogFactory=aDialogFactory;}
  2361. inline void CEikonEnv::SetIrFactory(MEikIrFactory* aIrFactory)
  2362. {iIrFactory=aIrFactory;}
  2363. inline MEikCDlgDialogFactory* CEikonEnv::CDlgDialogFactory() const
  2364. {return iCDlgDialogFactory;}
  2365. inline MEikPrintDialogFactory* CEikonEnv::PrintDialogFactory() const
  2366. {return iPrintDialogFactory;}
  2367. inline MEikFileDialogFactory* CEikonEnv::FileDialogFactory() const
  2368. {return iFileDialogFactory;}
  2369. inline MEikIrFactory* CEikonEnv::IrFactory() const
  2370. {return iIrFactory;}
  2371. inline TInt CEikonEnv::AddLibraryL(TCreateByTypeFunction aControlFactory)
  2372. {return(AddLibraryL(aControlFactory, 0 ));}
  2373. inline TInt CEikonEnv::AddLibraryL(TFileName* aResourceFile)
  2374. {return(AddLibraryL(0 , aResourceFile));}
  2375. inline void CEikonEnv::RemoveLibrary(TCreateByTypeFunction aControlFactory)
  2376. {RemoveLibrary(aControlFactory, 0 );}
  2377. inline void CEikonEnv::RemoveLibrary(TInt aResourceFileOffset)
  2378. {RemoveLibrary(0 , aResourceFileOffset);}
  2379. inline CBase* CEikonEnv::Extension() const
  2380. {return iExtension;}
  2381. inline TInt CEikonEnv::StatusPaneCoreResId() const
  2382. {return iStatusPaneCoreResId;}
  2383. inline void CEikonEnv::SetStatusPaneCoreResId(TInt aStatusPaneCoreResId)
  2384. {iStatusPaneCoreResId=aStatusPaneCoreResId;}
  2385. inline CEikAutoMenuTitleArray* CEikonEnv::AutoMenuTitleArray() const
  2386. {return iAutoMenuTitleArray;}
  2387. inline const CEikDialog* MEikAlertWin::AsEikDialog() const
  2388. {return (const CEikDialog*)const_cast<MEikAlertWin*>(this)->AsEikDialog();}
  2389. inline const CCoeControl* MEikAlertWin::AsCoeControl() const
  2390. {return (const CCoeControl*)const_cast<MEikAlertWin*>(this)->AsCoeControl();}
  2391. enum TEikPortFlag
  2392. {
  2393. ESerialPort =0x01,
  2394. EParallelPort =0x02,
  2395. EIrdaPort= 0x04,
  2396. EFilePort=0x08,
  2397. EViaPCPort=0x10
  2398. };
  2399. __declspec(dllexport) void InternalizeL(TEikPortFlag& aThing,RReadStream& aStream);
  2400. inline RWriteStream& operator<<(RWriteStream& aStream,const TEikPortFlag& aThing)
  2401. {aStream.WriteUint8L(aThing);return aStream;}
  2402. inline RReadStream& operator>>(RReadStream& aStream,TEikPortFlag& aThing)
  2403. {InternalizeL(aThing,aStream);return aStream;}
  2404. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  2405. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.pan" /* stack depth 5 */
  2406. #line 17
  2407. enum TEikServPanic
  2408. {
  2409. EEikServPanicNotifyBadDescriptor,
  2410. EEikServPanicAlarmAlertServiceNotSupported,
  2411. EEikServPanicNoTaskListDialog,
  2412. EEikServPanicTaskNull,
  2413. EEsPanicAlarmAlert,
  2414. EEikServPanicAlarmAlertServerAlreadyConnected,
  2415. EEikServEnvPanicNullAppUi,
  2416. EEikServPanicNoSuchLabelInAlarm,
  2417. EEikServPanicDriveIndexOutOfRange,
  2418. EEikServPanicNotiferArrayNotNull,
  2419. EEikServPanicChannelIndexOutOfRange,
  2420. EEikServPanicNullObservedList,
  2421. EEikServPanicQueueIndexOutOfRange,
  2422. EEikServPanicNotifyAlertQueueEmpty,
  2423. EEikSrvClientPanicInconsistentMessageParameters,
  2424. };
  2425. extern void Panic(TEikServPanic aPanic);
  2426. #line 18 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  2427. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\apgtask.h" /* stack depth 5 */
  2428. #line 13
  2429. class RWsSession;
  2430. struct TKeyEvent;
  2431. #line 25
  2432. enum TApaSystemEvent
  2433. {
  2434. EApaSystemEventShutdown=1,
  2435. EApaSystemEventBackupStarting,
  2436. EApaSystemEventBackupComplete,
  2437. EApaSystemEventBroughtToForeground
  2438. };
  2439. #line 71
  2440. const TInt KUidApaMessageSwitchOpenFileValue16=0x10003A39;
  2441. const TUid KUidApaMessageSwitchOpenFile16={KUidApaMessageSwitchOpenFileValue16};
  2442. const TInt KUidApaMessageSwitchCreateFileValue16=0x10003A3A;
  2443. const TUid KUidApaMessageSwitchCreateFile16={KUidApaMessageSwitchCreateFileValue16};
  2444. class TApaTask
  2445. #line 105
  2446. {
  2447. public:
  2448. __declspec(dllexport) TApaTask(RWsSession& aWsSession);
  2449. __declspec(dllexport) void SetWgId(TInt aWgId);
  2450. __declspec(dllexport) TInt WgId() const;
  2451. __declspec(dllexport) TBool Exists() const;
  2452. __declspec(dllexport) TThreadId ThreadId() const;
  2453. __declspec(dllexport) void BringToForeground();
  2454. __declspec(dllexport) void SendToBackground();
  2455. __declspec(dllexport) void EndTask();
  2456. __declspec(dllexport) void KillTask();
  2457. __declspec(dllexport) void SendKey(TInt aKeyCode,TInt aModifiers);
  2458. __declspec(dllexport) void SendKey(const TKeyEvent& aKey);
  2459. __declspec(dllexport) void SendSystemEvent(TApaSystemEvent aEvent);
  2460. __declspec(dllexport) TInt SwitchOpenFile(const TDesC& aFilename);
  2461. __declspec(dllexport) TInt SwitchCreateFile(const TDesC& aFilename);
  2462. __declspec(dllexport) TInt SendMessage(TUid aUid, const TDesC8& aParams);
  2463. private:
  2464. TInt CheckSwitchFile() const;
  2465. private:
  2466. RWsSession& iWsSession;
  2467. TInt iWgId;
  2468. TInt iTApaTask_Reserved1;
  2469. };
  2470. class TApaTaskList
  2471. #line 144
  2472. {
  2473. public:
  2474. enum TCycleDirection
  2475. {
  2476. EForwards,
  2477. EBackwards
  2478. };
  2479. public:
  2480. __declspec(dllexport) TApaTaskList(RWsSession& aWsSession);
  2481. __declspec(dllexport) TApaTask FindApp(const TDesC& aAppName);
  2482. __declspec(dllexport) TApaTask FindDoc(const TDesC& aDocName);
  2483. __declspec(dllexport) TApaTask FindByPos(TInt aPos);
  2484. __declspec(dllexport) TApaTask FindApp(TUid aAppUid);
  2485. __declspec(dllexport) TInt CycleTasks(TUid aAppUid,TCycleDirection aDirection=EForwards);
  2486. private:
  2487. void FindByPosL(TApaTask& aTask,TInt aPos);
  2488. private:
  2489. RWsSession& iWsSession;
  2490. TInt iTApaTaskList_Reserved1;
  2491. };
  2492. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  2493. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  2494. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\vwsappst.h" /* stack depth 6 */
  2495. #line 9
  2496. class MVwsAppStarter
  2497. #line 18
  2498. {
  2499. public:
  2500. virtual void StartAppL(TUid aAppUid,TThreadId& aThreadId)=0;
  2501. };
  2502. #line 12 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  2503. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikunder.h" /* stack depth 6 */
  2504. #line 13
  2505. class RThread;
  2506. class MEikUndertakerObserver
  2507. {
  2508. public:
  2509. virtual void HandleThreadExitL(RThread& aThread)=0;
  2510. };
  2511. class CEikUndertaker : public CActive
  2512. {
  2513. public:
  2514. __declspec(dllexport) static CEikUndertaker* NewL(MEikUndertakerObserver& aObserver);
  2515. __declspec(dllexport) ~CEikUndertaker();
  2516. private:
  2517. CEikUndertaker(MEikUndertakerObserver& aObserver);
  2518. void ConstructL();
  2519. void Request();
  2520. private:
  2521. virtual void DoCancel();
  2522. virtual void RunL();
  2523. private:
  2524. MEikUndertakerObserver& iObserver;
  2525. RUndertaker iUndertaker;
  2526. TInt iThreadHandle;
  2527. };
  2528. #line 13 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  2529. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikcycledef.h" /* stack depth 6 */
  2530. #line 9
  2531. enum TTaskCycleDirection
  2532. {
  2533. EBackwards,
  2534. EForwards
  2535. };
  2536. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  2537. class CDictionaryFileStore;
  2538. class CVwsSessionWrapper;
  2539. enum TEikAppUiServPanic
  2540. {
  2541. EEikSrvDefault,
  2542. EEikSrvSvrCreateServer,
  2543. EEikSrvSvrStartServer,
  2544. EEikSrvSrvNotFound,
  2545. EEikSrvBadDescriptor,
  2546. EEikSrvIllegalError,
  2547. EEikSrvBadRequestSequence
  2548. };
  2549. class CEikServAppUiSession;
  2550. class CEikServAppUiServer : public CPolicyServer
  2551. {
  2552. friend class CEikServAppUiSession;
  2553. public:
  2554. enum {EPriority=EPriorityAbsoluteHigh};
  2555. __declspec(dllexport) static CEikServAppUiServer* NewL();
  2556. virtual CSession2* NewSessionL(const TVersion &aVersion,const RMessage2& aMessage) const;
  2557. static TInt ThreadFunction(TAny* aStarted);
  2558. CEikAppUi& AppUi();
  2559. private:
  2560. CEikServAppUiServer(TInt aPriority=EPriority);
  2561. void ConstructL();
  2562. CEikServAppUiSession* NewSessionL();
  2563. private:
  2564. CEikAppUi* iAppUi;
  2565. };
  2566. class MEikServAppUiSessionHandler
  2567. {
  2568. public:
  2569. virtual void NotifyAlarmServerOfTaskChangeL() = 0;
  2570. virtual void LaunchTaskListL() = 0;
  2571. virtual void CycleTasksL(enum TTaskCycleDirection aDirection) = 0;
  2572. virtual void SetStatusPaneFlags(TInt aFlags) = 0;
  2573. virtual void SetStatusPaneLayoutL(TInt aLayoutResId) = 0;
  2574. virtual void BlankScreenL() = 0;
  2575. virtual void UnblankScreen() = 0;
  2576. virtual void EnableTaskListL() = 0;
  2577. virtual void Extension(TUid aExtensionUid,const TDesC8& aBuffer,RMessagePtr2 aMessage) = 0;
  2578. protected:
  2579. __declspec(dllexport) MEikServAppUiSessionHandler();
  2580. private:
  2581. __declspec(dllexport) virtual void MEikServAppUiSessionHandler_Reserved1();
  2582. __declspec(dllexport) virtual void MEikServAppUiSessionHandler_Reserved2();
  2583. private:
  2584. TInt iMEikServAppUiSessionHandler_Reserved1;
  2585. };
  2586. class CEikServAppUiSession : public CSession2
  2587. {
  2588. public:
  2589. __declspec(dllexport) CEikServAppUiSession(MEikServAppUiSessionHandler* aHandler);
  2590. __declspec(dllexport) ~CEikServAppUiSession();
  2591. __declspec(dllexport) virtual void ConstructL();
  2592. __declspec(dllexport) virtual void ServiceL(const RMessage2& aMessage);
  2593. __declspec(dllexport) virtual void ServiceError(const RMessage2& aMessage,TInt aError);
  2594. private:
  2595. void PanicClient(const RMessage2& aMessage, TEikAppUiServPanic aCode);
  2596. inline CEikServAppUiServer& Server() {return *(static_cast<CEikServAppUiServer*>((const_cast<CServer2*>(CSession2::Server())))) ;}
  2597. protected:
  2598. __declspec(dllexport) MEikServAppUiSessionHandler* SessionHandler() const;
  2599. protected:
  2600. CEikServAppUiServer* iAppUiServer;
  2601. TBool iScreenBlanked;
  2602. MEikServAppUiSessionHandler* iSessionHandler;
  2603. private:
  2604. TInt iNotUsed1;
  2605. TInt iNotUsed2;
  2606. };
  2607. class CEikPasswordModeCategory : public CBase
  2608. #line 118
  2609. {
  2610. public:
  2611. __declspec(dllexport) static CEikPasswordModeCategory* NewLC(RFs& aFs);
  2612. __declspec(dllexport) ~CEikPasswordModeCategory();
  2613. __declspec(dllexport) void GetPasswordModeL(TPasswordMode& aMode) const;
  2614. __declspec(dllexport) void SetPasswordModeL(TPasswordMode aMode);
  2615. private:
  2616. CEikPasswordModeCategory();
  2617. void ConstructL(RFs& aFs);
  2618. private:
  2619. CDictionaryFileStore* iStore;
  2620. };
  2621. class CEikServNotifyServer;
  2622. class CNotifierServerExtended;
  2623. class CEikServBackupServer;
  2624. class CEikServAlarmAlertServer;
  2625. class CEikKeyWindow;
  2626. class CEikUndertaker;
  2627. class CEikPasswordControl;
  2628. class CEikTaskListDialog;
  2629. class MEikServNotifyAlert;
  2630. class MEikServAlarmFactory;
  2631. class CEikServDllClose;
  2632. class TEikServCtrlFactories
  2633. {
  2634. public:
  2635. inline TEikServCtrlFactories();
  2636. inline TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert);
  2637. public:
  2638. MEikServNotifyAlert* iAlert;
  2639. MEikServAlarmFactory* iAlarmAlert;
  2640. private:
  2641. TInt iTEikServCtrlFactories_Reserved1;
  2642. };
  2643. class MEikServAppUiSessionFactory
  2644. {
  2645. public:
  2646. virtual CEikServAppUiSession* CreateSessionL() = 0;
  2647. protected:
  2648. __declspec(dllexport) MEikServAppUiSessionFactory();
  2649. private:
  2650. __declspec(dllexport) virtual void MEikServAppUiSessionFactory_Reserved1();
  2651. __declspec(dllexport) virtual void MEikServAppUiSessionFactory_Reserved2();
  2652. private:
  2653. TInt iMEikServAppUiSessionFactory_Reserved1;
  2654. };
  2655. class CEikServEnv : public CEikonEnv
  2656. {
  2657. public:
  2658. __declspec(dllexport) CEikServEnv();
  2659. __declspec(dllexport) ~CEikServEnv();
  2660. __declspec(dllexport) void DestroyEnvironment();
  2661. public:
  2662. __declspec(dllexport) void SetEikServAppUiSessionFactory(MEikServAppUiSessionFactory* aSessionFactory);
  2663. __declspec(dllexport) MEikServAppUiSessionFactory* EikServAppUiSessionFactory() const;
  2664. __declspec(dllexport) TBool IsTaskListEnabled() const;
  2665. __declspec(dllexport) void EnableTaskList();
  2666. public:
  2667. void SetEikServer(CEikServAppUiServer* aServer);
  2668. __declspec(dllexport) void SetUiDll(RLibrary& aDll);
  2669. private:
  2670. __declspec(dllexport) virtual void CEikServEnv_Reserved1();
  2671. __declspec(dllexport) virtual void CEikServEnv_Reserved2();
  2672. __declspec(dllexport) virtual void CEikonEnv_Reserved1();
  2673. __declspec(dllexport) virtual void CEikonEnv_Reserved2();
  2674. __declspec(dllexport) virtual void MApaAppStarter_Reserved1();
  2675. __declspec(dllexport) virtual void MApaAppStarter_Reserved2();
  2676. __declspec(dllexport) virtual void Reserved_1();
  2677. __declspec(dllexport) virtual void Reserved_2();
  2678. private:
  2679. RLibrary iUiDll;
  2680. CEikServAppUiServer* iServer;
  2681. MEikServAppUiSessionFactory* iSessionFactory;
  2682. TBool iIsTaskListEnabled;
  2683. TInt iCEikServEnv_Reserved1;
  2684. };
  2685. inline TEikServCtrlFactories::TEikServCtrlFactories()
  2686. : iAlert(0 ), iAlarmAlert(0 )
  2687. {}
  2688. inline TEikServCtrlFactories::TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert)
  2689. : iAlert(aAlert), iAlarmAlert(aAlarmAlert)
  2690. {}
  2691. class CEikServSecureData : public CBase
  2692. {
  2693. public:
  2694. __declspec(dllexport) static void GetInstalledFepNameL(TDes& aName);
  2695. __declspec(dllexport) static void SetInstalledFepNameL(const TDesC& aName, TBool aRaiseFileError);
  2696. __declspec(dllexport) static void OpenFepAttributesL();
  2697. __declspec(dllexport) static void GetFepAttributeL(TUid aAttribUid, TDes8& aAttribData);
  2698. __declspec(dllexport) static void SetFepAttributeL(TUid aAttribUid, const TDesC8& aAttribData);
  2699. __declspec(dllexport) static void CommitFepAttributesL();
  2700. __declspec(dllexport) static void CloseFepAttributes();
  2701. __declspec(dllexport) static CBufBase* GetBufferedSystemColorListL();
  2702. __declspec(dllexport) static void SetBufferedSystemColorListL(const TDesC8& aBuffer);
  2703. protected:
  2704. __declspec(dllexport) CEikServSecureData();
  2705. private:
  2706. __declspec(dllexport) virtual void CEikServSecureData_Reserved1();
  2707. __declspec(dllexport) virtual void CEikServSecureData_Reserved2();
  2708. private:
  2709. TInt iCEikServSecureData_Reserved1;
  2710. };
  2711. #line 26 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  2712. class CDictionaryFileStore;
  2713. const static TLitC<sizeof(L"!EikAppUiServer")/2> EIKAPPUI_SERVER_NAME={sizeof(L"!EikAppUiServer")/2-1,L"!EikAppUiServer"} ;
  2714. const static TLitC<sizeof(L"EikAppUiServerThread")/2> EIKAPPUI_SERVER_THREAD_NAME={sizeof(L"EikAppUiServerThread")/2-1,L"EikAppUiServerThread"} ;
  2715. const static TLitC<sizeof(L"EikAppUiServerStartSemaphore")/2> EIKAPPUI_SERVER_SEMAPHORE={sizeof(L"EikAppUiServerStartSemaphore")/2-1,L"EikAppUiServerStartSemaphore"} ;
  2716. const TInt KEikSrvDefaultHeapSize=0x10000;
  2717. const TInt KEikSrvDefaultMaxHeapSize=0x100000;
  2718. enum TEikAppUiRanges
  2719. {
  2720. EFirstUnrestrictedOpcodeInEikAppUi
  2721. };
  2722. enum TEikUiOpCode
  2723. {
  2724. EEikAppUiFirst=EFirstUnrestrictedOpcodeInEikAppUi,
  2725. EEikAppUiLaunchTaskList,
  2726. EEikAppUiCycleTasks,
  2727. EEikAppUiSetStatusPaneFlags,
  2728. EEikAppUiSetStatusPaneLayout,
  2729. EEikAppUiBlankScreen,
  2730. EEikAppUiUnblankScreen,
  2731. EEikAppUiResolveError,
  2732. EEikAppUiExtension,
  2733. EEikAppUiEnableTaskList,
  2734. EEikAppUiFirstUnusedOpcode,
  2735. };
  2736. extern void PanicServer(TEikAppUiServPanic aPanic);
  2737. #line 9 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvc.h" /* stack depth 3 */
  2738. const TInt KNumConnectRetries=5;
  2739. typedef TThreadFunction* (*EikSrvEntrypoint)();
  2740. class REikAppUiSession : public RSessionBase
  2741. {
  2742. public:
  2743. __declspec(dllexport) REikAppUiSession();
  2744. __declspec(dllexport) TInt Connect();
  2745. __declspec(dllexport) void Close();
  2746. __declspec(dllexport) TVersion Version() const;
  2747. __declspec(dllexport) void LaunchTaskList() const;
  2748. __declspec(dllexport) void CycleTasks(TTaskCycleDirection aDirection) const;
  2749. __declspec(dllexport) TInt SetStatusPaneFlags(TInt aFlags) const;
  2750. __declspec(dllexport) TInt SetStatusPaneLayout(TInt aLayoutResId) const;
  2751. __declspec(dllexport) TInt BlankScreen() const;
  2752. __declspec(dllexport) TInt UnblankScreen() const;
  2753. __declspec(dllexport) CEikonEnv::TErrorValidity ResolveError(TDes& aText,TInt aError,TUid aAppUid) const;
  2754. __declspec(dllexport) void Extension(TUid aExtensionUid,const TDesC8& aBuffer,TRequestStatus& aRequestStatus) const;
  2755. __declspec(dllexport) TInt GetInstalledFepName(TDes& aName) const;
  2756. __declspec(dllexport) TInt SetInstalledFepName(const TDesC& aName, TBool aRaiseFileError) const;
  2757. __declspec(dllexport) CColorList* GetSystemColorsL() const;
  2758. __declspec(dllexport) void SetSystemColorsL(const CColorList& aColorList) const;
  2759. __declspec(dllexport) TInt OpenFepAttributes() const;
  2760. __declspec(dllexport) TInt GetFepAttribute(TUid aAttribUid, TDes8& aAttribData) const;
  2761. __declspec(dllexport) TInt SetFepAttribute(TUid aAttribUid, const TDesC8& aAttribData) const;
  2762. __declspec(dllexport) TInt CommitFepAttributes() const;
  2763. __declspec(dllexport) void CloseFepAttributes() const;
  2764. __declspec(dllexport) TInt EnableTaskList() const;
  2765. __declspec(dllexport) virtual void REikAppUiSession_Reserved1();
  2766. __declspec(dllexport) virtual void REikAppUiSession_Reserved2();
  2767. private:
  2768. class CExtension;
  2769. void StartServerL();
  2770. private:
  2771. RLibrary iNotUsed;
  2772. private:
  2773. CExtension* iExtension;
  2774. };
  2775. #line 68
  2776. extern void PanicServer(TEikAppUiServPanic aPanic);
  2777. #line 18 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikspmod.h" /* stack depth 2 */
  2778. class TResourceReader;
  2779. class CEikStatusPaneLayoutTree;
  2780. class CEikonEnv;
  2781. class CAknSgcClient;
  2782. const TInt KEikStatusPaneDirectionBit = 0x04;
  2783. const TInt KEikStatusPaneHiddenBit = 0x08;
  2784. const TInt KEikStatusPaneInitInitializedBit = 0x80000000;
  2785. typedef TUid TPaneId;
  2786. class TEikStatusPaneInit
  2787. {
  2788. public:
  2789. TEikStatusPaneInit();
  2790. TEikStatusPaneInit(const TEikStatusPaneInit& aCopy);
  2791. TEikStatusPaneInit& operator=(const TEikStatusPaneInit& aCopy);
  2792. inline TPaneId Id() const;
  2793. void LoadDefaults(TResourceReader& aResource);
  2794. inline TBool AppOwned() const;
  2795. inline TInt ControlTypeId() const;
  2796. inline TInt ControlResourceId() const;
  2797. inline void SetHidden();
  2798. inline void ClearHidden();
  2799. inline TBool IsHidden() const;
  2800. private:
  2801. inline TBool Initialized();
  2802. inline void SetInitialized();
  2803. private:
  2804. TPaneId iId;
  2805. TInt iControlId;
  2806. TInt iControlResource;
  2807. TInt iFlags;
  2808. };
  2809. class CEikStatusPaneSetInit : public CArrayFixFlat<TEikStatusPaneInit>
  2810. {
  2811. public:
  2812. static CEikStatusPaneSetInit* NewL();
  2813. ~CEikStatusPaneSetInit();
  2814. void LoadDefaultsL(TResourceReader& aResource);
  2815. TEikStatusPaneInit& FindL(const TPaneId& aPaneId);
  2816. private:
  2817. CEikStatusPaneSetInit();
  2818. };
  2819. class MEikStatusPaneLayoutTreeVisitor
  2820. {
  2821. public:
  2822. virtual void VisitL(CEikStatusPaneLayoutTree* aNode) = 0;
  2823. };
  2824. class CEikStatusPaneLayoutTree : public CBase
  2825. {
  2826. public:
  2827. enum TDirection
  2828. {
  2829. EHorizontal,
  2830. EVertical
  2831. };
  2832. public:
  2833. ~CEikStatusPaneLayoutTree();
  2834. static CEikStatusPaneLayoutTree* NewL(TResourceReader& aResource, TDirection aDefaultDirection = EHorizontal);
  2835. CEikStatusPaneLayoutTree* Find(const TPaneId& aPaneId);
  2836. void AcceptL(MEikStatusPaneLayoutTreeVisitor* aVisitor);
  2837. inline TPaneId Id() const;
  2838. inline TRect Rect() const;
  2839. private:
  2840. CEikStatusPaneLayoutTree(TDirection aDefaultDirection);
  2841. void ConstructL(TResourceReader& aResource);
  2842. void SetRect(const TRect& aRect);
  2843. inline TDirection Direction();
  2844. void SetDirection(TDirection aDirection);
  2845. inline TInt Size();
  2846. inline TBool Stretchable();
  2847. void SetStretchable(TBool aStretchable);
  2848. void Layout();
  2849. #line 130
  2850. void Layout(TInt aLayoutResourceId);
  2851. #line 143
  2852.     TRect AknLayoutRect(TInt aLayoutResourceId, TPaneId aPaneId);
  2853. #line 153
  2854.     void SetAknLayoutUsed(TBool aAknLayoutUsed);
  2855. #line 163
  2856.     TBool AknLayoutUsed();
  2857. private:
  2858. TPaneId iId;
  2859. TInt iFlags;
  2860. TRect iRect;
  2861. TInt iSize;
  2862. typedef CArrayPtrFlat<CEikStatusPaneLayoutTree> CSubPaneArray;
  2863. CSubPaneArray* iSubPanes;
  2864. private:
  2865. friend class CEikStatusPaneLayout;
  2866. };
  2867. class CEikStatusPaneLayout : public CBase
  2868. {
  2869. public:
  2870. static CEikStatusPaneLayout* NewL(TResourceReader& aResource, const TRect& aScreenRect);
  2871. static CEikStatusPaneLayout* NewL(TResourceReader& aResource, const TRect& aScreenRect, TInt aLayoutId);
  2872. ~CEikStatusPaneLayout();
  2873. inline CEikStatusPaneLayoutTree* Find(const TPaneId& aPaneId) const;
  2874. inline void AcceptL(MEikStatusPaneLayoutTreeVisitor* aVisitor);
  2875. inline TRect Rect() const;
  2876. #line 198
  2877. void AknLayoutRefresh(TInt aLayoutResourceId);
  2878. #line 209
  2879.     TBool AknLayoutUsed();
  2880. private:
  2881. CEikStatusPaneLayout();
  2882. void ConstructL(TResourceReader& aResource, const TRect& aScreenRect, TInt aLayoutId);
  2883. private:
  2884. CEikStatusPaneLayoutTree* iRoot;
  2885. };
  2886. class CEikStatusPaneModelBase : public CBase
  2887. {
  2888. public:
  2889. __declspec(dllexport) ~CEikStatusPaneModelBase();
  2890. inline CEikStatusPaneSetInit* PaneInits() const;
  2891. __declspec(dllexport) virtual void SetLayoutL(TInt aLayoutResId, TBool aChangeStatusPaneNow = ETrue);
  2892. inline CEikStatusPaneLayout* CurrentLayout() const;
  2893. __declspec(dllexport) TInt CurrentLayoutResId() const;
  2894. #line 238
  2895. void AknLayoutRefresh();
  2896. #line 250
  2897. TBool AknLayoutUsed(TInt aLayoutId);
  2898. protected:
  2899. class CIdLayoutPair : public CBase
  2900. {
  2901. public:
  2902. CIdLayoutPair(TInt aResId, CEikStatusPaneLayout* aLayout);
  2903. ~CIdLayoutPair();
  2904. public:
  2905. TInt iResId;
  2906. CEikStatusPaneLayout* iLayout;
  2907. };
  2908. typedef CArrayPtrFlat<CIdLayoutPair> CLayoutIdSet;
  2909. typedef CArrayFixFlat<TInt> CIdSet;
  2910. protected:
  2911. __declspec(dllexport) CEikStatusPaneModelBase(CEikonEnv& aEikEnv);
  2912. __declspec(dllexport) void BaseConstructL(TInt aCoreResId);
  2913. __declspec(dllexport) CEikStatusPaneLayout* LoadLayoutL(TInt aLayoutResId);
  2914. inline CIdSet* LegalIds() const;
  2915. TBool IsLegalId(TInt aLayoutResId) const;
  2916. private:
  2917. CEikStatusPaneLayout* Layout(TInt aLayoutResId);
  2918. void CheckLayoutL(CEikStatusPaneLayout* aLayout);
  2919. private:
  2920. __declspec(dllexport) virtual void Reserved_1();
  2921. private:
  2922. class TLayoutChecker : public MEikStatusPaneLayoutTreeVisitor
  2923. {
  2924. public:
  2925. TLayoutChecker(CEikStatusPaneSetInit* aPanes);
  2926. void VisitL(CEikStatusPaneLayoutTree* aNode);
  2927. private:
  2928. CEikStatusPaneSetInit* iPanes;
  2929. };
  2930. protected:
  2931. CLayoutIdSet* iLayouts;
  2932. TInt iCurrentResId;
  2933. CEikonEnv& iEikEnv;
  2934. private:
  2935. CEikStatusPaneSetInit* iPanes;
  2936. CEikStatusPaneLayout* iCurrentLayout;
  2937. CIdSet* iLegalIds;
  2938. };
  2939. class CEikAppStatusPaneModel : public CEikStatusPaneModelBase
  2940. {
  2941. public:
  2942. static CEikAppStatusPaneModel* NewL(CEikonEnv& aEikEnv, TInt aCoreResId, TInt aAppResId = 0 , TBool aChangeStatusPaneNow = ETrue);
  2943. ~CEikAppStatusPaneModel();
  2944. void ApplyCurrentLayoutL();
  2945. public:
  2946. void SetLayoutL(TInt aLayoutResId, TBool aChangeStatusPaneNow = ETrue);
  2947. public:
  2948. void SetLayoutL(TInt aLayoutResId, TBool aChangeStatusPaneNow, TBool aNotfiyServerSide);
  2949. private:
  2950. CEikAppStatusPaneModel(CEikonEnv& aEikEnv);
  2951. void ConstructL(TInt aCoreResId, TInt aAppResId, TBool aChangeStatusPaneNow = ETrue);
  2952. };
  2953. inline TPaneId TEikStatusPaneInit::Id() const { return iId; }
  2954. inline TBool TEikStatusPaneInit::AppOwned() const { return iFlags & 1 ; }
  2955. inline TInt TEikStatusPaneInit::ControlTypeId() const { return iControlId; }
  2956. inline TInt TEikStatusPaneInit::ControlResourceId() const { return iControlResource; }
  2957. inline void TEikStatusPaneInit::SetHidden() {iFlags|=KEikStatusPaneHiddenBit;}
  2958. inline void TEikStatusPaneInit::ClearHidden() {iFlags&=~KEikStatusPaneHiddenBit;}
  2959. inline TBool TEikStatusPaneInit::IsHidden() const {return iFlags&KEikStatusPaneHiddenBit;}
  2960. inline CEikStatusPaneLayoutTree* CEikStatusPaneLayout::Find(const TPaneId& aPaneId) const { return iRoot->Find(aPaneId); }
  2961. inline void CEikStatusPaneLayout::AcceptL(MEikStatusPaneLayoutTreeVisitor* aVisitor) { iRoot->AcceptL(aVisitor); }
  2962. inline TRect CEikStatusPaneLayout::Rect() const { return iRoot->Rect(); }
  2963. inline TPaneId CEikStatusPaneLayoutTree::Id() const { return iId; }
  2964. inline TRect CEikStatusPaneLayoutTree::Rect() const { return iRect; }
  2965. inline CEikStatusPaneSetInit* CEikStatusPaneModelBase::PaneInits() const { return iPanes; }
  2966. inline CEikStatusPaneLayout* CEikStatusPaneModelBase::CurrentLayout() const { return iCurrentLayout; }
  2967. inline CEikStatusPaneModelBase::CIdSet* CEikStatusPaneModelBase::LegalIds() const { return iLegalIds; }
  2968. #line 10 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikspane.h" /* stack depth 1 */
  2969. #line 21
  2970. class CCoeBrushAndPenContext;
  2971. class CEikStatusPaneContainer;
  2972. class TEikStatusPaneSyncDrawer;
  2973. class CEikStatusPaneBaseExtension;
  2974. class CAknStatuspaneClearer;
  2975. const TInt KStatusPaneCapsPresentBit = 1;
  2976. const TInt KStatusPaneCapsAppOwnedBit = 2;
  2977. const TInt KStatusPaneCapsInCurrentLayoutBit = 4;
  2978. #line 38
  2979. class MEikStatusPaneObserver
  2980. {
  2981. public:
  2982. virtual void HandleStatusPaneSizeChange() = 0;
  2983. };
  2984. class CEikStatusPaneBase : public CBase
  2985. {
  2986. public:
  2987. class TPaneCapabilities
  2988. {
  2989. public:
  2990. TPaneCapabilities();
  2991. inline TBool IsPresent() const;
  2992. inline TBool IsAppOwned() const;
  2993. inline TBool IsInCurrentLayout() const;
  2994. private:
  2995. inline void SetPresent();
  2996. inline void SetAppOwned();
  2997. inline void SetInCurrentLayout();
  2998. private:
  2999. TInt iFlags;
  3000. private:
  3001. friend class CEikStatusPaneBase;
  3002. };
  3003. public:
  3004. __declspec(dllexport) ~CEikStatusPaneBase();
  3005. __declspec(dllexport) static CEikStatusPaneBase* Current();
  3006. inline   void SetObserver(MEikStatusPaneObserver* aObserver);
  3007. __declspec(dllexport) void ReduceRect(TRect& aBoundingRect) const;
  3008. __declspec(dllexport) void GetShapeL(TRegion& aRegion, TBool aIncludeAppPanes, TBool aIncludeServerPanes) const;
  3009. __declspec(dllexport) virtual void SwitchLayoutL(TInt aLayoutResourceId);
  3010. __declspec(dllexport) virtual void MakeVisible(TBool aVisible);
  3011. __declspec(dllexport) virtual void SetDimmed(TBool aDimmed);
  3012. __declspec(dllexport) virtual void SetFaded(TBool aFaded);
  3013. __declspec(dllexport) virtual void HandleResourceChange(TInt aType);
  3014. __declspec(dllexport) virtual TBool OkToChangeStatusPaneNow();
  3015. __declspec(dllexport) void SetFlags(TInt aFlags);
  3016. __declspec(dllexport) TInt Flags() const;
  3017. __declspec(dllexport) TBool IsVisible() const;
  3018. __declspec(dllexport) TBool IsDimmed() const;
  3019. __declspec(dllexport) TBool IsFaded() const;
  3020. __declspec(dllexport) TPaneCapabilities PaneCapabilities(TPaneId aPaneId) const;
  3021. __declspec(dllexport) TRect PaneRectL(TPaneId aPaneId) const;
  3022. __declspec(dllexport) CCoeControl* ControlL(TPaneId aPaneId) const;
  3023. __declspec(dllexport) CCoeControl* SwapControlL(TPaneId aPaneId, CCoeControl* aNewControl);
  3024. __declspec(dllexport) CCoeControl* ContainerControlL(TPaneId aPaneId) const;
  3025. inline RWindowGroup* WindowGroup() const;
  3026. __declspec(dllexport) void DrawNow();
  3027. __declspec(dllexport) TInt CurrentLayoutResId() const;
  3028. protected:
  3029. __declspec(dllexport) CEikStatusPaneBase(CEikonEnv& aEikEnv, RWindowGroup* aParent);
  3030. __declspec(dllexport) void BaseConstructL(TInt aCoreResId);
  3031. virtual CEikStatusPaneModelBase* CreateModelL(TInt aCoreResId) const = 0;
  3032. void CreatePanesL();
  3033. void CreatePaneL(const TEikStatusPaneInit& aPaneInit);
  3034. CEikStatusPaneContainer* Find(TPaneId aPaneId) const;
  3035. virtual TBool IsApp() const = 0;
  3036. inline TRect Rect() const;
  3037. enum TDrawCmd { ENoDraw, EDrawNow, EDrawDeferred };
  3038. void DoDrawNow(TDrawCmd aDraw);
  3039. CAknStatuspaneClearer* Clearer();
  3040. __declspec(dllexport) void DisableClearer(TBool aDisabled);
  3041. __declspec(dllexport) void CommonPrepareForAppExit();
  3042. private:
  3043. void DoSwitchLayoutL(TInt aLayoutResourceId, TDrawCmd aDraw);
  3044. void ApplyLayoutL(CEikStatusPaneLayout* aLayout, TDrawCmd aDraw);
  3045. void SetAllInvisible();
  3046. void SetNotNeededInvisible();
  3047. public:
  3048.     void ReportSizeChange();
  3049. private:
  3050. class TSetRectAndVisibility : public MEikStatusPaneLayoutTreeVisitor
  3051. {
  3052. public:
  3053. TSetRectAndVisibility(TBool aIsApp, CEikStatusPaneBase* aStatusPane);
  3054. void VisitL(CEikStatusPaneLayoutTree* aNode);
  3055. private:
  3056. TBool iIsApp;
  3057. CEikStatusPaneBase* iStatusPane;
  3058. };
  3059. friend class TSetRectAndVisibility;
  3060. private:
  3061.     void SetLastUsedResourceId(TInt aResourceId);
  3062.     TInt LastUsedResourceId();
  3063.     TInt ReadInitialUsedResourceIdL(TInt aCoreResId);
  3064.     TInt InitialUsedResourceId();
  3065.     TRect LargestBoundingRect(TRegion& aWholeRegion, TRegion& aRemovedRegion) const;
  3066. protected:
  3067.     void SetInitialUsedResourceId(TInt aResourceId);
  3068. protected:
  3069. CEikonEnv& iEikEnv;
  3070. CEikStatusPaneModelBase* iModel;
  3071. TInt iFlags;
  3072. private:
  3073. typedef CArrayPtrFlat<CEikStatusPaneContainer> CContainerControls;
  3074. CContainerControls* iControls;
  3075. MEikStatusPaneObserver* iObserver;
  3076. RWindowGroup* iParentWindowGroup;
  3077. CEikStatusPaneBaseExtension* iExtension;
  3078. };
  3079. class CEikStatusPane : public CEikStatusPaneBase, public MCoeForegroundObserver
  3080. {
  3081. public:
  3082. __declspec(dllexport) static CEikStatusPane* NewL(CEikonEnv& aEikEnv, RWindowGroup* aParent, TInt aCoreStatusPaneModelResId, TInt aAppStatusPaneModelResId=0 );
  3083. __declspec(dllexport) ~CEikStatusPane();
  3084. __declspec(dllexport) void ApplyCurrentSettingsL();
  3085. __declspec(dllexport) void PrepareForAppExit();
  3086. __declspec(dllexport) virtual void MakeVisible(TBool aVisible);
  3087. __declspec(dllexport) virtual void SetDimmed(TBool aDimmed);
  3088. __declspec(dllexport) virtual void SetFaded(TBool aFaded);
  3089. __declspec(dllexport) virtual void HandleResourceChange(TInt aType);
  3090. __declspec(dllexport) virtual TBool OkToChangeStatusPaneNow();
  3091. private:
  3092. CEikStatusPane(CEikonEnv& aEikEnv, RWindowGroup* aParent, TInt aAppStatusPaneModelId);
  3093. void ConstructL(TInt aCoreStatusPaneModelResId);
  3094. virtual CEikStatusPaneModelBase* CreateModelL(TInt aCoreResId) const;
  3095. TBool IsApp() const;
  3096. void ApplyCurrentFlags();
  3097. void HideAppPanes(TBool aHide);