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

Symbian

开发平台:

C/C++

  1. __declspec(dllexport) void SetObserver(MFileManObserver* anObserver);
  2. public:
  3. __declspec(dllexport) const TEntry& CurrentEntry();
  4. __declspec(dllexport) TPtrC AbbreviatedPath();
  5. __declspec(dllexport) TPtrC FullPath();
  6. __declspec(dllexport) TInt GetLastError();
  7. __declspec(dllexport) TFileManError GetMoreInfoAboutError();
  8. protected:
  9. __declspec(dllexport) CFileBase(RFs& anFs);
  10. __declspec(dllexport) void ConstructL();
  11. __declspec(dllexport) ~CFileBase();
  12. __declspec(dllexport) void RunL();
  13. __declspec(dllexport) void RunInSeparateThreadL(TThreadFunction aThreadFunction);
  14. virtual void CompleteOperationL() {};
  15. virtual void DoOperationL() = 0;
  16. protected:
  17. RFs iFs;
  18. RFs iFsOld;
  19. RThread iFManThread;
  20. RSemaphore iSynchronizer;
  21. CDirScan* iScanner;
  22. CDir* iDirList;
  23. TInt iCurrentEntry;
  24. TUint iMatchEntry;
  25. TUint iSwitches;
  26. TParse iSrcFile;
  27. MFileManObserver* iObserver;
  28. TInt iLastError;
  29. TFileManError iErrorInfo;
  30. TRequestStatus* iStatus;
  31. HBufC* iSessionPath;
  32. TInt iNumberOfFilesProcessed;
  33. friend void DoFManBaseOperationL(TAny* aPtr);
  34. friend TInt FManBaseThreadFunction(TAny* aPtr);
  35. };
  36. class CFileMan : public CFileBase
  37. #line 2007
  38. {
  39. public:
  40. enum TAction
  41. {
  42. ENone,
  43. EAttribs,
  44. ECopy,
  45. EDelete,
  46. EMove,
  47. ERename,
  48. ERmDir,
  49. ERenameInvalidEntry,
  50. ECopyFromHandle,
  51. };
  52. #line 2078
  53. enum TSwitch
  54. {
  55. EOverWrite=1,
  56. ERecurse=2
  57. };
  58. public:
  59. __declspec(dllexport) static CFileMan* NewL(RFs& aFs);
  60. __declspec(dllexport) static CFileMan* NewL(RFs& aFs,MFileManObserver* anObserver);
  61. ~CFileMan();
  62. __declspec(dllexport) TAction CurrentAction();
  63. __declspec(dllexport) void GetCurrentTarget(TFileName& aFile);
  64. __declspec(dllexport) void GetCurrentSource(TFileName& aFile);
  65. __declspec(dllexport) TInt BytesTransferredByCopyStep();
  66. public:
  67. __declspec(dllexport) TInt Attribs(const TDesC& aName,TUint aSetMask,TUint aClearMask,const TTime& aTime,TUint aSwitch=0);
  68. __declspec(dllexport) TInt Attribs(const TDesC& aName,TUint aSetMask,TUint aClearMask,const TTime& aTime,TUint aSwitch,TRequestStatus& aStatus);
  69. __declspec(dllexport) TInt Copy(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  70. __declspec(dllexport) TInt Copy(const TDesC& anOld,const TDesC& aNew,TUint aSwitch,TRequestStatus& aStatus);
  71. __declspec(dllexport) TInt Delete(const TDesC& aName,TUint aSwitch=0);
  72. __declspec(dllexport) TInt Delete(const TDesC& aName,TUint aSwitch,TRequestStatus& aStatus);
  73. __declspec(dllexport) TInt Move(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  74. __declspec(dllexport) TInt Move(const TDesC& anOld,const TDesC& aNew,TUint aSwitch,TRequestStatus& aStatus);
  75. __declspec(dllexport) TInt Rename(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  76. __declspec(dllexport) TInt Rename(const TDesC& anOld,const TDesC& aNew,TUint aSwitch,TRequestStatus& aStatus);
  77. __declspec(dllexport) TInt RmDir(const TDesC& aDirName);
  78. __declspec(dllexport) TInt RmDir(const TDesC& aDirName,TRequestStatus& aStatus);
  79. __declspec(dllexport) TInt Copy(const RFile& anOld,const TDesC& aNew,TUint aSwitches=EOverWrite);
  80. __declspec(dllexport) TInt Copy(const RFile& anOld,const TDesC& aNew,TUint aSwitches,TRequestStatus& aStatus);
  81. protected:
  82. CFileMan(RFs& aFs);
  83. TInt RenameInvalidEntry(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  84. private:
  85. void CompleteOperationL();
  86. void DoOperationL();
  87. void CheckForDirectory();
  88. void SetFlags(TBool aOverWrite,TBool aRecurse,TBool aScanDirection,TBool aMoveRename);
  89. void GetSrcAndTrg(TParse& aSrcName,TFileName& aTrgName);
  90. void DoSynchronize(TInt aRetVal);
  91. TInt CheckRenameAllowed(const TDesC& aSrcName,const TDesC& aTrgName);
  92. private:
  93. void DoAttribsL();
  94. void DoCopyOrMoveL();
  95. void DoDeleteL();
  96. void DoRenameL();
  97. void DoRmDirL();
  98. void DoCopyFromHandleL();
  99. TInt DoCopy(const RFile& aSrcFile, RFile& aDstFile, TInt& aRet);
  100. private:
  101. TParse iTrgFile;
  102. TAction iAction;
  103. TUint iSetMask;
  104. TUint iClearMask;
  105. TTime iTime;
  106. TInt iBytesTransferred;
  107. RFile iSrcFileHandle;
  108. friend void RenameInvalidEntryL(RFs& aFs,TParse& aSrcFile);
  109. };
  110. class TFindFile
  111. #line 2167
  112. {
  113. public:
  114. __declspec(dllexport) TFindFile(RFs& aFs);
  115. __declspec(dllexport) TInt FindByPath(const TDesC& aFileName,const TDesC* aPathList);
  116. __declspec(dllexport) TInt FindByDir(const TDesC& aFileName,const TDesC& aDirPath);
  117. __declspec(dllexport) TInt Find();
  118. __declspec(dllexport) TInt FindWildByPath(const TDesC& aFileName,const TDesC* aPathList,CDir*& aDirList);
  119. __declspec(dllexport) TInt FindWildByDir(const TDesC& aFileName,const TDesC& aDirPath,CDir*& aDir);
  120. __declspec(dllexport) TInt FindWild(CDir*& aDirList);
  121. inline const TDesC& File() const;
  122. private:
  123. TInt DoFind();
  124. TInt DoFindByPath(const TDesC& aFileName,const TDesC* aPathList);
  125. TInt DoFindByDir(const TDesC& aFileName,const TDesC& aDir);
  126. TInt DoFindInDir();
  127. TInt DoFindNextInPath();
  128. TInt DoFindNextInDriveList();
  129. private:
  130. RFs* const iFs;
  131. TParse iFile;
  132. TInt iPathPos;
  133. TInt iCurrentDrive;
  134. TInt iMode;
  135. const TDesC* iPath;
  136. TDriveList iDrvList;
  137. CDir** iDir;
  138. TUint32 iReserved;
  139. };
  140. #line 2208
  141. typedef CDir CFileList;
  142. class TOpenFileScan
  143. #line 2226
  144. {
  145. public:
  146. __declspec(dllexport) TOpenFileScan(RFs& aFs);
  147. __declspec(dllexport) void NextL(CFileList*& aFileList);
  148. __declspec(dllexport) TThreadId ThreadId() const;
  149. private:
  150. RFs* iFs;
  151. TThreadId iThreadId;
  152. TInt iScanPos;
  153. TInt iEntryListPos;
  154. };
  155. class TFileText
  156. {
  157. public:
  158. enum TFileState
  159. {
  160. EStartOfFile,
  161. ENormal,
  162. EReverse
  163. };
  164. public:
  165. __declspec(dllexport) TFileText();
  166. __declspec(dllexport) void Set(RFile& aFile);
  167. __declspec(dllexport) TInt Read(TDes& aDes);
  168. __declspec(dllexport) TInt Write(const TDesC& aDes);
  169. __declspec(dllexport) TInt Seek(TSeek aMode);
  170. private:
  171. void NextRecord();
  172. TInt CheckForTerminator(TBool& anAnswer);
  173. TInt FillBuffer();
  174. private:
  175. const TText* iNext;
  176. const TText* iEnd;
  177. TFileState iState;
  178. RFile iFile;
  179. TBuf8<0x100> iReadBuf;
  180. };
  181. #line 2284
  182. __declspec(dllexport) TBool FileNamesIdentical(const TDesC& aFileName1,const TDesC& aFileName2);
  183. #line 2294
  184. class TLocalDriveMappingInfo
  185. {
  186. public:
  187. enum TDrvMapOperation {EWriteMappingsAndSet=0,EWriteMappingsNoSet=1,ESwapIntMappingAndSet=2};
  188. public:
  189. TInt iDriveMapping[KMaxLocalDrives];
  190. TDrvMapOperation iOperation;
  191.     };
  192. typedef TPckgBuf<TLocalDriveMappingInfo> TLocalDriveMappingInfoBuf;
  193. class RPlugin : public RSubSessionBase
  194. {
  195. public:
  196. __declspec(dllexport) TInt Open(RFs& aFs, TInt aPos);
  197. __declspec(dllexport) void Close();
  198. protected:
  199. __declspec(dllexport) void DoRequest(TInt aReqNo,TRequestStatus& aStatus) const;
  200. __declspec(dllexport) void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1) const;
  201. __declspec(dllexport) void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1,TDes8& a2) const;
  202. __declspec(dllexport) TInt DoControl(TInt aFunction) const;
  203. __declspec(dllexport) TInt DoControl(TInt aFunction,TDes8& a1) const;
  204. __declspec(dllexport) TInt DoControl(TInt aFunction,TDes8& a1,TDes8& a2) const;
  205. __declspec(dllexport) void DoCancel(TUint aReqMask) const;
  206. };
  207. #line 2334
  208. const TInt KPluginAutoAttach = 0x19;
  209. #line 2345
  210. const TInt KPluginAutoLocate = 0xC8;
  211. const TInt KFileServerUidValue = 0x100039e3;
  212. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\f32file.inl" /* stack depth 4 */
  213. #line 10
  214. inline const TUid& TEntry::operator[](TInt anIndex) const
  215. #line 21
  216.     {return(iType[anIndex]);}
  217. inline TBool TEntry::IsUidPresent(TUid aUid) const
  218. #line 37
  219.     {return(iType.IsPresent(aUid));}
  220. inline TBool TEntry::IsTypeValid() const
  221. #line 51
  222.     {return(iType.IsValid());}
  223. inline TUid TEntry::MostDerivedUid() const
  224. #line 65
  225.     {return(iType.MostDerived());}
  226. inline TInt EntrySize(const TEntry& anEntry)
  227. {return(sizeof(TUint)+sizeof(TInt)+sizeof(TTime)+sizeof(TInt)+sizeof(TUidType)+anEntry.iName.Size());}
  228. inline const TDesC& TFindFile::File() const
  229. #line 93
  230. {return iFile.FullName();}
  231. inline RFs& CDirScan::Fs()
  232. {return(*iFs);}
  233. inline TDriveUnit::operator TInt() const
  234. {return(iDrive);}
  235. #line 2355 "C:\Symbian\9.1\S60_3rd\epoc32\include\f32file.h" /* stack depth 3 */
  236. #line 16 "C:\Symbian\9.1\S60_3rd\epoc32\include\apparc.h" /* stack depth 2 */
  237. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.h" /* stack depth 3 */
  238. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.h" /* stack depth 4 */
  239. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32strm.h" /* stack depth 5 */
  240. #line 12
  241. const TInt KMaxCardinality=0x1fffffff;
  242. class MStreamBuf;
  243. class RWriteStream;
  244. #line 27
  245. class RReadStream
  246. {
  247. public:
  248. inline RReadStream();
  249. inline RReadStream(MStreamBuf* aSource);
  250. inline MStreamBuf* Source();
  251. inline void Close();
  252. __declspec(dllexport) void Release();
  253. __declspec(dllexport) void PushL();
  254. inline void Pop();
  255. __declspec(dllexport) void ReadL(TDes8& aDes);
  256. __declspec(dllexport) void ReadL(TDes8& aDes,TInt aLength);
  257. __declspec(dllexport) void ReadL(TDes8& aDes,TChar aDelim);
  258. __declspec(dllexport) void ReadL(TUint8* aPtr,TInt aLength);
  259. __declspec(dllexport) void ReadL(TInt aLength);
  260. inline void ReadL(RWriteStream& aStream);
  261. inline void ReadL(RWriteStream& aStream,TInt aLength);
  262. __declspec(dllexport) void ReadL(TDes16& aDes);
  263. __declspec(dllexport) void ReadL(TDes16& aDes,TInt aLength);
  264. __declspec(dllexport) void ReadL(TDes16& aDes,TChar aDelim);
  265. __declspec(dllexport) void ReadL(TUint16* aPtr,TInt aLength);
  266. __declspec(dllexport) TInt8 ReadInt8L();
  267. __declspec(dllexport) TInt16 ReadInt16L();
  268. __declspec(dllexport) TInt32 ReadInt32L();
  269. __declspec(dllexport) TUint8 ReadUint8L();
  270. __declspec(dllexport) TUint16 ReadUint16L();
  271. __declspec(dllexport) TUint32 ReadUint32L();
  272. __declspec(dllexport) TReal32 ReadReal32L() ;
  273. __declspec(dllexport) TReal64 ReadReal64L() ;
  274. protected:
  275. inline void Attach(MStreamBuf* aSource);
  276. inline void Detach();
  277. private:
  278. MStreamBuf* iSrc;
  279. private:
  280. friend class RWriteStream;
  281. };
  282. template <class T>
  283. class MExternalizer;
  284. class TStreamRef;
  285. #line 82
  286. class RWriteStream
  287. {
  288. public:
  289. inline RWriteStream();
  290. inline RWriteStream(const MExternalizer<TStreamRef>& anExter);
  291. inline RWriteStream(MStreamBuf* aSink);
  292. inline MStreamBuf* Sink();
  293. __declspec(dllexport) void Close();
  294. __declspec(dllexport) void Release();
  295. __declspec(dllexport) void CommitL();
  296. __declspec(dllexport) void PushL();
  297. inline void Pop();
  298. __declspec(dllexport) void WriteL(const TDesC8& aDes);
  299. __declspec(dllexport) void WriteL(const TDesC8& aDes,TInt aLength);
  300. __declspec(dllexport) void WriteL(const TUint8* aPtr,TInt aLength);
  301. __declspec(dllexport) void WriteL(RReadStream& aStream);
  302. __declspec(dllexport) void WriteL(RReadStream& aStream,TInt aLength);
  303. __declspec(dllexport) void WriteL(const TDesC16& aDes);
  304. __declspec(dllexport) void WriteL(const TDesC16& aDes,TInt aLength);
  305. __declspec(dllexport) void WriteL(const TUint16* aPtr,TInt aLength);
  306. __declspec(dllexport) void WriteInt8L(TInt aValue);
  307. __declspec(dllexport) void WriteInt16L(TInt aValue);
  308. __declspec(dllexport) void WriteInt32L(TInt32 aValue);
  309. __declspec(dllexport) void WriteUint8L(TUint aValue);
  310. __declspec(dllexport) void WriteUint16L(TUint aValue);
  311. __declspec(dllexport) void WriteUint32L(TUint32 aValue);
  312. __declspec(dllexport) void WriteReal32L(TReal aValue) ;
  313. __declspec(dllexport) void WriteReal64L(TReal64 aValue) ;
  314. protected:
  315. inline void Attach(MStreamBuf* aSink);
  316. inline void Detach();
  317. private:
  318. __declspec(dllexport) void WriteRefL(TStreamRef aRef);
  319. private:
  320. MStreamBuf* iSnk;
  321. const MExternalizer<TStreamRef> * iExterL;
  322. private:
  323. friend class TStreamRef;
  324. };
  325. template <class T>
  326. inline RWriteStream& operator<<(RWriteStream& aStream,const T& anObject);
  327. template <class T>
  328. inline RReadStream& operator>>(RReadStream& aStream,T& anObject);
  329. #line 142
  330. class TCardinality
  331. {
  332. public:
  333. TCardinality() {}
  334. inline TCardinality(TInt aCount);
  335. inline operator TInt() const;
  336. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  337. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  338. private:
  339. TInt iCount;
  340. private:
  341. __declspec(dllexport) static void __DbgChkRange(TInt aCount);
  342. };
  343. typedef void (*TExternalizeFunction)(const TAny* aPtr,RWriteStream& aStream);
  344. typedef void (*TInternalizeFunction)(TAny* aPtr,RReadStream& aStream);
  345. #line 171
  346. template <class T>
  347. class TExternalizer
  348. {
  349. public:
  350. inline void operator()(const T& anObject,RWriteStream& aStream) const;
  351. inline static TExternalizeFunction Function();
  352. private:
  353. static void ExternalizeAsL(const TAny* aPtr,RWriteStream& aStream);
  354. };
  355. #line 188
  356. template<> class TExternalizer<TAny>
  357. {
  358. public:
  359. TExternalizer() {}
  360. inline TExternalizer(TExternalizeFunction aFunction);
  361. inline void operator()(const TAny* aPtr,RWriteStream& aStream) const;
  362. inline TExternalizeFunction Function() const;
  363. private:
  364. TExternalizeFunction iFunc;
  365. };
  366. template <class T>
  367. class TInternalizer
  368. {
  369. public:
  370. inline void operator()(T& anObject,RReadStream& aStream) const;
  371. inline static TInternalizeFunction Function();
  372. private:
  373. static void InternalizeAsL(TAny* aPtr,RReadStream& aStream);
  374. };
  375. template<> class TInternalizer<TAny>
  376. {
  377. public:
  378. TInternalizer() {}
  379. inline TInternalizer(TInternalizeFunction aFunction);
  380. inline void operator()(TAny* aPtr,RReadStream& aStream) const;
  381. inline TInternalizeFunction Function() const;
  382. private:
  383. TInternalizeFunction iFunc;
  384. };
  385. #line 258
  386. template <class T>
  387. class MExternalizer
  388. {
  389. public:
  390. inline void operator()(const T& anObject,RWriteStream& aStream) const;
  391. private:
  392. virtual void ExternalizeL(const T& anObject,RWriteStream& aStream) const=0;
  393. };
  394. #line 281
  395. template <class T>
  396. class MInternalizer
  397. {
  398. public:
  399. inline void operator()(T& anObject,RReadStream& aStream) const;
  400. private:
  401. virtual void InternalizeL(T& anObject,RReadStream& aStream) const=0;
  402. };
  403. class TStreamRef
  404. {
  405. public:
  406. inline TStreamRef(const TAny* aPtr,TExternalizeFunction aFunction);
  407. inline const TAny* Ptr() const;
  408. inline TExternalizeFunction Function() const;
  409. inline void ExternalizeL(RWriteStream& aStream) const;
  410. private:
  411. const TAny* iPtr;
  412. TExternalizeFunction iFunc;
  413. };
  414. class Externalize
  415. {
  416. public:
  417. class Member {};
  418. class Function {};
  419. };
  420. class Internalize
  421. {
  422. public:
  423. class Member {};
  424. class Function {};
  425. };
  426. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32strm.inl" /* stack depth 6 */
  427. inline RReadStream::RReadStream()
  428. : iSrc(0 )
  429. {}
  430. inline RReadStream::RReadStream(MStreamBuf* aSource)
  431. : iSrc(aSource)
  432. {}
  433. inline MStreamBuf* RReadStream::Source()
  434. #line 32
  435. {return iSrc;}
  436. inline void RReadStream::Close()
  437. {Release();}
  438. inline void RReadStream::ReadL(RWriteStream& aStream)
  439. {aStream.WriteL(*this);}
  440. inline void RReadStream::ReadL(RWriteStream& aStream,TInt aLength)
  441. {aStream.WriteL(*this,aLength);}
  442. inline void RReadStream::Pop()
  443. {CleanupStack::Pop();}
  444. inline void RReadStream::Attach(MStreamBuf* aSource)
  445. #line 66
  446. {iSrc=aSource;}
  447. inline void RReadStream::Detach()
  448. {iSrc=0 ;}
  449. inline RWriteStream::RWriteStream()
  450. : iSnk(0 ),iExterL(0 )
  451. {}
  452. inline RWriteStream::RWriteStream(const MExternalizer<TStreamRef>& anExter)
  453. : iSnk(0 ),iExterL(&anExter)
  454. {}
  455. inline RWriteStream::RWriteStream(MStreamBuf* aSink)
  456. : iSnk(aSink),iExterL(0 )
  457. {}
  458. inline MStreamBuf* RWriteStream::Sink()
  459. {return iSnk;}
  460. inline void RWriteStream::Pop()
  461. {CleanupStack::Pop();}
  462. inline void RWriteStream::Attach(MStreamBuf* aSink)
  463. #line 119
  464. {iSnk=aSink;}
  465. inline void RWriteStream::Detach()
  466. {iSnk=0 ;}
  467. inline TCardinality::TCardinality(TInt aCount)
  468. :iCount(aCount)
  469. {
  470. __DbgChkRange(aCount);
  471. }
  472. inline TCardinality::operator TInt() const
  473. {
  474. __DbgChkRange(iCount);
  475. return iCount;
  476. }
  477. template <class T>
  478. inline void TExternalizer<T>::operator()(const T& anObject,RWriteStream& aStream) const
  479. {aStream<<anObject;}
  480. template <class T>
  481. inline TExternalizeFunction TExternalizer<T>::Function()
  482. {return &ExternalizeAsL;}
  483. template <class T>
  484. void TExternalizer<T>::ExternalizeAsL(const TAny* aPtr,RWriteStream& aStream)
  485. {aStream<<*((const T*)aPtr);}
  486. inline TExternalizer<TAny>::TExternalizer(TExternalizeFunction aFunction)
  487. : iFunc(aFunction)
  488. {}
  489. inline void TExternalizer<TAny>::operator()(const TAny* aPtr,RWriteStream& aStream) const
  490. {(*iFunc)(aPtr,aStream);}
  491. inline TExternalizeFunction TExternalizer<TAny>::Function() const
  492. {return iFunc;}
  493. template <class T>
  494. inline void TInternalizer<T>::operator()(T& anObject,RReadStream& aStream) const
  495. {aStream>>anObject;}
  496. template <class T>
  497. inline TInternalizeFunction TInternalizer<T>::Function()
  498. {return &InternalizeAsL;}
  499. template <class T>
  500. void TInternalizer<T>::InternalizeAsL(TAny* aPtr,RReadStream& aStream)
  501. {aStream>> *((T*)aPtr);}
  502. inline TInternalizer<TAny>::TInternalizer(TInternalizeFunction aFunction)
  503. : iFunc(aFunction)
  504. {}
  505. inline void TInternalizer<TAny>::operator()(TAny* aPtr,RReadStream& aStream) const
  506. {(*iFunc)(aPtr,aStream);}
  507. inline TInternalizeFunction TInternalizer<TAny>::Function() const
  508. {return iFunc;}
  509. template <class T>
  510. inline void MExternalizer<T>::operator()(const T& anObject,RWriteStream& aStream) const
  511. {ExternalizeL(anObject,aStream);}
  512. template <class T>
  513. inline void MInternalizer<T>::operator()(T& anObject,RReadStream& aStream) const
  514. {InternalizeL(anObject,aStream);}
  515. inline TStreamRef::TStreamRef(const TAny* aPtr,TExternalizeFunction aFunction)
  516. : iPtr(aPtr),iFunc(aFunction)
  517. {}
  518. inline const TAny* TStreamRef::Ptr() const
  519. {return iPtr;}
  520. inline TExternalizeFunction TStreamRef::Function() const
  521. {return iFunc;}
  522. inline void TStreamRef::ExternalizeL(RWriteStream& aStream) const
  523. {aStream.WriteRefL(*this);}
  524. __declspec(dllexport) void ExternalizeL(TInt64 anInt64,RWriteStream& aStream);
  525. __declspec(dllexport) void InternalizeL(TInt64& anInt64,RReadStream& aStream);
  526. __declspec(dllexport) void ExternalizeL(const TDesC8& aDes8,RWriteStream& aStream);
  527. __declspec(dllexport) void ExternalizeL(const TDesC16& aDes16,RWriteStream& aStream);
  528. __declspec(dllexport) void InternalizeL(TDes8& aDes8,RReadStream& aStream);
  529. __declspec(dllexport) void InternalizeL(TDes16& aDes16,RReadStream& aStream);
  530. __declspec(dllexport) void ExternalizeL(const TCheckedUid& aUid,RWriteStream& aStream);
  531. __declspec(dllexport) void InternalizeL(TCheckedUid& aUid,RReadStream& aStream);
  532. __declspec(dllexport) void ExternalizeL(TPoint aPoint,RWriteStream& aStream);
  533. __declspec(dllexport) void ExternalizeL(TSize aSize,RWriteStream& aStream);
  534. __declspec(dllexport) void ExternalizeL(const TRect& aRect,RWriteStream& aStream);
  535. __declspec(dllexport) void InternalizeL(TPoint& aPoint,RReadStream& aStream);
  536. __declspec(dllexport) void InternalizeL(TSize& aSize,RReadStream& aStream);
  537. __declspec(dllexport) void InternalizeL(TRect& aRect,RReadStream& aStream);
  538. __declspec(dllexport) void ExternalizeL(const CBufBase& aBuf,RWriteStream& aStream);
  539. __declspec(dllexport) void InternalizeL(CBufBase& aBuf,RReadStream& aStream);
  540. __declspec(dllexport) void ArrayExternalizeCountL(TInt aCount,RWriteStream& aStream);
  541. __declspec(dllexport) void DoExternalizeAllL(const CArrayFixBase& anArray,RWriteStream& aStream,TExternalizer<TAny> anExter);
  542. __declspec(dllexport) TInt ArrayInternalizeCountL(RReadStream& aStream);
  543. __declspec(dllexport) void DoInternalizeAllL(CArrayFixBase& anArray,RReadStream& aStream,TInternalizer<TAny> anInter);
  544. template <class T>
  545. inline void ExternalizeCountL(const CArrayFix<T>& anArray,RWriteStream& aStream)
  546. {ArrayExternalizeCountL(anArray.Count(),aStream);}
  547. template <class T>
  548. inline void ExternalizeAllL(const CArrayFix<T>& anArray,RWriteStream& aStream)
  549. {DoExternalizeAllL(anArray,aStream,TExternalizer<T>::Function());}
  550. template <class T>
  551. void InternalizeCountL(CArrayFix<T>& anArray,RReadStream& aStream)
  552. {
  553. TInt n=ArrayInternalizeCountL(aStream);
  554. anArray.ResizeL(n);
  555. }
  556. template <class T>
  557. inline void InternalizeAllL(CArrayFix<T>& anArray,RReadStream& aStream)
  558. {DoInternalizeAllL(anArray,aStream,TInternalizer<T>::Function());}
  559. template <class T>
  560. void ExternalizeL(const CArrayFix<T>& anArray,RWriteStream& aStream)
  561. {
  562. ExternalizeCountL(anArray,aStream);
  563. ExternalizeAllL(anArray,aStream);
  564. }
  565. template <class T>
  566. void InternalizeL(CArrayFix<T>& anArray,RReadStream& aStream)
  567. {
  568. InternalizeCountL(anArray,aStream);
  569. InternalizeAllL(anArray,aStream);
  570. }
  571. template <class T>
  572. inline void ExternalizeL(const T* aPtr,RWriteStream& aStream)
  573. {aStream<<TStreamRef(aPtr,TExternalizer<T>::Function());}
  574. template <class T>
  575. inline void DoExternalizeL(const T& anObject,RWriteStream& aStream,Externalize::Member)
  576. {anObject.ExternalizeL(aStream);}
  577. template <class T>
  578. inline void DoInternalizeL(T& anObject,RReadStream& aStream,Internalize::Member)
  579. {anObject.InternalizeL(aStream);}
  580. template <class T>
  581. inline void DoExternalizeL(const T& anObject,RWriteStream& aStream,Externalize::Function)
  582. {ExternalizeL(anObject,aStream);}
  583. template <class T>
  584. inline void DoInternalizeL(T& anObject,RReadStream& aStream,Internalize::Function)
  585. {InternalizeL(anObject,aStream);}
  586. inline Externalize::Member Externalization(const TAny*)
  587. {return Externalize::Member();}
  588. inline Internalize::Member Internalization(TAny*)
  589. {return Internalize::Member();}
  590. inline Externalize::Function Externalization(const TDesC8*)
  591. {return Externalize::Function();}
  592. inline Externalize::Function Externalization(const TDesC16*)
  593. {return Externalize::Function();}
  594. inline Internalize::Function Internalization(TDes8*)
  595. {return Internalize::Function();}
  596. inline Internalize::Function Internalization(TDes16*)
  597. {return Internalize::Function();}
  598. inline Externalize::Function Externalization(const CBufBase*)
  599. {return Externalize::Function();}
  600. inline Externalize::Function Externalization(const CArrayFixBase*)
  601. {return Externalize::Function();}
  602. inline Internalize::Function Internalization(CBufBase*)
  603. {return Internalize::Function();}
  604. inline Internalize::Function Internalization(CArrayFixBase*)
  605. {return Internalize::Function();}
  606. template <class T>
  607. inline Externalize::Function Externalization(T*const*)
  608. {return Externalize::Function();}
  609. template <class T>
  610. inline RWriteStream& operator<<(RWriteStream& aStream,const T& anObject)
  611. {DoExternalizeL(anObject,aStream,Externalization(&anObject));return aStream;}
  612. template <class T>
  613. inline RReadStream& operator>>(RReadStream& aStream,T& anObject)
  614. {DoInternalizeL(anObject,aStream,Internalization(&anObject));return aStream;}
  615. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt8& anInt8)
  616. {aStream.WriteInt8L(anInt8);return aStream;}
  617. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt16& anInt16)
  618. {aStream.WriteInt16L(anInt16);return aStream;}
  619. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt32& anInt32)
  620. {aStream.WriteInt32L(anInt32);return aStream;}
  621. inline RWriteStream& operator<<(RWriteStream& aStream,const TUint8& aUint8)
  622. {aStream.WriteUint8L(aUint8);return aStream;}
  623. inline RWriteStream& operator<<(RWriteStream& aStream,const TUint16& aUint16)
  624. {aStream.WriteUint16L(aUint16);return aStream;}
  625. inline RWriteStream& operator<<(RWriteStream& aStream,const TUint32& aUint32)
  626. {aStream.WriteUint32L(aUint32);return aStream;}
  627. inline RWriteStream& operator<<(RWriteStream& aStream,const TReal32& aReal32)
  628. {aStream.WriteReal32L(aReal32);return aStream;}
  629. inline RWriteStream& operator<<(RWriteStream& aStream,const TReal64& aReal64)
  630. {aStream.WriteReal64L(aReal64);return aStream;}
  631. inline RReadStream& operator>>(RReadStream& aStream,TInt8& anInt8)
  632. {anInt8=aStream.ReadInt8L();return aStream;}
  633. inline RReadStream& operator>>(RReadStream& aStream,TInt16& anInt16)
  634. {anInt16=aStream.ReadInt16L();return aStream;}
  635. inline RReadStream& operator>>(RReadStream& aStream,TInt32& anInt32)
  636. {anInt32=aStream.ReadInt32L();return aStream;}
  637. inline RReadStream& operator>>(RReadStream& aStream,TUint8& aUint8)
  638. {aUint8=aStream.ReadUint8L();return aStream;}
  639. inline RReadStream& operator>>(RReadStream& aStream,TUint16& aUint16)
  640. {aUint16=aStream.ReadUint16L();return aStream;}
  641. inline RReadStream& operator>>(RReadStream& aStream,TUint32& aUint32)
  642. {aUint32=aStream.ReadUint32L();return aStream;}
  643. inline RReadStream& operator>>(RReadStream& aStream,TReal32& aReal32)
  644. {aReal32=aStream.ReadReal32L();return aStream;}
  645. inline RReadStream& operator>>(RReadStream& aStream,TReal64& aReal64)
  646. {aReal64=aStream.ReadReal64L();return aStream;}
  647. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt64& anInt64)
  648. {ExternalizeL(anInt64,aStream);return aStream;}
  649. inline RReadStream& operator>>(RReadStream& aStream,TInt64& anInt64)
  650. {InternalizeL(anInt64,aStream);return aStream;}
  651. inline RWriteStream& operator<<(RWriteStream& aStream,const TUid& aUid)
  652. {return aStream<<aUid.iUid;}
  653. inline RWriteStream& operator<<(RWriteStream& aStream,const TCheckedUid& aUid)
  654. {ExternalizeL(aUid,aStream);return aStream;}
  655. inline RReadStream& operator>>(RReadStream& aStream,TUid& aUid)
  656. {return aStream>>aUid.iUid;}
  657. inline RReadStream& operator>>(RReadStream& aStream,TCheckedUid& aUid)
  658. {InternalizeL(aUid,aStream);return aStream;}
  659. inline RWriteStream& operator<<(RWriteStream& aStream,const TPoint& aPoint)
  660. {ExternalizeL(aPoint,aStream);return aStream;}
  661. inline RWriteStream& operator<<(RWriteStream& aStream,const TSize& aSize)
  662. {ExternalizeL(aSize,aStream);return aStream;}
  663. inline RWriteStream& operator<<(RWriteStream& aStream,const TRect& aRect)
  664. {ExternalizeL(aRect,aStream);return aStream;}
  665. inline RReadStream& operator>>(RReadStream& aStream,TPoint& aPoint)
  666. {InternalizeL(aPoint,aStream);return aStream;}
  667. inline RReadStream& operator>>(RReadStream& aStream,TSize& aSize)
  668. {InternalizeL(aSize,aStream);return aStream;}
  669. inline RReadStream& operator>>(RReadStream& aStream,TRect& aRect)
  670. {InternalizeL(aRect,aStream);return aStream;}
  671. inline RWriteStream& operator<<(RWriteStream& aStream,const TStreamRef& aRef)
  672. {aRef.ExternalizeL(aStream);return aStream;}
  673. #line 351 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32strm.h" /* stack depth 5 */
  674. #line 8 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.h" /* stack depth 4 */
  675. const TUint32 KNullStreamIdValue=0;
  676. const TUint32 KMaxStreamIdValue=0xfffffff;
  677. const TUint32 KMaskStreamIdValue=0xfffffff;
  678. const TInt KShiftStreamIdValue=28;
  679. #line 28
  680. class TStreamId
  681. {
  682. public:
  683. TStreamId() {}
  684. inline TStreamId(TUint32 aValue);
  685. inline TBool operator==(TStreamId anId) const;
  686. inline TBool operator!=(TStreamId anId) const;
  687. inline void ExternalizeL(RWriteStream& aStream) const;
  688. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  689. inline TUint32 Value() const;
  690. private:
  691. TUint32 iVal;
  692. private:
  693. __declspec(dllexport) static void __DbgChkRange(TUint32 aValue);
  694. };
  695. class CStreamStore;
  696. class RStoreReadStream : public RReadStream
  697. {
  698. public:
  699. __declspec(dllexport) void OpenL(const CStreamStore& aStore,TStreamId anId);
  700. __declspec(dllexport) void OpenLC(const CStreamStore& aStore,TStreamId anId);
  701. };
  702. #line 84
  703. class RStoreWriteStream : public RWriteStream
  704. {
  705. public:
  706. RStoreWriteStream() {}
  707. inline RStoreWriteStream(const MExternalizer<TStreamRef>& anExter);
  708. __declspec(dllexport) TStreamId CreateL(CStreamStore& aStore);
  709. __declspec(dllexport) TStreamId CreateLC(CStreamStore& aStore);
  710. __declspec(dllexport) void OpenL(CStreamStore& aStore,TStreamId anId);
  711. __declspec(dllexport) void OpenLC(CStreamStore& aStore,TStreamId anId);
  712. __declspec(dllexport) void ReplaceL(CStreamStore& aStore,TStreamId anId);
  713. __declspec(dllexport) void ReplaceLC(CStreamStore& aStore,TStreamId anId);
  714. __declspec(dllexport) void AppendL(CStreamStore& aStore,TStreamId anId);
  715. __declspec(dllexport) void AppendLC(CStreamStore& aStore,TStreamId anId);
  716. };
  717. #line 115
  718. class TSwizzleCBase
  719. {
  720. public:
  721. inline TBool operator==(const TSwizzleCBase& aSwizzle) const;
  722. inline TBool operator==(const TAny* aPtr) const;
  723. inline TBool operator!=(const TSwizzleCBase& aSwizzle) const;
  724. inline TBool operator!=(const TAny* aPtr) const;
  725. inline TBool IsPtr() const;
  726. inline TBool IsId() const;
  727. __declspec(dllexport) TStreamId AsId() const;
  728. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  729. protected:
  730. TSwizzleCBase() {}
  731. inline TSwizzleCBase(const TAny* aPtr);
  732. __declspec(dllexport) TSwizzleCBase(TStreamId anId);
  733. inline TSwizzleCBase(TStreamRef aRef);
  734. inline const TAny* Ptr() const;
  735. __declspec(dllexport) void DoExternalizeL(RWriteStream& aStream,TExternalizer<TAny> anExter) const;
  736. private:
  737. __declspec(dllexport) static TBool IsPtrRep(const TAny* aPtr);
  738. __declspec(dllexport) static TBool IsIdRep(const TAny* aPtr);
  739. private:
  740. const TAny* iPtr;
  741. private:
  742. __declspec(dllexport) static void __DbgChkPtr(const TAny* aPtr);
  743. __declspec(dllexport) static void __DbgChkRef(TStreamRef aRef);
  744. };
  745. inline TBool operator==(const TAny* aPtr,const TSwizzleCBase& aSwizzle);
  746. inline TBool operator!=(const TAny* aPtr,const TSwizzleCBase& aSwizzle);
  747. #line 158
  748. class TSwizzleBase : public TSwizzleCBase
  749. {
  750. protected:
  751. TSwizzleBase() {}
  752. inline TSwizzleBase(TAny* aPtr);
  753. inline TSwizzleBase(TStreamId anId);
  754. inline TAny* Ptr() const;
  755. };
  756. #line 184
  757. template <class T>
  758. class TSwizzle : public TSwizzleBase
  759. {
  760. public:
  761. TSwizzle() {}
  762. inline TSwizzle(T* aPtr);
  763. inline TSwizzle(TStreamId anId);
  764. inline TSwizzle<T>& operator=(T* aPtr);
  765. inline T* AsPtr() const;
  766. inline operator T*() const;
  767. inline T& operator*() const;
  768. inline T* operator->() const;
  769. inline void ExternalizeL(RWriteStream& aStream) const;
  770. };
  771. #line 208
  772. template<> class TSwizzle<TAny> : public TSwizzleBase
  773. {
  774. public:
  775. TSwizzle() {}
  776. inline TSwizzle(TAny* aPtr);
  777. inline TSwizzle(TStreamId anId);
  778. inline TSwizzle(const TSwizzleBase& aSwizzle);
  779. inline TSwizzle<TAny>& operator=(TAny* aPtr);
  780. inline TSwizzle<TAny>& operator=(const TSwizzleBase& aSwizzle);
  781. inline TAny* AsPtr() const;
  782. inline operator TAny*() const;
  783. };
  784. #line 242
  785. template <class T>
  786. class TSwizzleC : public TSwizzleCBase
  787. {
  788. public:
  789. TSwizzleC() {}
  790. inline TSwizzleC(const T* aPtr);
  791. inline TSwizzleC(TStreamId anId);
  792. inline TSwizzleC(TSwizzle<T> aSwizzle);
  793. inline TSwizzleC<T>& operator=(const T* aPtr);
  794. inline const T* AsPtr() const;
  795. inline operator const T*() const;
  796. inline const T& operator*() const;
  797. inline const T* operator->() const;
  798. inline void ExternalizeL(RWriteStream& aStream) const;
  799. };
  800. template<> class TSwizzleC<TAny> : public TSwizzleCBase
  801. {
  802. public:
  803. TSwizzleC() {}
  804. inline TSwizzleC(const TAny* aPtr);
  805. inline TSwizzleC(TStreamId anId);
  806. inline TSwizzleC(const TSwizzleCBase& aSwizzle);
  807. inline TSwizzleC(TStreamRef aRef);
  808. inline TSwizzleC<TAny>& operator=(const TAny* aPtr);
  809. inline TSwizzleC<TAny>& operator=(const TSwizzleCBase& aSwizzle);
  810. inline const TAny* AsPtr() const;
  811. inline operator const TAny*() const;
  812. };
  813. #line 296
  814. class CStoreMap : public CBase,public MExternalizer<TStreamRef>
  815. {
  816. public:
  817. struct TEntry {TSwizzleC<TAny> swizzle;TStreamId id;};
  818. typedef const TEntry* TIterator;
  819. public:
  820. __declspec(dllexport) static CStoreMap* NewL(CStreamStore& aStore);
  821. __declspec(dllexport) static CStoreMap* NewLC(CStreamStore& aStore);
  822. __declspec(dllexport) CStoreMap(CStreamStore& aStore);
  823. __declspec(dllexport) ~CStoreMap();
  824. __declspec(dllexport) void BindL(TSwizzleC<TAny> aSwizzle,TStreamId anId);
  825. __declspec(dllexport) void Unbind(TSwizzleC<TAny> aSwizzle);
  826. __declspec(dllexport) void Forget(TStreamId anId);
  827. __declspec(dllexport) void Reset();
  828. __declspec(dllexport) void ResetAndDestroy();
  829. __declspec(dllexport) TStreamId At(TSwizzleC<TAny> aSwizzle) const;
  830. __declspec(dllexport) TSwizzleC<TAny> Label(TStreamId anId) const;
  831. __declspec(dllexport) TIterator Begin() const;
  832. __declspec(dllexport) TIterator End() const;
  833. private:
  834. void ExternalizeL(const TStreamRef& aRef,RWriteStream& aStream) const;
  835. private:
  836. CArrayFixFlat<TEntry> iArray;
  837. TStreamId iFree;
  838. CStreamStore* iStore;
  839. };
  840. #line 343
  841. class CStreamDictionary : public CBase
  842. {
  843. public:
  844. __declspec(dllexport) static CStreamDictionary* NewL();
  845. __declspec(dllexport) static CStreamDictionary* NewLC();
  846. __declspec(dllexport) CStreamDictionary();
  847. __declspec(dllexport) ~CStreamDictionary();
  848. __declspec(dllexport) void AssignL(TUid aUid,TStreamId anId);
  849. __declspec(dllexport) void Remove(TUid aUid);
  850. __declspec(dllexport) TStreamId At(TUid aUid) const;
  851. __declspec(dllexport) TBool IsNull() const;
  852. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  853. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  854. private:
  855. class TEntry
  856. {
  857. public:
  858. TEntry() {}
  859. inline TEntry(TUid aUid,TStreamId anId);
  860. void ExternalizeL(RWriteStream& aStream) const;
  861. void InternalizeL(RReadStream& aStream);
  862. public:
  863. TUid iUid;
  864. TStreamId iId;
  865. };
  866. private:
  867. CArrayFixSeg<TEntry> iArray;
  868. };
  869. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.inl" /* stack depth 5 */
  870. inline TStreamId::TStreamId(TUint32 aValue)
  871. : iVal(aValue)
  872. #line 22
  873. {
  874. __DbgChkRange(aValue);
  875. }
  876. inline TBool TStreamId::operator==(TStreamId anId) const
  877. {return iVal==anId.iVal;}
  878. inline TBool TStreamId::operator!=(TStreamId anId) const
  879. {return iVal!=anId.iVal;}
  880. inline void TStreamId::ExternalizeL(RWriteStream& aStream) const
  881. {
  882. __DbgChkRange(iVal);
  883. aStream<<iVal;
  884. }
  885. inline TUint32 TStreamId::Value() const
  886. {
  887. __DbgChkRange(iVal);
  888. return iVal;
  889. }
  890. inline RStoreWriteStream::RStoreWriteStream(const MExternalizer<TStreamRef>& anExter)
  891. : RWriteStream(anExter)
  892. {}
  893. inline TSwizzleCBase::TSwizzleCBase(TStreamRef aRef)
  894. : iPtr(aRef.Ptr())
  895. {
  896. __DbgChkRef(aRef);
  897.     }
  898. inline TBool TSwizzleCBase::operator==(const TSwizzleCBase& aSwizzle) const
  899. #line 97
  900. {return iPtr==aSwizzle.iPtr;}
  901. inline TBool TSwizzleCBase::operator==(const TAny* aPtr) const
  902. #line 110
  903. {return iPtr==aPtr;}
  904. inline TBool TSwizzleCBase::operator!=(const TSwizzleCBase& aSwizzle) const
  905. #line 126
  906. {return iPtr!=aSwizzle.iPtr;}
  907. inline TBool TSwizzleCBase::operator!=(const TAny* aPtr) const
  908. #line 139
  909. {return iPtr!=aPtr;}
  910. inline TBool TSwizzleCBase::IsPtr() const
  911. {return IsPtrRep(iPtr);}
  912. inline TBool TSwizzleCBase::IsId() const
  913. {return IsIdRep(iPtr);}
  914. inline TSwizzleCBase::TSwizzleCBase(const TAny* aPtr)
  915. : iPtr(aPtr)
  916. {
  917. __DbgChkPtr(aPtr);
  918.     }
  919. inline const TAny* TSwizzleCBase::Ptr() const
  920. {
  921. __DbgChkPtr(iPtr);
  922. return iPtr;
  923. }
  924. inline TBool operator==(const TAny* aPtr,const TSwizzleCBase& aSwizzle)
  925. {return aSwizzle==aPtr;}
  926. inline TBool operator!=(const TAny* aPtr,const TSwizzleCBase& aSwizzle)
  927. {return aSwizzle!=aPtr;}
  928. inline TSwizzleBase::TSwizzleBase(TAny* aPtr)
  929. : TSwizzleCBase(aPtr)
  930. {}
  931. inline TSwizzleBase::TSwizzleBase(TStreamId anId)
  932. : TSwizzleCBase(anId)
  933. {}
  934. inline TAny* TSwizzleBase::Ptr() const
  935. {return (TAny*)TSwizzleCBase::Ptr();}
  936. template <class T>
  937. inline TSwizzle<T>::TSwizzle(T* aPtr)
  938. : TSwizzleBase(aPtr)
  939. {}
  940. template <class T>
  941. inline TSwizzle<T>::TSwizzle(TStreamId anId)
  942. : TSwizzleBase(anId)
  943. {}
  944. template <class T>
  945. inline TSwizzle<T>& TSwizzle<T>::operator=(T* aPtr)
  946. {return *this=TSwizzle<T>(aPtr);}
  947. template <class T>
  948. inline T* TSwizzle<T>::AsPtr() const
  949. {return (T*)Ptr();}
  950. template <class T>
  951. inline TSwizzle<T>::operator T*() const
  952. {return AsPtr();}
  953. template <class T>
  954. inline T& TSwizzle<T>::operator*() const
  955. {return *AsPtr();}
  956. template <class T>
  957. inline T* TSwizzle<T>::operator->() const
  958. {return AsPtr();}
  959. template <class T>
  960. inline void TSwizzle<T>::ExternalizeL(RWriteStream& aStream) const
  961. #line 252
  962. {TSwizzleBase::DoExternalizeL(aStream,TExternalizer<T>::Function());}
  963. inline TSwizzle<TAny>::TSwizzle(TAny* aPtr)
  964. : TSwizzleBase(aPtr)
  965. {}
  966. inline TSwizzle<TAny>::TSwizzle(TStreamId anId)
  967. : TSwizzleBase(anId)
  968. {}
  969. inline TSwizzle<TAny>::TSwizzle(const TSwizzleBase& aSwizzle)
  970. : TSwizzleBase(aSwizzle)
  971. {}
  972. inline TSwizzle<TAny>& TSwizzle<TAny>::operator=(TAny* aPtr)
  973. {return *this=TSwizzle<TAny>(aPtr);}
  974. inline TSwizzle<TAny>& TSwizzle<TAny>::operator=(const TSwizzleBase& aSwizzle)
  975. {return *this=TSwizzle<TAny>(aSwizzle);}
  976. inline TAny* TSwizzle<TAny>::AsPtr() const
  977. {return Ptr();}
  978. inline TSwizzle<TAny>::operator TAny*() const
  979. {return AsPtr();}
  980. template <class T>
  981. inline TSwizzleC<T>::TSwizzleC(const T* aPtr)
  982. : TSwizzleCBase(aPtr)
  983. {}
  984. template <class T>
  985. inline TSwizzleC<T>::TSwizzleC(TStreamId anId)
  986. : TSwizzleCBase(anId)
  987. {}
  988. template <class T>
  989. inline TSwizzleC<T>::TSwizzleC(TSwizzle<T> aSwizzle)
  990. : TSwizzleCBase(aSwizzle)
  991. #line 328
  992. {}
  993. template <class T>
  994. inline TSwizzleC<T>& TSwizzleC<T>::operator=(const T* aPtr)
  995. {return *this=TSwizzleC<T>(aPtr);}
  996. template <class T>
  997. inline const T* TSwizzleC<T>::AsPtr() const
  998. #line 350
  999. {return (const T*)Ptr();}
  1000. template <class T>
  1001. inline TSwizzleC<T>::operator const T*() const
  1002. {return AsPtr();}
  1003. template <class T>
  1004. inline const T& TSwizzleC<T>::operator*() const
  1005. {return *AsPtr();}
  1006. template <class T>
  1007. inline const T* TSwizzleC<T>::operator->() const
  1008. #line 373
  1009. {return AsPtr();}
  1010. template <class T>
  1011. inline void TSwizzleC<T>::ExternalizeL(RWriteStream& aStream) const
  1012. #line 393
  1013. {TSwizzleCBase::DoExternalizeL(aStream,TExternalizer<T>::Function());}
  1014. inline TSwizzleC<TAny>::TSwizzleC(const TAny* aPtr)
  1015. : TSwizzleCBase(aPtr)
  1016. {}
  1017. inline TSwizzleC<TAny>::TSwizzleC(TStreamId anId)
  1018. : TSwizzleCBase(anId)
  1019. {}
  1020. inline TSwizzleC<TAny>::TSwizzleC(const TSwizzleCBase& aSwizzle)
  1021. : TSwizzleCBase(aSwizzle)
  1022. {}
  1023. inline TSwizzleC<TAny>::TSwizzleC(TStreamRef aRef)
  1024. : TSwizzleCBase(aRef)
  1025.   {}
  1026. inline TSwizzleC<TAny>& TSwizzleC<TAny>::operator=(const TAny* aPtr)
  1027. {return *this=TSwizzleC<TAny>(aPtr);}
  1028. inline TSwizzleC<TAny>& TSwizzleC<TAny>::operator=(const TSwizzleCBase& aSwizzle)
  1029. {return *this=TSwizzleC<TAny>(aSwizzle);}
  1030. inline const TAny* TSwizzleC<TAny>::AsPtr() const
  1031. {return Ptr();}
  1032. inline TSwizzleC<TAny>::operator const TAny*() const
  1033. {return AsPtr();}
  1034. #line 375 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.h" /* stack depth 4 */
  1035. #line 21 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.h" /* stack depth 3 */
  1036. const TInt KDefaultScreenNo = 0;
  1037. class TOpenFontCharMetrics;
  1038. const TInt KTwipsPerInch=1440;
  1039. const TInt KTwipsPerPoint=20;
  1040. const TInt KPointsPerInch=72;
  1041. const TInt KTwipsPerCm=567;
  1042. #line 131
  1043. enum TGdiPanic
  1044. {
  1045. EGdiPanic_Unknown = 0,
  1046. EGdiPanic_InvalidInputParam = 1,
  1047. EGdiPanic_OutOfText = 2,
  1048. EGdiPanic_Invariant = 3
  1049. };
  1050. #line 178
  1051. class TRgb
  1052. {
  1053. public:
  1054. inline TRgb();
  1055. inline TRgb(TUint32 aValue);
  1056. inline TRgb(TUint32 aInternalValue, TInt aAlpha);
  1057. inline TRgb(TInt aRed,TInt aGreen,TInt aBlue);
  1058. inline TRgb(TInt aRed, TInt aGreen, TInt aBlue, TInt aAlpha);
  1059. inline TInt Red() const;
  1060. inline TInt Green() const;
  1061. inline TInt Blue() const;
  1062. inline TInt Alpha() const;
  1063. __declspec(dllexport) void SetRed(TInt aRed);
  1064. __declspec(dllexport) void SetGreen(TInt aGreen);
  1065. __declspec(dllexport) void SetBlue(TInt aBlue);
  1066. __declspec(dllexport) void SetAlpha(TInt aAlpha);
  1067. __declspec(dllexport) static TRgb Gray2(TInt aGray2);
  1068. __declspec(dllexport) static TRgb Gray4(TInt aGray4);
  1069. __declspec(dllexport) static TRgb Gray16(TInt aGray16);
  1070. __declspec(dllexport) static TRgb Gray256(TInt aGray256);
  1071. __declspec(dllexport) static TRgb Color16(TInt aColor16);
  1072. __declspec(dllexport) static TRgb Color256(TInt aColor256);
  1073. __declspec(dllexport) static TRgb Color4K(TInt aColor4K);
  1074. __declspec(dllexport) static TRgb Color64K(TInt aColor64K);
  1075. __declspec(dllexport) static TRgb Color16M(TInt aColor16M);
  1076. __declspec(dllexport) TInt Gray2() const;
  1077. __declspec(dllexport) TInt Gray4() const;
  1078. __declspec(dllexport) TInt Gray16() const;
  1079. __declspec(dllexport) TInt Gray256() const;
  1080. __declspec(dllexport) TInt Color16() const;
  1081. __declspec(dllexport) TInt Color256() const;
  1082. __declspec(dllexport) TInt Color4K() const;
  1083. __declspec(dllexport) TInt Color64K() const;
  1084. __declspec(dllexport) TInt Color16M() const;
  1085. inline TBool operator==(const TRgb& aColor) const;
  1086. inline TBool operator!=(const TRgb& aColor) const;
  1087. inline TRgb operator~() const;
  1088. inline TRgb operator&(const TRgb& aColor);
  1089. inline TRgb operator|(const TRgb& aColor);
  1090. inline TRgb operator^(const TRgb& aColor);
  1091. inline TRgb& operator&=(const TRgb& aColor);
  1092. inline TRgb& operator|=(const TRgb& aColor);
  1093. inline TRgb& operator^=(const TRgb& aColor);
  1094. inline TUint32 Value() const;
  1095. inline TUint32 Internal() const;
  1096. inline void SetInternal(TUint32 aInternal);
  1097. __declspec(dllexport) TInt Difference(const TRgb& aColor) const;
  1098. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1099. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1100. __declspec(dllexport) static TRgb Color16MU(TInt a0RGB);
  1101. __declspec(dllexport) TInt Color16MU() const;
  1102. __declspec(dllexport) static TRgb Color16MA(TUint aARGB);
  1103. __declspec(dllexport) TUint Color16MA() const;
  1104. inline TInt _Gray2() const;
  1105. inline TInt _Gray4() const;
  1106. inline TInt _Gray16() const;
  1107. inline TInt _Gray256() const;
  1108. inline TInt _Color4K() const;
  1109. inline TInt _Color64K() const;
  1110. inline TInt _Color16M() const;
  1111. inline TInt _Color16MU() const;
  1112. inline TUint _Color16MA() const;
  1113. inline static TRgb _Gray2(TInt aGray2);
  1114. inline static TRgb _Gray4(TInt aGray4);
  1115. inline static TRgb _Gray16(TInt aGray16);
  1116. inline static TRgb _Gray256(TInt aGray256);
  1117. inline static TRgb _Color4K(TInt aColor4K);
  1118. inline static TRgb _Color64K(TInt aColor64K);
  1119. inline static TRgb _Color16M(TInt aColor16M);
  1120. inline static TRgb _Color16MU(TInt a0RGB);
  1121. inline static TRgb _Color16MA(TUint aARGB);
  1122. private:
  1123. TUint32 iValue;
  1124. };
  1125. #line 279
  1126. enum TDisplayMode
  1127. {
  1128. ENone,
  1129. EGray2,
  1130. EGray4,
  1131. EGray16,
  1132. EGray256,
  1133. EColor16,
  1134. EColor256,
  1135. EColor64K,
  1136. EColor16M,
  1137. ERgb,
  1138. EColor4K,
  1139. EColor16MU,
  1140. EColor16MA,
  1141. EColorLast
  1142. };
  1143. class TDisplayModeUtils
  1144. {
  1145. public:
  1146. __declspec(dllexport) static TBool IsDisplayModeColor(TDisplayMode aDispMode);
  1147. __declspec(dllexport) static TInt NumDisplayModeColors(TDisplayMode aDispMode);
  1148. __declspec(dllexport) static TInt NumDisplayModeBitsPerPixel(TDisplayMode aDispMode);
  1149. };
  1150. #line 351
  1151. class CPalette : public CBase
  1152. {
  1153. public:
  1154. __declspec(dllexport) static CPalette* NewL(TInt aNumberOfEntries);
  1155. __declspec(dllexport) static CPalette* NewDefaultL(TDisplayMode aDispMode);
  1156. __declspec(dllexport) ~CPalette();
  1157. __declspec(dllexport) void Clear();
  1158. inline TInt Entries() const;
  1159. __declspec(dllexport) TRgb GetEntry(TInt aPaletteIndex) const;
  1160. __declspec(dllexport) TRgb NearestEntry(const TRgb& aColor) const;
  1161. __declspec(dllexport) TInt NearestIndex(const TRgb& aColor) const;
  1162. __declspec(dllexport) void SetEntry(TInt aPaletteIndex,const TRgb& aPaletteEntry);
  1163. __declspec(dllexport) void GetDataPtr(TInt aFirstColor,TInt aNumColors,TPtr8& aPtr);
  1164. protected:
  1165. __declspec(dllexport) CPalette();
  1166. void ConstructL(TInt aNumberOfEntries);
  1167. protected:
  1168. TRgb* iArray;
  1169. TInt iNumEntries;
  1170. };
  1171. class TColor256Util
  1172. {
  1173. public:
  1174. __declspec(dllexport) void Construct(const CPalette& aPalette);
  1175. __declspec(dllexport) TInt Color256(TRgb aRgb) const;
  1176. __declspec(dllexport) void Color256(TUint8* aDestination,const TRgb* aSource,TInt aNumPixels) const;
  1177. inline TRgb Color256(TInt aColor256) const;
  1178. __declspec(dllexport) static const TColor256Util* Default();
  1179. public:
  1180. TUint32 iColorTable[256];
  1181. #line 404
  1182. TUint8 iInverseColorTable[0x1000];
  1183. };
  1184. #line 419
  1185. class TLinearDDA
  1186. {
  1187. public:
  1188. enum TLineMode
  1189. {
  1190. ECenter,
  1191. ELeft
  1192. };
  1193. public:
  1194. __declspec(dllexport) TLinearDDA();
  1195. __declspec(dllexport) TLinearDDA(const TLinearDDA& aLine);
  1196. __declspec(dllexport) void Construct(const TPoint& aStart,const TPoint& aFinish,TLineMode aMode=ECenter);
  1197. __declspec(dllexport) TBool SingleStep(TPoint& aPosition);
  1198. __declspec(dllexport) TBool SingleScanline(TPoint& aStartPosition,TPoint& aEndPosition);
  1199. __declspec(dllexport) TBool NextStep(TPoint& aPosition);
  1200. __declspec(dllexport) void JumpToRect(const TRect& aRect);
  1201. __declspec(dllexport) void JumpToXCoord(const TInt aXCoord,TInt& aYCoord);
  1202. __declspec(dllexport) void JumpToYCoord(TInt& aXCoord,const TInt aYCoord);
  1203. private:
  1204. void UpdatePosition();
  1205. private:
  1206. enum TLineStatus
  1207. {
  1208. EInitialised,
  1209. ECurrent,
  1210. EComplete
  1211. };
  1212. private:
  1213. TInt iCount;
  1214. TSize iDifference;
  1215. TPoint iFinish;
  1216. TInt iGradient;
  1217. TPoint iInc;
  1218. TPoint iPos;
  1219. TPoint iStart;
  1220. TRect iBoundingRect;
  1221. TBool iBoundingRectSet;
  1222. TBool iInside;
  1223. TLineStatus iStatus;
  1224. };
  1225. #line 471
  1226. enum TFontPosture
  1227. {
  1228. EPostureUpright,
  1229. EPostureItalic
  1230. };
  1231. enum TFontStrokeWeight
  1232. {
  1233. EStrokeWeightNormal,
  1234. EStrokeWeightBold
  1235. };
  1236. enum TFontPrintPosition
  1237. {
  1238. EPrintPosNormal,
  1239. EPrintPosSuperscript,
  1240. EPrintPosSubscript
  1241. };
  1242. enum TFontUnderline
  1243. {
  1244. EUnderlineOff,
  1245. EUnderlineOn
  1246. };
  1247. enum TFontStrikethrough
  1248. {
  1249. EStrikethroughOff,
  1250. EStrikethroughOn
  1251. };
  1252. const TInt KMaxTypefaceNameLength=0x18;
  1253. #line 556
  1254. class TTypeface
  1255.     {
  1256. public:
  1257. enum
  1258. {
  1259. EProportional=1,
  1260. ESerif=2,
  1261. ESymbol=4
  1262. };
  1263. public:
  1264. __declspec(dllexport) TTypeface();
  1265. __declspec(dllexport) TBool operator==(const TTypeface& aTypeface) const;
  1266. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1267. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1268. __declspec(dllexport) void SetAttributes(TInt aMask);
  1269. __declspec(dllexport) void SetIsProportional(TBool aIsProportional);
  1270. __declspec(dllexport) void SetIsSerif(TBool aIsSerif);
  1271. __declspec(dllexport) void SetIsSymbol(TBool aIsSymbol);
  1272. __declspec(dllexport) TInt Attributes() const;
  1273. __declspec(dllexport) TBool IsProportional() const;
  1274. __declspec(dllexport) TBool IsSerif() const;
  1275. __declspec(dllexport) TBool IsSymbol() const;
  1276. public:
  1277.     TBufC<KMaxTypefaceNameLength> iName;
  1278. private:
  1279.     TUint32 iFlags;
  1280.     };
  1281. #line 600
  1282. enum TGlyphBitmapType
  1283. {
  1284. EDefaultGlyphBitmap = 0,
  1285. EMonochromeGlyphBitmap,
  1286. EAntiAliasedGlyphBitmap
  1287. };
  1288. #line 618
  1289. class FontEffect
  1290. {
  1291. public:
  1292. enum TEffect
  1293. {
  1294. ENone = 0x0,
  1295. EAlgorithmicBold= 0x10,
  1296. EDropShadow = 0x20,
  1297. EOutline = 0x40,
  1298. EEmbossed = 0x80,
  1299. EEngraved      = 0x100,
  1300. ESoftEdge = 0x200,
  1301. EUserDefined1 = 0x400,
  1302. EUserDefined2 = 0x800,
  1303. EUserDefined3 = 0x1000,
  1304. EUserDefined4 = 0x2000,
  1305. EUserDefined5 = 0x4000,
  1306. EUserDefined6 = 0x8000,
  1307. };
  1308. public:
  1309. __declspec(dllexport) static TBool IsEffectOn(TEffect aEffect, TUint32 aFontEffect);
  1310. __declspec(dllexport) static void SetEffect(TEffect aEffect, TBool aOn, TUint32& aFontEffect);
  1311. };
  1312. #line 661
  1313. class TFontStyle
  1314. {
  1315. public:
  1316. __declspec(dllexport) TFontStyle();
  1317. __declspec(dllexport) TFontStyle(TFontPosture aPost,TFontStrokeWeight aStrWgt,TFontPrintPosition aPrintPos);
  1318. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1319. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1320. __declspec(dllexport) TFontPosture Posture() const;
  1321. __declspec(dllexport) TFontStrokeWeight StrokeWeight() const;
  1322. __declspec(dllexport) TFontPrintPosition PrintPosition() const;
  1323. __declspec(dllexport) void SetPosture(TFontPosture aPosture);
  1324. __declspec(dllexport) void SetStrokeWeight(TFontStrokeWeight aStrokeWeight);
  1325. __declspec(dllexport) void SetPrintPosition(TFontPrintPosition aPrintPosition);
  1326. inline TGlyphBitmapType BitmapType() const;
  1327. inline void SetBitmapType(TGlyphBitmapType aBitmapType);
  1328. inline TBool operator==(const TFontStyle& aFontStyle) const;
  1329. __declspec(dllexport) TUint32 Effects() const;
  1330. __declspec(dllexport) TBool IsEffectOn(FontEffect::TEffect aEffect) const;
  1331. __declspec(dllexport) void SetEffects(TUint32 aEffects);
  1332. __declspec(dllexport) void SetEffects(FontEffect::TEffect aEffect, TBool aOn);
  1333. private:
  1334. enum
  1335. {
  1336. EItalic=0x1,
  1337. EBold=0x2,
  1338. ESuper=0x4,
  1339. ESub=0x8
  1340. };
  1341. private:
  1342. TUint32 iFlags;
  1343. TAny* iReserved1;
  1344. TAny* iReserved2;
  1345. };
  1346. #line 703
  1347. class TFontSpec
  1348. {
  1349. public:
  1350. __declspec(dllexport) TFontSpec();
  1351. __declspec(dllexport) TFontSpec(const TDesC& aTypefaceName,TInt aHeight);
  1352. __declspec(dllexport) TBool operator==(const TFontSpec& aFontSpec) const;
  1353. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1354. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1355. public:
  1356. TTypeface iTypeface;
  1357. TInt iHeight;
  1358. TFontStyle iFontStyle;
  1359. };
  1360. #line 731
  1361. class TTypefaceSupport
  1362.     {
  1363. public:
  1364.     TTypeface iTypeface;
  1365.     TInt iNumHeights;
  1366.     TInt iMinHeightInTwips;
  1367.     TInt iMaxHeightInTwips;
  1368.     TBool iIsScalable;
  1369.     };
  1370. const TInt KSuperSubScalingPercentage=67;
  1371. const TInt KSuperscriptOffsetPercentage=-28;
  1372. const TInt KSubscriptOffsetPercentage=14;
  1373. class CFont;
  1374. #line 783
  1375. class CTypefaceStore : public CBase
  1376. {
  1377. public:
  1378. __declspec(dllexport) ~CTypefaceStore();
  1379. #line 801
  1380. virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  1381. #line 815
  1382. virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  1383. #line 836
  1384. virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight) = 0;
  1385. virtual TInt NumTypefaces() const=0;
  1386. #line 854
  1387. virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const=0;
  1388. #line 865
  1389. virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  1390. __declspec(dllexport) void ReleaseFont(CFont* aFont);
  1391. __declspec(dllexport) static TInt BaselineOffset(TInt aHeight,TFontPrintPosition aPos);
  1392. __declspec(dllexport) static TInt SuperSubHeight(TInt aHeight,TFontPrintPosition aPos);
  1393. protected:
  1394. __declspec(dllexport) CTypefaceStore();
  1395. __declspec(dllexport) void ConstructL();
  1396. __declspec(dllexport) void AddFontL(CFont* aFont);
  1397. protected:
  1398. class TFontAccess
  1399. {
  1400. public:
  1401. CFont* iFont;
  1402. TInt iAccessCount;
  1403. };
  1404. protected:
  1405. #line 896
  1406. CArrayFixFlat<TFontAccess> * iFontAccess;
  1407. };
  1408. const TInt KMaxFontCacheEntries=32;
  1409. #line 919
  1410. class CFontCache : public CBase
  1411. {
  1412. public:
  1413. __declspec(dllexport) CFontCache();
  1414. __declspec(dllexport) CFontCache(TInt aMaxEntries);
  1415. __declspec(dllexport) ~CFontCache();
  1416. __declspec(dllexport) CFont* Search(const TFontSpec& aFontSpec);
  1417. __declspec(dllexport) CFont* AddEntryL(CFont* aFont,const TFontSpec& aFontSpec);
  1418. __declspec(dllexport) CFont* RemoveFirstEntry();
  1419. public:
  1420. TInt iNumHits;
  1421. TInt iNumMisses;
  1422. private:
  1423. class CFontCacheEntry : public CBase
  1424. {
  1425. public:
  1426. CFontCacheEntry(CFont* aFont,const TFontSpec& aFontSpec,CFontCacheEntry* aNext);
  1427. public:
  1428. CFont* iFont;
  1429. TFontSpec iSpec;
  1430. CFontCacheEntry* iNext;
  1431. };
  1432. private:
  1433. TInt iNumEntries;
  1434. TInt iMaxEntries;
  1435. CFontCacheEntry* iFirst;
  1436. };
  1437. #line 960
  1438. class MGraphicsDeviceMap
  1439.     {
  1440. public:
  1441. __declspec(dllexport) MGraphicsDeviceMap();
  1442. __declspec(dllexport) virtual ~MGraphicsDeviceMap();
  1443. __declspec(dllexport) TPoint TwipsToPixels(const TPoint& aTwipPoint) const;
  1444. __declspec(dllexport) TRect TwipsToPixels(const TRect& aTwipRect) const;
  1445. __declspec(dllexport) TPoint PixelsToTwips(const TPoint& aPixelPoint) const;
  1446. __declspec(dllexport) TRect PixelsToTwips(const TRect& aPixelRect) const;
  1447. virtual TInt HorizontalTwipsToPixels(TInt aTwips) const=0;
  1448. virtual TInt VerticalTwipsToPixels(TInt aTwips) const=0;
  1449. virtual TInt HorizontalPixelsToTwips(TInt aPixels) const=0;
  1450. virtual TInt VerticalPixelsToTwips(TInt aPixels) const=0;
  1451. #line 1016
  1452. virtual TInt GetNearestFontInTwips(CFont*& aFont,const TFontSpec& aFontSpec)=0;
  1453. #line 1034
  1454. virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& , const TFontSpec& ){return 0;}
  1455. #line 1056
  1456. virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& , const TFontSpec& , TInt ){return 0;}
  1457. #line 1068
  1458. virtual void ReleaseFont(CFont* aFont)=0;
  1459.     };
  1460. class CGraphicsContext;
  1461. #line 1083
  1462. class CGraphicsDevice : public CBase , public MGraphicsDeviceMap
  1463.     {
  1464. public:
  1465. virtual TDisplayMode DisplayMode() const=0;
  1466. virtual TSize SizeInPixels() const=0;
  1467. virtual TSize SizeInTwips() const=0;
  1468.     virtual TInt CreateContext(CGraphicsContext*& aGC)=0;
  1469.     virtual TInt NumTypefaces() const=0;
  1470. #line 1129
  1471.     virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const=0;
  1472. #line 1143
  1473. virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  1474. virtual void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const=0;
  1475. virtual void SetPalette(CPalette* aPalette)=0;
  1476. virtual TInt GetPalette(CPalette*& aPalette) const=0;
  1477.     };
  1478. #line 1175
  1479. class TCodeSection
  1480. {
  1481. public:
  1482. TInt iStart;
  1483. TInt iEnd;
  1484. };
  1485. const TUid KFontCapitalAscent = {0x1020498E};
  1486. const TUid KFontMaxAscent = {0x10204B10};
  1487. const TUid KFontStandardDescent = {0x10204B11};
  1488. const TUid KFontMaxDescent = {0x10205AFC};
  1489. const TUid KFontLineGap = {0x10204B12};
  1490. #line 1209
  1491. class CFont : public CBase
  1492. {
  1493. friend class CTypefaceStore;
  1494. public:
  1495. #line 1221
  1496. enum TTextDirection
  1497. {
  1498. EHorizontal,
  1499. EVertical
  1500. };
  1501. #line 1240
  1502. class TPositionParam
  1503. {
  1504. public:
  1505. TPositionParam():
  1506. iDirection(EHorizontal),
  1507. iFlags(0),
  1508. iPosInText(0),
  1509. iOutputGlyphs(0)
  1510. {
  1511. }
  1512. enum
  1513. {
  1514. EMaxInputChars = 18,
  1515. EMaxOutputGlyphs = 8
  1516. };
  1517. enum TFlags
  1518. {
  1519. EFLogicalOrder = 1
  1520. };
  1521. TInt16 iDirection;
  1522. TUint16 iFlags;
  1523. TPtrC iText;
  1524. TInt iPosInText;
  1525. TPoint iPen;
  1526. class TOutput
  1527. {
  1528. public:
  1529. TOutput() : iBitmapSize(TSize::EUninitialized),
  1530. iBounds(TRect::EUninitialized) {}
  1531. TUint iCode;
  1532. const TUint8* iBitmap;
  1533. TSize iBitmapSize;
  1534. TRect iBounds;
  1535. };
  1536. TOutput iOutput[EMaxOutputGlyphs];
  1537. TInt iOutputGlyphs;
  1538. };
  1539. #line 1317
  1540. class TMeasureTextInput
  1541. {
  1542. public:
  1543. TMeasureTextInput():
  1544. iStartInputChar(0),
  1545. iEndInputChar(KMaxTInt),
  1546. iDirection(EHorizontal),
  1547. iFlags(0),
  1548. iMaxAdvance(KMaxTInt),
  1549. iMaxBounds(KMaxTInt),
  1550. iCharJustNum(0),
  1551. iCharJustExcess(0),
  1552. iWordJustNum(0),
  1553. iWordJustExcess(0)
  1554. {
  1555. }
  1556. enum TFlags
  1557. {
  1558. EFVisualOrder = 1
  1559. };
  1560. TInt iStartInputChar;
  1561. TInt iEndInputChar;
  1562. TUint16 iDirection;
  1563. TUint16 iFlags;
  1564. TInt iMaxAdvance;
  1565. TInt iMaxBounds;
  1566. TInt iCharJustNum;
  1567. TInt iCharJustExcess;
  1568. TInt iWordJustNum;
  1569. TInt iWordJustExcess;
  1570. };
  1571. #line 1389
  1572. class TMeasureTextOutput
  1573. {
  1574. public:
  1575. TInt iChars;
  1576. TInt iGlyphs;
  1577. TInt iGroups;
  1578. TInt iSpaces;
  1579. TRect iBounds;
  1580. TSize iMaxGlyphSize;
  1581. };
  1582. #line 1422
  1583. enum TCharacterDataAvailability
  1584. {
  1585. ENoCharacterData,
  1586. ECharacterWidthOnly,
  1587. EAllCharacterData
  1588. };
  1589. private:
  1590. virtual TUid DoTypeUid() const=0;
  1591. virtual TInt DoHeightInPixels() const=0;
  1592. virtual TInt DoAscentInPixels() const=0;
  1593. __declspec(dllexport) virtual TInt DoDescentInPixels() const;
  1594. virtual TInt DoCharWidthInPixels(TChar aChar) const=0;
  1595. virtual TInt DoTextWidthInPixels(const TDesC& aText) const=0;
  1596. virtual TInt DoBaselineOffsetInPixels() const=0;
  1597. virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels) const=0;
  1598. virtual TInt DoTextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const=0;
  1599. virtual TInt DoMaxCharWidthInPixels() const=0;
  1600. virtual TInt DoMaxNormalCharWidthInPixels() const=0;
  1601. virtual TFontSpec DoFontSpecInTwips() const=0;
  1602. protected:
  1603. __declspec(dllexport) virtual TCharacterDataAvailability DoGetCharacterData(TUint aCode, TOpenFontCharMetrics& aMetrics,const TUint8*& aBitmap,TSize& aBitmapSize) const;
  1604. __declspec(dllexport) virtual TBool DoGetCharacterPosition(TPositionParam& aParam) const;
  1605. __declspec(dllexport) virtual TInt DoExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  1606. protected:
  1607. __declspec(dllexport) virtual ~CFont();
  1608. public:
  1609. inline TInt FontCapitalAscent() const;
  1610. inline TInt FontMaxAscent() const;
  1611. inline TInt FontStandardDescent() const;
  1612. inline TInt FontMaxDescent() const;
  1613. inline TInt FontLineGap() const;
  1614. inline TInt FontMaxHeight() const;
  1615. public:
  1616. #line 1475
  1617. __declspec(dllexport) TUid TypeUid() const;
  1618. __declspec(dllexport) TInt HeightInPixels() const;
  1619. __declspec(dllexport) TInt AscentInPixels() const;
  1620. __declspec(dllexport) TInt DescentInPixels() const;
  1621. __declspec(dllexport) TInt CharWidthInPixels(TChar aChar) const;
  1622. __declspec(dllexport) TInt TextWidthInPixels(const TDesC& aText) const;
  1623. __declspec(dllexport) TInt BaselineOffsetInPixels() const;
  1624. #line 1528
  1625. __declspec(dllexport) TInt TextCount(const TDesC& aText,TInt aWidthInPixels) const;
  1626. #line 1544
  1627. __declspec(dllexport) TInt TextCount(const TDesC& aText,TInt aWidthInPixels,TInt& aExcessWidthInPixels) const;
  1628. __declspec(dllexport) TInt MaxCharWidthInPixels() const;
  1629. __declspec(dllexport) TInt MaxNormalCharWidthInPixels() const;
  1630. __declspec(dllexport) TFontSpec FontSpecInTwips() const;
  1631. __declspec(dllexport) TCharacterDataAvailability GetCharacterData(TUint aCode, TOpenFontCharMetrics& aMetrics,const TUint8*& aBitmap,TSize& aBitmapSize) const;
  1632. __declspec(dllexport) TBool GetCharacterPosition(TPositionParam& aParam) const;
  1633. __declspec(dllexport) TInt WidthZeroInPixels() const;
  1634. __declspec(dllexport) TInt MeasureText(const TDesC& aText, const TMeasureTextInput* aInput = 0 , TMeasureTextOutput* aOutput = 0 ) const;
  1635. __declspec(dllexport) static TBool CharactersJoin(TInt aLeftCharacter, TInt aRightCharacter);
  1636. __declspec(dllexport) TInt ExtendedFunction(TUid aFunctionId, TAny* aParam = 0 ) const;
  1637. };
  1638. class CFbsBitmap;
  1639. class CWsBitmap;
  1640. #line 1602
  1641. class CGraphicsContext : public CBase
  1642. {
  1643. public:
  1644. enum TTextAlign
  1645. {
  1646. ELeft,
  1647. ECenter,
  1648. ERight
  1649. };
  1650. #line 1628
  1651. enum TDrawModeComponents
  1652. {
  1653. EInvertScreen=1,
  1654. EXor=2,
  1655. EOr=4,
  1656. EAnd=8,
  1657. ELogicalOp=14,
  1658. EInvertPen=16,
  1659. EPenmode=32,
  1660. EWriteAlpha=64,
  1661. };
  1662. #line 1682
  1663. enum TDrawMode
  1664. {
  1665. EDrawModeAND=EAnd,
  1666. EDrawModeNOTAND=EInvertScreen|EAnd,
  1667. EDrawModePEN=EPenmode,
  1668. EDrawModeANDNOT=EAnd|EInvertPen,
  1669. EDrawModeXOR=EXor,
  1670. EDrawModeOR=EOr,
  1671. EDrawModeNOTANDNOT=EInvertScreen|EAnd|EInvertPen,
  1672. EDrawModeNOTXOR=EInvertScreen|EXor,
  1673. EDrawModeNOTSCREEN=EInvertScreen,
  1674. EDrawModeNOTOR=EInvertScreen|EOr,
  1675. EDrawModeNOTPEN=EInvertPen|EPenmode,
  1676. EDrawModeORNOT=EOr|EInvertPen,
  1677. EDrawModeNOTORNOT=EInvertScreen|EOr|EInvertPen,
  1678. EDrawModeWriteAlpha=EWriteAlpha,
  1679. };
  1680. #line 1730
  1681. enum TPenStyle
  1682. {
  1683. ENullPen,
  1684. ESolidPen,
  1685. EDottedPen,
  1686. EDashedPen,
  1687. EDotDashPen,
  1688. EDotDotDashPen
  1689. };
  1690. enum TBrushStyle
  1691. {
  1692. ENullBrush,
  1693. ESolidBrush,
  1694. EPatternedBrush,
  1695. EVerticalHatchBrush,
  1696. EForwardDiagonalHatchBrush,
  1697. EHorizontalHatchBrush,
  1698. ERearwardDiagonalHatchBrush,
  1699. ESquareCrossHatchBrush,
  1700. EDiamondCrossHatchBrush
  1701. };
  1702. #line 1799
  1703. enum TFillRule
  1704. {
  1705. EAlternate,
  1706. EWinding
  1707. };
  1708. struct TDrawTextParam
  1709. {
  1710. public:
  1711. TDrawTextParam():
  1712. iDirection(CFont::EHorizontal),
  1713. iCharJustNum(0),
  1714. iCharJustExcess(0),
  1715. iWordJustNum(0),
  1716. iWordJustExcess(0)
  1717. {}
  1718. public:
  1719. CFont::TTextDirection iDirection;
  1720. TInt iCharJustNum;
  1721. TInt iCharJustExcess;
  1722. TInt iWordJustNum;
  1723. TInt iWordJustExcess;
  1724. };
  1725. struct TDrawTextExtendedParam : public TDrawTextParam
  1726. {
  1727. public:
  1728. TDrawTextExtendedParam():
  1729. iParRightToLeft(EFalse)
  1730. {}
  1731. public:
  1732. TBool iParRightToLeft;
  1733. };
  1734. public:
  1735. virtual CGraphicsDevice* Device() const=0;
  1736. virtual void SetOrigin(const TPoint& aPos=TPoint(0,0))=0;
  1737. #line 1912
  1738. virtual void SetDrawMode(TDrawMode aDrawingMode)=0;
  1739. virtual void SetClippingRect(const TRect& aRect)=0;
  1740. virtual void CancelClippingRect()=0;
  1741. #line 1941
  1742. virtual void Reset()=0;
  1743. #line 1964
  1744. virtual void UseFont(const CFont* aFont)=0;
  1745. virtual void DiscardFont()=0;
  1746. virtual void SetUnderlineStyle(TFontUnderline aUnderlineStyle)=0;
  1747. virtual void SetStrikethroughStyle(TFontStrikethrough aStrikethroughStyle)=0;
  1748. __declspec(dllexport) static TInt JustificationInPixels(TInt aExcessPixels,TInt aTotalUnits,TInt aFirstUnit,TInt aNumUnits);
  1749. __declspec(dllexport) static TInt JustificationInPixels(TInt& aExcessPixels,TInt& aTotalUnits);
  1750. #line 2034
  1751. virtual void SetWordJustification(TInt aExcessWidth,TInt aNumGaps)=0;
  1752. #line 2110
  1753. virtual void SetCharJustification(TInt aExcessWidth,TInt aNumChars)=0;
  1754. #line 2125
  1755. virtual void SetPenColor(const TRgb& aColor)=0;
  1756. #line 2165
  1757. virtual void SetPenStyle(TPenStyle aPenStyle)=0;
  1758. #line 2204
  1759. virtual void SetPenSize(const TSize& aSize)=0;
  1760. #line 2221
  1761. virtual void SetBrushColor(const TRgb& aColor)=0;
  1762. #line 2242
  1763. virtual void SetBrushStyle(TBrushStyle aBrushStyle)=0;
  1764. #line 2270
  1765. virtual void SetBrushOrigin(const TPoint& aOrigin)=0;
  1766. #line 2295
  1767. virtual void UseBrushPattern(const CFbsBitmap* aBitmap)=0;
  1768. #line 2309
  1769. virtual void DiscardBrushPattern()=0;
  1770. #line 2327
  1771. virtual void MoveTo(const TPoint& aPoint)=0;
  1772. #line 2344
  1773. virtual void MoveBy(const TPoint& aVector)=0;
  1774. #line 2358
  1775. virtual void Plot(const TPoint& aPoint)=0;
  1776. #line 2397
  1777. virtual void DrawArc(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd)=0;
  1778. virtual void DrawLine(const TPoint& aPoint1,const TPoint& aPoint2)=0;
  1779. virtual void DrawLineTo(const TPoint& aPoint)=0;
  1780. #line 2424
  1781. virtual void DrawLineBy(const TPoint& aVector)=0;
  1782. virtual void DrawPolyLine(const CArrayFix<TPoint> * aPointList)=0;
  1783. #line 2441
  1784. virtual void DrawPolyLine(const TPoint* aPointList,TInt aNumPoints)=0;
  1785. #line 2488
  1786. virtual void DrawPie(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd)=0;
  1787. #line 2504
  1788. virtual void DrawEllipse(const TRect& aRect)=0;
  1789. virtual void DrawRect(const TRect& aRect)=0;
  1790. #line 2529
  1791. virtual void DrawRoundRect(const TRect& aRect,const TSize& aCornerSize)=0;
  1792. #line 2546
  1793. virtual TInt DrawPolygon(const CArrayFix<TPoint> * aPointList,TFillRule aFillRule=EAlternate)=0;
  1794. #line 2565
  1795. virtual TInt DrawPolygon(const TPoint* aPointList,TInt aNumPoints,TFillRule aFillRule=EAlternate)=0;
  1796. #line 2588
  1797. virtual void DrawBitmap(const TPoint& aTopLeft,const CFbsBitmap* aSource)=0;
  1798. #line 2611
  1799. virtual void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource)=0;
  1800. #line 2634
  1801. virtual void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource,const TRect& aSourceRect)=0;
  1802. #line 2650
  1803. virtual void DrawBitmapMasked(const TRect& aDestRect,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask)=0;
  1804. #line 2677
  1805. virtual void DrawBitmapMasked(const TRect& aDestRect,const CWsBitmap* aBitmap,const TRect& aSourceRect,const CWsBitmap* aMaskBitmap,TBool aInvertMask)=0;
  1806. #line 2694
  1807. virtual void DrawText(const TDesC& aText,const TPoint& aPosition) = 0;
  1808. #line 2750
  1809. virtual void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TTextAlign aAlignment = ELeft,
  1810. TInt aLeftMargin = 0) = 0;
  1811. __declspec(dllexport) virtual void DrawText(const TDesC& aText,const TPoint& aPosition,const TDrawTextParam& aParam);
  1812. __declspec(dllexport) virtual void Reserved();
  1813. __declspec(dllexport) TInt DrawTextExtended(const TDesC& aText,const TPoint& aPosition,const TDrawTextExtendedParam& aParam);
  1814. #line 2766
  1815. virtual void MapColors(const TRect &aRect,const TRgb *aColors,TInt aNumPairs,TBool aMapForwards) = 0;
  1816. virtual TInt SetClippingRegion(const TRegion &aRegion) = 0;
  1817. virtual void CancelClippingRegion() = 0;
  1818. virtual void DrawTextVertical(const TDesC& aText,const TPoint& aPos,TBool aUp) = 0;
  1819. #line 2791
  1820. virtual void DrawTextVertical(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0) = 0;
  1821. protected:
  1822. __declspec(dllexport) virtual void Reserved_CGraphicsContext_1();
  1823. __declspec(dllexport) virtual void Reserved_CGraphicsContext_2();
  1824. };
  1825. #line 2822
  1826. class CBitmapContext : public CGraphicsContext
  1827. {
  1828. public:
  1829. virtual void Clear()=0;
  1830. #line 2839
  1831. virtual void Clear(const TRect& aRect)=0;
  1832. #line 2848
  1833. virtual void CopyRect(const TPoint& aOffset,const TRect& aRect)=0;
  1834. #line 2857
  1835. virtual void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap)=0;
  1836. #line 2872
  1837. virtual void BitBlt(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aRect)=0;
  1838. #line 2906
  1839. virtual void BitBltMasked(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask)=0;
  1840. virtual void SetFaded(TBool aFaded)=0;
  1841. #line 2932
  1842. virtual void SetFadingParameters(TUint8 aBlackMap,TUint8 aWhiteMap)=0;
  1843. #line 2952
  1844. virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CFbsBitmap* aSrcBmp, const TRect& aSrcRect, const CFbsBitmap* aAlphaBmp, const TPoint& aAlphaPt) = 0;
  1845. #line 2965
  1846. virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CWsBitmap* aSrcBmp, const TRect& aSrcRect, const CWsBitmap* aAlphaBmp, const TPoint& aAlphaPt) = 0;
  1847. protected:
  1848. __declspec(dllexport) void Reserved_CGraphicsContext_1();
  1849. __declspec(dllexport) void Reserved_CGraphicsContext_2();
  1850. __declspec(dllexport) virtual void Reserved_CBitmapContext_1();
  1851. __declspec(dllexport) virtual void Reserved_CBitmapContext_2();
  1852. __declspec(dllexport) virtual void Reserved_CBitmapContext_3();
  1853. };
  1854. #line 2988
  1855. class CBitmapDevice : public CGraphicsDevice
  1856. {
  1857. public:
  1858. #line 2999
  1859. virtual void GetPixel(TRgb& aColor,const TPoint& aPixel) const=0;
  1860. #line 3017
  1861. virtual void GetScanLine(TDes8& aBuf,const TPoint& aStartPixel,TInt aLength,TDisplayMode aDispMode) const=0;
  1862. #line 3027
  1863. virtual TInt AddFile(const TDesC& aName,TInt& aId)=0;
  1864. virtual void RemoveFile(TInt aId=0)=0;
  1865. #line 3051
  1866. virtual TInt GetNearestFontInPixels(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  1867. #line 3070
  1868. virtual TInt GetNearestFontToDesignHeightInPixels(CFont*& , const TFontSpec& ){return 0;}
  1869. #line 3092
  1870. virtual TInt GetNearestFontToMaxHeightInPixels(CFont*& , const TFontSpec& , TInt ){return 0;}
  1871. #line 3115
  1872. virtual TInt FontHeightInPixels(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  1873.     inline TInt CreateBitmapContext(CBitmapContext*& aGC);
  1874. };
  1875. class TMargins
  1876.     {
  1877. public:
  1878. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1879. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1880. __declspec(dllexport) TBool operator==(const TMargins& aMargins) const;
  1881. __declspec(dllexport) TBool operator!=(const TMargins& aMargins) const;
  1882. public:
  1883. TInt iLeft;
  1884. TInt iRight;
  1885.     TInt iTop;
  1886. TInt iBottom;
  1887. };
  1888. #line 3150
  1889. class TPictureCapability
  1890. {
  1891. public:
  1892. enum TScalingType
  1893. {
  1894. ENotScaleable,
  1895. EFullyScaleable,
  1896. EScaleableMaintainingAspectRatio
  1897. };
  1898. public:
  1899. inline TPictureCapability(TScalingType aScalingType,TBool aCroppable);
  1900. public:
  1901. TScalingType iScalingType;
  1902. TBool iIsCroppable;
  1903. };
  1904. #line 3200
  1905. class CPicture : public CBase
  1906.     {
  1907. public:
  1908. enum TDetach
  1909. {
  1910. EDetachFull,
  1911. EDetachDraw
  1912. };
  1913. public:
  1914. __declspec(dllexport) virtual ~CPicture();
  1915. #line 3227
  1916. virtual void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,MGraphicsDeviceMap* aMap) const=0;
  1917. __declspec(dllexport) virtual TStreamId StoreL(CStreamStore& aStore) const;
  1918. virtual void DetachFromStoreL(TDetach =EDetachFull) {}
  1919. #line 3239
  1920. virtual void ExternalizeL(RWriteStream& aStream) const =0;
  1921. virtual void GetOriginalSizeInTwips(TSize& aSize) const =0;
  1922. __declspec(dllexport) virtual void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight);
  1923. __declspec(dllexport) virtual void SetCropInTwips(const TMargins& aMargins);
  1924. __declspec(dllexport) virtual TPictureCapability Capability() const;
  1925. __declspec(dllexport) virtual void GetCropInTwips(TMargins& aMargins) const;
  1926. __declspec(dllexport) virtual TInt ScaleFactorWidth() const;
  1927. __declspec(dllexport) virtual TInt ScaleFactorHeight() const;
  1928. __declspec(dllexport) virtual TBool LineBreakPossible(TUint aClass,TBool aBeforePicture,TBool aHaveSpaces) const;
  1929. __declspec(dllexport) virtual TBool NativePixelSize(TSize& aPixelSize);
  1930. __declspec(dllexport) void GetSizeInPixels(MGraphicsDeviceMap* aMap, TSize& aSize) const;
  1931. __declspec(dllexport) void SetSizeInPixels(MGraphicsDeviceMap* aMap, const TSize& aSize);
  1932. __declspec(dllexport) void AddCropInPixels(MGraphicsDeviceMap* aMap, const TMargins& aMargins);
  1933. __declspec(dllexport) void GetSizeInTwips(TSize& aSize) const;
  1934. __declspec(dllexport) void SetSizeInTwips(const TSize& aSize);
  1935. __declspec(dllexport) void ResetToOriginal();
  1936. protected:
  1937. __declspec(dllexport) CPicture();
  1938. };
  1939. #line 3277
  1940. class TPictureHeader
  1941. {
  1942. public:
  1943. __declspec(dllexport) TPictureHeader();
  1944. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1945. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1946. __declspec(dllexport) void DeletePicture();
  1947. public:
  1948. TSwizzle<CPicture> iPicture;
  1949. TUid iPictureType;
  1950. TSize iSize;
  1951. };
  1952. #line 3304
  1953. class MPictureFactory
  1954. {
  1955. public:
  1956. #line 3324
  1957. virtual void NewPictureL(TPictureHeader& aHeader,const CStreamStore& aDeferredPictureStore)const=0;
  1958. };
  1959. #line 3335
  1960. const TInt KMaxPrinterModelNameLength=0x20;
  1961. #line 3344
  1962. typedef TBuf<KMaxPrinterModelNameLength> TPrinterModelName;
  1963. #line 3357
  1964. class TPageSpec
  1965. {
  1966. public:
  1967. enum TPageOrientation
  1968. {
  1969. EPortrait,
  1970. ELandscape
  1971. };
  1972. public:
  1973. __declspec(dllexport) TPageSpec();
  1974. __declspec(dllexport) TPageSpec(TPageOrientation aOrientation,const TSize& aSize);
  1975. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1976. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1977. __declspec(dllexport) TSize OrientedPageSize() const;
  1978. __declspec(dllexport) TBool operator==(const TPageSpec& aPageSpec) const;
  1979. __declspec(dllexport) TBool operator!=(const TPageSpec& aPageSpec) const;
  1980. public:
  1981. TSize iPortraitPageSize;
  1982. TPageOrientation iOrientation;
  1983. };
  1984. #line 3398
  1985. class TBandAttributes
  1986.     {
  1987. public:
  1988. TRect iRect;
  1989. TBool iTextIsIgnored;
  1990. TBool iGraphicsIsIgnored;
  1991. TBool iFirstBandOnPage;
  1992. };
  1993. #line 3423
  1994. class CPrinterPort : public CBase
  1995. {
  1996. public:
  1997. virtual void WriteRequest(const TDesC8& aBuf,TRequestStatus& aRequestStatus)=0;
  1998. virtual void Cancel()=0;
  1999. };
  2000. #line 3445
  2001. class TPrinterModelEntry
  2002.    {
  2003. public:
  2004. TPrinterModelName iModelName;
  2005. TBool iRequiresPrinterPort;
  2006. TUid iUid;
  2007. public:
  2008. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2009. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2010. };
  2011. #line 3469
  2012. class TPrinterModelHeader
  2013.     {
  2014. public:
  2015. TPrinterModelEntry iEntry;
  2016. TStreamId iModelDataStreamId;
  2017. public:
  2018. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2019. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2020. };
  2021. #line 3496
  2022. class CPrinterControl : public CBase
  2023.     {
  2024. public:
  2025. enum TMoreOnPage
  2026. {
  2027. EMoreOnPage,
  2028. ENoMoreOnPage
  2029. };
  2030. public:
  2031. __declspec(dllexport) ~CPrinterControl();
  2032. virtual TInt BandsPerPage()=0;
  2033. #line 3528
  2034. virtual TMoreOnPage QueueGetBand(TRequestStatus& aStatus, TBandAttributes& aBand)=0;
  2035. #line 3539
  2036. virtual void QueueEndPrint(TRequestStatus& aStatus)=0;
  2037. virtual void AbortPrint()=0;
  2038. protected:
  2039. __declspec(dllexport) CPrinterControl(CPrinterPort* aPrinterPort);
  2040. protected:
  2041. enum TState
  2042. {
  2043. ENotPrinting,
  2044. EPrinting
  2045. };
  2046. TState iState;
  2047. CPrinterPort* iPrinterPort;
  2048. };
  2049. class CDictionaryStore;
  2050. class RFs;
  2051. #line 3590
  2052. class CPrinterDevice : public CGraphicsDevice
  2053. {
  2054. public:
  2055. __declspec(dllexport) ~CPrinterDevice();
  2056. inline TPageSpec CurrentPageSpecInTwips() const {return(iCurrentPageSpecInTwips);}
  2057. __declspec(dllexport) virtual void SelectPageSpecInTwips(const TPageSpec& aPageSpec);
  2058. __declspec(dllexport) virtual TRect PrintablePageInPixels() const;
  2059. virtual TPrinterModelEntry Model()const =0;
  2060. virtual TInt SetModel(const TPrinterModelHeader& aModel,CStreamStore& aStore)=0;
  2061. #line 3627
  2062. virtual void CreateControlL(CPrinterPort* aPrinterPort)=0;
  2063. __declspec(dllexport) virtual void DeleteControl();
  2064. virtual void InternalizePropertiesL(RReadStream& ) {}
  2065. virtual void ExternalizePropertiesL(RWriteStream& ) const {}
  2066. __declspec(dllexport) void RestorePropertiesL();
  2067. __declspec(dllexport) void StorePropertiesL() const;
  2068. protected:
  2069. __declspec(dllexport) CPrinterDevice();
  2070. public:
  2071. CPrinterControl* iControl;
  2072. protected:
  2073. TPageSpec iCurrentPageSpecInTwips;
  2074. };
  2075. #line 3669
  2076. class CPrinterModelList : public CBase
  2077.      {
  2078. public:
  2079.     virtual TInt ModelCount() const=0;
  2080. #line 3686
  2081.     virtual const TPrinterModelEntry operator[](TInt anIndex)=0;
  2082. virtual TInt UidToNum(TUid aModelUid) const=0;
  2083.     };
  2084. #line 3705
  2085. class MPageRegionPrinter
  2086. {
  2087. public:
  2088. #line 3718
  2089. virtual void PrintBandL(CGraphicsDevice* aDevice,TInt aPageNo,const TBandAttributes& aBandInPixels)=0;
  2090. };
  2091. const TInt KPdrStoreFileUidVal=268435514;
  2092. const TInt KPdlUidVal=268450588;
  2093. const TInt KUdlUidVal=268450589;
  2094. #line 3746
  2095. class CPrinterDriverUI : public CBase
  2096.     {
  2097. protected:
  2098. __declspec(dllexport) CPrinterDriverUI();
  2099. public:
  2100. __declspec(dllexport) virtual TBool BeforePrintL();
  2101. __declspec(dllexport) virtual void AfterPrintL();
  2102. __declspec(dllexport) virtual void SetPropertiesL();
  2103. __declspec(dllexport) virtual TBool CanSetProperties();
  2104. virtual TInt SetPrinterDevice(CPrinterDevice* aPrinterDevice)=0;
  2105. };
  2106. class CFileStore;
  2107. #line 3790
  2108. class CPrinterDriver : public CBase
  2109.      {
  2110. public:
  2111. __declspec(dllexport) static CPrinterDriver* NewL();
  2112. __declspec(dllexport) ~CPrinterDriver();
  2113. __declspec(dllexport) void OpenPdrL(const TDesC &aName);
  2114. __declspec(dllexport) void Close();
  2115. __declspec(dllexport) TInt NumModels() const;
  2116. __declspec(dllexport) TPrinterModelEntry Model(TInt aNum) const;
  2117. inline CPrinterDevice* PrinterDevice() {return iPrinterDevice;}
  2118. __declspec(dllexport) CPrinterDevice* CreatePrinterDeviceL(TUid aModelUid);
  2119. __declspec(dllexport) CPrinterDriverUI* CreatePrinterDriverUIL();
  2120. private:
  2121. CPrinterDriver();
  2122. void DeletePrinterDevice();
  2123. void DoOpenPdrL(const TDesC &aName);
  2124. void DoCreatePrinterDeviceL(TUid aModelUid);
  2125. void LoadLibraryL(RLibrary& aLibrary,const TDesC& aExt,TUid aUid2);
  2126. private:
  2127. RFs iFs;
  2128. CFileStore *iPdrStore;
  2129. TInt iNumModels;
  2130. TPrinterModelHeader* iModelList;
  2131. TFileName iPdlName;
  2132. TUid iPdlUid;
  2133. RLibrary iPdlLibrary;
  2134. CPrinterDevice* iPrinterDevice;
  2135. RLibrary iUdlLibrary;
  2136. };
  2137. class RResourceFile;
  2138. class CPdrModelList : public CPrinterModelList
  2139.     {
  2140. public:
  2141. __declspec(dllexport) static CPdrModelList* NewL();
  2142. __declspec(dllexport) virtual ~CPdrModelList();
  2143.     __declspec(dllexport) TInt ModelCount() const;
  2144.     __declspec(dllexport) const TPrinterModelEntry operator [] (TInt anIndex);
  2145. __declspec(dllexport) TInt UidToNum(TUid aModelUid) const;
  2146. __declspec(dllexport) void AddDirectoryL(const TDesC& aDir);
  2147. __declspec(dllexport) CPrinterModelList* ScanForModelsL();
  2148. __declspec(dllexport) CPrinterDriver* CreatePrinterDriverL(TInt anIndex);
  2149. private:
  2150. CPdrModelList();
  2151. void ConstructL();
  2152. private:
  2153. class TFileEntry
  2154. {
  2155. public:
  2156. TFileName iFileName;
  2157. TDesC* iDirectory;
  2158. };
  2159. class TModelEntry
  2160. {
  2161. public:
  2162. TPrinterModelEntry iEntry;
  2163. TFileEntry* iFile;
  2164. };
  2165. private:
  2166. void ScanDirectoryL(TInt aDirIndex);
  2167. void ListModelsL(TInt aFileIndex, TParse& aParser, TFileName& aNameOfLoadedResourceFile, TFileName& aTempFileName, RResourceFile& aResourceFile, HBufC8*& aResource);
  2168. HBufC* NewPathBufL(const TFileEntry& aFileEntry);
  2169. private:
  2170. CArrayFixSeg<TModelEntry> * iModelArray;
  2171. CArrayFixFlat<TFileEntry> * iFileArray;
  2172. CArrayFixFlat<HBufC*> * iDirectoryArray;
  2173. RFs iFileServer;
  2174. };
  2175. #line 3881
  2176. class TZoomFactor : public MGraphicsDeviceMap
  2177. {
  2178. public:
  2179. __declspec(dllexport) TZoomFactor();
  2180. __declspec(dllexport) ~TZoomFactor();
  2181. inline TZoomFactor(const MGraphicsDeviceMap* aDevice);
  2182. inline TZoomFactor(const TZoomFactor* aDevice);
  2183. __declspec(dllexport) TInt ZoomFactor() const;
  2184. __declspec(dllexport) void SetZoomFactor(TInt aZoomFactor);
  2185. inline void SetGraphicsDeviceMap(const MGraphicsDeviceMap* aDevice);
  2186. inline const MGraphicsDeviceMap* GraphicsDeviceMap() const;
  2187. __declspec(dllexport) void SetTwipToPixelMapping(const TSize& aSizeInPixels,const TSize& aSizeInTwips);
  2188. __declspec(dllexport) TInt HorizontalTwipsToPixels(TInt aTwipWidth) const;
  2189. __declspec(dllexport) TInt VerticalTwipsToPixels(TInt aTwipHeight) const;
  2190. __declspec(dllexport) TInt HorizontalPixelsToTwips(TInt aPixelWidth) const;
  2191. __declspec(dllexport) TInt VerticalPixelsToTwips(TInt aPixelHeight) const;
  2192. __declspec(dllexport) virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  2193. __declspec(dllexport) virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec);
  2194. __declspec(dllexport) virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight);
  2195. __declspec(dllexport) void ReleaseFont(CFont* aFont);
  2196. public:
  2197. enum {EZoomOneToOne=1000};
  2198. private:
  2199. TInt iZoomFactor;
  2200. const MGraphicsDeviceMap* iDevice;
  2201. };
  2202. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.inl" /* stack depth 4 */
  2203. #line 11
  2204. inline TRgb::TRgb():
  2205. iValue(0xffffffff)
  2206. {}
  2207. inline TRgb::TRgb(TUint32 aValue):
  2208. iValue(((aValue & 0xff0000) >> 16) | (aValue & 0x00ff00) | ((aValue & 0x0000ff) << 16) | (0xff000000 - (aValue & 0xff000000)))
  2209. #line 32
  2210. {}
  2211. inline TRgb::TRgb(TUint32 aInternalValue, TInt aAlpha) :
  2212. iValue((aInternalValue & 0x00ffffff) | (aAlpha << 24))
  2213. #line 49
  2214. {
  2215. }
  2216. inline TRgb::TRgb(TInt aRed,TInt aGreen,TInt aBlue):
  2217. iValue(aRed<<16|aGreen<<8|aBlue|0xff000000)
  2218. {}
  2219. #line 78
  2220. inline TRgb::TRgb(TInt aRed,TInt aGreen,TInt aBlue, TInt aAlpha):
  2221. iValue(aRed<<16|aGreen<<8|aBlue|aAlpha<<24)
  2222. {}
  2223. inline TInt TRgb::Red() const
  2224. {return((iValue&0xff0000)>>16);}
  2225. inline TInt TRgb::Green() const
  2226. {return((iValue&0xff00)>>8);}
  2227. inline TInt TRgb::Blue() const
  2228. {return(iValue&0xff);}
  2229. inline TBool TRgb::operator==(const TRgb& aColor) const
  2230. #line 113
  2231. {return(iValue==aColor.iValue);}
  2232. inline TBool TRgb::operator!=(const TRgb& aColor) const
  2233. #line 125
  2234. {return(!(*this==aColor));}
  2235. inline TRgb& TRgb::operator&=(const TRgb& aColor)
  2236. #line 140
  2237. {iValue&=aColor.iValue;return(*this);}
  2238. inline TRgb& TRgb::operator|=(const TRgb& aColor)
  2239. #line 155
  2240. {iValue|=aColor.iValue;return(*this);}
  2241. inline TRgb& TRgb::operator^=(const TRgb& aColor)
  2242. #line 171
  2243. {iValue^=aColor.iValue;iValue^=0xff000000; return(*this);}
  2244. inline TUint32 TRgb::Value() const
  2245. {return (((iValue & 0xff0000) >> 16) | (iValue & 0x00ff00) | ((iValue & 0x0000ff) << 16) | (0xff000000 - (iValue & 0xff000000)));}
  2246. inline TUint32 TRgb::Internal() const
  2247. {return (iValue);}
  2248. inline void TRgb::SetInternal(TUint32 aInternal)
  2249. {iValue = aInternal;}
  2250. inline TRgb TRgb::operator~() const
  2251. {TRgb rgb; rgb.SetInternal(iValue^0x00ffffff); return rgb;}
  2252. inline TRgb TRgb::operator&(const TRgb& aColor)
  2253. {TRgb rgb; rgb.SetInternal(iValue&aColor.iValue); return rgb;}
  2254. inline TRgb TRgb::operator|(const TRgb& aColor)
  2255. {TRgb rgb; rgb.SetInternal(iValue|aColor.iValue); return rgb;}
  2256. inline TRgb TRgb::operator^(const TRgb& aColor)
  2257. {TRgb rgb; rgb.SetInternal(iValue^aColor.iValue); return rgb;}
  2258. #line 234
  2259. inline TRgb TRgb::_Gray2(TInt aGray2)
  2260. {
  2261. if(aGray2) return(TRgb(0xffffff, 0xff));
  2262. return(TRgb(0, 0xff));
  2263. }
  2264. #line 248
  2265. inline TRgb TRgb::_Gray4(TInt aGray4)
  2266. {
  2267. aGray4&=3;
  2268. aGray4|=aGray4<<2;
  2269. aGray4|=aGray4<<4;
  2270. return(TRgb(aGray4,aGray4,aGray4));
  2271. }
  2272. #line 264
  2273. inline TRgb TRgb::_Gray16(TInt aGray16)
  2274. {
  2275. aGray16&=0xf;
  2276. aGray16|=aGray16<<4;
  2277. return(TRgb(aGray16,aGray16,aGray16));
  2278. }
  2279. #line 279
  2280. inline TRgb TRgb::_Gray256(TInt aGray256)
  2281. {
  2282. aGray256&=0xff;
  2283. return(TRgb(aGray256,aGray256,aGray256));
  2284. }
  2285. #line 292
  2286. inline TRgb TRgb::_Color4K(TInt aColor4K)
  2287. {
  2288. TUint32 value = (aColor4K & 0xf00) << 8;
  2289. value |= (aColor4K & 0x0f0) << 4;
  2290. value |= (aColor4K & 0x00f);
  2291. return TRgb(value | (value << 4), 0xff);
  2292. }
  2293. #line 307
  2294. inline TRgb TRgb::_Color64K(TInt aColor64K)
  2295. {
  2296. TInt red = (aColor64K&0xF800)>>8;
  2297. red += red>>5;
  2298. TInt green = (aColor64K&0x07E0)>>3;
  2299. green += green>>6;
  2300. TInt blue = (aColor64K&0x001F)<<3;
  2301. blue += blue>>5;
  2302. return TRgb(red,green,blue);
  2303. }
  2304. #line 325
  2305. inline TRgb TRgb::_Color16M(TInt a0RGB)
  2306. {
  2307. return TRgb(a0RGB, 0xff);
  2308. }
  2309. inline TRgb TRgb::_Color16MU(TInt a0RGB)
  2310. {
  2311. return TRgb(a0RGB, 0xff);
  2312. }
  2313. inline TInt TRgb::_Gray2() const
  2314. {
  2315. return(Gray256()>>7);
  2316. }
  2317. inline TInt TRgb::_Gray4() const
  2318. {
  2319. return(Gray256()>>6);
  2320. }
  2321. inline TInt TRgb::_Gray16() const
  2322. {
  2323. return(Gray256()>>4);
  2324. }
  2325. inline TInt TRgb::_Gray256() const
  2326. {
  2327. return(((Red()<<1)+Green()+(Green()<<2)+Blue())>>3);
  2328. }
  2329. inline TInt TRgb::_Color4K() const
  2330. {
  2331. TInt color4K = (iValue & 0x0000f0) >> 4;
  2332. color4K |= (iValue & 0x00f000) >> 8;
  2333. color4K |= (iValue & 0xf00000) >> 12;
  2334. return color4K;
  2335. }
  2336. inline TInt TRgb::_Color64K() const
  2337. {
  2338. TInt color64K = (iValue & 0x0000f8) >> 3;
  2339. color64K |= (iValue & 0x00fc00) >> 5;
  2340. color64K |= (iValue & 0xf80000) >> 8;
  2341. return color64K;
  2342. }
  2343. inline TInt TRgb::_Color16M() const
  2344. {
  2345. return (iValue & 0xffffff);
  2346. }
  2347. inline TInt TRgb::_Color16MU() const
  2348. {
  2349. return (iValue & 0xffffff);
  2350. }
  2351. inline TInt TRgb::Alpha() const
  2352. {return (iValue >> 24);}
  2353. #line 432
  2354. inline TRgb TRgb::_Color16MA(TUint aARGB)
  2355. {
  2356. TRgb col; col.SetInternal(aARGB);
  2357. return col;
  2358. }
  2359. inline TUint TRgb::_Color16MA() const
  2360. {
  2361. return (iValue);
  2362. }
  2363. inline TInt CPalette::Entries() const
  2364. {return(iNumEntries);}
  2365. inline TRgb TColor256Util::Color256(TInt aColor256) const
  2366. { return TRgb(iColorTable[aColor256]); }
  2367. inline TBool TFontStyle::operator==(const TFontStyle& aFontStyle) const
  2368. {return(iFlags==aFontStyle.iFlags);}
  2369. inline TGlyphBitmapType TFontStyle::BitmapType() const
  2370. {
  2371. return (TGlyphBitmapType)(iFlags >> 16);
  2372. }
  2373. inline void TFontStyle::SetBitmapType(TGlyphBitmapType aBitmapType)
  2374. #line 502
  2375. {
  2376. iFlags &= 0xFFFF;
  2377. iFlags |= (aBitmapType << 16);
  2378. }
  2379. inline TInt CBitmapDevice::CreateBitmapContext(CBitmapContext*& aGC)
  2380. {return(CreateContext((CGraphicsContext*&)aGC));}
  2381. inline TPictureCapability::TPictureCapability(TScalingType aScalingType,TBool aCroppable):
  2382. iScalingType(aScalingType),iIsCroppable(aCroppable)
  2383. {}
  2384. inline TZoomFactor::TZoomFactor(const MGraphicsDeviceMap* aDevice):
  2385. iZoomFactor(TZoomFactor::EZoomOneToOne),
  2386. iDevice(aDevice)
  2387. {}
  2388. inline TZoomFactor::TZoomFactor(const TZoomFactor* aDevice):
  2389. iDevice(aDevice)
  2390. {
  2391. iZoomFactor=aDevice->iZoomFactor;
  2392. }
  2393. inline void TZoomFactor::SetGraphicsDeviceMap(const MGraphicsDeviceMap* aDevice)
  2394. {iDevice=aDevice;}
  2395. inline const MGraphicsDeviceMap* TZoomFactor::GraphicsDeviceMap() const
  2396. {return(iDevice);}
  2397. #line 579
  2398. inline TInt CFont::FontCapitalAscent() const
  2399. {
  2400. return ExtendedFunction(KFontCapitalAscent);
  2401. }
  2402. #line 595
  2403. inline TInt CFont::FontMaxAscent() const
  2404. {
  2405. return ExtendedFunction(KFontMaxAscent);
  2406. }
  2407. #line 608
  2408. inline TInt CFont::FontStandardDescent() const
  2409. {
  2410. return ExtendedFunction(KFontStandardDescent);
  2411. }
  2412. #line 623
  2413. inline TInt CFont::FontMaxDescent() const
  2414. {
  2415. return ExtendedFunction(KFontMaxDescent);
  2416. }
  2417. inline TInt CFont::FontLineGap() const
  2418. {
  2419. return ExtendedFunction(KFontLineGap);
  2420. }
  2421. #line 648
  2422. inline TInt CFont::FontMaxHeight() const
  2423. {
  2424. return FontMaxAscent() + FontMaxDescent();
  2425. }
  2426. #line 3912 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.h" /* stack depth 3 */
  2427. #line 19 "C:\Symbian\9.1\S60_3rd\epoc32\include\apparc.h" /* stack depth 2 */
  2428. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\apadef.h" /* stack depth 3 */
  2429. #line 18
  2430. const TUint KApaCommandLetterOpen='O';
  2431. const TUint KApaCommandLetterCreate='C';
  2432. const TUint KApaCommandLetterRun='R';
  2433. const TUint KApaCommandLetterBackground='B';
  2434. const TUint KApaCommandLetterViewActivate='V';
  2435. const TUint KApaCommandLetterRunWithoutViews='W';
  2436. enum TApaCommand
  2437. {
  2438. EApaCommandOpen,
  2439. EApaCommandCreate,
  2440. EApaCommandRun,
  2441. EApaCommandBackground,
  2442. EApaCommandViewActivate,
  2443. EApaCommandRunWithoutViews
  2444. };
  2445. const TInt KApaMaxAppCaption=0x100;
  2446. #line 82
  2447. typedef TBuf<KApaMaxAppCaption> TApaAppCaption;
  2448. const TInt KApaMaxCommandLine=0x100;
  2449. typedef TBuf<KApaMaxCommandLine> TApaCommandLine;
  2450. const TInt KApaMaxAppFileName=0x10;
  2451. typedef TBuf<KApaMaxAppFileName> TApaAppFileName;
  2452. const TInt KApaMaxAppGroupName=0x10;
  2453. #line 118
  2454. typedef TBuf<KApaMaxAppGroupName> TApaAppGroupName;
  2455. const TInt KAppUidValue8 = 0x1000006c;
  2456. const TUid KUidApp8={KAppUidValue8};
  2457. #line 141
  2458. const TInt KAppUidValue16 = 0x100039CE;
  2459. const TUid KUidApp16={KAppUidValue16};
  2460. const TUid KUidAppDllDoc8={268435565};
  2461. const TUid KUidAppDllDoc16={0x10003A12};
  2462. const TUid KUidPictureTypeDoor8={268435537};
  2463. const TUid KUidPictureTypeDoor16={0x10003A33};
  2464. const TUid KUidSecurityStream8={268435661};
  2465. const TUid KUidSecurityStream16={0x10003A40};
  2466. const TUid KUidAppIdentifierStream8={268435593};
  2467. const TUid KUidAppIdentifierStream16={0x10003A34};
  2468. #line 272
  2469. const TUid KUidFileEmbeddedApplicationInterfaceUid={0x101f8c96};
  2470. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\apparc.h" /* stack depth 2 */
  2471. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\apaid.h" /* stack depth 3 */
  2472. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\apmstd.h" /* stack depth 4 */
  2473. #line 17
  2474. const TInt KMaxDataTypeLength=256;
  2475. class RReadStream;
  2476. class RWriteStream;
  2477. #line 31
  2478. typedef TInt32 TDataTypePriority;
  2479. const TInt32 KDataTypePriorityUserSpecified=KMaxTInt16;
  2480. #line 46
  2481. const TInt32 KDataTypePrioritySystem = 0xFFF9;
  2482. #line 55
  2483. const TInt32 KDataTypeUnTrustedPriorityThreshold=KMaxTInt16;
  2484. #line 64
  2485. const TInt32 KDataTypePriorityHigh=10000;
  2486. #line 73
  2487. const TInt32 KDataTypePriorityNormal=0;
  2488. #line 82
  2489. const TInt32 KDataTypePriorityLow=-10000;
  2490. #line 91
  2491. const TInt32 KDataTypePriorityLastResort=-20000;
  2492. const TInt32 KDataTypePriorityNotSupported=KMinTInt16;
  2493. class TDataType
  2494. #line 110
  2495. {
  2496. public:
  2497. __declspec(dllexport) TDataType();
  2498. __declspec(dllexport) TDataType(const TDataType& aDataType);
  2499. __declspec(dllexport) TDataType(const TDesC8& aDataType);
  2500. __declspec(dllexport) TDataType(TUid aUid);
  2501. __declspec(dllexport) TInt operator==(const TDataType& aDataType) const;
  2502. __declspec(dllexport) TInt operator!=(const TDataType& aDataType) const;
  2503. __declspec(dllexport) TBool IsNative() const;
  2504. __declspec(dllexport) TBuf<KMaxDataTypeLength> Des() const;
  2505. __declspec(dllexport) TPtrC8 Des8() const;
  2506. __declspec(dllexport) TUid Uid() const;
  2507. __declspec(dllexport) void InternalizeL(RReadStream& aReadStream);
  2508. __declspec(dllexport) void ExternalizeL(RWriteStream& aWriteStream) const;
  2509. private:
  2510. void ParseDes();
  2511. private:
  2512. TBuf8<KMaxDataTypeLength> iDataType;
  2513. TUid iUid;
  2514. };
  2515. #line 142
  2516. const static TLitC8<sizeof( "X-Epoc-Url/")> KEpocUrlDataTypeHeader={sizeof( "X-Epoc-Url/")-1, "X-Epoc-Url/"} ;
  2517. class TDataTypeWithPriority
  2518. #line 159
  2519. {
  2520. public:
  2521. __declspec(dllexport) TDataTypeWithPriority();
  2522. __declspec(dllexport) TDataTypeWithPriority(const TDataType& aDataType, TDataTypePriority aPriority);
  2523. __declspec(dllexport) void InternalizeL(RReadStream& aReadStream);
  2524. __declspec(dllexport) void ExternalizeL(RWriteStream& aWriteStream) const;
  2525. public:
  2526. TDataType iDataType;
  2527. TDataTypePriority iPriority;
  2528. };
  2529. #line 16 "C:\Symbian\9.1\S60_3rd\epoc32\include\apaid.h" /* stack depth 3 */
  2530. class TApaAppIdentifier;
  2531. class TApaAppEntry;
  2532. class CApaAppFinder;
  2533. class RReadStream;
  2534. class RWriteStream;
  2535. class RFs;
  2536. class TApaAppIdentifier
  2537. #line 49
  2538. {
  2539. public:
  2540. __declspec(dllexport) TApaAppIdentifier();
  2541. __declspec(dllexport) TApaAppIdentifier(TUid aAppUidType,const TFileName& aDllName);
  2542. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  2543. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2544. public:
  2545. TUid iAppUid;
  2546. TFileName iFullName;
  2547. private:
  2548. TInt iTApaAppIdentifier_Reserved1;
  2549. };
  2550. class TApaAppEntry
  2551. #line 78
  2552. {
  2553. public:
  2554. __declspec(dllexport) TApaAppEntry();
  2555. __declspec(dllexport) TApaAppEntry(const TUidType& aAppUidType,const TFileName& aDllName);
  2556. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  2557. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2558. public:
  2559. TUidType iUidType;
  2560. TFileName iFullName;
  2561. private:
  2562. TInt iTApaAppEntry_Reserved1;
  2563. };
  2564. class TApaAppInfo
  2565. #line 109
  2566. {
  2567. public:
  2568. __declspec(dllexport) TApaAppInfo();
  2569. __declspec(dllexport) TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption);
  2570. __declspec(dllexport) TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption,const TApaAppCaption& aShortCaption);
  2571. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  2572. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2573. public:
  2574. TUid iUid;
  2575. TFileName iFullName;
  2576. TApaAppCaption iCaption;
  2577. TApaAppCaption iShortCaption;
  2578. private:
  2579. TInt iTApaAppInfo_Reserved1;
  2580. };
  2581. class TApaAppViewInfo
  2582. #line 146
  2583. {
  2584. public:
  2585. __declspec(dllexport) TApaAppViewInfo();
  2586. __declspec(dllexport) TApaAppViewInfo(TUid aViewUid,const TApaAppCaption& aViewCaption,TInt aScreenMode);
  2587. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream)const;
  2588. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2589. public:
  2590. TUid iUid;
  2591. TApaAppCaption iViewCaption;
  2592. TInt iScreenMode;
  2593. private:
  2594. TInt iTApaAppViewInfo_Reserved1;
  2595. };
  2596. #line 171
  2597. typedef CArrayFixFlat<TApaAppViewInfo> CApaAppViewArray;
  2598. class TApaAppCapability
  2599. {
  2600. public:
  2601. __declspec(dllexport) static void CopyCapability(TDes8& aDest,const TDesC8& aSource);
  2602. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2603. __declspec(dllexport) void Internalize7_0L(RReadStream& aStream);
  2604. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2605. private:
  2606. __declspec(dllexport) void Externalize7_0L(RWriteStream& aStream) const;
  2607. void DoInternalizeL(RReadStream& aStream, TBool& aLaunchInBackground, TApaAppGroupName& aGroupName);
  2608. public:
  2609. enum TEmbeddability {
  2610. ENotEmbeddable=0,
  2611. EEmbeddable=1,
  2612. EEmbeddableOnly=2,
  2613. EEmbeddableUiOrStandAlone=5,
  2614. EEmbeddableUiNotStandAlone=6 };
  2615. enum TCapabilityAttribute
  2616. {
  2617. EBuiltAsDll = 0x00000001,
  2618. EControlPanelItem = 0x00000002,
  2619. ENonNative = 0x00000004
  2620. };
  2621. public:
  2622. TEmbeddability iEmbeddability;
  2623. TBool iSupportsNewFile;
  2624. TBool iAppIsHidden;
  2625. TBool iLaunchInBackground;
  2626. TApaAppGroupName iGroupName;
  2627. TUint iAttributes;
  2628. private:
  2629. enum { EVersion=4 };
  2630. private:
  2631. TInt iTApaAppCapability_Reserved1;
  2632. };
  2633. typedef TPckgBuf<TApaAppCapability> TApaAppCapabilityBuf;
  2634. class TApaEmbeddabilityFilter
  2635. {
  2636. public:
  2637. __declspec(dllexport) TApaEmbeddabilityFilter();
  2638. __declspec(dllexport) void AddEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability);
  2639. __declspec(dllexport) TBool MatchesEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) const;
  2640. private:
  2641. TUint iEmbeddabilityFlags;
  2642. private:
  2643. TInt iTApaEmbeddabilityFilter_Reserved1;
  2644. };
  2645. class CApaAppFinder : public CBase
  2646. {
  2647. public:
  2648. virtual void FindAllAppsL()=0;
  2649. virtual TBool NextL(TApaAppEntry& aEntry)=0;
  2650. virtual TFileName FindAppL(const TDesC& aFileName,TUid aFileUid)=0;
  2651. #line 282
  2652. virtual TFileName DefaultAppInfoFileName()const=0;
  2653. protected:
  2654. __declspec(dllexport) CApaAppFinder();
  2655. private:
  2656. __declspec(dllexport) virtual void CApaAppFinder_Reserved1();
  2657. __declspec(dllexport) virtual void CApaAppFinder_Reserved2();
  2658. };
  2659. const TUid KOpenServiceUid = { 0x10208DCA };
  2660. #line 310
  2661. class TApaAppServiceInfo
  2662. {
  2663. public:
  2664. TApaAppServiceInfo();
  2665. TApaAppServiceInfo(TUid aUid, CArrayFixFlat<TDataTypeWithPriority> * aDataTypes,
  2666. HBufC8* aOpaqueData);
  2667. void ExternalizeL(RWriteStream& aStream) const;
  2668. void InternalizeL(RReadStream& aStream);
  2669. void Release();
  2670. CArrayFixFlat<TDataTypeWithPriority>& DataTypes();
  2671. __declspec(dllexport) TUid Uid() const;
  2672. __declspec(dllexport) const CArrayFixFlat<TDataTypeWithPriority>& DataTypes() const;
  2673. __declspec(dllexport) const TDesC8& OpaqueData() const;
  2674. private:
  2675. TUid iUid;
  2676. CArrayFixFlat<TDataTypeWithPriority> * iDataTypes;
  2677. HBufC8* iOpaqueData;
  2678. TInt iTApaAppServiceInfo;
  2679. };
  2680. #line 338
  2681. class CApaAppServiceInfoArray : public CBase
  2682. {
  2683. protected:
  2684. CApaAppServiceInfoArray();
  2685. public:
  2686. virtual TArray<TApaAppServiceInfo> Array()=0;
  2687. private:
  2688. __declspec(dllexport) virtual void CApaAppServiceInfoArray_Reserved1();
  2689. __declspec(dllexport) virtual void CApaAppServiceInfoArray_Reserved2();
  2690. private:
  2691. TInt iCApaAppServiceInfoArray_Reserved1;
  2692. };
  2693. #line 25 "C:\Symbian\9.1\S60_3rd\epoc32\include\apparc.h" /* stack depth 2 */
  2694. class CApaApplication;
  2695. class CApaDocument;
  2696. class CApaProcess;
  2697. class MApaEmbeddedDocObserver;
  2698. class CApaDll;
  2699. class CApaExe;
  2700. class RFile;
  2701. class RReadStream;
  2702. class RWriteStream;
  2703. class CFileStore;
  2704. class CPersistentStore;
  2705. class CStreamDictionary;
  2706. class CDictionaryStore;
  2707. class TApaAppHolderInfo;
  2708. class CImplementationInformation;
  2709. class TApaApplicationFactory;
  2710. class CApaAppHolder;
  2711. class CApaAppServer;
  2712. #line 62
  2713. typedef CApaApplication* (*CreateCApaApplication)();
  2714. class CApaApplication : public CBase
  2715. #line 82
  2716. {
  2717. public:
  2718. #line 94
  2719. virtual void PreDocConstructL()=0;
  2720. #line 106
  2721. virtual CApaDocument* CreateDocumentL(CApaProcess* aProcess)=0;
  2722. #line 115
  2723. virtual TUid AppDllUid()const=0;
  2724. __declspec(dllexport) static TInt GenerateFileName(RFs& aFs,TFileName& aRootName);
  2725. __declspec(dllexport) CDictionaryStore* OpenIniFileL(RFs& aFs)const;
  2726. #line 136
  2727. virtual CDictionaryStore* OpenIniFileLC(RFs& aFs)const=0;
  2728. #line 157
  2729. __declspec(dllexport) virtual TFileName AppFullName()const;
  2730. #line 172
  2731. virtual void Capability(TDes8& aInfo)const=0;
  2732. __declspec(dllexport) TFileName DllName()const;
  2733. __declspec(dllexport) ~CApaApplication();
  2734. __declspec(dllexport) virtual void NewAppServerL(CApaAppServer*& aAppServer);
  2735. protected:
  2736. __declspec(dllexport) CApaApplication();
  2737. __declspec(dllexport) virtual void CApaApplication_Reserved1();
  2738. __declspec(dllexport) virtual void CApaApplication_Reserved2();
  2739. private:
  2740. CApaAppHolder* iAppHolder;
  2741. TUid iDtorKey;
  2742. friend class CApaAppHolder;
  2743. friend class CApaProcess;
  2744. friend class TApaApplicationFactory;
  2745. private:
  2746. TInt iCApaApplication_Reserved1;
  2747. };
  2748. class CApaDocument : public CBase
  2749. #line 211
  2750. {
  2751. public:
  2752. class TCapability
  2753. {
  2754. public:
  2755. __declspec(dllexport) TCapability();
  2756. inline TBool CanDrawGlass()const;
  2757. inline TBool CanPrint()const;
  2758. inline void SetCanDrawGlass();
  2759. inline void SetCanPrint();
  2760. private:
  2761. enum {
  2762. ECanDrawGlass =0x01,
  2763. ECanPrint =0x02
  2764. };
  2765. private:
  2766. TUint iCapability;
  2767. TInt TCapability_Reserved1;
  2768. };
  2769. public:
  2770. #line 245
  2771. virtual void NewDocumentL()=0;
  2772. #line 259
  2773. virtual CFileStore* CreateFileStoreLC(RFs& aFs,const TDesC& aFileName)=0;
  2774. __declspec(dllexport) virtual CPicture* GlassPictureL();
  2775. #line 276
  2776. virtual void EditL(MApaEmbeddedDocObserver* aContainer,TBool aReadOnly=EFalse)=0;
  2777. #line 289
  2778. virtual void PrintL(const CStreamStore& aSourceStore)=0;
  2779. #line 308
  2780. virtual void SaveL()=0;
  2781. #line 325
  2782. virtual void StoreL(CStreamStore& aStore,CStreamDictionary& aStreamDic) const=0;
  2783. #line 341
  2784. virtual void RestoreL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic)=0;
  2785. #line 364
  2786. inline virtual void DetachFromStoreL(CPicture::TDetach =CPicture::EDetachFull) {}
  2787. __declspec(dllexport) virtual void ExternalizeL(RWriteStream& aStream)const;
  2788. #line 381
  2789. virtual TBool IsEmpty()const=0;
  2790. __declspec(dllexport) virtual void ValidatePasswordL()const;
  2791. __declspec(dllexport) virtual TCapability Capability()const;
  2792. inline CApaApplication* Application()const;
  2793. inline CApaProcess* Process()const;
  2794. #line 396
  2795. virtual TBool HasChanged()const =0;
  2796. __declspec(dllexport) virtual ~CApaDocument();
  2797. protected:
  2798. __declspec(dllexport) CApaDocument();
  2799. __declspec(dllexport) CApaDocument(CApaApplication& aApp,CApaProcess& aProcess);
  2800. private:
  2801. __declspec(dllexport) virtual void OpenFileL(CFileStore*& aFileStore, RFile& aFile);
  2802. __declspec(dllexport) virtual void Reserved_2();
  2803. protected:
  2804. MApaEmbeddedDocObserver* iContainer;
  2805. private:
  2806. CApaApplication* iApplication;
  2807. CApaProcess* iApaProcess;
  2808. TInt iSpare;
  2809. };
  2810. class TApaApplicationFactory
  2811. #line 426
  2812. {
  2813. public:
  2814. typedef CApaApplication* (*TFunction)();
  2815. public:
  2816. __declspec(dllexport) TApaApplicationFactory();
  2817. __declspec(dllexport) TApaApplicationFactory(TFunction aFunction);
  2818. __declspec(dllexport) TApaApplicationFactory(const CImplementationInformation& aEmbeddedApplicationInformation);
  2819. __declspec(dllexport) TApaApplicationFactory(TUid aEmbeddedApplicationUid);
  2820. CApaApplication* CreateApplicationL() const;
  2821. HBufC* AppFileNameL() const;
  2822. TUid AppFileUid() const;
  2823. private:
  2824. enum TType
  2825. {
  2826. ETypeFunction,
  2827. ETypeEmbeddedApplicationInformation,
  2828. ETypeEmbeddedApplicationUid
  2829. };
  2830. private:
  2831. static CApaApplication* CreateEmbeddedApplicationL(TUid aUid);
  2832. static HBufC* EmbeddedApplicationDisplayNameLC(TUid aUid);
  2833. static HBufC* FullAppFileNameL(const TDesC& aAppName);
  2834. static void CleanupImplementationArray(TAny* aImplementationArray);
  2835. private:
  2836. TType iType;
  2837. TUint iData;
  2838. mutable CApaApplication* iApplication;
  2839. TInt iSpare2;
  2840. };
  2841. class CApaParentProcessMonitor;
  2842. class CApaProcess : public CBase
  2843. #line 477
  2844. {
  2845. public:
  2846. __declspec(dllexport) static CApaProcess* NewL(const RFs& aFs);
  2847. __declspec(dllexport) void ResetL();
  2848. __declspec(dllexport) static CStreamDictionary* ReadRootStreamLC(RFs& aFs,CFileStore*& aStore,const TDesC& aDocFullFileName,TUint aFileMode);
  2849. __declspec(dllexport) static CStreamDictionary* ReadRootStreamLC(CFileStore*& aStore, const RFile& aFile);
  2850. __declspec(dllexport) static void WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const CApaApplication& aApp);
  2851. __declspec(dllexport) static void WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId);
  2852. __declspec(dllexport) static TApaAppIdentifier ReadAppIdentifierL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic);
  2853. __declspec(dllexport) static void WriteAppIdentifierL(CStreamStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId);
  2854. __declspec(dllexport) CApaDocument* AddNewDocumentL(TApaApplicationFactory aApplicationFactory);
  2855. __declspec(dllexport) CApaDocument* OpenNewDocumentL(CFileStore*& aStore,CStreamDictionary*& aStreamDic,const TDesC& aDocFullFileName,TUint aFileMode);
  2856. __declspec(dllexport) void DestroyDocument(CApaDocument* aDoc);
  2857. __declspec(dllexport) void SetMainDocument(CApaDocument* aDocument);
  2858. __declspec(dllexport) void SetMainDocFileName(const TDesC& aMainDocFileName);
  2859. __declspec(dllexport) void SetMainDocFileNameL(const TDesC& aMainDocFileName);
  2860. __declspec(dllexport) TPtrC MainDocFileName()const;
  2861. inline RFs& FsSession()const;
  2862. inline CApaDocument* MainDocument()const;
  2863. __declspec(dllexport) ~CApaProcess();
  2864. protected:
  2865. __declspec(dllexport) CApaProcess();
  2866. __declspec(dllexport) CApaProcess(const RFs& aFs);
  2867. __declspec(dllexport) void ConstructL();
  2868. __declspec(dllexport) void ConstructL(TProcessId aParentProcessId);
  2869. __declspec(dllexport) virtual void CApaProcess_Reserved1();
  2870. __declspec(dllexport) virtual void CApaProcess_Reserved2();
  2871. public:
  2872. static TInt IdleRemoveApplications(TAny* aThis);
  2873. void RemoveMarkedApplications();
  2874. private:
  2875. CApaDll* AddAppDllL(const TDesC& aDllFullPath);
  2876. CApaExe* AddAppExeL(TApaApplicationFactory aApplicationFactory);
  2877. void RemoveApp(CApaAppHolder* aAppHolder);
  2878. CApaDocument* CreateDocL(CApaApplication* aApp);
  2879. CApaAppHolder* FindAppInListL(const TDesC& aAppFileName,TUid aUid)const;
  2880. void DeleteAllDocs();
  2881. void MarkApplicationForRemoval(CApaApplication* aApp);
  2882. static void DoReadRootStreamL(CStreamDictionary& aStreamDictionary, const CFileStore& aStore);
  2883. private:
  2884. CArrayFixFlat<TApaAppHolderInfo> * iAppList;
  2885. CArrayFixFlat<CApaDocument*> * iDocList;
  2886. CApaDocument* iMainDoc;
  2887. HBufC* iMainDocFileName;
  2888. RFs iFsSession;
  2889. CIdle* iApplicationRemover;
  2890. CApaParentProcessMonitor* iMonitor;
  2891. TInt iCApaProcess_Reserved1;
  2892. };
  2893. class MApaEmbeddedDocObserver
  2894. {
  2895. public:
  2896. enum TExitMode {
  2897. EKeepChanges,
  2898. ERevertToSaved,
  2899. ENoChanges,
  2900. EEmpty
  2901. };
  2902. public:
  2903. virtual void NotifyExit(TExitMode aMode)=0;
  2904. protected:
  2905. __declspec(dllexport) MApaEmbeddedDocObserver();
  2906. private:
  2907. __declspec(dllexport) virtual void MApaEmbeddedDocObserver_Reserved1();
  2908. __declspec(dllexport) virtual void MApaEmbeddedDocObserver_Reserved2();
  2909. private:
  2910. TInt iMApaEmbeddedDocObserver_Reserved1;
  2911. };
  2912. inline CApaApplication* CApaDocument::Application()const
  2913. { return iApplication; }
  2914. inline CApaProcess* CApaDocument::Process()const
  2915. { return iApaProcess; }
  2916. inline TBool CApaDocument::TCapability::CanDrawGlass()const
  2917. { return iCapability&ECanDrawGlass; }
  2918. inline TBool CApaDocument::TCapability::CanPrint()const
  2919. { return iCapability&ECanPrint; }
  2920. inline void CApaDocument::TCapability::SetCanDrawGlass()
  2921. { iCapability = iCapability|ECanDrawGlass; }
  2922. inline void CApaDocument::TCapability::SetCanPrint()
  2923. { iCapability = iCapability|ECanPrint; }
  2924. #line 648
  2925. inline RFs& CApaProcess::FsSession()const
  2926. { return (RFs&)iFsSession; }
  2927. inline CApaDocument* CApaProcess::MainDocument()const
  2928. { return iMainDoc; }
  2929. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikstart.h" /* stack depth 1 */
  2930. class CApaCommandLine;
  2931. class EikStart
  2932. {
  2933. public:
  2934. __declspec(dllexport) static TInt RunApplication(TApaApplicationFactory aApplicationFactory);
  2935. private:
  2936. static void RunApplication(const TApaApplicationFactory& aApplicationFactory,CApaCommandLine* aCommandLine);
  2937. };
  2938. #line 3 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExample.cpp" /* stack depth 0 */
  2939. #line 1 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\inc\S60UIExampleApplication.h" /* stack depth 1 */
  2940. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknapp.h" /* stack depth 2 */
  2941. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikapp.h" /* stack depth 3 */
  2942. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\apaflrec.h" /* stack depth 4 */
  2943. #line 17
  2944. class MApaAppStarter;
  2945. class CApaAppLocator;
  2946. class CApaFileRecognizer;
  2947. class CApaFileRecognizerType;
  2948. class CFileRecognizerExtension;
  2949. class TApaAppEntry;
  2950. class CApaCommandLine;
  2951. class RFs;
  2952. #line 44
  2953. const TInt KFileRecognizerUidValue8=0x1000013E;
  2954. const TUid KUidFileRecognizer8={KFileRecognizerUidValue8};
  2955. const TUid KUidFileRecognizer16={0x10003A37};
  2956. class CApaAppLocator : public CBase
  2957. {
  2958. public:
  2959. virtual TInt GetAppEntryByUid(TApaAppEntry& aAppEntry,TUid aAppUid)=0;
  2960. virtual TInt GetAppCapabilityByUid(TDes8& aCapabilityBuf,TUid aAppUid)=0;
  2961. };
  2962. class CApaFileRecognizer : public CBase
  2963. {
  2964. public:
  2965. __declspec(dllexport) CApaFileRecognizerType* RecognizeFileL(const TDesC& aFullFileName,const TUidType* aUidType=0 );
  2966. __declspec(dllexport) CApaAppLocator* AppLocator() const;
  2967. __declspec(dllexport) ~CApaFileRecognizer();
  2968. protected:
  2969. __declspec(dllexport) CApaFileRecognizer(RFs& aFs);
  2970. __declspec(dllexport) void AddFileRecognizerType(CApaFileRecognizerType* aFileRecognizerType);
  2971. __declspec(dllexport) TInt RemoveFileRecognizerType(const CApaFileRecognizerType* aFileRecognizerType);
  2972. __declspec(dllexport) void SetAppLocator(CApaAppLocator* aAppLocator);
  2973. static inline void SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter);
  2974. __declspec(dllexport) void DestroyRecognizerList();
  2975. protected:
  2976. RFs& iFs;
  2977. CApaAppLocator* iAppLocator;
  2978. private:
  2979. CApaFileRecognizerType *iFileRecognizerList;
  2980. };
  2981. class MApaAppStarter
  2982. {
  2983. public:
  2984. virtual TThreadId StartAppL(const CApaCommandLine& aCommandLine)=0;
  2985. protected:
  2986. __declspec(dllexport) MApaAppStarter();
  2987. private:
  2988. __declspec(dllexport) virtual void MApaAppStarter_Reserved1();
  2989. __declspec(dllexport) virtual void MApaAppStarter_Reserved2();
  2990. private:
  2991. TInt iMApaAppStarter_Reserved1;
  2992. };
  2993. class CApaFileRecognizerType : public CBase
  2994. {
  2995. public:
  2996. enum TRecognizedType {EProgram,EDoc,EOtherFile,ENotRecognized};
  2997. public:
  2998. virtual TThreadId RunL(TApaCommand aCommand,const TDesC* aDocFileName=0 ,const TDesC8* aTailEnd=0 ) const=0;
  2999. inline TUid AppUid()const;
  3000. inline TUid TypeUid()const;
  3001. inline TRecognizedType Type()const;
  3002. __declspec(dllexport) void Capability(TDes8& aCapabilityBuf)const;
  3003. __declspec(dllexport) void Lock();
  3004. __declspec(dllexport) void Unlock();
  3005. protected:
  3006. __declspec(dllexport) CApaFileRecognizerType();
  3007. __declspec(dllexport) ~CApaFileRecognizerType();
  3008. __declspec(dllexport) TThreadId AppRunL(const CApaCommandLine& aCommandLine) const;
  3009. private:
  3010. inline void SetAppStarter(MApaAppStarter* aAppStarter);
  3011. virtual TRecognizedType DoRecognizeFileL(RFs& aFs,TUidType aUidType)=0;
  3012. TRecognizedType RecognizeFileL(RFs& aFs,const TDesC& aFullFileName,TUidType aUidType);
  3013. TBool Locked()const;
  3014. __declspec(dllexport) virtual void Reserved_1();
  3015. public:
  3016. __declspec(dllexport) static CApaFileRecognizerType* CreateFileRecognizerL(TUid aImplUid);
  3017. protected:
  3018. CApaFileRecognizer* iFileRecognizer;
  3019. MApaAppStarter* iAppStarter;
  3020. HBufC* iFullFileName;
  3021. TUid iFileType;
  3022. TUid iAppUid;
  3023. TRecognizedType iRecognizedType;
  3024. TApaAppCapabilityBuf* iCapabilityBuf;
  3025. private:
  3026. CApaFileRecognizerType* iNext;
  3027. TInt iLock;
  3028. CFileRecognizerExtension* iFileRecognizerExtn;
  3029. private:
  3030. friend class CApaFileRecognizer;
  3031. };
  3032. inline void CApaFileRecognizer::SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter)
  3033. { aRecognizer->SetAppStarter(aAppStarter); }
  3034. inline void CApaFileRecognizerType::SetAppStarter(MApaAppStarter* aAppStarter)
  3035. { iAppStarter = aAppStarter; }
  3036. inline TUid CApaFileRecognizerType::AppUid() const
  3037. { return iAppUid; }
  3038. inline TUid CApaFileRecognizerType::TypeUid() const
  3039. { return iFileType; }
  3040. inline CApaFileRecognizerType::TRecognizedType CApaFileRecognizerType::Type()const
  3041. { return iRecognizedType; }
  3042. #line 10 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikapp.h" /* stack depth 3 */
  3043. class CCoeEnv;
  3044. class CEikApplication : public CApaApplication
  3045. #line 31
  3046. {
  3047. public:
  3048. __declspec(dllexport) ~CEikApplication();
  3049. inline TInt ResourceFileOffset() const;
  3050. inline CApaProcess* Process() const;
  3051. inline const TApaAppCaption& AppCaption() const;
  3052. __declspec(dllexport) virtual void GetDefaultDocumentFileName(TFileName& aDocumentName) const;
  3053. __declspec(dllexport) virtual TFileName BitmapStoreName() const;
  3054. __declspec(dllexport) CDictionaryStore* OpenIniFileLC(RFs& aFs) const;
  3055. __declspec(dllexport) void Capability(TDes8& aInfo) const;
  3056. __declspec(dllexport) void SetToIniFileNameL(TParse& aParser) const;
  3057. protected:
  3058. __declspec(dllexport) void PreDocConstructL();
  3059. __declspec(dllexport) CApaDocument* CreateDocumentL(CApaProcess* aProcess);
  3060. __declspec(dllexport) void NewAppServerL(CApaAppServer*& aAppServer);
  3061. __declspec(dllexport) void EnsureCaptionIsLocalisedL(const TDesC& aLocalisableResourceFile);
  3062. protected:
  3063. __declspec(dllexport) CEikApplication();
  3064. public:
  3065. __declspec(dllexport) virtual TFileName ResourceFileName() const;
  3066. private:
  3067. __declspec(dllexport) virtual void CEikApplication_Reserved1();
  3068. __declspec(dllexport) virtual void CEikApplication_Reserved2();
  3069. private:
  3070. virtual CApaDocument* CreateDocumentL()=0;
  3071. private:
  3072. void ParseWithPathAndExt(TParse& aParse, const TDesC& aPath, const TDesC& aExt) const;
  3073. protected:
  3074. CCoeEnv* iCoeEnv;
  3075. TInt iResourceFileOffset;
  3076. private:
  3077. enum
  3078. {
  3079. EFlagCaptionCorrectlyLocalised=0x00000001
  3080. };
  3081. private:
  3082. CApaProcess* iProcess;
  3083. TApaAppCaption iCaption;
  3084. TApaAppCapabilityBuf* iCapabilityBuf;
  3085. TUint iAppFlags;
  3086. TInt iSpare;
  3087. };
  3088. inline TInt CEikApplication::ResourceFileOffset() const
  3089. { return(iResourceFileOffset); }
  3090. inline CApaProcess* CEikApplication::Process() const
  3091. { return(iProcess); }
  3092. inline const TApaAppCaption& CEikApplication::AppCaption() const
  3093. { return(iCaption); }
  3094. #line 26 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknapp.h" /* stack depth 2 */
  3095. #line 35
  3096. class CAknApplication : public CEikApplication
  3097. {
  3098. public:
  3099. #line 48
  3100. __declspec(dllexport) virtual void PreDocConstructL();
  3101. #line 60
  3102. __declspec(dllexport) CDictionaryStore* OpenIniFileLC(RFs& aFs) const;
  3103. __declspec(dllexport) void NewAppServerL(CApaAppServer*& aAppServer);
  3104. };
  3105. #line 14 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\inc\S60UIExampleApplication.h" /* stack depth 1 */
  3106. #line 24
  3107. class CS60UIExampleApplication : public CAknApplication
  3108.     {
  3109.     public:
  3110.         TUid AppDllUid() const;
  3111.     protected:
  3112.         CApaDocument* CreateDocumentL();
  3113.     };
  3114. #line 4 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExample.cpp" /* stack depth 0 */
  3115. static CApaApplication* NewApplication()
  3116. {
  3117. return new CS60UIExampleApplication;
  3118. }
  3119.  TInt E32Main()
  3120. {
  3121. return EikStart::RunApplication( NewApplication );
  3122. }