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

Symbian

开发平台:

C/C++

  1. inline TCharFormatMask();
  2. inline void SetAttrib(TTextFormatAttribute aAttribute);
  3. inline void ClearAttrib(TTextFormatAttribute aAttribute);
  4. inline TBool AttribIsSet(TTextFormatAttribute aAttribute) const;
  5. __declspec(dllexport) void SetAll();
  6. __declspec(dllexport) void ClearAll();
  7. inline TBool IsNull()const;
  8. __declspec(dllexport) TBool operator==(const TCharFormatMask& aMask) const;
  9. inline TBool operator!=(const TCharFormatMask& aMask) const;
  10. private:
  11. TUint32 iGuard;
  12. };
  13. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfrmat.inl" /* stack depth 11 */
  14. TBool TTabStop::operator!=(const TTabStop& aTabStop)const
  15. {return !(*this==aTabStop);}
  16. TBool TParaBorder::operator!=(const TParaBorder& aParaBorder)const
  17. {return !(*this==aParaBorder);}
  18. TBool TBullet::operator!=(const TBullet& aBullet)const
  19. {return !(*this==aBullet);}
  20. void CParaFormat::RemoveAllTabs()
  21. {
  22. if (iTabList)
  23. {
  24. delete iTabList;
  25. iTabList = 0 ;
  26. }
  27. }
  28. TInt CParaFormat::TabCount()const
  29. {return (iTabList)?iTabList->Count():0;}
  30. TParaFormatMask::TParaFormatMask()
  31. :iGuard(0)
  32. {}
  33. void TParaFormatMask::SetAttrib(TTextFormatAttribute aAttribute)
  34. {iGuard|=(1<<aAttribute);}
  35. void TParaFormatMask::ClearAttrib(TTextFormatAttribute aAttribute)
  36. {iGuard&=~(1<<aAttribute);}
  37. TBool TParaFormatMask::AttribIsSet(TTextFormatAttribute aAttribute)const
  38. {return (iGuard&(1<<aAttribute));}
  39. TBool TParaFormatMask::IsNull()const
  40. {return !iGuard;}
  41. TBool TParaFormatMask::operator!=(const TParaFormatMask& aMask)const
  42. {return !(*this==aMask);}
  43. TCharFormatMask::TCharFormatMask()
  44. :iGuard(0)
  45. {}
  46. void TCharFormatMask::SetAttrib(TTextFormatAttribute aAttribute)
  47. {iGuard|=(1<<((aAttribute-KMaxParaAttributes)-1));}
  48. void TCharFormatMask::ClearAttrib(TTextFormatAttribute aAttribute)
  49. {iGuard&=~(1<<((aAttribute-KMaxParaAttributes)-1));}
  50. TBool TCharFormatMask::AttribIsSet(TTextFormatAttribute aAttribute)const
  51. {return iGuard&(1<<((aAttribute-KMaxParaAttributes)-1));}
  52. TBool TCharFormatMask::IsNull()const
  53. {return !iGuard;}
  54. TBool TCharFormatMask::operator!=(const TCharFormatMask& aMask)const
  55. {return !(*this==aMask);}
  56. #line 796 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfrmat.h" /* stack depth 10 */
  57. #line 12 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmtlay.h" /* stack depth 9 */
  58. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtetext.h" /* stack depth 10 */
  59. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldset.h" /* stack depth 11 */
  60. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldinfo.h" /* stack depth 12 */
  61. #line 13
  62. class TFindFieldInfo
  63. #line 23
  64. {
  65. public:
  66. __declspec(dllexport) TBool operator==(const TFindFieldInfo& aInfo)const;
  67. __declspec(dllexport) TBool operator!=(const TFindFieldInfo& aInfo)const;
  68. public:
  69. TInt iFieldCountInRange;
  70. TInt iFirstFieldPos;
  71. TInt iFirstFieldLen;
  72. };
  73. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldset.h" /* stack depth 11 */
  74. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldbase.h" /* stack depth 12 */
  75. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32stor.h" /* stack depth 13 */
  76. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32share.h" /* stack depth 14 */
  77. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32buf.h" /* stack depth 15 */
  78. #line 17
  79. enum TStreamLocation
  80. {EStreamBeginning,
  81. EStreamMark,
  82. EStreamEnd};
  83. #line 46
  84. class TStreamPos
  85. {
  86. public:
  87. TStreamPos() {}
  88. inline TStreamPos(TInt anOffset);
  89. inline TBool operator==(TStreamPos aPos) const;
  90. inline TBool operator!=(TStreamPos aPos) const;
  91. inline TBool operator<(TStreamPos aPos) const;
  92. inline TBool operator<=(TStreamPos aPos) const;
  93. inline TBool operator>(TStreamPos aPos) const;
  94. inline TBool operator>=(TStreamPos aPos) const;
  95. inline TInt operator-(TStreamPos aPos) const;
  96. inline TStreamPos operator+(TInt anOffset) const;
  97. inline TStreamPos operator-(TInt anOffset) const;
  98. inline TStreamPos& operator+=(TInt anOffset);
  99. inline TStreamPos& operator-=(TInt anOffset);
  100. inline TInt Offset() const;
  101. private:
  102. TInt iOff;
  103. };
  104. inline TStreamPos operator+(TInt anOffset,TStreamPos aPos);
  105. #line 98
  106. class TStreamTransfer
  107. {
  108. public:
  109. enum TUnlimited {EUnlimited};
  110. public:
  111. #line 115
  112. TStreamTransfer() {}
  113. inline TStreamTransfer(TInt aMaxLength);
  114. inline TStreamTransfer(TUnlimited);
  115. inline TBool operator==(TInt aLength) const;
  116. inline TBool operator>(TInt aLength) const;
  117. inline TStreamTransfer operator-(TInt aLength) const;
  118. inline TInt operator[](TInt aMaxLength) const;
  119. inline TStreamTransfer& operator-=(TInt aLength);
  120. inline TInt Left() const;
  121. private:
  122. TInt iVal;
  123. private:
  124. __declspec(dllexport) static void __DbgChkNonNegative(TInt aLength);
  125. };
  126. inline TBool operator==(TInt aLength,TStreamTransfer aTransfer);
  127. inline TBool operator<(TInt aLength,TStreamTransfer aTransfer);
  128. #line 146
  129. class MStreamInput;
  130. class MStreamOutput;
  131. #line 184
  132. class MStreamBuf
  133. {
  134. public:
  135. enum TRead {ERead=0x01};
  136. enum TWrite {EWrite=0x02};
  137. #line 208
  138. typedef TInt TMark;
  139. public:
  140. __declspec(dllexport) void Close();
  141. inline void Release();
  142. __declspec(dllexport) TInt Synch();
  143. inline void SynchL();
  144. __declspec(dllexport) void PushL();
  145. inline TInt ReadL(TAny* aPtr,TInt aMaxLength);
  146. __declspec(dllexport) TInt Read(TDes8& aDes,TRequestStatus& aStatus);
  147. __declspec(dllexport) TInt Read(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  148. __declspec(dllexport) TInt ReadL(TDes8& aDes,TRequestStatus& aStatus);
  149. inline TInt ReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  150. inline TStreamTransfer ReadL(MStreamInput& anInput,TStreamTransfer aTransfer);
  151. __declspec(dllexport) TInt ReadL(MStreamInput& anInput,TInt aMaxLength);
  152. inline void ReadL(MStreamInput& anInput);
  153. inline void WriteL(const TAny* aPtr,TInt aLength);
  154. __declspec(dllexport) TInt Write(const TDesC8& aDes,TRequestStatus& aStatus);
  155. __declspec(dllexport) TInt Write(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  156. __declspec(dllexport) TInt WriteL(const TDesC8& aDes,TRequestStatus& aStatus);
  157. inline TInt WriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  158. inline TStreamTransfer WriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer);
  159. __declspec(dllexport) TInt WriteL(MStreamOutput& anOutput,TInt aMaxLength);
  160. inline void WriteL(MStreamOutput& anOutput);
  161. inline void SeekL(TMark aMark,TStreamPos aPos);
  162. inline TStreamPos SeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset=0);
  163. inline TStreamPos SeekL(TRead,TStreamLocation aLocation,TInt anOffset=0);
  164. inline TStreamPos SeekL(TWrite,TStreamLocation aLocation,TInt anOffset=0);
  165. inline TStreamPos SeekL(TRead,TInt anOffset);
  166. inline TStreamPos SeekL(TWrite,TInt anOffset);
  167. inline TStreamPos TellL(TRead) const;
  168. inline TStreamPos TellL(TWrite) const;
  169. inline TInt SizeL() const;
  170. protected:
  171. MStreamBuf() {}
  172. private:
  173. MStreamBuf(const MStreamBuf&);
  174. MStreamBuf& operator=(const MStreamBuf&);
  175. virtual __declspec(dllexport) void DoRelease();
  176. virtual __declspec(dllexport) void DoSynchL();
  177. virtual __declspec(dllexport) TInt DoReadL(TAny* aPtr,TInt aMaxLength);
  178. virtual __declspec(dllexport) TInt DoReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  179. virtual __declspec(dllexport) TStreamTransfer DoReadL(MStreamInput& anInput,TStreamTransfer aTransfer);
  180. virtual __declspec(dllexport) void DoWriteL(const TAny* aPtr,TInt aLength);
  181. virtual __declspec(dllexport) TInt DoWriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  182. virtual __declspec(dllexport) TStreamTransfer DoWriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer);
  183. virtual __declspec(dllexport) TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);
  184. };
  185. #line 276
  186. class MStreamInput
  187. {
  188. public:
  189. #line 291
  190. virtual TInt PushL(const TAny* aPtr,TInt aMaxLength)=0;
  191. #line 306
  192. virtual TStreamTransfer ReadFromL(MStreamBuf& aSource,TStreamTransfer aTransfer)=0;
  193. };
  194. #line 323
  195. class MStreamOutput
  196. {
  197. public:
  198. #line 338
  199. virtual TInt PullL(TAny* aPtr,TInt aMaxLength)=0;
  200. #line 353
  201. virtual TStreamTransfer WriteToL(MStreamBuf& aSink,TStreamTransfer aTransfer)=0;
  202. };
  203. #line 375
  204. class TStreamBuf : public MStreamBuf
  205. {
  206. protected:
  207. #line 391
  208. typedef TInt TArea;
  209. protected:
  210. __declspec(dllexport) TStreamBuf();
  211. __declspec(dllexport) void SetBuf(TArea anArea,TUint8* aPtr,TUint8* anEnd);
  212. __declspec(dllexport) void SetPtr(TArea anArea,TUint8* aPtr);
  213. __declspec(dllexport) void SetEnd(TArea anArea,TUint8* anEnd);
  214. __declspec(dllexport) TUint8* Ptr(TArea anArea) const;
  215. __declspec(dllexport) TUint8* End(TArea anArea) const;
  216. __declspec(dllexport) TInt Avail(TArea anArea) const;
  217. __declspec(dllexport) TInt DoReadL(TAny* aPtr,TInt aMaxLength);
  218. __declspec(dllexport) TStreamTransfer DoReadL(MStreamInput& anInput,TStreamTransfer aTransfer);
  219. __declspec(dllexport) void DoWriteL(const TAny* aPtr,TInt aLength);
  220. __declspec(dllexport) TStreamTransfer DoWriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer);
  221. inline void SetBuf(TRead,TUint8* aPtr,TUint8* anEnd);
  222. inline void SetBuf(TWrite,TUint8* aPtr,TUint8* anEnd);
  223. inline void SetPtr(TRead,TUint8* aPtr);
  224. inline void SetPtr(TWrite,TUint8* aPtr);
  225. inline void SetEnd(TRead,TUint8* anEnd);
  226. inline void SetEnd(TWrite,TUint8* anEnd);
  227. inline TUint8* Ptr(TRead) const;
  228. inline TUint8* Ptr(TWrite) const;
  229. inline TUint8* End(TRead) const;
  230. inline TUint8* End(TWrite) const;
  231. inline TInt Avail(TRead) const;
  232. inline TInt Avail(TWrite) const;
  233. private:
  234. #line 429
  235. virtual TInt UnderflowL(TInt aMaxLength)=0;
  236. virtual void OverflowL()=0;
  237. private:
  238. TUint8* iRPtr;
  239. TUint8* iREnd;
  240. TUint8* iWPtr;
  241. TUint8* iWEnd;
  242. };
  243. #line 454
  244. class TStreamFilter : public MStreamBuf
  245. {
  246. public:
  247. enum {EAttached=0x10};
  248. protected:
  249. __declspec(dllexport) TStreamFilter();
  250. inline void Set(MStreamBuf* aHost,TInt aMode);
  251. inline void Committed();
  252. inline TBool IsCommitted() const;
  253. __declspec(dllexport) void EmitL(const TAny* aPtr,TInt aLength);
  254. __declspec(dllexport) void DoRelease();
  255. __declspec(dllexport) void DoSynchL();
  256. __declspec(dllexport) TInt DoReadL(TAny* aPtr,TInt aMaxLength);
  257. __declspec(dllexport) void DoWriteL(const TAny* aPtr,TInt aLength);
  258. private:
  259. virtual TInt Capacity(TInt aMaxLength)=0;
  260. #line 488
  261. virtual TInt FilterL(TAny* aPtr,TInt aMaxLength,const TUint8*& aFrom,const TUint8* anEnd)=0;
  262. private:
  263. MStreamBuf* iHost;
  264. TInt iMode;
  265. private:
  266. friend class TFilterInput;
  267. friend class TFilterOutput;
  268. private:
  269. __declspec(dllexport) static void __DbgChkMode(TInt aMode);
  270. };
  271. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32buf.inl" /* stack depth 16 */
  272. inline TStreamPos::TStreamPos(TInt anOffset)
  273. : iOff(anOffset)
  274. {}
  275. inline TBool TStreamPos::operator==(TStreamPos aPos) const
  276. {return iOff==aPos.iOff;}
  277. inline TBool TStreamPos::operator!=(TStreamPos aPos) const
  278. {return iOff!=aPos.iOff;}
  279. inline TBool TStreamPos::operator<(TStreamPos aPos) const
  280. {return iOff<aPos.iOff;}
  281. inline TBool TStreamPos::operator<=(TStreamPos aPos) const
  282. {return iOff<=aPos.iOff;}
  283. inline TBool TStreamPos::operator>(TStreamPos aPos) const
  284. {return iOff>aPos.iOff;}
  285. inline TBool TStreamPos::operator>=(TStreamPos aPos) const
  286. {return iOff>=aPos.iOff;}
  287. inline TInt TStreamPos::operator-(TStreamPos aPos) const
  288. {return iOff-aPos.iOff;}
  289. inline TStreamPos TStreamPos::operator+(TInt anOffset) const
  290. {return TStreamPos(iOff+anOffset);}
  291. inline TStreamPos TStreamPos::operator-(TInt anOffset) const
  292. {return TStreamPos(iOff-anOffset);}
  293. inline TStreamPos& TStreamPos::operator+=(TInt anOffset)
  294. {iOff+=anOffset;return *this;}
  295. inline TStreamPos& TStreamPos::operator-=(TInt anOffset)
  296. {iOff-=anOffset;return *this;}
  297. inline TInt TStreamPos::Offset() const
  298. {return iOff;}
  299. inline TStreamPos operator+(TInt anOffset,TStreamPos aPos)
  300. {return aPos+anOffset;}
  301. inline TStreamTransfer::TStreamTransfer(TInt aMaxLength)
  302. : iVal(aMaxLength)
  303. {
  304. __DbgChkNonNegative(aMaxLength);
  305. }
  306. inline TStreamTransfer::TStreamTransfer(TUnlimited)
  307. : iVal(-1)
  308. #line 124
  309. {}
  310. inline TBool TStreamTransfer::operator==(TInt aLength) const
  311. {
  312. __DbgChkNonNegative(aLength);
  313. return iVal==aLength;
  314. }
  315. inline TBool TStreamTransfer::operator>(TInt aLength) const
  316. {
  317. __DbgChkNonNegative(aLength);
  318. return TUint(iVal)>TUint(aLength);
  319. }
  320. inline TStreamTransfer TStreamTransfer::operator-(TInt aLength) const
  321. #line 161
  322. {
  323. __DbgChkNonNegative(aLength);
  324. return iVal<0?*this:TStreamTransfer(iVal-aLength);
  325. }
  326. inline TInt TStreamTransfer::operator[](TInt aMaxLength) const
  327. {return *this>aMaxLength?aMaxLength:iVal;}
  328. inline TStreamTransfer& TStreamTransfer::operator-=(TInt aLength)
  329. #line 184
  330. {
  331. __DbgChkNonNegative(aLength);
  332. if (iVal>=0)
  333. {
  334. iVal-=aLength;
  335. __DbgChkNonNegative(iVal);
  336. }
  337. return *this;
  338. }
  339. inline TInt TStreamTransfer::Left() const
  340. {
  341. __DbgChkNonNegative(iVal);
  342. return iVal;
  343. }
  344. inline TBool operator==(TInt aLength,TStreamTransfer aTransfer)
  345. {return aTransfer==aLength;}
  346. inline TBool operator<(TInt aLength,TStreamTransfer aTransfer)
  347. {return aTransfer>aLength;}
  348. inline void MStreamBuf::Release()
  349. #line 223
  350. {DoRelease();}
  351. inline void MStreamBuf::SynchL()
  352. {DoSynchL();}
  353. inline TInt MStreamBuf::ReadL(TAny* aPtr,TInt aMaxLength)
  354. #line 244
  355. {return DoReadL(aPtr,aMaxLength);}
  356. inline TInt MStreamBuf::ReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus)
  357. #line 261
  358. {return DoReadL(aDes,aMaxLength,aStatus);}
  359. inline TStreamTransfer MStreamBuf::ReadL(MStreamInput& anInput,TStreamTransfer aTransfer)
  360. #line 271
  361. {return DoReadL(anInput,aTransfer);}
  362. inline void MStreamBuf::ReadL(MStreamInput& anInput)
  363. #line 281
  364. {DoReadL(anInput,TStreamTransfer(TStreamTransfer::EUnlimited) );}
  365. inline void MStreamBuf::WriteL(const TAny* aPtr,TInt aLength)
  366. #line 292
  367. {DoWriteL(aPtr,aLength);}
  368. inline TInt MStreamBuf::WriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus)
  369. #line 310
  370. {return DoWriteL(aDes,aMaxLength,aStatus);}
  371. inline TStreamTransfer MStreamBuf::WriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer)
  372. #line 321
  373. {return DoWriteL(anOutput,aTransfer);}
  374. inline void MStreamBuf::WriteL(MStreamOutput& anOutput)
  375. #line 332
  376. {DoWriteL(anOutput,TStreamTransfer(TStreamTransfer::EUnlimited) );}
  377. inline void MStreamBuf::SeekL(TMark aMark,TStreamPos aPos)
  378. #line 346
  379. {DoSeekL(aMark,EStreamBeginning,aPos.Offset());}
  380. inline TStreamPos MStreamBuf::SeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset)
  381. #line 372
  382. {return DoSeekL(aMark,aLocation,anOffset);}
  383. inline TStreamPos MStreamBuf::SeekL(TRead,TStreamLocation aLocation,TInt anOffset)
  384. #line 394
  385. {return DoSeekL(ERead,aLocation,anOffset);}
  386. inline TStreamPos MStreamBuf::SeekL(TWrite,TStreamLocation aLocation,TInt anOffset)
  387. #line 416
  388. {return DoSeekL(EWrite,aLocation,anOffset);}
  389. inline TStreamPos MStreamBuf::SeekL(TRead,TInt anOffset)
  390. #line 429
  391. {return DoSeekL(ERead,EStreamMark,anOffset);}
  392. inline TStreamPos MStreamBuf::SeekL(TWrite,TInt anOffset)
  393. #line 442
  394. {return DoSeekL(EWrite,EStreamMark,anOffset);}
  395. inline TStreamPos MStreamBuf::TellL(TRead) const
  396. {return (const_cast<MStreamBuf*>(this)) ->DoSeekL(ERead,EStreamMark,0);}
  397. inline TStreamPos MStreamBuf::TellL(TWrite) const
  398. {return (const_cast<MStreamBuf*>(this)) ->DoSeekL(EWrite,EStreamMark,0);}
  399. inline TInt MStreamBuf::SizeL() const
  400. {return (const_cast<MStreamBuf*>(this)) ->DoSeekL(0,EStreamEnd,0).Offset();}
  401. inline void TStreamBuf::SetBuf(TRead,TUint8* aPtr,TUint8* anEnd)
  402. #line 478
  403. {iRPtr=aPtr;iREnd=anEnd;}
  404. inline void TStreamBuf::SetBuf(TWrite,TUint8* aPtr,TUint8* anEnd)
  405. #line 489
  406. {iWPtr=aPtr;iWEnd=anEnd;}
  407. inline void TStreamBuf::SetPtr(TRead,TUint8* aPtr)
  408. {iRPtr=aPtr;}
  409. inline void TStreamBuf::SetPtr(TWrite,TUint8* aPtr)
  410. {iWPtr=aPtr;}
  411. inline void TStreamBuf::SetEnd(TRead,TUint8* anEnd)
  412. {iREnd=anEnd;}
  413. inline void TStreamBuf::SetEnd(TWrite,TUint8* anEnd)
  414. {iWEnd=anEnd;}
  415. inline TUint8* TStreamBuf::Ptr(TRead) const
  416. {return iRPtr;}
  417. inline TUint8* TStreamBuf::Ptr(TWrite) const
  418. {return iWPtr;}
  419. inline TUint8* TStreamBuf::End(TRead) const
  420. {return iREnd;}
  421. inline TUint8* TStreamBuf::End(TWrite) const
  422. {return iWEnd;}
  423. inline TInt TStreamBuf::Avail(TRead) const
  424. {return iREnd-iRPtr;}
  425. inline TInt TStreamBuf::Avail(TWrite) const
  426. {return iWEnd-iWPtr;}
  427. inline void TStreamFilter::Set(MStreamBuf* aHost,TInt aMode)
  428. #line 577
  429. {
  430. __DbgChkMode(aMode);
  431. iHost=aHost;iMode=aMode;
  432. }
  433. inline void TStreamFilter::Committed()
  434. {iMode&=~EWrite;}
  435. inline TBool TStreamFilter::IsCommitted() const
  436. {return iHost==0 ||!(iMode&EWrite);}
  437. #line 499 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32buf.h" /* stack depth 15 */
  438. #line 8 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32share.h" /* stack depth 14 */
  439. class TStreamExchange;
  440. #line 29
  441. class TStreamMark
  442. {
  443. public:
  444. inline TStreamMark();
  445. inline TStreamMark(TStreamPos aPos);
  446. inline TStreamMark& operator=(TStreamPos aPos);
  447. inline operator TStreamMark*();
  448. inline operator const TStreamMark*() const;
  449. inline TBool operator==(const TStreamMark& aMark) const;
  450. inline TBool operator==(const TStreamMark* aPtr) const;
  451. inline TBool operator!=(const TStreamMark& aMark) const;
  452. inline TBool operator!=(const TStreamMark* aPtr) const;
  453. inline TBool IsEmpty() const;
  454. inline void Clear();
  455. inline TStreamPos Position() const;
  456. inline TBool IsWith(TStreamExchange& aHost) const;
  457. inline TBool RelatesTo(TStreamExchange& aHost) const;
  458. inline void Withdraw(TStreamExchange& aHost);
  459. inline void ExtractL(TStreamExchange& aHost);
  460. inline TInt ReadL(TStreamExchange& aHost,TAny* aPtr,TInt aMaxLength);
  461. __declspec(dllexport) TInt ReadL(TStreamExchange& aHost,TDes8& aDes,TRequestStatus& aStatus);
  462. inline TInt ReadL(TStreamExchange& aHost,TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  463. inline TStreamTransfer ReadL(TStreamExchange& aHost,MStreamInput& anInput,TStreamTransfer aTransfer);
  464. inline TInt ReadL(TStreamExchange& aHost,MStreamInput& anInput,TInt aMaxLength);
  465. inline void ReadL(TStreamExchange& aHost,MStreamInput& anInput);
  466. inline void WriteL(TStreamExchange& aHost,const TAny* aPtr,TInt aLength);
  467. __declspec(dllexport) TInt WriteL(TStreamExchange& aHost,const TDesC8& aDes,TRequestStatus& aStatus);
  468. inline TInt WriteL(TStreamExchange& aHost,const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  469. inline TStreamTransfer WriteL(TStreamExchange& aHost,MStreamOutput& anOutput,TStreamTransfer aTransfer);
  470. inline TInt WriteL(TStreamExchange& aHost,MStreamOutput& anOutput,TInt aMaxLength);
  471. inline void WriteL(TStreamExchange& aHost,MStreamOutput& anOutput);
  472. inline void SeekL(TStreamExchange& aHost,TStreamPos aPos);
  473. inline TStreamPos SeekL(TStreamExchange& aHost,TStreamLocation aLocation,TInt anOffset=0);
  474. inline TStreamPos SeekL(TStreamExchange& aHost,TInt anOffset);
  475. inline TStreamPos TellL(TStreamExchange& aHost) const;
  476. private:
  477. TStreamMark(const TStreamMark&);
  478. TStreamMark& operator=(const TStreamMark&);
  479. private:
  480. TStreamPos iPos;
  481. private:
  482. inline TBool IsTracking(TStreamMark*const& aRef) const;
  483. inline void Track(TStreamMark*const& aRef);
  484. private:
  485. friend class TStreamExchange;
  486. private:
  487. __declspec(dllexport) static void __DbgChkPos(TStreamPos aPos);
  488. };
  489. #line 106
  490. class TStreamExchange
  491. {
  492. public:
  493. inline TStreamExchange();
  494. inline TStreamExchange(MStreamBuf* aHost);
  495. inline void Share(MStreamBuf* aHost);
  496. inline TBool IsActive() const;
  497. __declspec(dllexport) MStreamBuf* Host();
  498. __declspec(dllexport) MStreamBuf* HostL();
  499. __declspec(dllexport) void Release();
  500. __declspec(dllexport) TInt SizeL() const;
  501. private:
  502. #line 132
  503. typedef MStreamBuf::TMark TMark;
  504. private:
  505. TStreamExchange(const TStreamExchange&);
  506. TStreamExchange& operator=(const TStreamExchange&);
  507. __declspec(dllexport) TBool RefersTo(const TStreamMark& aMark);
  508. __declspec(dllexport) void Drop(const TStreamMark& aMark);
  509. __declspec(dllexport) void GetL(TStreamMark& aMark);
  510. __declspec(dllexport) TInt DoReadL(TAny* aPtr,TInt aMaxLength,TStreamMark& aMark);
  511. __declspec(dllexport) TInt DoReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus,TStreamMark& aMark);
  512. __declspec(dllexport) TStreamTransfer DoReadL(MStreamInput& anInput,TStreamTransfer aTransfer,TStreamMark& aMark);
  513. __declspec(dllexport) void DoWriteL(const TAny* aPtr,TInt aLength,TStreamMark& aMark);
  514. __declspec(dllexport) TInt DoWriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus,TStreamMark& aMark);
  515. __declspec(dllexport) TStreamTransfer DoWriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer,TStreamMark& aMark);
  516. __declspec(dllexport) TStreamPos DoSeekL(TStreamMark& aMark,TStreamLocation aLocation,TInt anOffset);
  517. void PrepareForReadingL(TStreamMark& aMark);
  518. void PrepareForWritingL(TStreamMark& aMark);
  519. TInt PrepareAndReadL(TAny* aPtr,TInt aMaxLength,TStreamMark& aMark);
  520. TInt PrepareAndReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus,TStreamMark& aMark);
  521. TStreamTransfer PrepareAndReadL(MStreamInput& anInput,TStreamTransfer aTransfer,TStreamMark& aMark);
  522. void PrepareAndWriteL(const TAny* aPtr,TInt aLength,TStreamMark& aMark);
  523. TInt PrepareAndWriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus,TStreamMark& aMark);
  524. TStreamTransfer PrepareAndWriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer,TStreamMark& aMark);
  525. TStreamPos MarkSeekL(TStreamMark& aMark,TStreamLocation aLocation,TInt anOffset);
  526. inline MStreamBuf& BufL() const;
  527. inline MStreamBuf& Buf() const;
  528. private:
  529. MStreamBuf* iHost;
  530. TStreamMark* iRMrk;
  531. TStreamMark* iWMrk;
  532. private:
  533. friend class TStreamMark;
  534. };
  535. #line 197
  536. class RShareBuf : public MStreamBuf
  537. {
  538. public:
  539. __declspec(dllexport) RShareBuf();
  540. __declspec(dllexport) void Open(TStreamExchange& aHost,TStreamPos aPos,TInt aMode=ERead|EWrite);
  541. inline void Open(TStreamExchange& aHost,TInt aMode=ERead|EWrite);
  542. protected:
  543. __declspec(dllexport) void DoRelease();
  544. __declspec(dllexport) TInt DoReadL(TAny* aPtr,TInt aMaxLength);
  545. __declspec(dllexport) TInt DoReadL(TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  546. __declspec(dllexport) TStreamTransfer DoReadL(MStreamInput& anInput,TStreamTransfer aTransfer);
  547. __declspec(dllexport) void DoWriteL(const TAny* aPtr,TInt aLength);
  548. __declspec(dllexport) TInt DoWriteL(const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus);
  549. __declspec(dllexport) TStreamTransfer DoWriteL(MStreamOutput& anOutput,TStreamTransfer aTransfer);
  550. __declspec(dllexport) TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);
  551. private:
  552. inline TStreamExchange& Host() const;
  553. private:
  554. TStreamExchange* iHost;
  555. TStreamMark iRMark;
  556. TStreamMark iWMark;
  557. };
  558. #line 233
  559. class RShareReadStream : public RReadStream
  560. {
  561. public:
  562. RShareReadStream() {}
  563. __declspec(dllexport) RShareReadStream(TStreamExchange& aHost,TStreamPos aPos=TStreamPos(0) );
  564. __declspec(dllexport) void Open(TStreamExchange& aHost,TStreamPos aPos=TStreamPos(0) );
  565. private:
  566. RShareBuf iSource;
  567. };
  568. #line 261
  569. class RShareWriteStream : public RWriteStream
  570. {
  571. public:
  572. RShareWriteStream() {}
  573. inline RShareWriteStream(const MExternalizer<TStreamRef>& anExter);
  574. __declspec(dllexport) RShareWriteStream(TStreamExchange& aHost,TStreamPos aPos=TStreamPos(0) );
  575. __declspec(dllexport) void Open(TStreamExchange& aHost,TStreamPos aPos=TStreamPos(0) );
  576. private:
  577. RShareBuf iSink;
  578. };
  579. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32share.inl" /* stack depth 15 */
  580. inline TStreamMark::TStreamMark()
  581. : iPos(TStreamPos(0) -1)
  582. {}
  583. inline TStreamMark::TStreamMark(TStreamPos aPos)
  584. : iPos(aPos)
  585. {
  586. __DbgChkPos(aPos);
  587. }
  588. inline TStreamMark& TStreamMark::operator=(TStreamPos aPos)
  589. {
  590. __DbgChkPos(aPos);
  591. iPos=aPos;
  592. return *this;
  593. }
  594. inline TStreamMark::operator TStreamMark*()
  595. {return this;}
  596. inline TStreamMark::operator const TStreamMark*() const
  597. {return this;}
  598. inline TBool TStreamMark::operator==(const TStreamMark& aMark) const
  599. {return this==&aMark;}
  600. inline TBool TStreamMark::operator==(const TStreamMark* aPtr) const
  601. {return this==aPtr;}
  602. inline TBool TStreamMark::operator!=(const TStreamMark& aMark) const
  603. {return this!=&aMark;}
  604. inline TBool TStreamMark::operator!=(const TStreamMark* aPtr) const
  605. {return this!=aPtr;}
  606. inline TBool TStreamMark::IsEmpty() const
  607. {return iPos<TStreamPos(0) ;}
  608. inline void TStreamMark::Clear()
  609. {iPos=TStreamPos(0) -1;}
  610. inline TStreamPos TStreamMark::Position() const
  611. {
  612. __DbgChkPos(iPos);
  613. return iPos;
  614. }
  615. inline TBool TStreamMark::IsWith(TStreamExchange& aHost) const
  616. {return aHost.RefersTo(*this);}
  617. inline TBool TStreamMark::RelatesTo(TStreamExchange& aHost) const
  618. #line 104
  619. {return iPos>=TStreamPos(0) ||aHost.RefersTo(*this);}
  620. inline void TStreamMark::Withdraw(TStreamExchange& aHost)
  621. {aHost.Drop(*this);}
  622. inline void TStreamMark::ExtractL(TStreamExchange& aHost)
  623. {aHost.GetL(*this);}
  624. inline TInt TStreamMark::ReadL(TStreamExchange& aHost,TAny* aPtr,TInt aMaxLength)
  625. {return aHost.DoReadL(aPtr,aMaxLength,*this);}
  626. inline TInt TStreamMark::ReadL(TStreamExchange& aHost,TDes8& aDes,TInt aMaxLength,TRequestStatus& aStatus)
  627. #line 139
  628. {return aHost.DoReadL(aDes,aMaxLength,aStatus,*this);}
  629. inline TStreamTransfer TStreamMark::ReadL(TStreamExchange& aHost,MStreamInput& anInput,TStreamTransfer aTransfer)
  630. {return aHost.DoReadL(anInput,aTransfer,*this);}
  631. inline TInt TStreamMark::ReadL(TStreamExchange& aHost,MStreamInput& anInput,TInt aMaxLength)
  632. {return aMaxLength-aHost.DoReadL(anInput,TStreamTransfer(aMaxLength),*this).Left();}
  633. inline void TStreamMark::ReadL(TStreamExchange& aHost,MStreamInput& anInput)
  634. {aHost.DoReadL(anInput,TStreamTransfer(TStreamTransfer::EUnlimited) ,*this);}
  635. inline void TStreamMark::WriteL(TStreamExchange& aHost,const TAny* aPtr,TInt aLength)
  636. {aHost.DoWriteL(aPtr,aLength,*this);}
  637. inline TInt TStreamMark::WriteL(TStreamExchange& aHost,const TDesC8& aDes,TInt aMaxLength,TRequestStatus& aStatus)
  638. #line 189
  639. {return aHost.DoWriteL(aDes,aMaxLength,aStatus,*this);}
  640. inline TStreamTransfer TStreamMark::WriteL(TStreamExchange& aHost,MStreamOutput& anOutput,TStreamTransfer aTransfer)
  641. {return aHost.DoWriteL(anOutput,aTransfer,*this);}
  642. inline TInt TStreamMark::WriteL(TStreamExchange& aHost,MStreamOutput& anOutput,TInt aMaxLength)
  643. {return aMaxLength-aHost.DoWriteL(anOutput,TStreamTransfer(aMaxLength),*this).Left();}
  644. inline void TStreamMark::WriteL(TStreamExchange& aHost,MStreamOutput& anOutput)
  645. {aHost.DoWriteL(anOutput,TStreamTransfer(TStreamTransfer::EUnlimited) ,*this);}
  646. inline void TStreamMark::SeekL(TStreamExchange& aHost,TStreamPos aPos)
  647. {aHost.DoSeekL(*this,EStreamBeginning,aPos.Offset());}
  648. inline TStreamPos TStreamMark::SeekL(TStreamExchange& aHost,TStreamLocation aLocation,TInt anOffset)
  649. #line 233
  650. {return aHost.DoSeekL(*this,aLocation,anOffset);}
  651. inline TStreamPos TStreamMark::SeekL(TStreamExchange& aHost,TInt anOffset)
  652. {return aHost.DoSeekL(*this,EStreamMark,anOffset);}
  653. inline TStreamPos TStreamMark::TellL(TStreamExchange& aHost) const
  654. {return aHost.DoSeekL((const_cast<TStreamMark&>(*this)) ,EStreamMark,0);}
  655. inline TStreamExchange::TStreamExchange()
  656. : iHost(0 ),iRMrk(0 ),iWMrk(0 )
  657. {}
  658. inline TStreamExchange::TStreamExchange(MStreamBuf* aHost)
  659. : iHost(aHost),iRMrk(0 ),iWMrk(0 )
  660. {}
  661. inline void TStreamExchange::Share(MStreamBuf* aHost)
  662. {iHost=aHost;}
  663. inline TBool TStreamExchange::IsActive() const
  664. {return iHost!=0 ;}
  665. inline void RShareBuf::Open(TStreamExchange& aHost,TInt aMode)
  666. #line 289
  667. {Open(aHost,TStreamPos(0) ,aMode);}
  668. inline RShareWriteStream::RShareWriteStream(const MExternalizer<TStreamRef>& anExter)
  669. : RWriteStream(anExter)
  670. {}
  671. #line 277 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32share.h" /* stack depth 14 */
  672. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32stor.h" /* stack depth 13 */
  673. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32page.h" /* stack depth 14 */
  674. #line 12
  675. const TInt KPoolPageSize=512;
  676. const TUint32 KNullPageRefValue=0;
  677. #line 23
  678. class TPageRef
  679. {
  680. public:
  681. inline TPageRef() {}
  682. inline TPageRef(TUint32 aValue);
  683. inline TBool operator==(TPageRef aRef) const;
  684. inline TBool operator!=(TPageRef aRef) const;
  685. inline void ExternalizeL(RWriteStream& aStream) const;
  686. inline void InternalizeL(RReadStream& aStream);
  687. inline TUint32 Value() const;
  688. private:
  689. TUint32 iVal;
  690. };
  691. class MPagePool;
  692. typedef void (*TPageAbandonFunction)(MPagePool& aPool);
  693. enum TPageReclamation
  694. {EPageDeleteOnly,
  695. EPageReclaimable};
  696. enum TPageChange
  697. {EPageNoChange,
  698. EPageDirty,
  699. EPageUpdate,
  700. EPageAbandon=-1};
  701. #line 92
  702. class MPagePool
  703. {
  704. public:
  705. __declspec(dllexport) void PushL();
  706. inline void Pop();
  707. virtual TPageAbandonFunction AcquireL()=0;
  708. virtual TAny* AllocL()=0;
  709. virtual TAny* LockL(TPageRef aRef)=0;
  710. virtual TPageRef AssignL(const TAny* aPage,TPageReclamation aReclamation=EPageDeleteOnly)=0;
  711. virtual void UpdateL(const TAny* aPage)=0;
  712. virtual void Unlock(const TAny* aPage,TPageChange aChange=EPageNoChange)=0;
  713. __declspec(dllexport) void Delete(TPageRef aRef);
  714. __declspec(dllexport) void DeleteL(TPageRef aRef);
  715. protected:
  716. virtual void DoDeleteL(TPageRef aRef)=0;
  717. };
  718. #line 140
  719. class CMemPagePool : public CBase,public MPagePool
  720. {
  721. public:
  722. __declspec(dllexport) static CMemPagePool* NewL();
  723. __declspec(dllexport) static CMemPagePool* NewLC();
  724. __declspec(dllexport) CMemPagePool();
  725. __declspec(dllexport) ~CMemPagePool();
  726. __declspec(dllexport) TPageAbandonFunction AcquireL();
  727. __declspec(dllexport) TAny* AllocL();
  728. __declspec(dllexport) TAny* LockL(TPageRef aRef);
  729. __declspec(dllexport) TPageRef AssignL(const TAny* aPage,TPageReclamation aReclamation=EPageDeleteOnly);
  730. __declspec(dllexport) void UpdateL(const TAny* aPage);
  731. __declspec(dllexport) void Unlock(const TAny* aPage,TPageChange aChange=EPageNoChange);
  732. protected:
  733. __declspec(dllexport) void DoDeleteL(TPageRef aRef);
  734. private:
  735. TAny*& PageL(TPageRef aRef);
  736. static void DoAbandon(MPagePool& aPool);
  737. private:
  738. CArrayFixSeg<TAny*> iPages;
  739. };
  740. class TCachePage;
  741. struct SCachePage;
  742. class TCachePagePool;
  743. #line 179
  744. class CPageCache : public CBase
  745. {
  746. public:
  747. enum {EDefaultPages=20};
  748. #line 206
  749. public:
  750. __declspec(dllexport) static CPageCache* NewL(TInt aPages=EDefaultPages);
  751. __declspec(dllexport) static CPageCache* NewLC(TInt aPages=EDefaultPages);
  752. __declspec(dllexport) CPageCache();
  753. __declspec(dllexport) void ConstructL(TInt aPages=EDefaultPages);
  754. __declspec(dllexport) ~CPageCache();
  755. private:
  756. TCachePage* Find(TCachePagePool* aPool,TPageRef aRef);
  757. private:
  758. SCachePage* iPages;
  759. SCachePage* iEnd;
  760. TDblQue<TCachePage> iFree;
  761. private:
  762. friend class TCachePagePool;
  763. };
  764. #line 241
  765. class TCachePagePool : public MPagePool
  766. {
  767. public:
  768. inline void Set(CPageCache& aCache);
  769. __declspec(dllexport) TPageAbandonFunction AcquireL();
  770. __declspec(dllexport) TAny* AllocL();
  771. __declspec(dllexport) TAny* LockL(TPageRef aRef);
  772. __declspec(dllexport) TPageRef AssignL(const TAny* aPage,TPageReclamation aReclamation=EPageDeleteOnly);
  773. __declspec(dllexport) void UpdateL(const TAny* aPage);
  774. __declspec(dllexport) void Unlock(const TAny* aPage,TPageChange aChange=EPageNoChange);
  775. __declspec(dllexport) TInt Flush();
  776. __declspec(dllexport) void FlushL();
  777. __declspec(dllexport) void Purge();
  778. protected:
  779. inline TCachePagePool();
  780. inline TCachePagePool(CPageCache& aCache);
  781. __declspec(dllexport) void DoDeleteL(TPageRef aRef);
  782. private:
  783. virtual TPageRef ExtendL(const TAny* aPage,TPageReclamation aReclamation)=0;
  784. virtual void WriteL(TPageRef aRef,const TAny* aPage,TPageChange aChange)=0;
  785. virtual void ReadL(TPageRef aRef,TAny* aPage)=0;
  786. static void DoAbandon(MPagePool& aPool);
  787. static TCachePage* DoAllocL(CPageCache& aCache);
  788. private:
  789. CPageCache* iCache;
  790. };
  791. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32page.inl" /* stack depth 15 */
  792. inline TPageRef::TPageRef(TUint32 aValue)
  793. : iVal(aValue)
  794. {}
  795. inline TBool TPageRef::operator==(TPageRef aRef) const
  796. {return iVal==aRef.iVal;}
  797. inline TBool TPageRef::operator!=(TPageRef aRef) const
  798. {return iVal!=aRef.iVal;}
  799. inline void TPageRef::ExternalizeL(RWriteStream& aStream) const
  800. {aStream<<iVal;}
  801. inline void TPageRef::InternalizeL(RReadStream& aStream)
  802. {aStream>>iVal;}
  803. inline TUint32 TPageRef::Value() const
  804. {return iVal;}
  805. inline void MPagePool::Pop()
  806. {CleanupStack::Pop();}
  807. #line 68
  808. inline void TCachePagePool::Set(CPageCache& aCache)
  809. {iCache=&aCache;}
  810. inline TCachePagePool::TCachePagePool()
  811. : iCache(0 )
  812. {}
  813. inline TCachePagePool::TCachePagePool(CPageCache& aCache)
  814. : iCache(&aCache)
  815. {}
  816. #line 271 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32page.h" /* stack depth 14 */
  817. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32stor.h" /* stack depth 13 */
  818. class MIncrementalCollector;
  819. class CStreamStore : public CBase
  820. {
  821. public:
  822. inline TStreamId ExtendL();
  823. __declspec(dllexport) void Delete(TStreamId anId);
  824. __declspec(dllexport) void DeleteL(TStreamId anId);
  825. __declspec(dllexport) TInt Commit();
  826. inline void CommitL();
  827. __declspec(dllexport) void Revert();
  828. inline void RevertL();
  829. __declspec(dllexport) TInt ReclaimL();
  830. __declspec(dllexport) TInt CompactL();
  831. private:
  832. virtual __declspec(dllexport) TStreamId DoExtendL();
  833. virtual __declspec(dllexport) void DoDeleteL(TStreamId anId);
  834. #line 52
  835. virtual MStreamBuf* DoReadL(TStreamId anId) const=0;
  836. #line 61
  837. virtual MStreamBuf* DoCreateL(TStreamId& anId)=0;
  838. virtual __declspec(dllexport) MStreamBuf* DoWriteL(TStreamId anId);
  839. virtual __declspec(dllexport) MStreamBuf* DoReplaceL(TStreamId anId);
  840. virtual __declspec(dllexport) void DoCommitL();
  841. virtual __declspec(dllexport) void DoRevertL();
  842. virtual __declspec(dllexport) MIncrementalCollector* DoReclaimL();
  843. virtual __declspec(dllexport) MIncrementalCollector* DoCompactL();
  844. private:
  845. friend class RStoreReadStream;
  846. friend class RStoreWriteStream;
  847. friend class RStoreReclaim;
  848. };
  849. #line 86
  850. class CPersistentStore : public CStreamStore
  851. {
  852. public:
  853. inline TStreamId Root() const;
  854. inline void SetRootL(TStreamId anId);
  855. protected:
  856. inline CPersistentStore();
  857. private:
  858. virtual __declspec(dllexport) void DoSetRootL(TStreamId anId);
  859. protected:
  860. TStreamId iRoot;
  861. };
  862. #line 123
  863. class RStoreReclaim
  864. {
  865. public:
  866. inline RStoreReclaim();
  867. __declspec(dllexport) void OpenL(CStreamStore& aStore,TInt& aCount);
  868. __declspec(dllexport) void OpenLC(CStreamStore& aStore,TInt& aCount);
  869. __declspec(dllexport) void CompactL(CStreamStore& aStore,TInt& aCount);
  870. __declspec(dllexport) void CompactLC(CStreamStore& aStore,TInt& aCount);
  871. inline void Close();
  872. __declspec(dllexport) void Release();
  873. __declspec(dllexport) void ResetL(TInt& aCount);
  874. __declspec(dllexport) void NextL(TInt& aStep);
  875. __declspec(dllexport) void Next(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus);
  876. __declspec(dllexport) void NextL(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus);
  877. __declspec(dllexport) TInt Next(TInt& aStep);
  878. inline TInt Available() const;
  879. private:
  880. MIncrementalCollector* iCol;
  881. TPckgBuf<TInt> iAvail;
  882. };
  883. #line 162
  884. class CEmbeddedStore : public CPersistentStore
  885. {
  886. public:
  887. __declspec(dllexport) static CEmbeddedStore* FromL(RReadStream& aHost);
  888. __declspec(dllexport) static CEmbeddedStore* FromLC(RReadStream& aHost);
  889. __declspec(dllexport) static CEmbeddedStore* NewL(RWriteStream& aHost);
  890. __declspec(dllexport) static CEmbeddedStore* NewLC(RWriteStream& aHost);
  891. inline static TStreamPos Position(TStreamId anId);
  892. __declspec(dllexport) void Detach();
  893. inline void Reattach(MStreamBuf* aHost);
  894. inline MStreamBuf* Host() const;
  895. inline TStreamPos Start() const;
  896. __declspec(dllexport) CEmbeddedStore(MStreamBuf* aHost);
  897. __declspec(dllexport) void MarshalL(RReadStream& aStream);
  898. __declspec(dllexport) void ConstructL(RWriteStream& aStream);
  899. __declspec(dllexport) ~CEmbeddedStore();
  900. protected:
  901. __declspec(dllexport) MStreamBuf* DoReadL(TStreamId anId) const;
  902. __declspec(dllexport) MStreamBuf* DoCreateL(TStreamId& anId);
  903. private:
  904. __declspec(dllexport) void DoSetRootL(TStreamId anId);
  905. __declspec(dllexport) void DoCommitL();
  906. static CEmbeddedStore* DoNewLC(MStreamBuf* aHost);
  907. private:
  908. TStreamExchange iHost;
  909. TStreamPos iStart;
  910. };
  911. #line 218
  912. class CDictionaryStore : public CBase
  913. {
  914. public:
  915. __declspec(dllexport) TBool IsNullL() const;
  916. __declspec(dllexport) TBool IsPresentL(TUid aUid) const;
  917. __declspec(dllexport) void Remove(TUid aUid);
  918. __declspec(dllexport) void RemoveL(TUid aUid);
  919. __declspec(dllexport) TInt Commit();
  920. __declspec(dllexport) void CommitL();
  921. __declspec(dllexport) void Revert();
  922. __declspec(dllexport) void RevertL();
  923. __declspec(dllexport) ~CDictionaryStore();
  924. protected:
  925. __declspec(dllexport) void ConstructL();
  926. private:
  927. CStreamDictionary* DictionaryL() const;
  928. MStreamBuf* GetSourceL(TUid aUid) const;
  929. MStreamBuf* GetSinkL(TUid aUid);
  930. protected:
  931. CPersistentStore* iStore;
  932. private:
  933. CStreamDictionary* iDictionary;
  934. TBool iDictionaryHasChanged;
  935. private:
  936. friend class RDictionaryReadStream;
  937. friend class RDictionaryWriteStream;
  938. friend class HDictionaryStoreBuf;
  939. };
  940. const TInt KDictionaryCommitThreshold = 1024;
  941. #line 261
  942. class RDictionaryReadStream : public RReadStream
  943. {
  944. public:
  945. __declspec(dllexport) void OpenL(const CDictionaryStore& aDictStore,TUid aUid);
  946. __declspec(dllexport) void OpenLC(const CDictionaryStore& aDictStore,TUid aUid);
  947. };
  948. #line 275
  949. class RDictionaryWriteStream : public RWriteStream
  950. {
  951. public:
  952. RDictionaryWriteStream() {}
  953. inline RDictionaryWriteStream(const MExternalizer<TStreamRef>& anExter);
  954. __declspec(dllexport) void AssignL(CDictionaryStore& aDictStore,TUid aUid);
  955. __declspec(dllexport) void AssignLC(CDictionaryStore& aDictStore,TUid aUid);
  956. };
  957. #line 293
  958. class TStorePagePoolToken
  959. {
  960. public:
  961. enum TEmpty
  962. {EEmpty};
  963. public:
  964. TStorePagePoolToken() {}
  965. inline TStorePagePoolToken(TEmpty);
  966. inline void Touch();
  967. inline TBool HasAvailable() const;
  968. inline TBool IsEmpty() const;
  969. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  970. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  971. private:
  972. inline TStorePagePoolToken(TStreamId aHead,TPageRef anAvail);
  973. private:
  974. TStreamId iHead;
  975. TPageRef iAvail;
  976. private:
  977. friend class RStorePagePool;
  978. };
  979. #line 354
  980. class RStorePagePool : public TCachePagePool
  981. {
  982. friend class StorePagePool;
  983. public:
  984. __declspec(dllexport) RStorePagePool();
  985. __declspec(dllexport) RStorePagePool(CPageCache& aCache);
  986. __declspec(dllexport) RStorePagePool(CStreamStore& aStore);
  987. __declspec(dllexport) RStorePagePool(CStreamStore& aStore,const TStorePagePoolToken& aToken);
  988. __declspec(dllexport) void Create(CStreamStore& aStore);
  989. __declspec(dllexport) void Open(CStreamStore& aStore,const TStorePagePoolToken& aToken);
  990. __declspec(dllexport) TStorePagePoolToken Token() const;
  991. __declspec(dllexport) void Close();
  992. inline void Release();
  993. inline TBool IsDirty() const;
  994. inline void MarkCurrent();
  995. inline void MarkDirty();
  996. inline TBool HasAvailable() const;
  997. inline void Discard();
  998. inline TBool IsEmpty() const;
  999. __declspec(dllexport) TBool ReclaimL();
  1000. __declspec(dllexport) void ReclaimAllL();
  1001. protected:
  1002. __declspec(dllexport) TPageRef ExtendL(const TAny* aPage,TPageReclamation aReclamation);
  1003. __declspec(dllexport) void WriteL(TPageRef aRef,const TAny* aPage,TPageChange aChange);
  1004. __declspec(dllexport) void ReadL(TPageRef aRef,TAny* aPage);
  1005. __declspec(dllexport) void DoDeleteL(TPageRef aRef);
  1006. private:
  1007. inline void CacheDeleteL(TPageRef aRef);
  1008. private:
  1009. CStreamStore* iStore;
  1010. TStreamId iHead;
  1011. TPageRef iAvail;
  1012. TBool iDirty;
  1013. };
  1014. #line 413
  1015. class MIncrementalCollector
  1016. {
  1017. public:
  1018. inline void Close();
  1019. inline void Release();
  1020. inline void ResetL(TInt& aCount);
  1021. inline void NextL(TInt& aStep,TInt& aTotal);
  1022. inline void NextL(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus,TPckgBuf<TInt>& aTotal);
  1023. protected:
  1024. #line 431
  1025. MIncrementalCollector() {}
  1026. private:
  1027. #line 441
  1028. MIncrementalCollector(const MIncrementalCollector&);
  1029. MIncrementalCollector& operator=(const MIncrementalCollector&);
  1030. virtual __declspec(dllexport) void DoRelease();
  1031. virtual void DoResetL(TInt& aCount)=0;
  1032. #line 466
  1033. virtual void DoNextL(TInt& aStep,TInt& aTotal)=0;
  1034. virtual __declspec(dllexport) void DoNextL(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus,TPckgBuf<TInt>& aTotal);
  1035. };
  1036. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32stor.inl" /* stack depth 14 */
  1037. inline TStreamId CStreamStore::ExtendL()
  1038. {return DoExtendL();}
  1039. inline void CStreamStore::CommitL()
  1040. {DoCommitL();}
  1041. inline void CStreamStore::RevertL()
  1042. {DoRevertL();}
  1043. inline CPersistentStore::CPersistentStore()
  1044. {}
  1045. inline TStreamId CPersistentStore::Root() const
  1046. {return iRoot;}
  1047. inline void CPersistentStore::SetRootL(TStreamId anId)
  1048. {DoSetRootL(anId);}
  1049. inline RStoreReclaim::RStoreReclaim()
  1050. : iCol(0 )
  1051. {}
  1052. inline void RStoreReclaim::Close()
  1053. #line 62
  1054. {Release();}
  1055. inline TInt RStoreReclaim::Available() const
  1056. {return (const_cast<TPckgBuf<TInt>&>(iAvail)) ();}
  1057. inline TStreamPos CEmbeddedStore::Position(TStreamId anId)
  1058. {return TStreamPos(anId.Value());}
  1059. inline void CEmbeddedStore::Reattach(MStreamBuf* aHost)
  1060. {iHost.Share(aHost);}
  1061. inline MStreamBuf* CEmbeddedStore::Host() const
  1062. {return (const_cast<TStreamExchange&>(iHost)) .Host();}
  1063. inline TStreamPos CEmbeddedStore::Start() const
  1064. {return iStart;}
  1065. inline RDictionaryWriteStream::RDictionaryWriteStream(const MExternalizer<TStreamRef>& anExter)
  1066. : RWriteStream(anExter)
  1067. {}
  1068. inline TStorePagePoolToken::TStorePagePoolToken(TEmpty)
  1069. : iHead(TStreamId(KNullStreamIdValue) ),iAvail(TPageRef(KNullPageRefValue) )
  1070. {}
  1071. inline void TStorePagePoolToken::Touch()
  1072. {iAvail=TPageRef(KNullPageRefValue) ;}
  1073. inline TBool TStorePagePoolToken::HasAvailable() const
  1074. {return iAvail!=TPageRef(KNullPageRefValue) ;}
  1075. inline TBool TStorePagePoolToken::IsEmpty() const
  1076. {return iHead==TStreamId(KNullStreamIdValue) ;}
  1077. inline void RStorePagePool::Release()
  1078. {Purge();iStore=0 ;}
  1079. inline TBool RStorePagePool::IsDirty() const
  1080. {return iDirty;}
  1081. inline void RStorePagePool::MarkCurrent()
  1082. {iDirty=EFalse;}
  1083. inline void RStorePagePool::MarkDirty()
  1084. {iDirty=ETrue;}
  1085. inline TBool RStorePagePool::HasAvailable() const
  1086. {return iAvail!=TPageRef(KNullPageRefValue) ;}
  1087. inline void RStorePagePool::Discard()
  1088. {iAvail=TPageRef(KNullPageRefValue) ;}
  1089. inline TBool RStorePagePool::IsEmpty() const
  1090. {return iHead==TStreamId(KNullStreamIdValue) ;}
  1091. inline void MIncrementalCollector::Close()
  1092. {DoRelease();}
  1093. inline void MIncrementalCollector::Release()
  1094. {DoRelease();}
  1095. inline void MIncrementalCollector::ResetL(TInt& aCount)
  1096. {DoResetL(aCount);}
  1097. inline void MIncrementalCollector::NextL(TInt& aStep,TInt& aTotal)
  1098. #line 198
  1099. {DoNextL(aStep,aTotal);}
  1100. inline void MIncrementalCollector::NextL(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus,TPckgBuf<TInt>& aTotal)
  1101. #line 217
  1102. {DoNextL(aStep,aStatus,aTotal);}
  1103. #line 470 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32stor.h" /* stack depth 13 */
  1104. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldbase.h" /* stack depth 12 */
  1105. class CTextField;
  1106. class MTextFieldFactory;
  1107. class CTextField : public CBase
  1108. #line 34
  1109. {
  1110. public:
  1111. __declspec(dllexport) virtual TStreamId StoreL(CStreamStore& aStore)const;
  1112. __declspec(dllexport) virtual void RestoreL(const CStreamStore& aStore,TStreamId aId);
  1113. __declspec(dllexport) virtual void ExternalizeL(RWriteStream& aStream)const;
  1114. virtual void InternalizeL(RReadStream& aStream)=0;
  1115. #line 54
  1116. virtual TInt Value(TPtr& aValueText)=0;
  1117. virtual TUid Type()const=0;
  1118. };
  1119. class MTextFieldFactory
  1120. #line 90
  1121. {
  1122. public:
  1123. virtual CTextField* NewFieldL(TUid aFieldType)=0;
  1124. };
  1125. #line 12 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldset.h" /* stack depth 11 */
  1126. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldbltin.h" /* stack depth 12 */
  1127. #line 14
  1128. class MFieldPageNumInfo;
  1129. class MFieldNumPagesInfo;
  1130. class MFieldFileNameInfo;
  1131. class CDateTimeField;
  1132. class CPageNumField;
  1133. class CNumPagesField;
  1134. class CFileNameField;
  1135. class TRomanNumeral;
  1136. class RReadStream;
  1137. class RWriteStream;
  1138. #line 39
  1139. class MFieldPageNumInfo
  1140. {
  1141. public:
  1142. virtual TInt UpdateFieldPageNum()const=0;
  1143. };
  1144. #line 60
  1145. class MFieldNumPagesInfo
  1146. {
  1147. public:
  1148. virtual TInt UpdateFieldNumPages()const=0;
  1149. };
  1150. #line 83
  1151. class MFieldFileNameInfo
  1152. {
  1153. public:
  1154. #line 96
  1155. virtual TInt UpdateFieldFileName(TPtr& aValueText)const=0;
  1156. };
  1157. #line 111
  1158. class CDateTimeField : public CTextField
  1159. {
  1160. public:
  1161. __declspec(dllexport) CDateTimeField();
  1162. __declspec(dllexport) void SetFormat(const TDesC& aFormat);
  1163. __declspec(dllexport) virtual TInt Value(TPtr& aValueText);
  1164. __declspec(dllexport) virtual void InternalizeL(RReadStream& aStream);
  1165. __declspec(dllexport) virtual void ExternalizeL(RWriteStream& aStream)const;
  1166. __declspec(dllexport) const TDesC& FormatString()const;
  1167. __declspec(dllexport) TUid Type()const;
  1168. protected:
  1169. TBuf<64> iFormatString;
  1170. };
  1171. #line 140
  1172. class CPageFieldBase : public CTextField
  1173. {
  1174. public:
  1175. enum TNumberStyle {
  1176. EArabic,
  1177. ERomanUpper,
  1178. ERomanLower,
  1179. EAlphabeticUpper,
  1180. EAlphabeticLower
  1181. };
  1182. public:
  1183. inline void SetNumberStyle(TNumberStyle aStyle) { iStyle = aStyle; }
  1184. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1185. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  1186. __declspec(dllexport) TNumberStyle NumberStyle()const;
  1187. protected:
  1188. TInt InsertValue(TPtr& aValueText,TInt aValue);
  1189. protected:
  1190. TNumberStyle iStyle;
  1191. };
  1192. #line 184
  1193. class CPageNumField : public CPageFieldBase
  1194. {
  1195. public:
  1196. inline void SetPageNumInfo(MFieldPageNumInfo* aInfo) { iPageNumInfo=aInfo; }
  1197. __declspec(dllexport) TInt Value(TPtr& aValueText);
  1198. __declspec(dllexport) TUid Type()const;
  1199. protected:
  1200. MFieldPageNumInfo* iPageNumInfo;
  1201. };
  1202. #line 210
  1203. class CNumPagesField : public CPageFieldBase
  1204. {
  1205. public:
  1206. inline void SetNumPagesInfo(MFieldNumPagesInfo* aInfo) { iNumPagesInfo=aInfo; }
  1207. __declspec(dllexport) TInt Value(TPtr& aValueText);
  1208. __declspec(dllexport) TUid Type()const;
  1209. protected:
  1210. MFieldNumPagesInfo* iNumPagesInfo;
  1211. };
  1212. #line 238
  1213. class CFileNameField : public CTextField
  1214. {
  1215. public:
  1216. inline void SetFileNameInfo(MFieldFileNameInfo* aInfo) { iFileNameInfo=aInfo; }
  1217. __declspec(dllexport) virtual TStreamId StoreL(CStreamStore& aStore)const;
  1218. __declspec(dllexport) virtual void RestoreL(const CStreamStore& aStore,TStreamId aId);
  1219. __declspec(dllexport) virtual TInt Value(TPtr& aValueText);
  1220. inline virtual void InternalizeL(RReadStream& ) {};
  1221. __declspec(dllexport) TUid Type()const;
  1222. protected:
  1223. MFieldFileNameInfo* iFileNameInfo;
  1224. };
  1225. #line 13 "C:\Symbian\9.1\S60_3rd\epoc32\include\fldset.h" /* stack depth 11 */
  1226. class CTextFieldSet;
  1227. class RReadStream;
  1228. class RWriteStream;
  1229. class TTextFieldEntry;
  1230. class CStreamStore;
  1231. class CStoreMap;
  1232. class TRollbackInfo;
  1233. const TInt KFieldArrayGranularity=1;
  1234. class CTextFieldSet : public CBase
  1235. {
  1236. public:
  1237. enum {ENoPasteLimit=-1};
  1238. public:
  1239. __declspec(dllexport) static CTextFieldSet* NewL(TInt aDocumentLength=0);
  1240. __declspec(dllexport) static CTextFieldSet* NewL(const MTextFieldFactory* aFactory,const CStreamStore& aStore,TStreamId aStreamId);
  1241. __declspec(dllexport) ~CTextFieldSet();
  1242. __declspec(dllexport) void SetFieldFactory(MTextFieldFactory* aFactory);
  1243. __declspec(dllexport) MTextFieldFactory* FieldFactory()const;
  1244. __declspec(dllexport) void Reset();
  1245. __declspec(dllexport) TStreamId StoreL(CStreamStore& aStore)const;
  1246. __declspec(dllexport) void RestoreL(const CStreamStore& aFieldStore,TStreamId aStreamId);
  1247. __declspec(dllexport) void StoreFieldsL(CStreamStore& aStore,CStoreMap& aMap)const;
  1248. __declspec(dllexport) void RestoreFieldsL(const CStreamStore& aFieldStore);
  1249. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1250. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  1251. __declspec(dllexport) TStreamId CopyToStoreL(CStreamStore& aStore,TInt aPos,TInt aLength)const;
  1252. __declspec(dllexport) void CopyComponentsL(CStreamStore& aStore,CStoreMap& aMap,TInt aPos,TInt aLength)const;
  1253. __declspec(dllexport) void CopyToStreamL(RWriteStream& aStream,TInt aPos,TInt aLength)const;
  1254. __declspec(dllexport) void PasteFromStoreL(const CStreamStore& aFieldStore,TStreamId aStreamId,TInt aPos,TInt aMaxLen=ENoPasteLimit);
  1255. __declspec(dllexport) void PasteComponentsL(const CStreamStore& aFieldStore,TInt aPos);
  1256. __declspec(dllexport) void PasteFromStreamL(RReadStream& aStream,TInt aPos,TInt aMaxLen=ENoPasteLimit);
  1257. __declspec(dllexport) CTextField* NewFieldL(TUid aFieldType);
  1258. __declspec(dllexport) TInt InsertFieldL(TInt aPos,CTextField* aField,TUid aFieldType);
  1259. __declspec(dllexport) TInt RemoveField(TInt aPos);
  1260. __declspec(dllexport) TInt NewFieldValueL(HBufC*& aBuf, TInt aPos);
  1261. __declspec(dllexport) void NotifyInsertion(TInt aPos, TInt aNumberAdded);
  1262. __declspec(dllexport) void NotifyDeletion(TInt aPos, TInt aNumberRemoved);
  1263. __declspec(dllexport) void NotifyFieldUpdate(TInt aPos, TInt aNewFieldValueLength);
  1264. __declspec(dllexport) TInt FieldCount() const;
  1265. __declspec(dllexport) TInt CharCount() const;
  1266. __declspec(dllexport) TBool FindFields(TInt aPos) const;
  1267. __declspec(dllexport) TBool FindFields(TFindFieldInfo& aInfo,TInt aPos,TInt aRange=0) const;
  1268. __declspec(dllexport) const CTextField* TextField(TInt aPos)const;
  1269. __declspec(dllexport) void RollbackPaste();
  1270. protected:
  1271. CTextFieldSet();
  1272. void ConstructL(TInt aDocumentLength);
  1273. void ConstructL(const CStreamStore& aFieldStore,TStreamId aStreamId);
  1274. private:
  1275. void StoreFieldsL(CStreamStore& aStore,CStoreMap& aMap,CArrayFixSeg<TTextFieldEntry> * aArray)const;
  1276. void DoRestoreL(const CStreamStore& aFieldStore,TStreamId aStreamId);
  1277. void DoRestoreFieldsL(CArrayFixSeg<TTextFieldEntry> * aArray,const CStreamStore& aFieldStore,TInt aStartIndex=0);
  1278. void InternalizeL(CArrayFixSeg<TTextFieldEntry> * aArray,RReadStream& aStream);
  1279. void ExternalizeL(RWriteStream& aStream,CArrayFixSeg<TTextFieldEntry> * aArray)const;
  1280. void DoPasteL(CArrayFixSeg<TTextFieldEntry> * aSourceArray,TInt aPos);
  1281. void AddInitialFieldEntryL(CArrayFixSeg<TTextFieldEntry> * aArray,TInt aDocumentLength);
  1282. void InsertEntryL(TInt aIndex,TTextFieldEntry& aEntry);
  1283. void InsertEntryL(TInt aIndex,TTextFieldEntry& aEntry,CArrayFixSeg<TTextFieldEntry> * aArray);
  1284. void AppendEntryL(TTextFieldEntry& aEntry);
  1285. void AppendEntryL(TTextFieldEntry& aEntry,CArrayFixSeg<TTextFieldEntry> * aArray);
  1286. void CopyToArrayL(CArrayFixSeg<TTextFieldEntry> * aArray,TInt aPos,TInt aLength)const;
  1287. TBool InField(const TInt aPos, TInt& anIndex, TInt& anOffset) const;
  1288. void DeleteFieldEntry(TInt anIndex);
  1289. void DeleteFieldEntry(CArrayFixSeg<TTextFieldEntry> * aArray,TInt anIndex);
  1290. TTextFieldEntry SplitEntry(TInt aIndex,TInt aOffset,TInt aRange)const;
  1291. TInt EntryLen(const TTextFieldEntry& aEntry)const;
  1292. TInt EntryLen(TInt aIndex)const;
  1293. void RecordRollbackInfoL(TInt aPastePos);
  1294. private:
  1295. MTextFieldFactory* iFieldFactory;
  1296. CArrayFixSeg<TTextFieldEntry> * iFieldArray;
  1297. TRollbackInfo* iRollbackInfo;
  1298. public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const ;
  1299. };
  1300. class TFieldMapExternalizer : public MExternalizer<TStreamRef>
  1301. {
  1302. private:
  1303. friend class CPlainText;
  1304. friend class CTextFieldSet;
  1305. private:
  1306. __declspec(dllexport) TFieldMapExternalizer(const CStoreMap& aMap);
  1307. __declspec(dllexport) void ExternalizeL(const TStreamRef& anObject,RWriteStream& aStream) const;
  1308. private:
  1309. const CStoreMap* iMap;
  1310. };
  1311. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtetext.h" /* stack depth 10 */
  1312. class CParaFormatLayer;
  1313. class CCharFormatLayer;
  1314. class MTextFieldFactory;
  1315. class CTextFieldSet;
  1316. class CTextField;
  1317. class TFindFieldInfo;
  1318. class CInlineEditData;
  1319. class MFepInlineTextFormatRetriever;
  1320. class TCharFormat;
  1321. class CEditableTextOptionalData;
  1322. class RFs;
  1323. const TUid KPlainTextFieldDataUid = {268435555};
  1324. const TUid KEditableTextUid = {268450334};
  1325. const TUid KPlainTextCharacterDataUid = {268450341};
  1326. const TUid KClipboardUidTypePlainText = {268450333};
  1327. const TUid KUidRichText = {271013233};
  1328. const TInt KMaxFieldBufferSize=0x14;
  1329. #line 64
  1330. class CEditableText : public CBase
  1331. {
  1332. public:
  1333. __declspec(dllexport) ~CEditableText();
  1334. __declspec(dllexport) TStreamId StoreL(CStreamStore& aStore) const;
  1335. __declspec(dllexport) void RestoreL(const CStreamStore& aStore,TStreamId aStreamId);
  1336. virtual void ExternalizeL(RWriteStream& aStream) const;
  1337. virtual void InternalizeL(RReadStream& aStream);
  1338. #line 82
  1339. virtual void StoreComponentsL(CStreamStore& aStore,CStoreMap& aMap) const = 0;
  1340. virtual void RestoreComponentsL(const CStreamStore& aStore) = 0;
  1341. virtual void Reset() = 0;
  1342. virtual void InsertL(TInt aInsertPos,const TChar& aChar) = 0;
  1343. virtual void InsertL(TInt aInsertPos,const TDesC& aBuf) = 0;
  1344. #line 121
  1345. virtual TBool DeleteL(TInt aPos,TInt aLength) = 0;
  1346. #line 132
  1347.   virtual TPtrC Read(TInt aStartPos) const = 0;
  1348. #line 142
  1349. virtual TPtrC Read(TInt aStartPos,TInt aLength) const = 0;
  1350. #line 153
  1351.   virtual void Extract(TDes& aBuf,TInt aPos=0) const = 0;
  1352. #line 163
  1353. virtual void Extract(TDes& aBuf,TInt aPos,TInt aLength) const = 0;
  1354. #line 172
  1355. virtual void CopyToStoreL(CStreamStore& aStore,CStreamDictionary& aDictionary,TInt aPos,TInt aLength) const = 0;
  1356. #line 181
  1357. virtual TInt PasteFromStoreL(const CStreamStore& aStore,const CStreamDictionary& aDictionary,TInt aPos) = 0;
  1358. virtual TInt WordCount() const = 0;
  1359. virtual TInt ParagraphCount() const = 0;
  1360. virtual TInt DocumentLength() const = 0;
  1361. virtual TInt ToParagraphStart(TInt& aPos) const = 0;
  1362. inline TBool HasChanged() const;
  1363. #line 226
  1364. virtual void GetWordInfo(TInt aCurrentPos,TInt& aStartPos,TInt& aLength,
  1365.  TBool aPictureIsDelimiter,TBool aPunctuationIsDelimiter) const = 0;
  1366. __declspec(dllexport) virtual TInt ScanWords(TInt& aPos,TUint& aScanMask) const;
  1367. __declspec(dllexport) virtual TInt ScanParas(TInt& aPos,TUint& aScanMask) const;
  1368. __declspec(dllexport) virtual void SetHasChanged(TBool aHasChanged);
  1369. __declspec(dllexport) void StartFepInlineEditL(TBool& aParagraphContainingStartPositionOfInlineTextHasChangedFormat,TInt& aNumberOfCharactersSuccessfullyDeleted,TInt& aNumberOfCharactersSuccessfullyInserted,TInt& aPositionOfInsertionPointInDocument,TInt aNewPositionOfInsertionPointInDocument,const TDesC& aInitialInlineText,TInt aPositionOfInlineTextInDocument,TInt aNumberOfCharactersToHide,MFepInlineTextFormatRetriever& aInlineTextFormatRetriever);
  1370. __declspec(dllexport) void UpdateFepInlineTextL(TBool& aParagraphContainingStartPositionOfInlineTextHasChangedFormat,TInt& aNumberOfCharactersSuccessfullyDeleted,TInt& aNumberOfCharactersSuccessfullyInserted,TInt& aPositionOfInsertionPointInDocument,TInt aNewPositionOfInsertionPointInDocument,const TDesC& aNewInlineText);
  1371. __declspec(dllexport) void CommitFepInlineEditL(TBool& aParagraphContainingStartPositionOfInlineTextHasChangedFormat,TInt& aNumberOfCharactersSuccessfullyDeleted,TInt& aNumberOfCharactersSuccessfullyInserted,TInt& aPositionOfInsertionPointInDocument,TInt aNewPositionOfInsertionPointInDocument);
  1372. __declspec(dllexport) void CancelFepInlineEdit(TBool& aParagraphContainingStartPositionOfInlineTextHasChangedFormat,TInt& aNumberOfCharactersSuccessfullyDeleted,TInt& aNumberOfCharactersSuccessfullyInserted,TInt& aPositionOfInsertionPointInDocument,TInt aNewPositionOfInsertionPointInDocument);
  1373. __declspec(dllexport) virtual void ExtendedInterface(TAny*& aInterface, TUid aInterfaceId);
  1374. enum TDocumentStorage
  1375. {
  1376. EFlatStorage,
  1377. ESegmentedStorage
  1378. };
  1379.   enum
  1380. {
  1381. EDefaultTextGranularity = 256
  1382. };
  1383. enum
  1384. {
  1385. ETabCharacter = 0x0009,
  1386. EPageBreak = 0x000C,
  1387. ESpace = 0x0020,
  1388. EApostrophe = 0x0027,
  1389. EHyphenMinus = 0x002D,
  1390. ENonBreakingSpace = 0x00A0,
  1391. EPotentialHyphen = 0x00AD,
  1392. EHyphen = 0x2010,
  1393. ENonBreakingHyphen = 0x2011,
  1394. ELeftSingleQuote = 0x2018,
  1395. ERightSingleQuote = 0x2019,
  1396. ELeftDoubleQuote = 0x201C,
  1397. ERightDoubleQuote = 0x201D,
  1398. EBullet = 0x2022,
  1399. EEllipsis = 0x2026,
  1400. ELineBreak = 0x2028,
  1401. EParagraphDelimiter = 0x2029,
  1402. EPictureCharacter = 0xFFFC,
  1403. EZeroWidthNoBreakSpace = 0xFEFF,
  1404. EByteOrderMark = 0xFEFF,
  1405. EReversedByteOrderMark = 0xFFFE
  1406. };
  1407. protected:
  1408. __declspec(dllexport) void OverrideFormatOfInlineTextIfApplicable(TPtrC& aView,TCharFormat& aFormat,TInt aStartPos) const;
  1409. TBool iHasChanged;
  1410. private:
  1411. void SetAndTransferOwnershipOfInlineEditDataL(CInlineEditData* aInlineEditData);
  1412. CInlineEditData* InlineEditData() const;
  1413. void DeleteInlineEditDataAndSetToNull();
  1414. TBool DeleteWithoutDestroyingFormatL(TInt aPos, TInt aLength);
  1415. CEditableTextOptionalData* iOptionalData;
  1416. };
  1417. #line 328
  1418. class TEtextComponentInfo
  1419. {
  1420. public:
  1421. __declspec(dllexport) TEtextComponentInfo();
  1422. __declspec(dllexport) TEtextComponentInfo(TInt aFieldCount,TInt aPictureCount,TInt aStyleCount);
  1423. public:
  1424. TInt iFieldCount;
  1425. TInt iPictureCount;
  1426. TInt iStyleCount;
  1427. };
  1428. #line 350
  1429. typedef CArrayFix<TInt> TPageTable;
  1430. #line 372
  1431. class CPlainText: public CEditableText
  1432. {
  1433. public:
  1434. enum TTextOrganisation
  1435. {
  1436. EOrganiseByParagraph,
  1437. EOrganiseByLine
  1438. };
  1439. enum
  1440. {
  1441. EScanBackwards = 0x01,
  1442. EScanStayIfBoundary = 0x02,
  1443. EScanToUnitStart = 0x04,
  1444. EScanToUnitEnd = 0x08,
  1445. EScanJoinDelimiters = 0x10,
  1446. EScanPictureIsDelimiter = 0x20,
  1447. EScanPunctuationIsDelimiter = 0x40
  1448. };
  1449. enum TScanDataEnd
  1450. {
  1451. EScanEndOfData = -1
  1452. };
  1453. class TImportExportParam
  1454. {
  1455. public:
  1456. TImportExportParam():
  1457. iOrganisation(EOrganiseByParagraph),
  1458. iMaxOutputChars(KMaxTInt),
  1459. iMaxInputChars(KMaxTInt),
  1460. iMaxLineLength(KMaxTInt),
  1461. iOutputInternal(0 ),
  1462. iInputInternal(0 ),
  1463. iForeignEncoding(0),
  1464. iGuessForeignEncoding(0 ),
  1465. iFileSession(0 ),
  1466. iReserved(0)
  1467. {
  1468. }
  1469. TTextOrganisation iOrganisation;
  1470. TInt iMaxOutputChars;
  1471. TInt iMaxInputChars;
  1472. TInt iMaxLineLength;
  1473. TBool iOutputInternal;
  1474. TBool iInputInternal;
  1475. TUint iForeignEncoding;
  1476. TBool iGuessForeignEncoding;
  1477. RFs* iFileSession;
  1478. TUint iReserved;
  1479. };
  1480.   class TImportExportResult
  1481. {
  1482. public:
  1483. TImportExportResult():
  1484. iOutputChars(0),
  1485. iInputChars(0),
  1486. iForeignEncoding(0),
  1487. iReserved(0)
  1488. {
  1489. }
  1490. TInt iOutputChars;
  1491. TInt iInputChars;
  1492. TUint iForeignEncoding;
  1493. TUint iReserved;
  1494. };
  1495. __declspec(dllexport) static CPlainText* NewL(TDocumentStorage aStorage = ESegmentedStorage,
  1496.  TInt aDefaultTextGranularity = EDefaultTextGranularity);
  1497. __declspec(dllexport) static CPlainText* NewL(const CStreamStore& aStore,TStreamId aStreamId,
  1498.  MTextFieldFactory* aFieldFactory = 0 ,
  1499.  TDocumentStorage aStorage = ESegmentedStorage);
  1500. __declspec(dllexport) virtual ~CPlainText();
  1501. __declspec(dllexport) virtual void StoreComponentsL(CStreamStore& aStore,CStoreMap& aMap) const;
  1502. __declspec(dllexport) virtual void RestoreComponentsL(const CStreamStore& aStore);
  1503. __declspec(dllexport) virtual void ExternalizeL(RWriteStream& aStream) const;
  1504. __declspec(dllexport) virtual void InternalizeL(RReadStream& aStream);
  1505. __declspec(dllexport) void ExternalizePlainTextL(RWriteStream& aStream) const;
  1506. __declspec(dllexport) void InternalizePlainTextL(RReadStream& aStream);
  1507. __declspec(dllexport) void ExternalizePlainTextNoLengthCountL(RWriteStream& aStream) const;
  1508. __declspec(dllexport) void InternalizePlainTextL(RReadStream& aStream,TInt aLength);
  1509. __declspec(dllexport) void ImportTextL(TInt aPos,RReadStream& aInput,TTextOrganisation aTextOrganisation,
  1510.   TInt aMaxOutputChars = KMaxTInt,TInt aMaxInputChars = KMaxTInt,
  1511.   TInt* aOutputChars = 0 ,TInt* aInputChars = 0 );
  1512. __declspec(dllexport) void ExportTextL(TInt aPos,RWriteStream& aOutput,TTextOrganisation aTextOrganisation,
  1513.   TInt aMaxOutputChars = KMaxTInt,TInt aMaxInputChars = KMaxTInt,
  1514.   TInt aMaxLineLength = KMaxTInt,
  1515.   TInt* aOutputChars = 0 ,TInt* aInputChars = 0 ) const;
  1516. __declspec(dllexport) virtual TInt ImportTextFileL(TInt aPos,const TDes& aFileName,TTextOrganisation aTextOrganisation);
  1517. __declspec(dllexport) virtual void ExportAsTextL(const TDes& aFileName,TTextOrganisation aTextOrganisation,
  1518. TInt aMaxLineLength) const;
  1519. __declspec(dllexport) void ImportTextL(TInt aPos,RReadStream& aInput,
  1520.   const TImportExportParam& aParam,TImportExportResult& aResult);
  1521. __declspec(dllexport) void ExportTextL(TInt aPos,RWriteStream& aOutput,
  1522.   const TImportExportParam& aParam,TImportExportResult& aResult) const;
  1523. __declspec(dllexport) void StoreFieldComponentsL(CStreamStore& aStore,CStoreMap& aMap) const;
  1524. __declspec(dllexport) void RestoreFieldComponentsL(const CStreamStore& aStore);
  1525. __declspec(dllexport) void ExternalizeFieldDataL(RWriteStream& aStream) const;
  1526. __declspec(dllexport) void InternalizeFieldDataL(RReadStream& aStream);
  1527. __declspec(dllexport) virtual void Reset();
  1528. __declspec(dllexport) virtual void InsertL(TInt aPos,const TChar& aChar);
  1529. __declspec(dllexport) virtual void InsertL(TInt aPos,const TDesC& aBuf);
  1530. __declspec(dllexport) virtual TBool DeleteL(TInt aPos,TInt aLength);
  1531. __declspec(dllexport) virtual TPtrC Read(TInt aStartPos) const;
  1532. __declspec(dllexport) virtual TPtrC Read(TInt aStartPos,TInt aLength) const;
  1533. __declspec(dllexport) virtual void Extract(TDes& aBuf,TInt aPos=0) const;
  1534. __declspec(dllexport) virtual void Extract(TDes& aBuf,TInt aPos,TInt aLength) const;
  1535. enum
  1536. {
  1537. EExtractAll = 0,
  1538. EExtractVisible = 1
  1539. };
  1540. __declspec(dllexport) void ExtractSelectively(TDes& aBuf,TInt aPos,TInt aLength,TUint aFlags);
  1541. __declspec(dllexport) virtual void CopyToStoreL(CStreamStore& aStore,CStreamDictionary& aDictionary,TInt aPos,TInt aLength) const;
  1542. __declspec(dllexport) virtual TInt PasteFromStoreL(const CStreamStore& aStore,const CStreamDictionary& aDictionary,TInt aPos);
  1543. __declspec(dllexport) void SetPageTable(TPageTable* aPageTable);
  1544. __declspec(dllexport) TInt PageContainingPos(TInt aPos) const;
  1545. __declspec(dllexport) virtual TInt DocumentLength() const;
  1546.   __declspec(dllexport) virtual TInt WordCount() const;
  1547. __declspec(dllexport) virtual TInt ParagraphCount() const;
  1548. __declspec(dllexport) virtual TInt ToParagraphStart(TInt& aPos) const;
  1549. __declspec(dllexport) virtual TInt CharPosOfParagraph(TInt& aLength,TInt aParaOffset) const;
  1550. __declspec(dllexport) virtual TInt ParagraphNumberForPos(TInt& aPos) const;
  1551. __declspec(dllexport) virtual void GetWordInfo(TInt aCurrentPos,TInt& aStartPos,TInt& aLength,
  1552. TBool aPictureIsDelimiter,TBool aPunctuationIsDelimiter) const;
  1553. __declspec(dllexport) virtual TInt ScanWords(TInt& aPos,TUint& aScanMask) const;
  1554. __declspec(dllexport) virtual TInt ScanParas(TInt& aPos,TUint& aScanMask) const;
  1555. __declspec(dllexport) virtual TEtextComponentInfo ComponentInfo() const;
  1556. __declspec(dllexport) void SetFieldFactory(MTextFieldFactory* aFactory);
  1557. inline const MTextFieldFactory* FieldFactory() const;
  1558. __declspec(dllexport) CTextField* NewTextFieldL(TUid aFieldType) const;
  1559. __declspec(dllexport) void InsertFieldL(TInt aPos,CTextField* aField,TUid aFieldType);
  1560. __declspec(dllexport) virtual void UpdateFieldL(TInt aPos);
  1561. __declspec(dllexport) void UpdateAllFieldsL();
  1562. __declspec(dllexport) TInt FieldCount() const;
  1563. __declspec(dllexport) const CTextField* TextField(TInt aPos) const;
  1564. __declspec(dllexport) TBool FindFields(TInt aPos) const;
  1565. __declspec(dllexport) TBool FindFields(TFindFieldInfo& aInfo,TInt aPos,TInt aRange=0) const;
  1566. __declspec(dllexport) TBool RemoveField(TInt aPos);
  1567. __declspec(dllexport) TBool ConvertFieldToText(TInt aPos);
  1568. __declspec(dllexport) void ConvertAllFieldsToText();
  1569. __declspec(dllexport) void ExtendedInterface(TAny*& aInterface, TUid aInterfaceId);
  1570. protected:
  1571. __declspec(dllexport) CPlainText();
  1572. __declspec(dllexport) void ConstructL(TDocumentStorage aStorage = ESegmentedStorage,
  1573.  TInt aDefaultTextGranularity = EDefaultTextGranularity);
  1574. __declspec(dllexport) void ConstructL(const CStreamStore& aStore,TStreamId aStreamId,MTextFieldFactory* aFieldFactory,
  1575.  TDocumentStorage aStorage = ESegmentedStorage);
  1576. __declspec(dllexport) void DoConstructL(TDocumentStorage aStorage,TInt aDefaultTextGranularity,
  1577.    MTextFieldFactory* aFieldFactory = 0 );
  1578. void DoExtract(TDes& aBuf,TInt aPos,TInt aLength,TUint aFlags = 0) const;
  1579. __declspec(dllexport) void PtInsertL(TInt aInsertPos,const TDesC& aBuf);
  1580. __declspec(dllexport) void DoPtInsertL(TInt aPos,const TDesC& aBuf);
  1581. __declspec(dllexport) TBool DoPtDelete(TInt aPos,TInt aLength);
  1582. void InsertL(TInt aPos,const CPlainText* aText);
  1583. TBool Delete(TInt aPos,TInt aLength);
  1584. __declspec(dllexport) void DoExternalizeFieldDataL(RWriteStream& aStream) const;
  1585. __declspec(dllexport) void DoInternalizeFieldDataL(RReadStream& aStream);
  1586. __declspec(dllexport) void DoExternalizePlainTextL(RWriteStream& aStream) const;
  1587. __declspec(dllexport) void DoInternalizePlainTextL(RReadStream& aStream);
  1588. TStreamId DoCopyToStoreL(CStreamStore& aStore,CStreamDictionary& aDictionary,TInt aPos,TInt aLength) const;
  1589. TInt DoPasteFromStoreL(const CStreamStore& aStore,TStreamId aStreamId,TInt aPos);
  1590. void CopyComponentsL(CStreamStore& aStore,CStoreMap& aMap,TInt aPos,TInt aLength) const;
  1591. void PasteComponentsL(const CStreamStore& aStore,TInt aPos);
  1592. void CopyToStreamL(RWriteStream& aStream,TInt aPos,TInt aLength) const;
  1593. inline static void ConsumeAdornmentL(RReadStream& aStream);
  1594. inline static TUid UidFromStreamL(RReadStream& aStream);
  1595. protected:
  1596. enum
  1597. {
  1598. EImportBufSize = 512,
  1599. EBiggestCharacterPaste=0x100000
  1600. };
  1601. enum TUnitOfText
  1602. {
  1603. EUnitIsWord,
  1604. EUnitIsParagraph
  1605. };
  1606. struct SScanData
  1607. {
  1608. TInt pos;
  1609. TInt oldPos;
  1610. TText* buf;
  1611. TInt currentSegLen;
  1612. TInt totalBufLen;
  1613. TInt delta;
  1614. TUint32 scanMask;
  1615. enum
  1616. {
  1617. EInsideUnit = 0x10000000,
  1618. EStopEnd = 0x20000000,
  1619. EStopBegin = 0x40000000,
  1620. EIsDelimiter = 0x80000000
  1621. };
  1622. };
  1623. private:
  1624. CPlainText(const CPlainText& aPlainTextDoc);
  1625. CPlainText& operator=(const CPlainText& aPlainTextDoc);
  1626. TInt PasteFromStreamL(RReadStream& aStream,TInt aPos);
  1627. TInt DoPasteFromStreamL(RReadStream& aStream, TInt aPos);
  1628. void InsertEodL();
  1629. void InitScanControl(TInt& aPos,TUint& aScanMask,TUnitOfText aContext,SScanData& aScanData) const;
  1630. void InitScanData(TInt aPos,SScanData& aScanData) const;
  1631. void KillFieldSet();
  1632. TInt CountUnits(TUnitOfText aContext) const;
  1633. TInt ScanUnit(TInt& aPos,TUnitOfText aContext,SScanData& aScanData) const;
  1634. TBool TestForDelimiter(TUnitOfText aContext,SScanData& aScanData) const;
  1635. TBool GetChar(SScanData& aScanData,TChar& aChar) const;
  1636. void UpdatePageTable(TInt aPos,TInt aLength);
  1637. inline TBool FieldSetPresent() const;
  1638. void CreateFieldSetL(TInt aDocumentLength);
  1639. __declspec(dllexport) virtual void Reserved_2();
  1640. void* iReserved_1;
  1641. protected:
  1642. CBufBase* iByteStore;
  1643. TSwizzle<CTextFieldSet> iFieldSet;
  1644. TPageTable* iPageTable;
  1645. MTextFieldFactory* iFieldFactory;
  1646. public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const ;
  1647. };
  1648. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtetext.inl" /* stack depth 11 */
  1649. TBool CEditableText::HasChanged()const
  1650. {return iHasChanged;}
  1651. TBool CPlainText::FieldSetPresent()const
  1652. {return (iFieldSet.IsPtr() && iFieldSet.AsPtr()!=0 );}
  1653. const MTextFieldFactory* CPlainText::FieldFactory()const
  1654. {return (FieldSetPresent()) ? iFieldSet->FieldFactory() : 0 ;}
  1655. void CPlainText::ConsumeAdornmentL(RReadStream& aStream)
  1656. {
  1657. TStreamId id;
  1658. aStream>> id;
  1659. }
  1660. TUid CPlainText::UidFromStreamL(RReadStream& aStream)
  1661. {
  1662. TUid uid;
  1663. aStream>> uid;
  1664. return uid;
  1665. }
  1666. #line 714 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtetext.h" /* stack depth 10 */
  1667. #line 13 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmtlay.h" /* stack depth 9 */
  1668. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmlaydt.h" /* stack depth 10 */
  1669. #line 23
  1670. class CLayoutData
  1671. {
  1672. public:
  1673. enum
  1674. {
  1675. EFLargeNumber = KMaxTInt / 3,
  1676. EFFontHeightIncreaseFactor = 7,
  1677. EFMinimumLineDescent = 3,
  1678. EFBaseLinePosition = 82
  1679. };
  1680. enum
  1681. {
  1682. EFHeightForFormattingAllText = EFLargeNumber,
  1683. EFBodyWidthForNoWrapping = EFLargeNumber
  1684. };
  1685. enum
  1686. {
  1687. EFIndividualChars = 0,
  1688. EFWholeLinesOnly = 1,
  1689. EFWholeTBoxesOnly=EFWholeLinesOnly,
  1690. EFDisambiguateEndOfLine = 2,
  1691. };
  1692. enum TFormatMode
  1693. {
  1694. EFScreenMode,
  1695. EFPrintMode,
  1696. EFPrintPreviewMode,
  1697. EFWysiwygMode
  1698. };
  1699. private:
  1700. CLayoutData(CLayoutData&);
  1701. };
  1702. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmtlay.h" /* stack depth 9 */
  1703. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmparam.h" /* stack depth 10 */
  1704. #line 36
  1705. class MFormParam
  1706. {
  1707. public:
  1708. #line 66
  1709. virtual TRgb SystemColor(TUint aColorIndex,TRgb aDefaultColor) const = 0;
  1710. __declspec(dllexport) virtual void Reserved();
  1711. __declspec(dllexport) static void Set(const MFormParam* aParam);
  1712. __declspec(dllexport) static const MFormParam* Get();
  1713. };
  1714. #line 15 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmtlay.h" /* stack depth 9 */
  1715. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmvis.h" /* stack depth 10 */
  1716. #line 12
  1717. class RReadStream;
  1718. class RWriteStream;
  1719. #line 25
  1720. class TNonPrintingCharVisibility
  1721. {
  1722. private:
  1723. enum TShowFormatChars
  1724. {
  1725. EFNothingVisible=0x000,
  1726. EFTabsVisible=0x001,
  1727. EFSpacesVisible=0x002,
  1728. EFParagraphDelimitersVisible=0x004,
  1729. EFLineBreaksVisible=0x008,
  1730. EFPotentialHyphensVisible=0x010,
  1731. EFNonBreakingHyphensVisible=0x020,
  1732. EFNonBreakingSpacesVisible=0x040,
  1733. EFPageBreaksVisible=0x080,
  1734. EFEverythingVisible=0xffffffff
  1735. };
  1736. public:
  1737. __declspec(dllexport) TNonPrintingCharVisibility();
  1738. __declspec(dllexport) TNonPrintingCharVisibility(const TNonPrintingCharVisibility& aVisibility);
  1739. __declspec(dllexport) TNonPrintingCharVisibility& operator=(const TNonPrintingCharVisibility& aVisibility);
  1740. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  1741. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1742. __declspec(dllexport) void SetAllVisible();
  1743. __declspec(dllexport) void SetNoneVisible();
  1744. __declspec(dllexport) void SetTabsVisible(TBool aVisible);
  1745. __declspec(dllexport) void SetSpacesVisible(TBool aVisible);
  1746. __declspec(dllexport) void SetParagraphDelimitersVisible(TBool aVisible);
  1747. __declspec(dllexport) void SetLineBreaksVisible(TBool aVisible);
  1748. __declspec(dllexport) void SetPotentialHyphensVisible(TBool aVisible);
  1749. __declspec(dllexport) void SetNonBreakingHyphensVisible(TBool aVisible);
  1750. __declspec(dllexport) void SetNonBreakingSpacesVisible(TBool aVisible);
  1751. __declspec(dllexport) void SetPageBreaksVisible(TBool aVisible);
  1752. inline TBool AllVisible()const{return iVisible==EFEverythingVisible;};
  1753. inline TBool NoneVisible()const{return iVisible==EFNothingVisible;};
  1754. inline TBool TabsVisible()const{return iVisible&EFTabsVisible;};
  1755. inline TBool SpacesVisible()const{return iVisible&EFSpacesVisible;};
  1756. inline TBool ParagraphDelimitersVisible()const{return iVisible&EFParagraphDelimitersVisible;};
  1757. inline TBool LineBreaksVisible()const{return iVisible&EFLineBreaksVisible;};
  1758. inline TBool PotentialHyphensVisible()const{return iVisible&EFPotentialHyphensVisible;};
  1759. inline TBool NonBreakingHyphensVisible()const{return iVisible&EFNonBreakingHyphensVisible;};
  1760. inline TBool NonBreakingSpacesVisible()const{return iVisible&EFNonBreakingSpacesVisible;};
  1761. inline TBool PageBreaksVisible()const{return iVisible&EFPageBreaksVisible;};
  1762. private:
  1763. TUint32 iVisible;
  1764. };
  1765. #line 16 "C:\Symbian\9.1\S60_3rd\epoc32\include\frmtlay.h" /* stack depth 9 */
  1766. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\tagma.h" /* stack depth 10 */
  1767. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtstyle.h" /* stack depth 11 */
  1768. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfmlyr.h" /* stack depth 12 */
  1769. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfmstm.h" /* stack depth 13 */
  1770. #line 15
  1771. class RReadStream;
  1772. class RWriteStream;
  1773. class TCharFormatX;
  1774. class TCharFormatXMask;
  1775. class RFormatStream
  1776. {
  1777. public:
  1778. RFormatStream();
  1779. void CopyL(const RFormatStream& aSource);
  1780. void ExternalizeL(RWriteStream& aStream) const;
  1781. void InternalizeL(RReadStream& aStream);
  1782. void Reset();
  1783. const TUint8* Ptr(TInt& aSize) const;
  1784. void SetParaFormatL(const CParaFormat* aDesiredFormat,const TParaFormatMask& aDesiredMask,const CParaFormat* aCurrentFormat);
  1785. void SenseParaFormatL(CParaFormat* aParaFormat,TParaFormatMask& aMask,CParaFormat::TParaFormatGetMode aMode)const;
  1786. void SetCharFormatL(const TCharFormatX& aCharFormat,const TCharFormatXMask& aMask);
  1787. void SenseCharFormat(TCharFormatX& aCharFormat,TCharFormatXMask& aMask)const;
  1788. void Swap(RFormatStream& aStream);
  1789. private:
  1790. void AllocL(TInt aSize);
  1791. TInt Length(TUint8*& aPtr,TTextFormatAttribute aType)const;
  1792. TInt DoCalcSizeParaFormat(const CParaFormat* aDesiredFormat,TParaFormatMask aMask,const CParaFormat* aCurrentFormat);
  1793. void DoSetParaFormat(const CParaFormat* aDesiredFormat,TParaFormatMask aMask,const CParaFormat* aCurrentFormat);
  1794. void RemoveRedundantCharFormat(TCharFormatMask& aMask,const TCharFormatX& aFormat,const TCharFormatX& aEffectiveFormat);
  1795. TInt DoCalcSizeCharFormat(const TCharFormatX& aCharFormat,const TCharFormatXMask& aMask);
  1796. void DoStoreCharFormat(const TCharFormatX& aCharFormat,TCharFormatXMask aMask);
  1797. TUint8* StoreBullet(TUint8* aPtr,const TBullet& aSource);
  1798. TUint8* StoreBorder(TUint8* aPtr,TTextFormatAttribute aType,const TParaBorder& aSource);
  1799. TUint8* StoreTab(TUint8* aPtr,const TTabStop& aSource);
  1800. TInt StoreTabs(TUint8*& aPtr,const CParaFormat* aDesiredFormat,const CParaFormat* aCurrentFormat,TBool aStoreData);
  1801. TInt MergeTabLists(TUint8*& aPtr,const CParaFormat* aDesiredFormat,TInt aDesiredTabCount,
  1802.    const CParaFormat* aCurrentFormat,TInt aCurrentTabCount,TBool aStoreData);
  1803. void StoreAllTabs(TUint8*& aPtr,const CParaFormat* aSource);
  1804. TUint8* Store(TUint8* aPtr,const TLogicalRgb& aRgb);
  1805. TUint8* Store(TUint8* aPtr,const TTypeface& aTypeface);
  1806. TUint8* ReadValue(TUint8* aPtr,TLogicalRgb& aRgb)const;
  1807. TUint8* ReadValue(TUint8* aPtr,TTypeface& aTypeface)const;
  1808. TUint8* ReadValue(TUint8* aPtr,TParaBorder& aBorder)const;
  1809. TUint8* ReadValue(TUint8* aPtr,TBullet& aBullet)const;
  1810. TUint8* ReadTabL(TUint8* aPtr,CParaFormat* aTarget)const;
  1811. TUint8* iBase;
  1812. TUint8* iEnd;
  1813. public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const ;
  1814. private:
  1815. void TestInvariantL() const;
  1816. TBool DoInvariantCheck() const;
  1817. };
  1818. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfmlyr.h" /* stack depth 12 */
  1819. class CFormatStream;
  1820. class RReadStream;
  1821. class RWriteStream;
  1822. class TCharFormatX;
  1823. const TUid KNormalParagraphStyleUid={268435531};
  1824. #line 55
  1825. class CFormatLayer : public CBase
  1826. {
  1827. public:
  1828. __declspec(dllexport) void Reset();
  1829. __declspec(dllexport) void SetBase(const CFormatLayer* aBaseFormatLayer);
  1830. __declspec(dllexport) const CFormatLayer* SenseBase()const;
  1831. __declspec(dllexport) TInt ChainCount()const;
  1832. #line 76
  1833. virtual void InternalizeL(RReadStream& aStream,const CFormatLayer* aBase=0 )=0;
  1834. #line 85
  1835. virtual void ExternalizeL(RWriteStream& aStream)const=0;
  1836. __declspec(dllexport) void InternalizeChainL(RReadStream& aStream,const CFormatLayer* aBase=0 );
  1837. __declspec(dllexport) void ExternalizeChainL(RWriteStream& aStream,TInt aExcludeCount=0)const;
  1838. #line 101
  1839. virtual TBool IsIdentical(CFormatLayer* aLayer,TBool aCheckBasedOnLink=ETrue)const=0;
  1840. __declspec(dllexport) TBool IsEmpty()const;
  1841. void Swap(CFormatLayer& aLayer);
  1842. private:
  1843. CFormatLayer(const CFormatLayer& aFormatLayer);
  1844. CFormatLayer& operator=(const CFormatLayer& aFormatLayer);
  1845. virtual CFormatLayer* DoCloneL()const=0;
  1846. protected:
  1847. CFormatLayer();
  1848. ~CFormatLayer();
  1849. virtual CFormatLayer* RestoreNewL(RReadStream& aStream)=0;
  1850. void ExternalizeLayersRecurseL(RWriteStream& aStream,TInt aDescendantCount)const;
  1851. TBool IsIdentical(const TUint8* aPtr,TInt aSize)const;
  1852. const TUint8* Ptr(TInt& aSize)const;
  1853. void CloneLayerL(CFormatLayer* aClone)const;
  1854. protected:
  1855. RFormatStream iStore;
  1856. const CFormatLayer* iBasedOn;
  1857. public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const ;
  1858. };
  1859. #line 134
  1860. class CParaFormatLayer : public CFormatLayer
  1861. {
  1862. public:
  1863. __declspec(dllexport) static CParaFormatLayer* NewL();
  1864. __declspec(dllexport) static CParaFormatLayer* NewL(const CParaFormat* aParaFormat,const TParaFormatMask& aMask);
  1865. __declspec(dllexport) static CParaFormatLayer* NewL(RReadStream& aStream);
  1866. static CParaFormatLayer* NewL(const CParaFormatLayer* aLayer);
  1867. static CParaFormatLayer* NewCopyBaseL(const CParaFormatLayer* aLayer);
  1868. __declspec(dllexport) virtual void InternalizeL(RReadStream& aStream,const CFormatLayer* aBase=0 );
  1869. __declspec(dllexport) virtual void ExternalizeL(RWriteStream& aStream)const;
  1870. __declspec(dllexport) void SetL(const CParaFormat* aDesiredEffectiveFormat,const TParaFormatMask& aMask);
  1871. __declspec(dllexport) void SenseEffectiveL(CParaFormat* aParaFormat,CParaFormat::TParaFormatGetMode aMode=CParaFormat::EAllAttributes)const;
  1872. __declspec(dllexport) void SenseL(CParaFormat* aParaFormat,TParaFormatMask& aMask,CParaFormat::TParaFormatGetMode aMode=CParaFormat::EAllAttributes)const;
  1873. inline CParaFormatLayer* CloneL()const;
  1874. __declspec(dllexport) TBool IsIdenticalL(const CParaFormat* aParaFormat,const TParaFormatMask& aMask)const;
  1875. __declspec(dllexport) virtual TBool IsIdentical(CFormatLayer* aLayer,TBool aCheckBasedOnLink=ETrue)const;
  1876. __declspec(dllexport) virtual TUid Type()const;
  1877. __declspec(dllexport) const TUint8* Ptr(TInt& aSize)const;
  1878. private:
  1879. CParaFormatLayer(const CParaFormatLayer& aParaFormatLayer);
  1880. CParaFormatLayer& operator=(const CParaFormatLayer& aParaFormatLayer);
  1881. __declspec(dllexport) virtual CFormatLayer* DoCloneL()const;
  1882. void FillParaFormatL(CParaFormat* aParaFormat,TParaFormatMask& aMask,CParaFormat::TParaFormatGetMode aMode)const;
  1883. void CleanupEffectiveFormat(CParaFormat* aParaFormat,TParaFormatMask aMask)const;
  1884. void CleanupBorders(CParaFormat* aParaFormat)const;
  1885. protected:
  1886. CParaFormatLayer();
  1887. virtual CFormatLayer* RestoreNewL(RReadStream& aStream);
  1888. };
  1889. #line 185
  1890. class CCharFormatLayer : public CFormatLayer
  1891. {
  1892. public:
  1893. __declspec(dllexport) static CCharFormatLayer* NewL();
  1894. __declspec(dllexport) static CCharFormatLayer* NewL(const TCharFormat& aFormat,const TCharFormatMask& aMask);
  1895. __declspec(dllexport) static CCharFormatLayer* NewL(RReadStream& aStream);
  1896. __declspec(dllexport) virtual void InternalizeL(RReadStream& aStream,const CFormatLayer* aBase=0 );
  1897. __declspec(dllexport) virtual void ExternalizeL(RWriteStream& aStream)const;
  1898. __declspec(dllexport) void SetL(const TCharFormat& aCharFormat,const TCharFormatMask& aMask);
  1899. __declspec(dllexport) void SenseEffective(TCharFormat& aCharFormat)const;
  1900. __declspec(dllexport) void Sense(TCharFormat& aCharFormat,TCharFormatMask& aMask)const;
  1901. inline CCharFormatLayer* CloneL()const;
  1902. __declspec(dllexport) virtual TBool IsIdentical(CFormatLayer* aLayer,TBool aCheckBasedOnLink=ETrue)const;
  1903. __declspec(dllexport) TBool IsIdentical(const TCharFormat& aCharFormat,const TCharFormatMask& aMask)const;
  1904. __declspec(dllexport) const TUint8* Ptr(TInt& aSize)const;
  1905. static CCharFormatLayer* NewL(const CCharFormatLayer* aLayer);
  1906. static CCharFormatLayer* NewCopyBaseL(const CCharFormatLayer* aLayer);
  1907. static CCharFormatLayer* NewL(const TCharFormatX& aFormat,const TCharFormatXMask& aMask);
  1908. void SetL(const TCharFormatX& aCharFormat,const TCharFormatXMask& aMask);
  1909. void SenseEffective(TCharFormatX& aCharFormat)const;
  1910. void Sense(TCharFormatX& aCharFormat,TCharFormatXMask& aMask) const;
  1911. private:
  1912. CCharFormatLayer();
  1913. virtual CFormatLayer* RestoreNewL(RReadStream& aStream);
  1914. virtual void FillCharFormat(TCharFormatX& aCharFormat,TCharFormatXMask& aMask)const;
  1915. __declspec(dllexport) virtual CFormatLayer* DoCloneL()const;
  1916. };
  1917. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfmlyr.inl" /* stack depth 13 */
  1918. #line 9
  1919. inline CParaFormatLayer* CParaFormatLayer::CloneL()const
  1920. {return (static_cast<CParaFormatLayer*>(DoCloneL())) ;}
  1921. inline CCharFormatLayer* CCharFormatLayer::CloneL()const
  1922. {return (static_cast<CCharFormatLayer*>(DoCloneL())) ;}
  1923. #line 217 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtfmlyr.h" /* stack depth 12 */
  1924. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtstyle.h" /* stack depth 11 */
  1925. class CParagraphStyle;
  1926. class CStyleTable;
  1927. class RReadStream;
  1928. class RWriteStream;
  1929. const TInt KMaxParagraphStyleName=0x20;
  1930. typedef TBuf<KMaxParagraphStyleName> TParagraphStyleName;
  1931. const TUid KUserDefinedParagraphStyleUid={268435535};
  1932. class RParagraphStyleInfo
  1933. #line 62
  1934. {
  1935. public:
  1936. inline RParagraphStyleInfo();
  1937. inline RParagraphStyleInfo(CParagraphStyle* aStyle,CParagraphStyle* aStyleForNextPara=0 );
  1938. inline void Discard();
  1939. public:
  1940. CParagraphStyle* iStyle;
  1941. CParagraphStyle* iStyleForNextPara;
  1942. };
  1943. class CParagraphStyle : public CParaFormatLayer
  1944. #line 96
  1945. {
  1946. public:
  1947. friend class CStyleList;
  1948. friend class CRichTextIndex;
  1949. enum TStylePasteMode
  1950. {
  1951. EAddNewStyles,
  1952. EConvertNewStyles,
  1953. EIgnoreNewStyles
  1954. };
  1955. enum TApplyParaStyleMode
  1956. {
  1957. ERetainAllSpecificFormats,
  1958. ERetainNoSpecificFormats,
  1959. ERetainSpecificParaFormat,
  1960. ERetainSpecificCharFormat
  1961. };
  1962. public:
  1963. __declspec(dllexport) static CParagraphStyle* NewL(const CParaFormatLayer& aGlobalParaFormatLayer,const CCharFormatLayer& aGlobalCharFormatLayer);
  1964. __declspec(dllexport) ~CParagraphStyle();
  1965. inline CCharFormatLayer* CharFormatLayer()const;
  1966. inline TInt OutlineLevel()const;
  1967. inline void SetOutlineLevel(TInt aOutlineLevel);
  1968. __declspec(dllexport) virtual TUid Type()const;
  1969. inline void SetType(TUid aType);
  1970. inline CParagraphStyle* CloneL()const;
  1971. private:
  1972. CParagraphStyle();
  1973. void ConstructL(const CParaFormatLayer& aGlobalParaFormatLayer,
  1974.  const CCharFormatLayer& aGlobalCharFormatLayer);
  1975. __declspec(dllexport) virtual CFormatLayer* DoCloneL()const;
  1976. static CParagraphStyle* NewL(RReadStream& aStream,const CParaFormatLayer& aGlobalParaFormatLayer,const CCharFormatLayer& aGlobalCharFormatLayer);
  1977. virtual void InternalizeL(RReadStream& aStream,const CFormatLayer* aParaLayerBase,const CFormatLayer* aCharLayerBase);
  1978. virtual void ExternalizeL(RWriteStream& aStream)const;
  1979. private:
  1980. TUid iType;
  1981. TInt iOutlineLevel;
  1982. CCharFormatLayer* iCharFormatLayer;
  1983. public:
  1984. TParagraphStyleName iName;
  1985. };
  1986. const TInt KMaxStyleListGranularity=0x04;
  1987. class CStyleList : public CBase
  1988. #line 210
  1989. {
  1990. public:
  1991. __declspec(dllexport) static CStyleList* NewL(TInt aCapacity=KMaxStyleListGranularity);
  1992. __declspec(dllexport) static CStyleList* NewL(RReadStream& aStream,
  1993. const CParaFormatLayer* aGlobalParaFormatLayer,
  1994. const CCharFormatLayer* aGlobalCharFormatLayer);
  1995. __declspec(dllexport) ~CStyleList();
  1996. inline const RParagraphStyleInfo& operator[](TInt aIndex)const;
  1997. inline RParagraphStyleInfo& operator[](TInt aIndex);
  1998. __declspec(dllexport) const RParagraphStyleInfo& At(TInt aIndex)const;
  1999. __declspec(dllexport) RParagraphStyleInfo& At(TInt aIndex);
  2000. __declspec(dllexport) TStreamId StoreL(CStreamStore& aStore)const;
  2001. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  2002. __declspec(dllexport) void InternalizeL(RReadStream& aStream,
  2003. const CParaFormatLayer* aGlobalParaFormatLayer,
  2004. const CCharFormatLayer* aGlobalCharFormatLayer);
  2005. __declspec(dllexport) void Reset();
  2006. __declspec(dllexport) TInt AppendL(RParagraphStyleInfo* aStyleSet);
  2007. __declspec(dllexport) void Remove(CParagraphStyle* aStyle);
  2008. __declspec(dllexport) TInt SetStyleToFollow(const RParagraphStyleInfo& aStyleSet);
  2009. __declspec(dllexport) CStyleList* DeepCloneL()const;
  2010. __declspec(dllexport) RParagraphStyleInfo* PtrByName(const TParagraphStyleName& aName)const;
  2011. __declspec(dllexport) RParagraphStyleInfo* PtrByType(const TUid aType)const;
  2012. __declspec(dllexport) TInt IndexByPtr(const CParaFormatLayer* aPtr)const;
  2013. __declspec(dllexport) TInt IndexByName(const TDesC& aName)const;
  2014. inline TInt Count()const;
  2015. protected:
  2016. __declspec(dllexport) CStyleList();
  2017. __declspec(dllexport) void ConstructL(TInt aGranularity);
  2018. private:
  2019. void KillStyleList();
  2020. private:
  2021. CArrayFixFlat<RParagraphStyleInfo> * iList;
  2022. public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const ;
  2023. };
  2024. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtstyle.inl" /* stack depth 12 */
  2025. RParagraphStyleInfo::RParagraphStyleInfo()
  2026. : iStyle(0 ),iStyleForNextPara(0 )
  2027. {}
  2028. RParagraphStyleInfo::RParagraphStyleInfo(CParagraphStyle* aStyle,CParagraphStyle* aStyleForNextPara)
  2029. : iStyle(aStyle),iStyleForNextPara(aStyleForNextPara)
  2030. {}
  2031. void RParagraphStyleInfo::Discard()
  2032. {delete iStyle;}
  2033. CCharFormatLayer* CParagraphStyle::CharFormatLayer()const
  2034. {return iCharFormatLayer;}
  2035. TInt CParagraphStyle::OutlineLevel()const
  2036. {return iOutlineLevel;}
  2037. void CParagraphStyle::SetOutlineLevel(TInt aOutlineLevel)
  2038. {iOutlineLevel=aOutlineLevel;}
  2039. void CParagraphStyle::SetType(TUid aType)
  2040. {iType=aType;}
  2041. CParagraphStyle* CParagraphStyle::CloneL()const
  2042. {return (static_cast<CParagraphStyle*>(DoCloneL())) ;}
  2043. const RParagraphStyleInfo& CStyleList::operator[](TInt aIndex)const
  2044. #line 104
  2045. {return iList->At(aIndex);}
  2046. RParagraphStyleInfo& CStyleList::operator[](TInt aIndex)
  2047. {return iList->At(aIndex);}
  2048. TInt CStyleList::Count()const
  2049. {return (iList) ? iList->Count() : 0;}
  2050. #line 259 "C:\Symbian\9.1\S60_3rd\epoc32\include\txtstyle.h" /* stack depth 11 */
  2051. #line 18 "C:\Symbian\9.1\S60_3rd\epoc32\include\tagma.h" /* stack depth 10 */
  2052. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\LineBreak.h" /* stack depth 11 */
  2053. #line 10
  2054. class MContingentLineBreaker;
  2055. class MContingentLineBreakerL;
  2056. class TDesC16;
  2057. class TUid;
  2058. #line 22
  2059. enum TLineBreakPanic
  2060. {
  2061. ELineBreakPanic_Unknown = 0,
  2062. ELineBreakPanic_BadTable = 1,
  2063. ELineBreakPanic_InvalidInputParam = 2,
  2064. ELineBreakPanic_InvalidOutputParam = 3,
  2065. };
  2066. class MLineBreaker
  2067. {
  2068. public:
  2069. enum
  2070. {
  2071. EOpLineBreakClass,
  2072. EClLineBreakClass,
  2073. EQuLineBreakClass,
  2074. EGlLineBreakClass,
  2075. ENsLineBreakClass,
  2076. EExLineBreakClass,
  2077. ESyLineBreakClass,
  2078. EIsLineBreakClass,
  2079. EPrLineBreakClass,
  2080. EPoLineBreakClass,
  2081. ENuLineBreakClass,
  2082. EAlLineBreakClass,
  2083. EIdLineBreakClass,
  2084. EInLineBreakClass,
  2085. EHyLineBreakClass,
  2086. EBaLineBreakClass,
  2087. EBbLineBreakClass,
  2088. EB2LineBreakClass,
  2089. EZwLineBreakClass,
  2090. ECmLineBreakClass,
  2091. EBkLineBreakClass,
  2092. ECrLineBreakClass,
  2093. ELfLineBreakClass,
  2094. ESgLineBreakClass,
  2095. ECbLineBreakClass,
  2096. ESpLineBreakClass,
  2097. ESaLineBreakClass,
  2098. EAiLineBreakClass,
  2099. EXxLineBreakClass,
  2100. ELineBreakClasses
  2101. };
  2102. __declspec(dllexport) virtual TUint LineBreakClass(TUint aCode,
  2103. TUint& aRangeStart, TUint& aRangeEnd) const;
  2104. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aPrevClass, TUint aNextClass,
  2105. TBool aHaveSpaces) const;
  2106. __declspec(dllexport) virtual TBool GetLineBreakInContext(const TDesC16& aText,
  2107. TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,
  2108. TInt& aBreakPos) const;
  2109. __declspec(dllexport) virtual TBool IsHangingCharacter(TUint aChar) const;
  2110. __declspec(dllexport) TBool GetLineBreak(const TDesC16& aText,
  2111. TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,
  2112. MContingentLineBreaker* aCbDelegate,
  2113. TInt& aBreakPos, TInt& aBreakPosAfterSpaces) const;
  2114. __declspec(dllexport) TBool GetLineBreakL(const TDesC16& aText,
  2115. TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,
  2116. MContingentLineBreakerL* aCbDelegate,
  2117. TInt& aBreakPos, TInt& aBreakPosAfterSpaces) const;
  2118. __declspec(dllexport) virtual void* ExtendedInterface(TUid& aUid) const;
  2119. };
  2120. class MContingentLineBreaker
  2121. {
  2122. public:
  2123. #line 171
  2124. virtual TBool IsLegalBreakBefore(TInt aTextPosition, TInt aPrecedingClass,
  2125. TBool aHasSpaces) = 0;
  2126. #line 181
  2127. virtual TBool IsLegalBreakAfter(TInt aTextPosition, TInt aFollowingClass,
  2128. TBool aHasSpaces) = 0;
  2129. };
  2130. class MContingentLineBreakerL
  2131. {
  2132. public:
  2133. #line 205
  2134. virtual TBool IsLegalBreakBeforeL(TInt aTextPosition, TInt aPrecedingClass,
  2135. TBool aHasSpaces) = 0;
  2136. #line 215
  2137. virtual TBool IsLegalBreakAfterL(TInt aTextPosition, TInt aFollowingClass,
  2138. TBool aHasSpaces) = 0;
  2139. };
  2140. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\tagma.h" /* stack depth 10 */
  2141. class TTmLineInfo;
  2142. class CTmTextImp;
  2143. class RWindow;
  2144. class RWsSession;
  2145. class RParagraphStyleInfo;
  2146. class CStyleList;
  2147. class TTmDocPosSpec;
  2148. class TTmDocPos;
  2149. class TTmCharFormatMask
  2150. {
  2151. public:
  2152. enum TAttrib
  2153. {
  2154. EFontName = 0x1,
  2155. EFontCoverage = 0x2,
  2156. EBold = 0x4,
  2157. EItalic = 0x8,
  2158. ESerif = 0x10,
  2159. EMonoWidth = 0x20,
  2160. EHeight = 0x40,
  2161. EPrintPosition = 0x80,
  2162. ETextColor = 0x100,
  2163. EBackgroundColor = 0x200,
  2164. EBackground = 0x400,
  2165. EUnderline = 0x800,
  2166. EStrikethrough = 0x1000,
  2167. EShadow = 0x2000,
  2168. EUserDefinedEffects = 0x4000,
  2169. ELanguage = 0x8000,
  2170. EPictureAlignment = 0x10000
  2171. };
  2172. inline TTmCharFormatMask();
  2173. __declspec(dllexport) TTmCharFormatMask(const TCharFormatMask& aMask);
  2174. __declspec(dllexport) void GetTCharFormatMask(TCharFormatMask& aMask) const;
  2175. inline void Clear(TAttrib aAttrib);
  2176. inline void Set(TAttrib aAttrib);
  2177. inline TBool IsSet(TAttrib aAttrib);
  2178. TUint iFlags;
  2179. };
  2180. #line 81
  2181. class TTmCharFormat
  2182. {
  2183. public:
  2184. enum
  2185. {
  2186. EBackground = 1,
  2187. ERounded = 2,
  2188. EUnderline = 4,
  2189. EStrikethrough = 8,
  2190. EShadow = 16,
  2191. EUserDefinedMask = 0xFF000000,
  2192. EUserDefinedShift = 24,
  2193. ENoMatchesIndicator = 0x4000000,
  2194. ECustomDrawEffectIsExternallyDefined = 0x80000000
  2195. };
  2196. enum TPictureAlignment
  2197. {
  2198. EPictureAlignBaseline,
  2199. EPictureAlignTop,
  2200. EPictureAlignBottom,
  2201. EPictureAlignCenter
  2202. };
  2203. __declspec(dllexport) TTmCharFormat();
  2204. __declspec(dllexport) TTmCharFormat(const TDesC& aFontName,TInt aFontHeight);
  2205. __declspec(dllexport) void operator=(const TCharFormat& aFormat);
  2206. inline TTmCharFormat(const TCharFormat& aFormat);
  2207. __declspec(dllexport) void GetTCharFormat(TCharFormat& aFormat) const;
  2208. __declspec(dllexport) TBool operator==(const TTmCharFormat& aFormat) const;
  2209. inline TBool operator!=(const TTmCharFormat& aFormat) const;
  2210. TOpenFontSpec iFontSpec;
  2211. TLogicalRgb iTextColor;
  2212. TLogicalRgb iBackgroundColor;
  2213. TUint iEffects;
  2214. TUint iLanguage;
  2215. TPictureAlignment iPictureAlignment;
  2216. TUint iTag;
  2217. };
  2218. class TTmTab
  2219. {
  2220. public:
  2221. enum TType
  2222. {
  2223. EStandardTab,
  2224. ECenterTab,
  2225. EReverseTab
  2226. };
  2227. inline TTmTab();
  2228. inline TTmTab(const TTabStop& aTab);
  2229. __declspec(dllexport) void operator=(const TTabStop& aTab);
  2230. __declspec(dllexport) void GetTTabStop(TTabStop& aTab) const;
  2231. __declspec(dllexport) TBool operator==(const TTmTab& aTab) const;
  2232. inline TBool operator!=(const TTmTab& aTab) const;
  2233. TInt iPosition;
  2234. TType iType;
  2235. };
  2236. class TTmBullet
  2237. {
  2238. public:
  2239. enum TStyle
  2240. {
  2241. EBulletStyle,
  2242. EArabicNumberStyle,
  2243. ESmallRomanNumberStyle,
  2244. ECapitalRomanNumberStyle,
  2245. ESmallLetterStyle,
  2246. ECapitalLetterStyle
  2247. };
  2248.   enum TAlignment
  2249. {
  2250. ELeftAlign,
  2251. ECenterAlign,
  2252. ERightAlign
  2253. };
  2254. __declspec(dllexport) TTmBullet();
  2255. __declspec(dllexport) void operator=(const TBullet& aBullet);
  2256. inline TTmBullet(const TBullet& aBullet);
  2257. __declspec(dllexport) void GetTBullet(TBullet& aBullet) const;
  2258. __declspec(dllexport) TBool operator==(const TTmBullet& aBullet) const;
  2259. inline TBool operator!=(const TTmBullet& aBullet) const;
  2260. TChar iCharacterCode;
  2261. TOpenFontSpec iFontSpec;
  2262. TBool iHangingIndent;
  2263. TLogicalRgb iColor;
  2264. TStyle iStyle;
  2265. TInt iStartNumber;
  2266. TAlignment iAlignment;
  2267. };
  2268. class TTmParBorder
  2269. {
  2270. public:
  2271. enum TStyle
  2272. {
  2273. ESolidStyle,
  2274. EDoubleStyle,
  2275. EDotStyle,
  2276. EDashStyle,
  2277. EDotDashStyle,
  2278. EDotDotDashStyle
  2279. };
  2280. __declspec(dllexport) TTmParBorder();
  2281. __declspec(dllexport) void operator=(const TParaBorder& aBorder);
  2282. inline TTmParBorder(const TParaBorder& aBorder);
  2283. __declspec(dllexport) void GetTParaBorder(TParaBorder& aBorder) const;
  2284. __declspec(dllexport) TBool operator==(const TTmParBorder& aBorder) const;
  2285. inline TBool operator!=(const TTmParBorder& aBorder) const;
  2286. TStyle iStyle;
  2287. TInt iWeight;
  2288. TLogicalRgb iColor;
  2289. TBool iAutoColor;
  2290. };
  2291. class TTmParFormatMask
  2292. {
  2293. public:
  2294. enum TAttrib
  2295. {
  2296. EAlignment = 0x1,
  2297. EDirection = 0x2,
  2298. EKeepTogether = 0x4,
  2299. EKeepWithNext = 0x8,
  2300. EStartNewPage = 0x10,
  2301. EWidowOrphan = 0x20,
  2302. ENoWrap = 0x40,
  2303. EExactLineSpacing = 0x80,
  2304. EPixelLineSpacing = 0x100,
  2305. ELeadingMargin = 0x200,
  2306. ETrailingMargin = 0x400,
  2307. EFirstLineIndent = 0x800,
  2308. ELineSpacing = 0x1000,
  2309. ESpaceAbove = 0x2000,
  2310. ESpaceBelow = 0x4000,
  2311. ETabSize = 0x8000,
  2312. EBorderMargin = 0x10000,
  2313. ETabList = 0x20000,
  2314. EBullet = 0x40000,
  2315. EBorder = 0x80000
  2316. };
  2317. inline TTmParFormatMask();
  2318. __declspec(dllexport) TTmParFormatMask(const TParaFormatMask& aMask);
  2319. __declspec(dllexport) void GetTParaFormatMask(TParaFormatMask& aMask) const;
  2320. inline void Clear(TAttrib aAttrib);
  2321. inline void Set(TAttrib aAttrib);
  2322. inline TBool IsSet(TAttrib aAttrib);
  2323. TUint iFlags;
  2324. };
  2325. class RTmParFormat
  2326. {
  2327. public:
  2328. enum TBorderIndex
  2329. {
  2330. ETopBorder = 0,
  2331. EBottomBorder = 1,
  2332. ELeadingBorder = 2,
  2333. ETrailingBorder = 3,
  2334. };
  2335. enum
  2336. {
  2337. ERightToLeft = 1,
  2338. EKeepTogether = 2,
  2339. EKeepWithNext = 4,
  2340. EStartNewPage = 8,
  2341. EWidowOrphan = 16,
  2342. ENoWrap = 32,
  2343. EExactLineSpacing = 64,
  2344. EPixelLineSpacing = 128,
  2345. EDirectionalityFromText = 256
  2346. };
  2347. enum TAlignment
  2348. {
  2349. EAlignNormalBidirectional,
  2350. EAlignNormal = EAlignNormalBidirectional,
  2351. EAlignCenter,
  2352. EAlignReverseBidirectional,
  2353. EAlignReverse = EAlignReverseBidirectional,
  2354. EAlignJustify,
  2355. EAlignAbsoluteLeft,
  2356. EAlignAbsoluteRight
  2357. };
  2358. __declspec(dllexport) RTmParFormat();
  2359. __declspec(dllexport) void Close();
  2360. inline ~RTmParFormat();
  2361. __declspec(dllexport) void CopyL(const RTmParFormat& aFormat);
  2362. __declspec(dllexport) void CopyL(const CParaFormat& aFormat);
  2363. __declspec(dllexport) void GetCParaFormatL(CParaFormat& aFormat) const;
  2364. __declspec(dllexport) TBool operator==(const RTmParFormat& aFormat) const;
  2365. inline TBool operator!=(const RTmParFormat& aFormat) const;
  2366. __declspec(dllexport) TInt Tabs() const;
  2367. inline const TTmTab& Tab(TInt aIndex) const;
  2368. inline const TTmBullet* Bullet() const;
  2369. inline const TTmParBorder* Border(TBorderIndex aIndex) const;
  2370. __declspec(dllexport) TBool HaveBorders() const;
  2371. inline TBool RightToLeft() const;
  2372. TAlignment iAlignment;
  2373. TUint iFlags;
  2374. TInt iLeadingMargin;
  2375. TInt iTrailingMargin;
  2376. TInt iFirstLineIndent;
  2377. TInt iLineSpacing;
  2378. TInt iSpaceAbove;
  2379. TInt iSpaceBelow;
  2380. TInt iTabSize;
  2381. TInt iBorderMargin;
  2382. TLogicalRgb iBackgroundColor;
  2383. private:
  2384. RTmParFormat(const RTmParFormat& aFormat);
  2385. void operator=(const RTmParFormat& aFormat);
  2386. RArray<TTmTab> * iTabList;
  2387. TTmBullet* iBullet;
  2388. TTmParBorder* iBorder[4];
  2389. };
  2390. #line 389
  2391. class MTmCustom
  2392. : public MLineBreaker
  2393. {
  2394. public:
  2395. #line 403
  2396. class TLineHeightParam
  2397. {
  2398. public:
  2399. inline TLineHeightParam();
  2400. TInt iMaxCharHeight;
  2401. TInt iMaxCharDepth;
  2402. TInt iMaxTopPictureHeight;
  2403. TInt iMaxBottomPictureHeight;
  2404. TInt iMaxCenterPictureHeight;
  2405. TInt iFontMaxCharHeight;
  2406. TInt iFontMaxCharDepth;
  2407. TInt iFontMaxAscent;
  2408. TInt iFontMaxDescent;
  2409. TInt iDesiredLineHeight;
  2410. TBool iExactLineHeight;
  2411. };
  2412. #line 438
  2413. enum
  2414. {
  2415. EOpLineBreakClass,
  2416. EClLineBreakClass,
  2417. EQuLineBreakClass,
  2418. EGlLineBreakClass,
  2419. ENsLineBreakClass,
  2420. EExLineBreakClass,
  2421. ESyLineBreakClass,
  2422. EIsLineBreakClass,
  2423. EPrLineBreakClass,
  2424. EPoLineBreakClass,
  2425. ENuLineBreakClass,
  2426. EAlLineBreakClass,
  2427. EIdLineBreakClass,
  2428. EInLineBreakClass,
  2429. EHyLineBreakClass,
  2430. EBaLineBreakClass,
  2431. EBbLineBreakClass,
  2432. EB2LineBreakClass,
  2433. EZwLineBreakClass,
  2434. ECmLineBreakClass,
  2435. EBkLineBreakClass,
  2436. ECrLineBreakClass,
  2437. ELfLineBreakClass,
  2438. ESgLineBreakClass,
  2439. ECbLineBreakClass,
  2440. ESpLineBreakClass,
  2441. ESaLineBreakClass,
  2442. EAiLineBreakClass,
  2443. EXxLineBreakClass,
  2444. ELineBreakClasses
  2445. };
  2446. __declspec(dllexport) virtual TRgb SystemColor(TUint aColorIndex,TRgb aDefaultColor) const;
  2447. __declspec(dllexport) virtual TInt Stretch(TUint aChar) const;
  2448. __declspec(dllexport) virtual TUint Map(TUint aChar) const;
  2449. __declspec(dllexport) virtual void SetLineHeight(const TLineHeightParam& aParam,TInt& aAscent,TInt& aDescent) const;
  2450. __declspec(dllexport) virtual void DrawBackground(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  2451.  const TLogicalRgb& aBackground,TRect& aRectDrawn) const;
  2452. __declspec(dllexport) virtual void DrawLineGraphics(CGraphicsContext& aGc,const TPoint& aTextLayoutTopLeft,const TRect& aRect,
  2453.    const TTmLineInfo& aLineInfo) const;
  2454. __declspec(dllexport) virtual void DrawText(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aRect,
  2455.    const TTmLineInfo& aLineInfo,const TTmCharFormat& aFormat,
  2456.    const TDesC& aText,const TPoint& aTextOrigin,TInt aExtraPixels) const;
  2457. __declspec(dllexport) virtual void DrawPicture(CGraphicsContext& aGc,
  2458. const TPoint& aTextLayoutTopLeft, const TRect& aRect,
  2459. MGraphicsDeviceMap& aDevice, const CPicture& aPicture) const;
  2460. __declspec(dllexport) virtual TUint LineBreakClass(TUint aCode,TUint& aRangeStart,TUint& aRangeEnd) const;
  2461. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aPrevClass,TUint aNextClass,TBool aHaveSpaces) const;
  2462. __declspec(dllexport) virtual TBool GetLineBreakInContext(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,
  2463.  TBool aForwards,TInt& aBreakPos) const;
  2464. __declspec(dllexport) virtual TBool IsHangingCharacter(TUint aChar) const;
  2465. __declspec(dllexport) void SetPenColor(CGraphicsContext& aGc,TLogicalRgb aColor) const;
  2466. __declspec(dllexport) void SetBrushColor(CGraphicsContext& aGc,TLogicalRgb aColor) const;
  2467. __declspec(dllexport) TRgb SystemColor(TLogicalRgb aColor) const;
  2468. };
  2469. const TUid KTmTextDrawExtId = {0x10203665};
  2470. #line 564
  2471. class MTmTextDrawExt
  2472. {
  2473. public:
  2474. virtual void DrawLine(CGraphicsContext& aGc, const TPoint& aPt1, const TPoint& aPt2) const = 0;
  2475. virtual void DrawText(CGraphicsContext& aGc, const TDesC& aText, const TPoint& aPt) const = 0;
  2476. virtual void DrawRect(CGraphicsContext& aGc, const TRect& aRc) const = 0;
  2477. };
  2478. const TUid KFormLabelApiExtensionUid = { 0x101FD03C};
  2479. #line 584
  2480. class MTmSource: public MTmCustom
  2481. {
  2482. public:
  2483. enum TLabelType
  2484. {
  2485. ENoLabel,
  2486. EParLabel
  2487. };
  2488. enum
  2489. {
  2490. ELineBreakContext = 32
  2491. };
  2492. virtual MGraphicsDeviceMap& FormatDevice() const = 0;
  2493. virtual MGraphicsDeviceMap& InterpretDevice() const = 0;
  2494. virtual TInt DocumentLength() const = 0;
  2495. virtual void GetText(TInt aPos,TPtrC& aText,TTmCharFormat& aFormat) const = 0;
  2496. virtual void GetParagraphFormatL(TInt aPos,RTmParFormat& aFormat) const = 0;
  2497. virtual TInt ParagraphStart(TInt aPos) const = 0;
  2498. __declspec(dllexport) virtual CPicture* PictureL(TInt aPos) const;
  2499. __declspec(dllexport) virtual TInt GetPictureSizeInTwipsL(TInt aPos,TSize& aSize) const;
  2500. __declspec(dllexport) virtual TAny* GetExtendedInterface(const TUid& aInterfaceId);
  2501. __declspec(dllexport) virtual void MTmSource_Reserved_1();
  2502. __declspec(dllexport) virtual void MTmSource_Reserved_2();
  2503. __declspec(dllexport) virtual TBool PageBreakInRange(TInt aStartPos,TInt aEndPos) const;
  2504. __declspec(dllexport) TInt ParagraphEnd(TInt aPos) const;
  2505. __declspec(dllexport) TBool GetLineBreakL(const TDesC& aText,TInt aDocPos,TInt aMinBreakPos,TInt aMaxBreakPos,TBool aForwards,
  2506.  TInt& aBreakPos,TInt& aHangingChars,TInt& aBreakPosAfterSpaces) const;
  2507. __declspec(dllexport) static void GetStandardLineBreak(const TDesC& aText,TInt aMinBreakPos,TInt aMaxBreakPos,
  2508.   TInt& aBreakPos,TInt& aNextLineStart);
  2509. };
  2510. #line 664
  2511. class MFormLabelApi
  2512. {
  2513. public:
  2514. __declspec(dllexport) virtual TBool LabelModeSelect(MTmSource::TLabelType aType, TInt aPos);
  2515. __declspec(dllexport) virtual void LabelModeCancel();
  2516. __declspec(dllexport) virtual void LabelMetrics(MTmSource::TLabelType aType, TSize& aLabelSize, TInt& aMarginSize) const;
  2517. };
  2518. class CTmBufSeg: public CBufSeg
  2519. {
  2520. public:
  2521. inline CTmBufSeg(TInt aExpandSize);
  2522. TInt MemoryUsed() const;
  2523. };
  2524. class CTmCode: public CBase
  2525. {
  2526. public:
  2527. inline ~CTmCode();
  2528. void InsertByteL(TUint8 aByte,TInt aPos);
  2529. TInt InsertNumberL(TInt aNumber,TInt aPos);
  2530. TInt InsertRectL(const TRect& aRect,TInt aPos);
  2531. void AppendByteL(TUint8 aByte);
  2532. TInt AppendNumberL(TInt aNumber);
  2533. TInt AppendRectL(const TRect& aRect);
  2534. void ChangeL(TInt aStart,TInt aEnd,CTmCode& aNewCode);
  2535. TInt MemoryUsed() const;
  2536. TInt Size() const;
  2537. void Delete(TInt aPos,TInt aLength);
  2538. void Reset();
  2539. inline TPtr8 Ptr(TInt aPos);
  2540. void CreateBufferL();
  2541. inline CBufBase* Buffer();
  2542. inline const CBufBase* Buffer() const;
  2543. private:
  2544. enum
  2545. {
  2546. EExpandSize = 512
  2547. };
  2548. TInt WriteNumber(TInt aNumber,TUint8* aBuffer);
  2549. CTmBufSeg* iBuffer;
  2550. };
  2551. class TTmFormatParamBase
  2552. {
  2553. public:
  2554. enum
  2555. {
  2556. EWrap = 1,
  2557. EAtLeastMaxHeight = 2,
  2558. ETruncateWithEllipsis = 4,
  2559. ELegalLineBreaksOnly = 8
  2560. };
  2561. __declspec(dllexport) TTmFormatParamBase();
  2562. inline TBool IsWrapping() const;
  2563. inline TBool IsTruncatingWithEllipsis() const;
  2564. inline TBool LegalLineBreaksOnly() const;
  2565. TInt iWrapWidth;
  2566. TInt iMaxHeight;
  2567. TInt iMaxLines;
  2568. TInt iFlags;
  2569. TChar iEllipsis;
  2570. };
  2571. class TTmFormatParam: public TTmFormatParamBase
  2572. {
  2573. public:
  2574. __declspec(dllexport) TTmFormatParam();
  2575. __declspec(dllexport) TTmFormatParam(const TTmFormatParamBase& aBase);
  2576. TInt iStartChar;
  2577. TInt iEndChar;
  2578. TInt iLineInPar;
  2579. };
  2580. class TTmReformatParam
  2581. {
  2582. public:
  2583. __declspec(dllexport) TTmReformatParam();
  2584. TInt iStartChar;
  2585. TInt iOldLength;
  2586. TInt iNewLength;
  2587. TInt iMaxExtraLines;
  2588. TBool iParFormatChanged;
  2589. TBool iParInvalid;
  2590. };
  2591. class TTmReformatResult
  2592. {
  2593. public:
  2594. __declspec(dllexport) TTmReformatResult();
  2595. TRect iRedrawRect;
  2596. TInt iHeightChange;
  2597. TInt iUnchangedTop;
  2598. TInt iUnformattedStart;
  2599. };
  2600. #line 806
  2601. class TTmLineInfo
  2602. {
  2603. public:
  2604. enum
  2605. {
  2606. EParStart = 1,
  2607. EParEnd = 2,
  2608. EParRightToLeft = 4,
  2609. ELineEndsInForcedLineBreak = 8
  2610. };
  2611. inline TTmLineInfo();
  2612. TRect iOuterRect;
  2613. TRect iInnerRect;
  2614. TInt iBaseline;
  2615. TInt iStart;
  2616. TInt iEnd;
  2617. TInt iLineNumber;
  2618. TInt iParNumber;
  2619. TInt iLineInPar;
  2620. TInt iParTop;
  2621. TUint iFlags;
  2622. };
  2623. #line 871
  2624. class TTmDocPosSpec
  2625. {
  2626. public:
  2627. enum TType
  2628. {
  2629. ETrailing,
  2630. ELeading,
  2631. ELeftToRight,
  2632. ERightToLeft
  2633. };
  2634. inline TTmDocPosSpec();
  2635. inline TTmDocPosSpec(TInt aPos,TType aType);
  2636. inline TTmDocPosSpec(const TTmDocPos& aRawDocPos);
  2637. TInt iPos;
  2638. TType iType;
  2639. };
  2640. #line 913
  2641. class TTmDocPos
  2642. {
  2643. public:
  2644. inline TTmDocPos();
  2645. inline TTmDocPos(TInt aPos,TBool aLeadingEdge);
  2646. __declspec(dllexport) TBool operator==(const TTmDocPos& aPos) const;
  2647. inline TBool operator!=(const TTmDocPos& aPos) const;
  2648. __declspec(dllexport) TBool operator>(const TTmDocPos& aPos) const;
  2649. __declspec(dllexport) TBool operator>=(const TTmDocPos& aPos) const;
  2650. inline TBool operator<(const TTmDocPos& aPos) const;
  2651. inline TBool operator<=(const TTmDocPos& aPos) const;
  2652. TInt iPos;
  2653. TBool iLeadingEdge;
  2654. };
  2655. class TTmPosInfo2
  2656. {
  2657. public:
  2658. TTmDocPos iDocPos;
  2659. TBool iRightToLeft;
  2660. TPoint iEdge;
  2661. };
  2662. class TTmPosInfo
  2663. {
  2664. public:
  2665. TTmPosInfo() {}
  2666. TTmPosInfo(const TTmPosInfo2& a) : iDocPos(a.iDocPos), iEdge(a.iEdge) {}
  2667. TTmDocPos iDocPos;
  2668. TPoint iEdge;
  2669. };
  2670. class TTmHighlightExtensions
  2671. {
  2672. public:
  2673. inline TTmHighlightExtensions();
  2674. inline void SetAll(TInt aExtension);
  2675. inline void SetLeftExtension(TInt aExtension);
  2676. inline void SetRightExtension(TInt aExtension);
  2677. inline void SetTopExtension(TInt aExtension);
  2678. inline void SetBottomExtension(TInt aExtension);
  2679. inline TInt LeftExtension() const;
  2680. inline TInt RightExtension() const;
  2681. inline TInt TopExtension() const;
  2682. inline TInt BottomExtension() const;
  2683. inline TBool Extends() const;
  2684. inline void ExtendRect(TRect& aRect) const;
  2685. inline void AdjustRect(TRect& aRect) const;
  2686. public:
  2687. TInt iLeftExtension;
  2688. TInt iRightExtension;
  2689. TInt iTopExtension;
  2690. TInt iBottomExtension;
  2691. };
  2692. enum TTmCursorPlacement
  2693. {
  2694. ECursorVertical,
  2695. ECursorUnderlineNext,
  2696. ECursorUnderlinePrev
  2697. };
  2698. #line 1041
  2699. class CTmTextLayout: public CBase
  2700. {
  2701. public:
  2702. class TTmChunkDescription
  2703. {
  2704. public:
  2705. TInt iStart;
  2706. TInt iEnd;
  2707. TBool iRightToLeft;
  2708. };
  2709. __declspec(dllexport) CTmTextLayout();
  2710. __declspec(dllexport) ~CTmTextLayout();
  2711. __declspec(dllexport) void SetTextL(MTmSource& aSource,const TTmFormatParam& aParam);
  2712. __declspec(dllexport) void FormatL(const TTmFormatParamBase& aParam,const TTmReformatParam& aReformatParam,
  2713.   TTmReformatResult& TTmReformatResult);
  2714. __declspec(dllexport) TBool AddParL(const TTmFormatParamBase& aParam,TBool aAtStart,TInt& aHeightIncrease,TInt& aParagraphsIncrease);
  2715. __declspec(dllexport) TBool DeletePar(const TTmFormatParamBase& aParam,TBool aAtStart,TInt aMaxDeletedHeight,TInt& aHeightDecrease);
  2716. __declspec(dllexport) void Clear();
  2717. __declspec(dllexport) void DrawLayout(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  2718.  const TLogicalRgb* aDocBackground,TBool aDrawParBackground) const;
  2719. __declspec(dllexport) void DrawBackground(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
  2720.  const TLogicalRgb& aBackground) const;
  2721. __declspec(dllexport) void InvertLayout(CGraphicsContext& aGc, const TPoint& aTopLeft,
  2722. TInt aStartDocPos, TInt aEndDocPos) const;
  2723. __declspec(dllexport) void HighlightSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  2724. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect) const;
  2725. __declspec(dllexport) void DrawSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  2726. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect) const;
  2727. __declspec(dllexport) void HighlightSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  2728. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions,
  2729. TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  2730. __declspec(dllexport) void InvertLayout(CGraphicsContext& aGc,
  2731. const TPoint& aTopLeft, TInt aStartDocPos,TInt aEndDocPos, const TTmHighlightExtensions& aHighlightExtensions,
  2732. TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  2733. __declspec(dllexport) void DrawSection(CGraphicsContext& aGc, const TPoint& aTopLeft,
  2734. TInt aStartDocPos, TInt aEndDocPos, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions,
  2735. TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  2736. __declspec(dllexport) TBool FindDocPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aPosInfo,TTmLineInfo& aLineInfo) const;
  2737. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo2& aPosInfo,TTmLineInfo& aLineInfo) const;
  2738. __declspec(dllexport) TBool FindXyPosWithDisambiguation(const TPoint& aXyPos,
  2739. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight,
  2740. TTmLineInfo& aLineInfo) const;
  2741. __declspec(dllexport) TInt FindNextPos(TInt aStart) const;
  2742. __declspec(dllexport) TInt FindPreviousPos(TInt aStart) const;
  2743. __declspec(dllexport) TInt Lines() const;
  2744. __declspec(dllexport) TInt Paragraphs() const;
  2745. __declspec(dllexport) TBool DocPosToLine(const TTmDocPosSpec& aDocPos,TTmLineInfo& aLineInfo) const;
  2746. __declspec(dllexport) TBool LineNumberToLine(TInt aLineNumber,TTmLineInfo& aLineInfo) const;
  2747. __declspec(dllexport) TBool ParNumberToLine(TInt aParNumber,TInt aLineInPar,TTmLineInfo& aLineInfo) const;
  2748. __declspec(dllexport) TBool YPosToLine(TInt aYPos,TTmLineInfo& aLineInfo) const;
  2749. __declspec(dllexport) TBool GetDisplayedTextL(TInt aLineNumber,TDes& aText,TInt& aNeeded) const;
  2750. __declspec(dllexport) void GetMinimumLayoutSizeL(TInt aWrapWidth,TSize& aSize) const;
  2751. __declspec(dllexport) void GetMinimumLayoutSizeL(TInt aWrapWidth,TBool aAllowLegalLineBreaksOnly,TSize& aSize) const;
  2752. __declspec(dllexport) TInt WidthOfWidestLine(TInt aTop = 0,TInt aBottom = KMaxTInt) const;
  2753. __declspec(dllexport) void HorizontalExtremes(TInt &aLeft, TInt &aRight,
  2754. TInt aTopY = 0, TInt aBottomY = KMaxTInt) const;
  2755. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPosSpec& aDocPos,TTmPosInfo2& aInfo,TBool aToLeft) const;
  2756. __declspec(dllexport) TBool GetNextPosLeftWithDisambiguation(const TTmDocPosSpec& aDocPos,
  2757. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight) const;
  2758. __declspec(dllexport) TBool GetNextPosRightWithDisambiguation(const TTmDocPosSpec& aDocPos,
  2759. TTmPosInfo2& aPosLeft, TTmPosInfo2& aPosRight) const;
  2760. __declspec(dllexport) TBool LineExtreme(const TTmDocPosSpec& aPos, TBool aToRight,
  2761. TTmDocPos& aExtreme) const;
  2762. __declspec(dllexport) TBool FindAdjacentChunks(const TTmDocPosSpec& aPos,
  2763. TTmChunkDescription& aLeft, TTmChunkDescription& aRight) const;
  2764. __declspec(dllexport) TBool GetCursor(const TTmDocPosSpec& aDocPos,TTmCursorPlacement aPlacement,
  2765.  TTmLineInfo& aLineInfo,TPoint& aOrigin,TInt& aWidth,TInt& aAscent,TInt& aDescent) const;
  2766. __declspec(dllexport) TInt MemoryUsed() const;
  2767. inline TInt StartChar() const;
  2768. inline TInt EndChar() const;
  2769. inline TInt LayoutWidth() const;
  2770. inline TInt LayoutHeight() const;
  2771. inline MTmSource* Source();
  2772. inline const MTmSource* Source() const;
  2773. inline const CTmCode& Code() const;
  2774. __declspec(dllexport) TBool GetDisplayedText(TInt aLineNumber,TDes& aText,TInt& aNeeded) const;
  2775. __declspec(dllexport) TBool FindDocPos(const TTmDocPos& aDocPos,TTmPosInfo& aPosInfo,TTmLineInfo& aLineInfo) const;
  2776. __declspec(dllexport) TBool FindXyPos(const TPoint& aXyPos,TTmPosInfo& aPosInfo,TTmLineInfo& aLineInfo) const;
  2777. __declspec(dllexport) TBool GetNextVisualCursorPos(const TTmDocPos& aDocPos,TTmPosInfo& aInfo,TBool aToLeft) const;
  2778. __declspec(dllexport) TBool DocPosToLine(const TTmDocPos& aDocPos,TTmLineInfo& aLineInfo) const;
  2779. __declspec(dllexport) TBool GetCursor(const TTmDocPos& aDocPos,
  2780. TTmCursorPlacement aPlacement, TTmLineInfo& aLineInfo,
  2781. TPoint& aOrigin, TInt& aWidth, TInt& aAscent, TInt& aDescent) const;
  2782. private:
  2783. void Invariant() const;
  2784. void AdjustWidth(const TTmFormatParamBase& aParam,TInt aWidthOfNewText);
  2785. void HighlightRect(CGraphicsContext& aGc, const TPoint& aTopLeft, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions, const TRect& aRect) const;
  2786. void InvertLayout(CGraphicsContext& aGc, const TPoint& aTopLeft, const TRect& aClipRect, const TTmHighlightExtensions& aHighlightExtensions, TInt aStartDocPos,TInt aEndDocPos, TInt aHighlightStartDocPos, TInt aHighlightEndDocPos) const;
  2787. void InvertRect(CGraphicsContext& aGc, const TPoint& aTopLeft, const TTmHighlightExtensions& aHighlightExtensions, const TRect& aInvertRect,TInt aOriginalHighlightStartPos,TInt aOriginalHighlightEndPos, TInt aNewHighlightStartPos,TInt aNewHighlightEndPos) const;