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

Symbian

开发平台:

C/C++

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