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

Symbian

开发平台:

C/C++

  1. enum TEikMenuFlags {ETitleArrayOwnedExternally=0x01,EMenuHasItems=0x02,EMenuHasPane=0x04,EBackgroundFaded=0x08, ESoundsInstalled=0x10};
  2. CEikButtonGroupContainer* iMenuCba;
  3. MEikMenuObserver* iMenuObserver;
  4. MEikMenuObserver* iEditMenuObserver;
  5. MEikMenuObserver* iActiveEditMenuObserver;
  6. CEikMenuPane* iMenuPane;
  7.   CEikHotKeyTable* iHotKeyTable;
  8. SCursor iCursor;
  9. TInt iMenuTitleResourceId;
  10. TInt iMenuPaneResourceId;
  11. TInt iMenuHotKeyResourceId;
  12. TInt iSelectedTitle;
  13. TInt iBaseLine;
  14. TInt iMenuTitleLeftSpace;
  15. TInt iMenuFlags;
  16. CTitleArray* iTitleArray;
  17. CArrayFixFlat<SPosition> * iPastMenuPosArray;
  18. TBool iPreventFepMenu;
  19. friend class CEikMenuBarExtension;
  20. CEikMenuBarExtension* iExt;
  21. };
  22. class CEikMenuPaneTitle : public CEikBorderedControl
  23. {
  24. public:
  25. __declspec(dllexport) CEikMenuPaneTitle(CEikMenuBar* aMenuBar);
  26. __declspec(dllexport) void ConstructL();
  27. __declspec(dllexport) void SetSelectedTitle(TInt aSelectedTitle);
  28. __declspec(dllexport) void Draw(const TRect& aRect) const;
  29.     __declspec(dllexport) TMargins Margins() const;
  30. __declspec(dllexport) void Close();
  31. public:
  32. __declspec(dllexport) void HandlePointerEventL(const TPointerEvent& aPointerEvent);
  33. __declspec(dllexport) virtual void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const;
  34. __declspec(dllexport) virtual void HandleResourceChange(TInt aType);
  35. private:
  36.     __declspec(dllexport) void* ExtensionInterface( TUid aInterface );
  37. private:
  38. CEikMenuBar* const iMenuBar;
  39. TInt iSelectedTitle;
  40. };
  41. #line 28 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknenv.h" /* stack depth 2 */
  42. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikappui.h" /* stack depth 3 */
  43. #line 20
  44. class CEikDocument;
  45. class CEikApplication;
  46. class CEikAppUiExtra;
  47. class MApaEmbeddedDocObserver;
  48. struct SExtendedError;
  49. class CApaCommandLine;
  50. class CEikAppUi : public CCoeAppUi, public MEikMenuObserver, public MCoeMessageObserver
  51. , public MObjectProvider
  52. #line 56
  53. {
  54. public:
  55. __declspec(dllexport) ~CEikAppUi();
  56. __declspec(dllexport) CEikAppUi();
  57. public:
  58. __declspec(dllexport) virtual void ConstructL();
  59. __declspec(dllexport) virtual void HandleModelChangeL();
  60. __declspec(dllexport) void LaunchPopupMenuL(TInt aResourceId,const TPoint& aTargetPos,TPopupTargetPosType aTargetType,const CEikHotKeyTable* aHotKeyTable=0 );
  61. inline CEikAppUi* ContainerAppUi() const;
  62. __declspec(dllexport) void SetDocument(CEikDocument* aDocument);
  63. __declspec(dllexport) void SetEmbeddedDocInfo(MApaEmbeddedDocObserver* aObserver,TBool aReadOnly);
  64. __declspec(dllexport) virtual TBool ProcessCommandParametersL(TApaCommand aCommand,TFileName& aDocumentName,const TDesC8& aTail);
  65. __declspec(dllexport) virtual TBool ProcessCommandParametersL(CApaCommandLine& aCommandLine);
  66. __declspec(dllexport) CEikDocument* Document() const;
  67. __declspec(dllexport) CEikApplication* Application() const;
  68. __declspec(dllexport) TRect ClientRect() const;
  69. __declspec(dllexport) virtual TRect ApplicationRect() const;
  70. __declspec(dllexport) virtual void StopDisplayingMenuBar();
  71. __declspec(dllexport) TBool FadeWhenInBackground();
  72. __declspec(dllexport) virtual void SetFadedL(TBool aFaded);
  73. inline void SetFaded(TBool aFaded);
  74. public:
  75. virtual __declspec(dllexport) void ReportResourceChangedToAppL(TInt aType);
  76. __declspec(dllexport) virtual void HandleCommandL(TInt aCommand);
  77. __declspec(dllexport) virtual void ProcessMessageL(TUid aUid,const TDesC8& aParams);
  78. __declspec(dllexport) virtual void OpenFileL(const TDesC& aFileName);
  79. __declspec(dllexport) virtual void CreateFileL(const TDesC& aFileName);
  80. __declspec(dllexport) virtual TErrorHandlerResponse HandleError(TInt aError,const SExtendedError& aExtErr,TDes& aErrorText,TDes& aContextText);
  81. __declspec(dllexport) virtual void HandleResourceChangeL(TInt aType);
  82. public:
  83. __declspec(dllexport) void PrepareToExit();
  84. protected:
  85. __declspec(dllexport) void BaseConstructL(TInt aAppUiFlags=0);
  86. __declspec(dllexport) void ReadAppInfoResourceL(TInt aResourceFileOffset=0);
  87. __declspec(dllexport) void CreateHotKeyControlL(TInt aResourceId);
  88. __declspec(dllexport) void SetDocChanged();
  89. __declspec(dllexport) void SaveAnyChangesL();
  90. __declspec(dllexport) virtual void Exit();
  91. __declspec(dllexport) void SaveL();
  92. __declspec(dllexport) void ClosePopup();
  93. __declspec(dllexport) TBool ProcessCommandParametersL(TApaCommand aCommand,TFileName& aDocumentName);
  94. protected:
  95. __declspec(dllexport) void HandleSideBarMenuL(TInt aResourceId,const TPoint& aPos,TInt aModifiers,const CEikHotKeyTable* aTable);
  96. protected:
  97. __declspec(dllexport) void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
  98. __declspec(dllexport) void HandleForegroundEventL(TBool aForeground);
  99. __declspec(dllexport) void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination);
  100. __declspec(dllexport) void HandleSystemEventL(const TWsEvent& aEvent);
  101. __declspec(dllexport) void HandleScreenDeviceChangedL();
  102. protected:
  103. __declspec(dllexport) void ProcessCommandL(TInt aCommand);
  104. private:
  105. __declspec(dllexport) void SetEmphasis(CCoeControl* aMenuWindow,TBool aEmphasis);
  106. protected:
  107. __declspec(dllexport) MCoeMessageObserver::TMessageResponse HandleMessageL(TUint32 aClientHandleOfTargetWindowGroup, TUid aMessageUid, const TDesC8& aMessageParameters);
  108. protected:
  109. __declspec(dllexport) virtual TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
  110. __declspec(dllexport) virtual MObjectProvider* MopNext();
  111. private:
  112. private:
  113. __declspec(dllexport) virtual TBool ValidFileType(TUid aFileUid) const;
  114. __declspec(dllexport) virtual void Reserved_3();
  115. __declspec(dllexport) virtual void Reserved_4();
  116. public:
  117. __declspec(dllexport) TLanguage ApplicationLanguageL() const;
  118. public:
  119. enum
  120. {
  121. EStandardApp = 0x00,
  122. ENoAppResourceFile = 0x01,
  123. ENonStandardResourceFile= 0x02,
  124. ENoScreenFurniture = 0x04,
  125. ELastReservedEikAppUiFlag = 0x8000
  126. };
  127. public:
  128. __declspec(dllexport) void ReportResourceChangedToAppStackL(CEikAppUi* aTopApp, TInt aEventId);
  129. private:
  130. void CreateResourceIndependentFurnitureL();
  131. TBool ValidFileExistsL(const TDesC& aFileName);
  132. protected:
  133. CEikDocument* iDocument;
  134. CEikAppUi* iContainerAppUi;
  135. MApaEmbeddedDocObserver* iDoorObserver;
  136. TBool iEmbeddedAndReadOnly;
  137. TInt iFlags;
  138. private:
  139. enum
  140. {
  141. EEmbedded = 0x01
  142. };
  143. private:
  144. CEikAppUiExtra* iAppUiExtra;
  145. };
  146. inline CEikAppUi* CEikAppUi::ContainerAppUi() const
  147. { return iContainerAppUi; }
  148. #line 29 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknenv.h" /* stack depth 2 */
  149. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknlayout2id.h" /* stack depth 3 */
  150. #line 26
  151. enum TAknLayoutId
  152. {
  153. EAknLayoutIdELAF = 0,
  154. EAknLayoutIdABRW = 1,
  155. EAknLayoutIdAPAC = 2
  156. };
  157. #line 30 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknenv.h" /* stack depth 2 */
  158. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\akndef.h" /* stack depth 3 */
  159. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\akndef.hrh" /* stack depth 4 */
  160. #line 30
  161. enum TAknUiZoom
  162. {
  163. EAknUiZoomAutomatic=-1,
  164. EAknUiZoomNormal,
  165. EAknUiZoomSmall,
  166. EAknUiZoomLarge,
  167. EAknUiZoomVerySmall,
  168. EAknUiZoomVeryLarge
  169. };
  170. #line 24 "C:\Symbian\9.1\S60_3rd\epoc32\include\akndef.h" /* stack depth 3 */
  171. class TVwsViewId;
  172. const TInt KEikMessageWindowsFadeChange =0x10006890;
  173. const TInt KEikMessageCaptionedControlEditableStateChange =0x10008E99;
  174. const TInt KEikMessageCaptionedControlNotEditableStateChange =0x10008E9A;
  175. const TInt KEikMessageCaptionedControlEditableStateChangeWideWithGraphic =0x101F5FBA;
  176. const TInt KEikMessageCaptionedControlEditableStateChangeWideWithoutGraphic =0x101F5FBB;
  177. const TInt KEikMessageCaptionedControlNotEditableStateChangeWideWithGraphic =0x101F5FBC;
  178. const TInt KEikMessageCaptionedControlNotEditableStateChangeWideWithoutGraphic =0x101F5FBD;
  179. const TInt KEikClearPartialForegroundState =0x101f54f4;
  180. const TInt KEikPartialForeground =0x101f6aab;
  181. const TInt KEikDynamicLayoutVariantSwitch = 0x101F8121;
  182. const TInt KEikDynamicLayoutVariantSwitch_APAC = 0x101F8124;
  183. const TInt KEikInputLanguageChange = 0x101F8519;
  184. const TInt KAknHardwareLayoutSwitch = 0x10202672;
  185. const TInt KAknDelayedLayoutSwitch = 0x102797FD;
  186. namespace AknDef
  187.     {
  188.     __declspec(dllexport) TInt GetPhoneIdleViewId(TVwsViewId& aViewId);
  189.     }
  190. #line 31 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknenv.h" /* stack depth 2 */
  191. namespace AknLayout { class CInstance; }
  192. class CCdlEngineRef;
  193. class MAknEditingStateIndicator;
  194. class MAknIntermediateState;
  195. class CAknAppUi;
  196. class CAknWaitDialog;
  197. class CEikListBox;
  198. class CAknSettingCache;
  199. class CAknFontRegistry;
  200. class CLafSystemFont;
  201. typedef CLafSystemFont CAknSystemFont;
  202. #line 75
  203. class CAknEnv : public CBase
  204. {
  205. public:
  206. #line 87
  207. __declspec(dllexport) static CAknEnv* Static();
  208. __declspec(dllexport) ~CAknEnv();
  209. public:
  210. #line 103
  211. __declspec(dllexport) void ExecuteEmptyPopupListL(const TDesC *aEmptyText=0);
  212. #line 116
  213. __declspec(dllexport) void ExecuteEmptyPopupListL(const TDesC *aEmptyText,
  214.                                      const TDesC *aTitle,
  215.                                      TInt aSoftkeyId=0);
  216. public:
  217. __declspec(dllexport) void SetFepMenuObserver(MEikMenuObserver* aObserver);
  218. __declspec(dllexport) MEikMenuObserver* FepMenuObserver();
  219. __declspec(dllexport) MAknEditingStateIndicator* EditingStateIndicator();
  220. #line 149
  221. __declspec(dllexport) MAknEditingStateIndicator* SwapEditingStateIndicator(
  222.     MAknEditingStateIndicator* aIndicator);
  223. __declspec(dllexport) static void ExitForegroundAppL();
  224. public:
  225. __declspec(dllexport) void RegisterIntermediateStateL(MAknIntermediateState *aState);
  226. #line 174
  227. __declspec(dllexport) void UnRegisterIntermediateState(MAknIntermediateState *aState);
  228. __declspec(dllexport) void CloseAllIntermediateStates();
  229. public:
  230. __declspec(dllexport) static void RunAppShutter();
  231. #line 194
  232. __declspec(dllexport) static CAknAppUi* AppWithShutterRunning();
  233. __declspec(dllexport) static void StopSchedulerWaitWithBusyMessage(
  234.     CActiveSchedulerWait& aWait);
  235. public:
  236. __declspec(dllexport) void CreateCbaObserverL(CEikButtonGroupContainer *aCba,
  237.                                  CEikListBox *aListBox);
  238. __declspec(dllexport) void RemoveCbaObserver();
  239. __declspec(dllexport) void InformCbaDeletion(CEikButtonGroupContainer *aCba);
  240. public:
  241. __declspec(dllexport) void GetCurrentLayoutId(TAknLayoutId& aCurrentLayoutId) const;
  242.     __declspec(dllexport) void GetCurrentGlobalUiZoom(TAknUiZoom& aCurrentGlobalUiZoom) const;
  243. public:
  244. __declspec(dllexport) TInt StatusPaneResIdForCurrentLayout(TInt aResId) const;
  245. public:
  246. #line 269
  247.     __declspec(dllexport) TInt RequestWsBuffer( TInt aRequestedBufferSize );
  248. #line 282
  249.     __declspec(dllexport) void CancelWsBufferRequest( TInt aRequestID );
  250. public:
  251. __declspec(dllexport) CAknSettingCache& SettingCache() const;
  252. #line 299
  253.     CAknFontRegistry& FontRegistry() const;
  254. #line 310
  255.     CArrayPtr<CAknSystemFont> * SystemFontArray() const;
  256.     void UpdateSystemFontsL();
  257. public:
  258. __declspec(dllexport) TBool LoadAknLayoutL();
  259. __declspec(dllexport) const AknLayout::CInstance& AknLayout() const;
  260. public:
  261. #line 341
  262.     __declspec(dllexport) static TRgb AvkonColor( TInt );
  263. public:
  264.     __declspec(dllexport) TBool SplitViewActive() const;
  265.     void SplitViewActive( const TBool aSplitViewActive );
  266. private:
  267.     void SetWsBufferSize();
  268.     void SetWsBufferSize( TInt aRequestedBufferSize );
  269.     friend class AknBidiTextUtils;
  270.     friend class TAknTextWrapper;
  271. #line 375
  272.     TBidirectionalState::TRunInfo* RunInfoArray( TInt& aLength ) const;
  273. #line 385
  274.     TInt PrepareRunInfoArray( const TDesC& aLogicalText );
  275. #line 395
  276.     TInt SetRequiredRunInfoArraySize( TInt aLength );
  277. void SetLayoutRequirementsL();
  278. void AssertLayoutLoaded();
  279. TBool LoadAknLayoutL(TAknLayoutId aId, const TPixelsTwipsAndRotation& aSizeRot, TAknUiZoom aUiZoom);
  280.     TAknUiZoom ResolveCurrentUiZoom();
  281.     void SetConeFontSizeArrayL() const;
  282. private:
  283. static TInt RealCloseIntermediateStates(TAny *aEnv);
  284. static TInt SchedulerStoppedCallBack(TAny* aWaitNote);
  285. void DoSchedulerStoppedCallBack();
  286. private:
  287. friend class LafEnv;
  288. __declspec(dllexport) static void InstallAknEnvAsExtensionL(CEikonEnv* aEnv);
  289. __declspec(dllexport) CAknEnv();
  290. __declspec(dllexport) void ConstructL();
  291. private:
  292. MEikMenuObserver* iFepMenuObserver;
  293. MAknEditingStateIndicator* iEditStateIndicator;
  294. private:
  295. CArrayPtr<MAknIntermediateState> *iStateArray;
  296. CArrayPtr<CBase> *iDeleteArray;
  297. CIdle *iIdle;
  298. CAknWaitDialog* iBusyMsgDialog;
  299. TInt iBusyMsgCount;
  300. MEikCommandObserver *iCbaCommandObserver;
  301.     CAknSettingCache* iSettingCache;
  302.     TBidirectionalState::TRunInfo* iRunInfoArray;
  303.     TInt iRunInfoArrayLength;
  304.     struct TWsBufferRequest
  305.         {
  306.         TInt iRequestID;
  307.         TInt iRequestedSize;
  308.         };
  309.     RArray<TWsBufferRequest> iWsBufferRequestArray;
  310.     TInt iRequestIdCounter;
  311.     TInt iCurrentWsBufferRequest;
  312. TAknLayoutId iLastLayoutId;
  313. TPixelsTwipsAndRotation iLastLayoutSizeRot;
  314. TAknUiZoom iLastZoom;
  315. CEikonEnv* iCoeEnv;
  316.     CAknFontRegistry* iFontRegistry;
  317.     CCdlEngineRef* iCdlEngRef;
  318.     const AknLayout::CInstance* iLayout;
  319.     CArrayPtr<CAknSystemFont> * iSystemFontArray;
  320.     TBool iSplitViewActive;
  321.     };
  322. #line 40 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknutils.h" /* stack depth 1 */
  323. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknlayout.lag" /* stack depth 2 */
  324. #line 12
  325. class TAknTextLineLayout;
  326. class TAknWindowLineLayout;
  327. class TAknMultiLineTextLayout;
  328. #line 42 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknutils.h" /* stack depth 1 */
  329. const TInt KMaxColumnDataLength = 80;
  330. const TInt KMaxTotalDataLength = 8*KMaxColumnDataLength;
  331. #line 63
  332. class CCoeControl;
  333. class CEikTextListBox;
  334. class CEikColumnListBox;
  335. class CEikFormattedCellListBox;
  336. class CGulIcon;
  337. class CEikSettingsListBox;
  338. class CAknLAF;
  339. class CEikImage;
  340. class CEikMfne;
  341. class CEikListBox;
  342. class CEikLabel;
  343. class CEikEdwin;
  344. class CEikMenuPane;
  345. class CAknPopupField;
  346. class CListBoxView;
  347. class CAknColumnListBox;
  348. class CEikSecretEditor;
  349. class CFindExtension;
  350. class CAknLayoutFont;
  351. class TAknFontSpecification;
  352. class CAknAppUiBase;
  353. const TInt  KDefaultClipWidth = -1;
  354. const TUint KDefaultClipChar  = TUint(0x2026);
  355. #line 99
  356. class AknTextUtils
  357.     {
  358. public:
  359.     enum TClipDirection
  360. {
  361. EDoNotClip,
  362. EClipFromEnd,
  363. EClipFromBeginning
  364. };
  365. #line 120
  366.     __declspec(dllexport) static TBool ClipToFit(TDes& aBuffer, const CFont& aFont, TInt aMaxWidthInPixels, TClipDirection aDir=EClipFromEnd, TInt aClipWidth = KDefaultClipWidth, const TDesC &aClipString=(TPtrC((const TText *)L"...")) );
  367.     __declspec(dllexport) static TBool ClipToFit(TDes& aBuffer, TClipDirection aDir, CEikFormattedCellListBox *aListBox, TInt aItemIndex, TInt aSubCellNumber);
  368.     __declspec(dllexport) static TBool ClipToFit(TDes& aBuffer, TClipDirection aDir, CEikColumnListBox *aListBox, TInt aItemIndex, TInt aColumnNumber);
  369.     static TBool DoClipToFit(
  370.         TDes& aBuffer,
  371.         const CFont& aFont,
  372.         TInt aMaxWidthInPixels,
  373.         TClipDirection aDir,
  374.         TInt aClipWidth,
  375.         const TDesC& aClipString );
  376. #line 158
  377.     __declspec(dllexport) static void WrapToArrayL(
  378.         const TDesC& aStringToWrap,
  379.     const CArrayFix<TInt>& aLineWidthArray,
  380.     const CFont& aFont,
  381.     CArrayFix<TPtrC>& aWrappedArray);
  382. #line 174
  383.     __declspec(dllexport) static void WrapToArrayL(
  384.         const TDesC& aStringToWrap,
  385.     TInt aLineWidth,
  386.     const CFont& aFont,
  387.     CArrayFix<TPtrC>& aWrappedArray );
  388. #line 196
  389.     __declspec(dllexport) static void WrapToArrayAndClipL(
  390.         TDes& aStringToWrap,
  391.     const CArrayFix<TInt>& aLineWidthArray,
  392.     const CFont& aFont,
  393.     CArrayFix<TPtrC>& aWrappedArray );
  394. #line 219
  395. __declspec(dllexport) static void ChopToArrayAndClipL(
  396. TDes& aStringToChop,
  397.     const CArrayFix<TInt>& aLineWidthArray,
  398.     const CFont& aFont,
  399.     CArrayFix<TPtrC>& aChoppedArray);
  400. #line 242
  401. __declspec(dllexport) static void ChopToArrayAndClipL(
  402. TDes& aStringToChop,
  403.     TInt aLineWidth,
  404.     const CFont& aFont,
  405.     CArrayFix<TPtrC>& aChoppedArray );
  406. #line 260
  407.     __declspec(dllexport) static void WrapToStringL(
  408.         const TDesC& aStringToWrap,
  409.     const CArrayFix<TInt>& aLineWidthArray,
  410.     const CFont& aFont,
  411.     TDes& aWrappedString );
  412. #line 280
  413. __declspec(dllexport) static void WrapToStringAndClipL(
  414.     const TDesC& aStringToWrap,
  415.     const CArrayFix<TInt>& aLineWidthArray,
  416.     const CFont& aFont,
  417.     TDes& aWrappedString );
  418. #line 301
  419.     __declspec(dllexport) static void StripCharacters(TDes &aDes, const TDesC &aCharacters);
  420. #line 314
  421.     __declspec(dllexport) static void ReplaceCharacters(TDes &aDes, const TDesC &aChars, TChar aReplacement);
  422. #line 323
  423.     __declspec(dllexport) static void PackWhiteSpaces(TDes &aDes, const TDesC &aWhiteSpaceChars);
  424.     static void WrapToStringL(
  425.         const TDesC& aStringToWrap,
  426.     const CArrayFix<TInt>& aLineWidthArray,
  427.     const CFont& aFont,
  428.     TDes& aWrappedString,
  429.         TInt aFlags,
  430.         TInt aDirectionality );
  431.     static void WrapToArrayL(
  432.         TDes& aStringToWrap,
  433.         const CArrayFix<TInt> * aLineWidthArray,
  434.         const CFont& aFont,
  435.         CArrayFix<TPtrC>& aWrappedArray,
  436.         TInt aLineWidth,
  437.         TInt aFlags,
  438.         TInt aDirectionality );
  439.     static void ChopToArrayAndClipL(
  440. TDes& aStringToChop,
  441.     const CArrayFix<TInt> * aLineWidthArray,
  442.     const CFont& aFont,
  443.     CArrayFix<TPtrC>& aChoppedArray,
  444.         TInt aLineWidth );
  445. #line 358
  446. static TBool IsEmptyText( const TDesC& aTextToTest );
  447. #line 374
  448. __declspec(dllexport) static void LanguageSpecificNumberConversion(TDes &aDes);
  449. #line 384
  450.     __declspec(dllexport) static void ConvertDigitsTo( TDes& aDes, TDigitType aDigitType );
  451. #line 398
  452.     __declspec(dllexport) static TBidiText::TDirectionality CurrentScriptDirectionality();
  453.     static TDigitType InputLanguageFilteredDigitType();
  454.     static TDigitType DisplayTextLanguageFilteredDigitType();
  455. __declspec(dllexport) static TDigitType NumericEditorDigitType();
  456. #line 440
  457.     __declspec(dllexport) static void DisplayTextLanguageSpecificNumberConversion(TDes &aDes);
  458. #line 453
  459.     __declspec(dllexport) static TDigitType TextEditorDigitType();
  460. enum TDigitModeQueryType {
  461. EDigitModeEditorDefault,
  462. EDigitModeUserModifiableEditor,
  463.     EDigitModeShownToUser
  464. };
  465. #line 474
  466. __declspec(dllexport) static TBool DigitModeQuery(TDigitModeQueryType aQueryType = EDigitModeShownToUser);
  467.     __declspec(dllexport) static HBufC *ConvertFileNameL(const TDesC &aDes);
  468.     __declspec(dllexport) static HBufC* LoadScalableTextL(CCoeEnv& aCoe, TInt aResourceId);
  469.     __declspec(dllexport) static HBufC* LoadScalableTextLC(CCoeEnv& aCoe, TInt aResourceId);
  470.     __declspec(dllexport) static TInt LoadScalableText(CCoeEnv& aCoe, TInt aResourceId, TDes& aBuffer );
  471.     __declspec(dllexport) static HBufC* ClipAccordingScreenOrientationLC(CCoeEnv& aCoe, HBufC* aBuf);
  472. #line 529
  473.     __declspec(dllexport) static TPtrC ChooseScalableText(
  474.         const TDesC& aText,
  475.         const CFont& aFont,
  476.         TInt aMaxWidthInPixels );
  477.     };
  478. const static TLitC<sizeof(L"t")/2> KAknStripTabs={sizeof(L"t")/2-1,L"t"} ;
  479. const static TLitC<sizeof(L"tn")/2> KAknStripListControlChars={sizeof(L"tn")/2-1,L"tn"} ;
  480. const static TLitC<sizeof(L"t")/2> KAknReplaceTabs={sizeof(L"t")/2-1,L"t"} ;
  481. const static TLitC<sizeof(L"tn")/2> KAknReplaceListControlChars={sizeof(L"tn")/2-1,L"tn"} ;
  482. const static TLitC<sizeof(L" ntr")/2> KAknCommonWhiteSpaceCharacters={sizeof(L" ntr")/2-1,L" ntr"} ;
  483. #line 551
  484. class AknSelectionService
  485.     {
  486. public:
  487.     __declspec(dllexport) static void HandleSelectionListProcessCommandL(TInt aCommand, CEikListBox* aListBox);
  488.     __declspec(dllexport) static void HandleMultiselectionListProcessCommandL(TInt aCommand, CEikListBox* aListBox);
  489.     __declspec(dllexport) static void HandleMarkableListProcessCommandL(TInt aCommand, CEikListBox* aListBox);
  490.     __declspec(dllexport) static TKeyResponse HandleMenuListOfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType, CEikListBox* aListBox);
  491.     __declspec(dllexport) static void HandleMarkableListDynInitMenuPane(TInt aResourceId, CEikMenuPane *aMenu, CEikListBox *aListBox);
  492.     __declspec(dllexport) static void HandleMarkableListDynInitMenuItem(CEikMenuPane *aMenu, CEikListBox *aListBox, TInt aCommandId, TBool aCanBeAppliedToMultipleItems);
  493.     __declspec(dllexport) static void HandleMarkableListUpdateAfterCommandExecution(CEikListBox *aListBox);
  494.     __declspec(dllexport) static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, TBool aCurrentItemWasRemoved);
  495.     __declspec(dllexport) static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, CArrayFix<TInt> &aIndexesOfRemovedItemsBeforeRemoval);
  496.     };
  497. class CAknSearchField;
  498. #line 605
  499. class AknFind
  500.     {
  501. public:
  502.     __declspec(dllexport) static void HandleFindPopupProcessCommandL(TInt aCommand, CEikListBox *aListBox, CAknSearchField *aSearchField, CCoeControl *aParentControl);
  503.     __declspec(dllexport) static TKeyResponse HandleFindOfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType, CCoeControl *aListBoxParent, CEikListBox *aListBox, CAknSearchField *aSearchField, TBool isFindPopup, TBool &aNeedRefresh);
  504.     __declspec(dllexport) static void HandleFindSizeChanged(CCoeControl *aParentControl,
  505.        CEikListBox *aListBox,
  506.        CAknSearchField *aSearchField,
  507.        TBool ispopup = ETrue,
  508.        TInt aFindWindowResourceId = 0x8cc007e ,
  509.        TInt aListAreaId = 0x8cc0075 ,
  510.        TInt aListResourceIdWithFindPopup = 0x8cc0074 ,
  511.        TInt aFindWindowParentResourceId = 0x8cc007d );
  512.     __declspec(dllexport) static void HandleFixedFindSizeChanged(CCoeControl *aParentControl,
  513.     CAknColumnListBox *aListBox,
  514.     CAknSearchField *aSearchField);
  515.     __declspec(dllexport) static void HandlePopupFindSizeChanged(CCoeControl *aParentControl,
  516.     CEikListBox *aListBox,
  517.     CAknSearchField *aSearchField);
  518.     __declspec(dllexport) static void HandleFindSizeChangedLayouts(CCoeControl *aParentControl,
  519.         CEikListBox* aListBox,
  520.         CAknSearchField* aSearchField,
  521.         const TAknWindowLineLayout& aFindWindow,
  522.         const TAknWindowLineLayout& aListArea,
  523.         TBool aIsPopup,
  524.         const TAknWindowLineLayout& aFindWindowParent );
  525. public:
  526.     __declspec(dllexport) static TBool IsFindMatch(const TDesC& aItemText, const TDesC& aSearchText);
  527.     __declspec(dllexport) static TBool IsFindWordSeparator(TChar aCh);
  528.     static void HandleFindPaneVisibility(CAknSearchField *aSearchField, TBool ispopup, TBool textchanged, TBool &aNeedRefresh);
  529.     };
  530. class AknEditUtils
  531.     {
  532.     public:
  533.     struct SAknEditorParameters
  534. {
  535. TInt iEditingSpace;
  536. TInt iEditingWindow;
  537. TInt iCharacterCase;
  538. TInt iJustification;
  539. TBool iAllowedToMoveInsertionPoint;
  540. TBool iCursorYesNo;
  541. TBool iOverflowYesNo;
  542. };
  543.     __declspec(dllexport) static void ConstructEditingL(CEikEdwin* aEdwin, TInt aResourceId);
  544.     __declspec(dllexport) static void ConstructEditingL(CEikEdwin* aEdwin, TResourceReader& aReader);
  545.     __declspec(dllexport) static void ConstructEditingL(CEikEdwin* aEdwin, const SAknEditorParameters &aParams);
  546. #line 710
  547.     __declspec(dllexport) static void ConstructEditingL(CEikEdwin* aEdwin,
  548.    TInt aEditingSpace,
  549.                        TInt aEditingWindow,
  550.                        TInt aCharacterCase,
  551.                        TInt aJustification,
  552.                        TBool aAllowedToMoveInsertionPoint,
  553.                        TBool aCursorYesNo,
  554.                        TBool aOverflowYesNo);
  555. #line 738
  556.     __declspec(dllexport) static void ConstructEditingL(CEikEdwin* aEdwin,
  557.                                               TInt aEditingSpace,
  558.                                               TInt aEditingWindow,
  559.                                               TInt aCharacterCase,
  560.                                               TInt aJustification,
  561.                                               TBool aAllowedToMoveInsertionPoint,
  562.                                               TBool aCursorYesNo,
  563.                                               TBool aOverflowYesNo,
  564.                                               TBool aIsResizable);
  565.     };
  566. #line 757
  567. class CListBoxNumbers : public CBase
  568. {
  569. public:
  570. __declspec(dllexport) CListBoxNumbers(CEikTextListBox* aListBox);
  571. __declspec(dllexport) void ConstructL();
  572. __declspec(dllexport) void UpdateL();
  573. private:
  574. CEikTextListBox* iListBox;
  575. };
  576. class CAknListBoxFilterItems;
  577. #line 778
  578. class CAknFilteredTextListBoxModel : public CTextListBoxModel, public MDesC16Array
  579.     {
  580. public:
  581.     __declspec(dllexport) void CreateFilterL(CEikListBox* aListBox, CAknSearchField* aSearchField);
  582.     __declspec(dllexport) void RemoveFilter();
  583.     __declspec(dllexport) CAknListBoxFilterItems* Filter() const;
  584.     __declspec(dllexport) ~CAknFilteredTextListBoxModel();
  585. public:
  586.     __declspec(dllexport) virtual TInt NumberOfItems() const;
  587.     __declspec(dllexport) virtual TPtrC ItemText(TInt aItemIndex) const;
  588. public:
  589.     __declspec(dllexport) const MDesC16Array * MatchableTextArray() const;
  590. private:
  591.     CAknListBoxFilterItems* iFilter;
  592. private:
  593.     __declspec(dllexport) TInt MdcaCount() const;
  594.     __declspec(dllexport) TPtrC MdcaPoint(TInt aIndex) const;
  595. private:
  596. __declspec(dllexport) virtual TAny* MListBoxModel_Reserved();
  597.     };
  598. #line 846
  599. class CAknListBoxFilterItems : public CBase, public MCoeControlObserver
  600.     {
  601. public:
  602. #line 857
  603.     __declspec(dllexport) CAknListBoxFilterItems(CEikListBox *aListBox, CAknSearchField *aSearchField, MListBoxModel *aModel, CListBoxView *aView);
  604.     __declspec(dllexport) void ConstructL();
  605.     __declspec(dllexport) void ResetFilteringL();
  606.     __declspec(dllexport) void UpdateCachedDataL();
  607.     __declspec(dllexport) ~CAknListBoxFilterItems();
  608. public:
  609.     __declspec(dllexport) CArrayFix<TInt> *SelectionIndexes();
  610.     __declspec(dllexport) void UpdateSelectionIndexesL();
  611.     __declspec(dllexport) void UpdateSelectionIndexL(TInt aVisibleIndex);
  612. public:
  613.     __declspec(dllexport) TInt FilteredNumberOfItems() const;
  614.     __declspec(dllexport) TInt FilteredItemIndex(TInt aVisibleItemIndex) const;
  615. public:
  616.     __declspec(dllexport) TInt NonFilteredNumberOfItems() const;
  617.     __declspec(dllexport) TInt VisibleItemIndex(TInt aOriginalIndex) const;
  618. public:
  619.     __declspec(dllexport) TPtrC DefaultMatchableItemFromItem(TPtrC aText);
  620. public:
  621.     __declspec(dllexport) void HandleOfferkeyEventL();
  622.     __declspec(dllexport) void HandleItemArrayChangeL();
  623. public:
  624.     __declspec(dllexport) void SetObserver(MCoeControlObserver *aObserver);
  625.     __declspec(dllexport) void HandleControlEventL(CCoeControl *aControl, TCoeEvent aEventType);
  626. public:
  627.     __declspec(dllexport) void DeferredSendKeyEventToFepL(TUint aValue);
  628.     static TInt IdleCallBack(TAny *aFilterItems);
  629. public:
  630.     __declspec(dllexport) void SetParentControl(CCoeControl *aControl);
  631.     __declspec(dllexport) void SetPopup();
  632. public:
  633. __declspec(dllexport) void SetListBox(CEikListBox *aListBox);
  634. __declspec(dllexport) void SetSearchField(CAknSearchField *aSearchField);
  635. __declspec(dllexport) void SetModel(MListBoxModel *aModel);
  636. __declspec(dllexport) void SetView(CListBoxView *aView);
  637. public:
  638.     __declspec(dllexport) CCoeControl *FindBox() const;
  639. private:
  640.     void NoCriteriaL();
  641.     void TightenCriteriaL(const TDesC& aCriteria);
  642.     void ReleaseCriteriaL(const TDesC& aCriteria);
  643.     void InstallEmptyTextL();
  644.     void UninstallEmptyTextL();
  645.     void FetchSelectionIndexesFromListBoxL();
  646.     void PushSelectionIndexesToListBoxL();
  647.     void HandleItemAdditionL();
  648.     void HandleItemRemovalL();
  649. private:
  650.     TBool IsItemVisible(const TDesC& aMatchableItemString, const TDesC& aSearchText);
  651.     static TBool IsSeparatorCharacter(TChar c);
  652.     TBool IsItemSelected(TInt aRealIndex) const;
  653. private:
  654.     CArrayFix<TInt> *iShownIndexes;
  655.     CArrayFix<TInt> *iSelectionIndexes;
  656.     HBufC *iOldSearchCriteria;
  657.     MListBoxModel *iModel;
  658.     CListBoxView *iView;
  659.     TInt iOldItemCount;
  660.     HBufC* iEmptyListText;
  661.     CEikListBox* iListBox;
  662.     CAknSearchField* iSearchField;
  663.     TBuf<256> iMatchableText;
  664.     MCoeControlObserver *iObserver;
  665.     CFindExtension *iExtension;
  666.     TUint iKeyValue;
  667.     CCoeControl *iParentControl;
  668.     TBool iIsPopup;
  669.     TBool iDisableChangesToShownIndexes;
  670.     };
  671. #line 1070
  672. template<class T>
  673. class NoOptimizationView : public T
  674.     {
  675. public:
  676.     virtual void VScrollTo(TInt aNewTopItemIndex, TRect& aMinRedrawRect)
  677. {
  678. if (this->RedrawDisabled())
  679. return;
  680. if (this->iTopItemIndex == aNewTopItemIndex)
  681. return;
  682. aMinRedrawRect.SetRect(this->iViewRect.iTl,this->iViewRect.Size());
  683. this->SetTopItemIndex(aNewTopItemIndex);
  684. this->Draw(&aMinRedrawRect);
  685. }
  686.     };
  687. #line 1095
  688. class AknLAFUtils
  689. {
  690. public:
  691. static void DrawLines(CGraphicsContext* aGc,
  692.       const TRect& mainpane,
  693.       TInt x);
  694. __declspec(dllexport) static void ReplaceColumn(TPtr aTarget, TDesC* aSource, TDesC* aReplacement, TChar aColumnSeparator, TInt aColumn);
  695. };
  696. #line 1114
  697. struct SAknLayoutGfx;
  698. struct SAknLayoutText;
  699. struct SAknLayoutCmd;
  700. struct SAknLayoutGfx;
  701. struct SAknLayoutPos
  702.     {
  703.     TInt l, t, r, b, W, H;
  704.     typedef SAknLayoutPos ItemType;
  705.     static void ReadResource(TResourceReader& aReader, ItemType& aTarget);
  706.     };
  707. template<class T> class CArrayReader;
  708. class CAknGenericReader : public CBase
  709.     {
  710. public:
  711.     __declspec(dllexport) void ConstructL(TInt aResourceId);
  712.     __declspec(dllexport) virtual void ConstructFromResourceL(TResourceReader& aReader);
  713.     __declspec(dllexport) ~CAknGenericReader();
  714.     __declspec(dllexport) const SAknLayoutGfx* GfxItem(TInt aIndex) const;
  715.     __declspec(dllexport) const SAknLayoutText* TextItem(TInt aIndex) const;
  716.     __declspec(dllexport) const SAknLayoutCmd* CmdItem(TInt aIndex) const;
  717.     __declspec(dllexport) const SAknLayoutGfx* AreaItem(TInt aIndex) const;
  718.     CArrayReader<SAknLayoutGfx> * iGfx;
  719.     CArrayReader<SAknLayoutText> * iText;
  720.     CArrayReader<SAknLayoutCmd> * iCmd;
  721.     CArrayReader<SAknLayoutGfx> * iArea;
  722.     };
  723. const TInt AknLayoutUtilsNoValue = (-16380) ;
  724. #line 1183
  725. class AknLayoutUtils
  726.     {
  727. public:
  728.     struct SAknLayoutText
  729. {
  730. TInt iFont, iC, iL, iR, iB, iW, iJ;
  731. };
  732.     struct SAknLayoutTextMultiline
  733. {
  734. TInt iFont, iC, iL, iR, iB, iW, iJ, iNumberOfLinesShown, iNextLineB;
  735. };
  736.     typedef SAknLayoutTextMultiline SAknLayoutLabel;
  737.     typedef SAknLayoutTextMultiline SAknLayoutEdwin;
  738.     typedef SAknLayoutText SAknLayoutMfne;
  739.     typedef SAknLayoutText SAknLayoutSecEd;
  740.     struct SAknLayoutRect
  741. {
  742. TInt iC, iL, iT, iR, iB, iW, iH;
  743. };
  744.     typedef SAknLayoutRect SAknLayoutControl;
  745.     typedef SAknLayoutRect SAknLayoutImage;
  746.     __declspec(dllexport) static void LayoutLabel(CEikLabel* aLabel, const TRect& aLabelParent, TInt aResourceId, const CFont* aCustomFont=0);
  747.     __declspec(dllexport) static void LayoutLabel(CEikLabel* aLabel, const TRect& aLabelParent, TResourceReader& aReader, const CFont* aCustomFont=0);
  748.     __declspec(dllexport) static void LayoutLabel(CEikLabel* aLabel, const TRect& aLabelParent, const SAknLayoutLabel& aLayout, const CFont *aCustomFont=0);
  749.     __declspec(dllexport) static void LayoutLabel(CEikLabel* aLabel, const TRect& aLabelParent, const TAknMultiLineTextLayout& aLayout, const CFont *aCustomFont=0);
  750.     __declspec(dllexport) static void LayoutLabel(CEikLabel* aLabel, const TRect& aLabelParent, const TAknTextLineLayout& aLayout, const CFont *aCustomFont=0);
  751. #line 1238
  752.     __declspec(dllexport) static void LayoutLabel(CEikLabel* aLabel, const TRect& aLabelParent, TInt font, TInt C, TInt l, TInt r, TInt B, TInt W, TInt J, TInt NextLineB=0, const CFont* aCustomFont=0);
  753.     __declspec(dllexport) static void LayoutEdwin(CEikEdwin* aEdwin, const TRect& aEdwinParent, TInt aResourceId, TInt aNumberOfLines = 0, const CFont* aCustomFont=0, TBool aMinimizeEdwinView=EFalse);
  754.     __declspec(dllexport) static void LayoutEdwin(CEikEdwin* aEdwin, const TRect& aEdwinParent, TResourceReader& aReader, TInt aNumberOfLines = 0, const CFont* aCustomFont=0, TBool aMinimizeEdwinView=EFalse);
  755.     __declspec(dllexport) static void LayoutEdwin(CEikEdwin* aEdwin, const TRect& aEdwinParent, const SAknLayoutEdwin& aLayout, const CFont* aCustomFont=0, TBool aMinimizeEdwinView=EFalse);
  756.     __declspec(dllexport) static void LayoutEdwin( CEikEdwin* aEdwin,
  757.                                       const TRect& aEdwinParent,
  758.                                       const TAknMultiLineTextLayout& aLayout,
  759.                                       const CFont* aCustomFont=0,
  760.                                       TBool aMinimizeEdwinView=EFalse);
  761.     __declspec(dllexport) static void LayoutEdwin( CEikEdwin* aEdwin,
  762.                                       const TRect& aEdwinParent,
  763.                                       const TAknMultiLineTextLayout& aLayout,
  764.                                       TAknsQsnTextColorsIndex aOverrideColor,
  765.                                       const CFont* aCustomFont=0,
  766.                                       TBool aMinimizeEdwinView=EFalse );
  767.     __declspec(dllexport) static void LayoutEdwin( CEikEdwin* aEdwin,
  768.                                       const TRect& aEdwinParent,
  769.                                       const TAknTextLineLayout& aLayout,
  770.                                       const CFont* aCustomFont=0,
  771.                                       TBool aMinimizeEdwinView=EFalse );
  772.     __declspec(dllexport) static void LayoutEdwin( CEikEdwin* aEdwin,
  773.                                       const TRect& aEdwinParent,
  774.                                       const TAknTextLineLayout& aLayout,
  775.                                       TAknsQsnTextColorsIndex aOverrideColor,
  776.                                       const CFont* aCustomFont=0,
  777.                                       TBool aMinimizeEdwinView=EFalse );
  778. #line 1298
  779.     __declspec(dllexport) static void LayoutEdwin( CEikEdwin* aEdwin,
  780.                                       const TRect& aEdwinParent,
  781.                                       TInt font,
  782.                                       TInt C,
  783.                                       TInt l,
  784.                                       TInt r,
  785.                                       TInt B,
  786.                                       TInt W,
  787.                                       TInt J,
  788.                                       TInt aNumberOfLinesShown,
  789.                                       TInt aNextLineBaseline,
  790.                                       const CFont* aCustomFont=0 ,
  791.                                       TBool aMinimizeEdwinView=EFalse );
  792.     __declspec(dllexport) static void LayoutEdwin( CEikEdwin* aEdwin,
  793.                                       const TRect& aEdwinParent,
  794.                                       TInt font,
  795.                                       TInt C,
  796.                                       TInt l,
  797.                                       TInt r,
  798.                                       TInt B,
  799.                                       TInt W,
  800.                                       TInt J,
  801.                                       TInt aNumberOfLinesShown,
  802.                                       TInt aNextLineBaseline,
  803.                                       TAknsQsnTextColorsIndex aOverrideColor,
  804.                                       const CFont* aCustomFont=0 ,
  805.                                       TBool aMinimizeEdwinView=EFalse );
  806.     __declspec(dllexport) static TRect MinimizedEdwinRect(const CEikEdwin *aEdwin);
  807.     __declspec(dllexport) static void LayoutMfne(CEikMfne* aMfne, const TRect& aMfneParent, TInt aResourceId);
  808.     __declspec(dllexport) static void LayoutMfne(CEikMfne* aMfne, const TRect& aMfneParent, TResourceReader& aReader);
  809.     __declspec(dllexport) static void LayoutMfne(CEikMfne* aMfne, const TRect& aMfneParent, const SAknLayoutMfne& aLayout);
  810.     __declspec(dllexport) static void LayoutMfne(CEikMfne* aMfne, const TRect& aMfneParent, const TAknTextLineLayout& aLayout);
  811.     __declspec(dllexport) static void LayoutMfne(CEikMfne* aMfne, const TRect& aMfneParent, TInt font, TInt C, TInt l, TInt r, TInt B, TInt W, TInt J);
  812.     __declspec(dllexport) static void LayoutControl(CCoeControl* aControl, const TRect& aControlParent, TInt aResourceId);
  813.     __declspec(dllexport) static void LayoutControl(CCoeControl* aControl, const TRect& aControlParent, TResourceReader& aReader);
  814.     __declspec(dllexport) static void LayoutControl(CCoeControl* aControl, const TRect& aControlParent, const SAknLayoutControl& aLayout);
  815.     __declspec(dllexport) static void LayoutControl(CCoeControl* aControl, const TRect& aControlParent, const TAknWindowLineLayout& aLayout);
  816.     __declspec(dllexport) static void LayoutControl(CCoeControl* aControl, const TRect& aControlParent, TInt , TInt l, TInt t, TInt r, TInt b, TInt W, TInt H);
  817.     __declspec(dllexport) static void LayoutImage(CEikImage* aImage, const TRect& aParent, TInt aResourceId);
  818.     __declspec(dllexport) static void LayoutImage(CEikImage* aImage, const TRect& aParent, TResourceReader& aReader);
  819.     __declspec(dllexport) static void LayoutImage(CEikImage* aImage, const TRect& aParent, const SAknLayoutControl& aLayout);
  820.     __declspec(dllexport) static void LayoutImage(CEikImage* aImage, const TRect& aParent, const TAknWindowLineLayout& aLayout);
  821.     __declspec(dllexport) static void LayoutImage(CEikImage* aImage, const TRect& aParent, TInt C, TInt l, TInt t, TInt r, TInt b, TInt W, TInt H);
  822.     __declspec(dllexport) static void LayoutSecretEditor(CEikSecretEditor* aSecEd, const TRect& aParent, const SAknLayoutText& aLayout);
  823.     __declspec(dllexport) static void LayoutSecretEditor(CEikSecretEditor* aSecEd, const TRect& aParent, const TAknTextLineLayout& aLayout);
  824. public:
  825.     __declspec(dllexport) static TRect TextRectFromCoords(const TRect& aParent, const CFont* aFont, TInt l, TInt r, TInt B, TInt W, TInt LB = 0);
  826.     __declspec(dllexport) static TRect RectFromCoords(const TRect& aParent, TInt l, TInt t, TInt r, TInt b, TInt W, TInt H);
  827. #line 1404
  828.     __declspec(dllexport) static const CFont* FontFromId(TInt aFontId, const CFont* aCustomFont=0);
  829. #line 1423
  830.     __declspec(dllexport) static const CAknLayoutFont* LayoutFontFromId(TInt aId, const CAknLayoutFont *aCustomFont = 0);
  831. #line 1434
  832.     __declspec(dllexport) static CAknLayoutFont* CreateLayoutFontFromSpecificationL(
  833.         const TAknFontSpecification& aSpec );
  834. #line 1449
  835.     __declspec(dllexport) static CAknLayoutFont* CreateLayoutFontFromSpecificationL(
  836.         const TTypeface& aTypeface,
  837.         const TAknFontSpecification& aSpec);
  838.     __declspec(dllexport) static const CFont* FontFromName(const TDesC& aName);
  839. __declspec(dllexport) static CGraphicsContext::TTextAlign TextAlignFromId(TInt aId);
  840.     __declspec(dllexport) static TGulAlignment GulAlignFromId(TInt aId);
  841. __declspec(dllexport) static TInt CursorHeightFromFont(const TFontSpec& aFont);
  842. __declspec(dllexport) static TInt CursorWidthFromFont (const TFontSpec& aFont);
  843. __declspec(dllexport) static TInt CursorAscentFromFont(const TFontSpec& aFont);
  844. __declspec(dllexport) static void CursorExtensionsFromFont(const TFontSpec& , TInt& aFirstExtension, TInt& aSecondExtension);
  845. __declspec(dllexport) static TInt HighlightLeftPixelsFromFont (const TFontSpec& aFont);
  846. __declspec(dllexport) static TInt HighlightRightPixelsFromFont(const TFontSpec& aFont);
  847.     static void HighlightExtensionsFromFont(const TInt fontid, TInt& aLeft, TInt& aRight, TInt&  aTop, TInt& aBottom);
  848. #line 1482
  849.     static const CAknLayoutFont* MatchFontFromSystemFontArray(
  850.         const TFontSpec& aSpec, MGraphicsDeviceMap* aMap );
  851. __declspec(dllexport) static TBool LayoutMirrored();
  852. #line 1496
  853. __declspec(dllexport) static EVariantFlag Variant();
  854.     __declspec(dllexport) static ESubVariantFlag SubVariant();
  855. __declspec(dllexport) static void OverrideControlColorL(CCoeControl& aControl, TLogicalColor aLogicalColor, TRgb aColor);
  856. #line 1516
  857.     __declspec(dllexport) static CEikScrollBarFrame::TScrollBarType DefaultScrollBarType(CAknAppUiBase* aApplication);
  858. #line 1546
  859.     __declspec(dllexport) static void LayoutVerticalScrollBar(CEikScrollBarFrame* aScrollBarFrame, const TRect& aControlParent, const TAknWindowLineLayout& aLayout);
  860. #line 1561
  861.     __declspec(dllexport) static void LayoutHorizontalScrollBar(CEikScrollBarFrame* aScrollBarFrame, const TRect& aControlParent, const TAknWindowLineLayout& aLayout);
  862. public:
  863. enum TAknLayoutMetrics
  864. {
  865. EScreen,
  866. EApplicationWindow,
  867. EStatusPane,
  868. EMainPane,
  869. EControlPane,
  870. ESignalPane,
  871. EContextPane,
  872. ETitlePane,
  873. EBatteryPane,
  874. EUniversalIndicatorPane,
  875. ENaviPane,
  876. EFindPane,
  877. EWallpaperPane,
  878. EIndicatorPane,
  879. EAColunm,
  880. EBColunm,
  881. ECColunm,
  882. EDColunm,
  883. EStatusPaneSecondary,
  884. EControlPaneSecondary,
  885. EStaconTop,
  886. EStaconBottom,
  887. EStatusPaneBottom = EStatusPaneSecondary,
  888. EControlPaneBottom = EControlPaneSecondary,
  889. EControlPaneTop = EControlPane,
  890. EStatusPaneTop = EStatusPane
  891. };
  892. #line 1608
  893.     __declspec(dllexport) static TBool LayoutMetricsRect(TAknLayoutMetrics aParam, TRect& aRect);
  894. #line 1623
  895.     __declspec(dllexport) static TBool LayoutMetricsSize(TAknLayoutMetrics aParam, TSize& aSize);
  896. #line 1638
  897. __declspec(dllexport) static TBool LayoutMetricsPosition(TAknLayoutMetrics aParan, TPoint& aPos);
  898. public:
  899. #line 1654
  900. static TInt CorrectBaseline(TInt aParentHeight, TInt aBaseline, TInt aFontId);
  901. static void CorrectFontId(TRect aParent, TInt at, TInt aH, TInt ab, TInt &aFontId);
  902. __declspec(dllexport) static TBool ScalableLayoutInterfaceAvailable();
  903. enum TAknCbaLocation
  904. {
  905. EAknCbaLocationBottom,
  906. EAknCbaLocationRight,
  907. EAknCbaLocationLeft
  908. };
  909. #line 1688
  910. __declspec(dllexport) static TAknCbaLocation CbaLocation();
  911.     static TRect HighlightBasedRect( const TRect& aHighlightRect, CCoeControl* aControl );
  912. };
  913. class TAknLayoutText
  914.     {
  915. public:
  916.     __declspec(dllexport) TAknLayoutText();
  917.     __declspec(dllexport) void LayoutText(const TRect& aParent, TInt aResourceId, const CFont* aCustomFont=0);
  918.     __declspec(dllexport) void LayoutText(const TRect& aParent, TResourceReader& aReader, const CFont* aCustomFont=0);
  919.     __declspec(dllexport) void LayoutText(const TRect& aParent, const AknLayoutUtils::SAknLayoutText& aLayout, const CFont* aCustomFont=0);
  920.     __declspec(dllexport) void LayoutText(const TRect& aParent, const TAknTextLineLayout& aLayout, const CFont* aCustomFont=0);
  921.     __declspec(dllexport) void LayoutText(const TRect& aParent, TInt fontid, TInt C, TInt l, TInt r, TInt B, TInt W, TInt J, const CFont* aCustomFont=0);
  922.     __declspec(dllexport) void DrawText(CGraphicsContext& aGc, const TDesC& aText) const;
  923.     __declspec(dllexport) void DrawText(
  924.         CGraphicsContext& aGc,
  925.         const TDesC& aText,
  926.         TBool aUseLogicalToVisualConversion ) const;
  927.     __declspec(dllexport) void DrawText(
  928.         CGraphicsContext& aGc,
  929.         const TDesC& aText,
  930.         TBool aUseLogicalToVisualConversion,
  931.         const TRgb &aColor) const;
  932. public:
  933.     __declspec(dllexport) TRect TextRect() const;
  934.     const CFont *Font() const { return iFont; }
  935.     TRgb Color() const { return CAknEnv::AvkonColor(iColor) ; }
  936.     CGraphicsContext::TTextAlign Align() const { return iAlign; }
  937. private:
  938.     TRect iTextRect;
  939.     const CFont *iFont;
  940.     TInt iColor;
  941.     TInt iOffset;
  942.     CGraphicsContext::TTextAlign iAlign;
  943.     friend class CBubbleOutlookNumberEntry;
  944.     };
  945. #line 1765
  946. class TAknLayoutRect
  947.     {
  948. public:
  949.     __declspec(dllexport) TAknLayoutRect();
  950.     __declspec(dllexport) void LayoutRect(const TRect &aParent, TInt aResourceId);
  951.     __declspec(dllexport) void LayoutRect(const TRect &aParent, TResourceReader &aReader);
  952.     __declspec(dllexport) void LayoutRect(const TRect &aParent, const AknLayoutUtils::SAknLayoutRect &aLayout);
  953.     __declspec(dllexport) void LayoutRect(const TRect &aParent, const TAknWindowLineLayout &aLayout);
  954.     __declspec(dllexport) void LayoutRect(const TRect &aParent, TInt C, TInt l, TInt t, TInt r, TInt b, TInt W, TInt H);
  955. #line 1785
  956.     __declspec(dllexport) TRgb Color() const;
  957.     __declspec(dllexport) TRect Rect() const;
  958. TBool Valid() const;
  959.     __declspec(dllexport) void DrawRect(CWindowGc& aGc) const;
  960.     __declspec(dllexport) void DrawOutLineRect(CWindowGc& aGc) const;
  961.     __declspec(dllexport) void DrawImage(CBitmapContext& aGc, CFbsBitmap* aBitmap, CFbsBitmap* aMask) const;
  962. private:
  963.     TInt iColor;
  964.     TRect iRect;
  965.     };
  966. class AknDraw
  967.     {
  968. public:
  969.     __declspec(dllexport) static void DrawEmptyList(const TRect& aRect, CWindowGc& aGc, TPtrC aText);
  970.     __declspec(dllexport) static void DrawEmptyListForSettingPage(const TRect &aRect, CWindowGc &aGc, TPtrC text);
  971.     __declspec(dllexport) static void DrawEmptyListWithFind(const TRect& aClientRect, CWindowGc& aGc, TPtrC aText);
  972.     __declspec(dllexport) static void DrawEmptyListHeading(const TRect &aClientRect, CWindowGc& aGc, TPtrC aText);
  973. #line 1844
  974.     __declspec(dllexport) static void DrawWindowShadow(CWindowGc& aGc, const TAknLayoutRect& aCoverRect, const TAknLayoutRect& aSecondShadowRect, const TAknLayoutRect& aFirstShadowRect, const TAknLayoutRect& aOutlineFrameRect, const TAknLayoutRect& aInsideAreaRect);
  975. public:
  976. #line 1865
  977.     __declspec(dllexport) static void DrawEmptyListImpl( const TRect& aRect,
  978.                                             CWindowGc& aGc,
  979.                                             TPtrC aText,
  980.                                             TInt aLayoutLine1,
  981.                                             TInt aLayoutLine2 );
  982.     };
  983. class AknDrawWithSkins
  984.     {
  985. public:
  986.     __declspec(dllexport) static void DrawEmptyList(const TRect& aRect, CWindowGc& aGc, TPtrC aText, CCoeControl *aControl);
  987.     __declspec(dllexport) static void DrawEmptyListForSettingPage(const TRect &aRect, CWindowGc &aGc, TPtrC text, CCoeControl *aControl);
  988.     __declspec(dllexport) static void DrawEmptyListWithFind(const TRect& aClientRect, CWindowGc& aGc, TPtrC aText, CCoeControl *aControl);
  989.     __declspec(dllexport) static void DrawEmptyListHeading(const TRect &aClientRect, CWindowGc& aGc, TPtrC aText, CCoeControl *aControl);
  990. #line 1916
  991.     __declspec(dllexport) static void DrawWindowShadow(CWindowGc& aGc, const TAknLayoutRect& aCoverRect, const TAknLayoutRect& aSecondShadowRect, const TAknLayoutRect& aFirstShadowRect, const TAknLayoutRect& aOutlineFrameRect, const TAknLayoutRect& aInsideAreaRect, CCoeControl *aControl);
  992.     };
  993. __declspec(dllexport) const CFont *LatinPlain12();
  994. __declspec(dllexport) const CFont *LatinBold12();
  995. __declspec(dllexport) const CFont *LatinBold13();
  996. __declspec(dllexport) const CFont *LatinBold16();
  997. __declspec(dllexport) const CFont *LatinBold17();
  998. __declspec(dllexport) const CFont *LatinBold19();
  999. __declspec(dllexport) const CFont *NumberPlain5();
  1000. __declspec(dllexport) const CFont *ClockBold30();
  1001. __declspec(dllexport) const CFont *LatinClock14();
  1002. const CFont *CalcBold21();
  1003. const CFont *CalcOperBold21();
  1004. const CFont *CalcOperBold13();
  1005. __declspec(dllexport) const CFont *ApacPlain12();
  1006. __declspec(dllexport) const CFont *ApacPlain16();
  1007. #line 1970
  1008. __declspec(dllexport) TInt CompleteWithAppPath( TDes& aFileName );
  1009. #line 1980
  1010. TBool IsParentRelative(TInt aVal);
  1011. #line 1989
  1012. __declspec(dllexport) TInt DefaultInputLanguageFromUILanguage(const TInt aUiLanguage);
  1013. #line 5 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  1014. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikspane.h" /* stack depth 1 */
  1015. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikspmod.h" /* stack depth 2 */
  1016. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvc.h" /* stack depth 3 */
  1017. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  1018. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.pan" /* stack depth 5 */
  1019. #line 17
  1020. enum TEikServPanic
  1021. {
  1022. EEikServPanicNotifyBadDescriptor,
  1023. EEikServPanicAlarmAlertServiceNotSupported,
  1024. EEikServPanicNoTaskListDialog,
  1025. EEikServPanicTaskNull,
  1026. EEsPanicAlarmAlert,
  1027. EEikServPanicAlarmAlertServerAlreadyConnected,
  1028. EEikServEnvPanicNullAppUi,
  1029. EEikServPanicNoSuchLabelInAlarm,
  1030. EEikServPanicDriveIndexOutOfRange,
  1031. EEikServPanicNotiferArrayNotNull,
  1032. EEikServPanicChannelIndexOutOfRange,
  1033. EEikServPanicNullObservedList,
  1034. EEikServPanicQueueIndexOutOfRange,
  1035. EEikServPanicNotifyAlertQueueEmpty,
  1036. EEikSrvClientPanicInconsistentMessageParameters,
  1037. };
  1038. extern void Panic(TEikServPanic aPanic);
  1039. #line 18 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  1040. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\apgtask.h" /* stack depth 5 */
  1041. #line 13
  1042. class RWsSession;
  1043. struct TKeyEvent;
  1044. #line 25
  1045. enum TApaSystemEvent
  1046. {
  1047. EApaSystemEventShutdown=1,
  1048. EApaSystemEventBackupStarting,
  1049. EApaSystemEventBackupComplete,
  1050. EApaSystemEventBroughtToForeground
  1051. };
  1052. #line 71
  1053. const TInt KUidApaMessageSwitchOpenFileValue16=0x10003A39;
  1054. const TUid KUidApaMessageSwitchOpenFile16={KUidApaMessageSwitchOpenFileValue16};
  1055. const TInt KUidApaMessageSwitchCreateFileValue16=0x10003A3A;
  1056. const TUid KUidApaMessageSwitchCreateFile16={KUidApaMessageSwitchCreateFileValue16};
  1057. class TApaTask
  1058. #line 105
  1059. {
  1060. public:
  1061. __declspec(dllexport) TApaTask(RWsSession& aWsSession);
  1062. __declspec(dllexport) void SetWgId(TInt aWgId);
  1063. __declspec(dllexport) TInt WgId() const;
  1064. __declspec(dllexport) TBool Exists() const;
  1065. __declspec(dllexport) TThreadId ThreadId() const;
  1066. __declspec(dllexport) void BringToForeground();
  1067. __declspec(dllexport) void SendToBackground();
  1068. __declspec(dllexport) void EndTask();
  1069. __declspec(dllexport) void KillTask();
  1070. __declspec(dllexport) void SendKey(TInt aKeyCode,TInt aModifiers);
  1071. __declspec(dllexport) void SendKey(const TKeyEvent& aKey);
  1072. __declspec(dllexport) void SendSystemEvent(TApaSystemEvent aEvent);
  1073. __declspec(dllexport) TInt SwitchOpenFile(const TDesC& aFilename);
  1074. __declspec(dllexport) TInt SwitchCreateFile(const TDesC& aFilename);
  1075. __declspec(dllexport) TInt SendMessage(TUid aUid, const TDesC8& aParams);
  1076. private:
  1077. TInt CheckSwitchFile() const;
  1078. private:
  1079. RWsSession& iWsSession;
  1080. TInt iWgId;
  1081. TInt iTApaTask_Reserved1;
  1082. };
  1083. class TApaTaskList
  1084. #line 144
  1085. {
  1086. public:
  1087. enum TCycleDirection
  1088. {
  1089. EForwards,
  1090. EBackwards
  1091. };
  1092. public:
  1093. __declspec(dllexport) TApaTaskList(RWsSession& aWsSession);
  1094. __declspec(dllexport) TApaTask FindApp(const TDesC& aAppName);
  1095. __declspec(dllexport) TApaTask FindDoc(const TDesC& aDocName);
  1096. __declspec(dllexport) TApaTask FindByPos(TInt aPos);
  1097. __declspec(dllexport) TApaTask FindApp(TUid aAppUid);
  1098. __declspec(dllexport) TInt CycleTasks(TUid aAppUid,TCycleDirection aDirection=EForwards);
  1099. private:
  1100. void FindByPosL(TApaTask& aTask,TInt aPos);
  1101. private:
  1102. RWsSession& iWsSession;
  1103. TInt iTApaTaskList_Reserved1;
  1104. };
  1105. #line 22 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  1106. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  1107. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\vwsappst.h" /* stack depth 6 */
  1108. #line 9
  1109. class MVwsAppStarter
  1110. #line 18
  1111. {
  1112. public:
  1113. virtual void StartAppL(TUid aAppUid,TThreadId& aThreadId)=0;
  1114. };
  1115. #line 12 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  1116. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikunder.h" /* stack depth 6 */
  1117. #line 13
  1118. class RThread;
  1119. class MEikUndertakerObserver
  1120. {
  1121. public:
  1122. virtual void HandleThreadExitL(RThread& aThread)=0;
  1123. };
  1124. class CEikUndertaker : public CActive
  1125. {
  1126. public:
  1127. __declspec(dllexport) static CEikUndertaker* NewL(MEikUndertakerObserver& aObserver);
  1128. __declspec(dllexport) ~CEikUndertaker();
  1129. private:
  1130. CEikUndertaker(MEikUndertakerObserver& aObserver);
  1131. void ConstructL();
  1132. void Request();
  1133. private:
  1134. virtual void DoCancel();
  1135. virtual void RunL();
  1136. private:
  1137. MEikUndertakerObserver& iObserver;
  1138. RUndertaker iUndertaker;
  1139. TInt iThreadHandle;
  1140. };
  1141. #line 13 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  1142. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikcycledef.h" /* stack depth 6 */
  1143. #line 9
  1144. enum TTaskCycleDirection
  1145. {
  1146. EBackwards,
  1147. EForwards
  1148. };
  1149. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrv.h" /* stack depth 5 */
  1150. class CDictionaryFileStore;
  1151. class CVwsSessionWrapper;
  1152. enum TEikAppUiServPanic
  1153. {
  1154. EEikSrvDefault,
  1155. EEikSrvSvrCreateServer,
  1156. EEikSrvSvrStartServer,
  1157. EEikSrvSrvNotFound,
  1158. EEikSrvBadDescriptor,
  1159. EEikSrvIllegalError,
  1160. EEikSrvBadRequestSequence
  1161. };
  1162. class CEikServAppUiSession;
  1163. class CEikServAppUiServer : public CPolicyServer
  1164. {
  1165. friend class CEikServAppUiSession;
  1166. public:
  1167. enum {EPriority=EPriorityAbsoluteHigh};
  1168. __declspec(dllexport) static CEikServAppUiServer* NewL();
  1169. virtual CSession2* NewSessionL(const TVersion &aVersion,const RMessage2& aMessage) const;
  1170. static TInt ThreadFunction(TAny* aStarted);
  1171. CEikAppUi& AppUi();
  1172. private:
  1173. CEikServAppUiServer(TInt aPriority=EPriority);
  1174. void ConstructL();
  1175. CEikServAppUiSession* NewSessionL();
  1176. private:
  1177. CEikAppUi* iAppUi;
  1178. };
  1179. class MEikServAppUiSessionHandler
  1180. {
  1181. public:
  1182. virtual void NotifyAlarmServerOfTaskChangeL() = 0;
  1183. virtual void LaunchTaskListL() = 0;
  1184. virtual void CycleTasksL(enum TTaskCycleDirection aDirection) = 0;
  1185. virtual void SetStatusPaneFlags(TInt aFlags) = 0;
  1186. virtual void SetStatusPaneLayoutL(TInt aLayoutResId) = 0;
  1187. virtual void BlankScreenL() = 0;
  1188. virtual void UnblankScreen() = 0;
  1189. virtual void EnableTaskListL() = 0;
  1190. virtual void Extension(TUid aExtensionUid,const TDesC8& aBuffer,RMessagePtr2 aMessage) = 0;
  1191. protected:
  1192. __declspec(dllexport) MEikServAppUiSessionHandler();
  1193. private:
  1194. __declspec(dllexport) virtual void MEikServAppUiSessionHandler_Reserved1();
  1195. __declspec(dllexport) virtual void MEikServAppUiSessionHandler_Reserved2();
  1196. private:
  1197. TInt iMEikServAppUiSessionHandler_Reserved1;
  1198. };
  1199. class CEikServAppUiSession : public CSession2
  1200. {
  1201. public:
  1202. __declspec(dllexport) CEikServAppUiSession(MEikServAppUiSessionHandler* aHandler);
  1203. __declspec(dllexport) ~CEikServAppUiSession();
  1204. __declspec(dllexport) virtual void ConstructL();
  1205. __declspec(dllexport) virtual void ServiceL(const RMessage2& aMessage);
  1206. __declspec(dllexport) virtual void ServiceError(const RMessage2& aMessage,TInt aError);
  1207. private:
  1208. void PanicClient(const RMessage2& aMessage, TEikAppUiServPanic aCode);
  1209. inline CEikServAppUiServer& Server() {return *(static_cast<CEikServAppUiServer*>((const_cast<CServer2*>(CSession2::Server())))) ;}
  1210. protected:
  1211. __declspec(dllexport) MEikServAppUiSessionHandler* SessionHandler() const;
  1212. protected:
  1213. CEikServAppUiServer* iAppUiServer;
  1214. TBool iScreenBlanked;
  1215. MEikServAppUiSessionHandler* iSessionHandler;
  1216. private:
  1217. TInt iNotUsed1;
  1218. TInt iNotUsed2;
  1219. };
  1220. class CEikPasswordModeCategory : public CBase
  1221. #line 118
  1222. {
  1223. public:
  1224. __declspec(dllexport) static CEikPasswordModeCategory* NewLC(RFs& aFs);
  1225. __declspec(dllexport) ~CEikPasswordModeCategory();
  1226. __declspec(dllexport) void GetPasswordModeL(TPasswordMode& aMode) const;
  1227. __declspec(dllexport) void SetPasswordModeL(TPasswordMode aMode);
  1228. private:
  1229. CEikPasswordModeCategory();
  1230. void ConstructL(RFs& aFs);
  1231. private:
  1232. CDictionaryFileStore* iStore;
  1233. };
  1234. class CEikServNotifyServer;
  1235. class CNotifierServerExtended;
  1236. class CEikServBackupServer;
  1237. class CEikServAlarmAlertServer;
  1238. class CEikKeyWindow;
  1239. class CEikUndertaker;
  1240. class CEikPasswordControl;
  1241. class CEikTaskListDialog;
  1242. class MEikServNotifyAlert;
  1243. class MEikServAlarmFactory;
  1244. class CEikServDllClose;
  1245. class TEikServCtrlFactories
  1246. {
  1247. public:
  1248. inline TEikServCtrlFactories();
  1249. inline TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert);
  1250. public:
  1251. MEikServNotifyAlert* iAlert;
  1252. MEikServAlarmFactory* iAlarmAlert;
  1253. private:
  1254. TInt iTEikServCtrlFactories_Reserved1;
  1255. };
  1256. class MEikServAppUiSessionFactory
  1257. {
  1258. public:
  1259. virtual CEikServAppUiSession* CreateSessionL() = 0;
  1260. protected:
  1261. __declspec(dllexport) MEikServAppUiSessionFactory();
  1262. private:
  1263. __declspec(dllexport) virtual void MEikServAppUiSessionFactory_Reserved1();
  1264. __declspec(dllexport) virtual void MEikServAppUiSessionFactory_Reserved2();
  1265. private:
  1266. TInt iMEikServAppUiSessionFactory_Reserved1;
  1267. };
  1268. class CEikServEnv : public CEikonEnv
  1269. {
  1270. public:
  1271. __declspec(dllexport) CEikServEnv();
  1272. __declspec(dllexport) ~CEikServEnv();
  1273. __declspec(dllexport) void DestroyEnvironment();
  1274. public:
  1275. __declspec(dllexport) void SetEikServAppUiSessionFactory(MEikServAppUiSessionFactory* aSessionFactory);
  1276. __declspec(dllexport) MEikServAppUiSessionFactory* EikServAppUiSessionFactory() const;
  1277. __declspec(dllexport) TBool IsTaskListEnabled() const;
  1278. __declspec(dllexport) void EnableTaskList();
  1279. public:
  1280. void SetEikServer(CEikServAppUiServer* aServer);
  1281. __declspec(dllexport) void SetUiDll(RLibrary& aDll);
  1282. private:
  1283. __declspec(dllexport) virtual void CEikServEnv_Reserved1();
  1284. __declspec(dllexport) virtual void CEikServEnv_Reserved2();
  1285. __declspec(dllexport) virtual void CEikonEnv_Reserved1();
  1286. __declspec(dllexport) virtual void CEikonEnv_Reserved2();
  1287. __declspec(dllexport) virtual void MApaAppStarter_Reserved1();
  1288. __declspec(dllexport) virtual void MApaAppStarter_Reserved2();
  1289. __declspec(dllexport) virtual void Reserved_1();
  1290. __declspec(dllexport) virtual void Reserved_2();
  1291. private:
  1292. RLibrary iUiDll;
  1293. CEikServAppUiServer* iServer;
  1294. MEikServAppUiSessionFactory* iSessionFactory;
  1295. TBool iIsTaskListEnabled;
  1296. TInt iCEikServEnv_Reserved1;
  1297. };
  1298. inline TEikServCtrlFactories::TEikServCtrlFactories()
  1299. : iAlert(0 ), iAlarmAlert(0 )
  1300. {}
  1301. inline TEikServCtrlFactories::TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert)
  1302. : iAlert(aAlert), iAlarmAlert(aAlarmAlert)
  1303. {}
  1304. class CEikServSecureData : public CBase
  1305. {
  1306. public:
  1307. __declspec(dllexport) static void GetInstalledFepNameL(TDes& aName);
  1308. __declspec(dllexport) static void SetInstalledFepNameL(const TDesC& aName, TBool aRaiseFileError);
  1309. __declspec(dllexport) static void OpenFepAttributesL();
  1310. __declspec(dllexport) static void GetFepAttributeL(TUid aAttribUid, TDes8& aAttribData);
  1311. __declspec(dllexport) static void SetFepAttributeL(TUid aAttribUid, const TDesC8& aAttribData);
  1312. __declspec(dllexport) static void CommitFepAttributesL();
  1313. __declspec(dllexport) static void CloseFepAttributes();
  1314. __declspec(dllexport) static CBufBase* GetBufferedSystemColorListL();
  1315. __declspec(dllexport) static void SetBufferedSystemColorListL(const TDesC8& aBuffer);
  1316. protected:
  1317. __declspec(dllexport) CEikServSecureData();
  1318. private:
  1319. __declspec(dllexport) virtual void CEikServSecureData_Reserved1();
  1320. __declspec(dllexport) virtual void CEikServSecureData_Reserved2();
  1321. private:
  1322. TInt iCEikServSecureData_Reserved1;
  1323. };
  1324. #line 26 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvs.h" /* stack depth 4 */
  1325. class CDictionaryFileStore;
  1326. const static TLitC<sizeof(L"!EikAppUiServer")/2> EIKAPPUI_SERVER_NAME={sizeof(L"!EikAppUiServer")/2-1,L"!EikAppUiServer"} ;
  1327. const static TLitC<sizeof(L"EikAppUiServerThread")/2> EIKAPPUI_SERVER_THREAD_NAME={sizeof(L"EikAppUiServerThread")/2-1,L"EikAppUiServerThread"} ;
  1328. const static TLitC<sizeof(L"EikAppUiServerStartSemaphore")/2> EIKAPPUI_SERVER_SEMAPHORE={sizeof(L"EikAppUiServerStartSemaphore")/2-1,L"EikAppUiServerStartSemaphore"} ;
  1329. const TInt KEikSrvDefaultHeapSize=0x10000;
  1330. const TInt KEikSrvDefaultMaxHeapSize=0x100000;
  1331. enum TEikAppUiRanges
  1332. {
  1333. EFirstUnrestrictedOpcodeInEikAppUi
  1334. };
  1335. enum TEikUiOpCode
  1336. {
  1337. EEikAppUiFirst=EFirstUnrestrictedOpcodeInEikAppUi,
  1338. EEikAppUiLaunchTaskList,
  1339. EEikAppUiCycleTasks,
  1340. EEikAppUiSetStatusPaneFlags,
  1341. EEikAppUiSetStatusPaneLayout,
  1342. EEikAppUiBlankScreen,
  1343. EEikAppUiUnblankScreen,
  1344. EEikAppUiResolveError,
  1345. EEikAppUiExtension,
  1346. EEikAppUiEnableTaskList,
  1347. EEikAppUiFirstUnusedOpcode,
  1348. };
  1349. extern void PanicServer(TEikAppUiServPanic aPanic);
  1350. #line 9 "C:\Symbian\9.1\S60_3rd\epoc32\include\eiksrvc.h" /* stack depth 3 */
  1351. const TInt KNumConnectRetries=5;
  1352. typedef TThreadFunction* (*EikSrvEntrypoint)();
  1353. class REikAppUiSession : public RSessionBase
  1354. {
  1355. public:
  1356. __declspec(dllexport) REikAppUiSession();
  1357. __declspec(dllexport) TInt Connect();
  1358. __declspec(dllexport) void Close();
  1359. __declspec(dllexport) TVersion Version() const;
  1360. __declspec(dllexport) void LaunchTaskList() const;
  1361. __declspec(dllexport) void CycleTasks(TTaskCycleDirection aDirection) const;
  1362. __declspec(dllexport) TInt SetStatusPaneFlags(TInt aFlags) const;
  1363. __declspec(dllexport) TInt SetStatusPaneLayout(TInt aLayoutResId) const;
  1364. __declspec(dllexport) TInt BlankScreen() const;
  1365. __declspec(dllexport) TInt UnblankScreen() const;
  1366. __declspec(dllexport) CEikonEnv::TErrorValidity ResolveError(TDes& aText,TInt aError,TUid aAppUid) const;
  1367. __declspec(dllexport) void Extension(TUid aExtensionUid,const TDesC8& aBuffer,TRequestStatus& aRequestStatus) const;
  1368. __declspec(dllexport) TInt GetInstalledFepName(TDes& aName) const;
  1369. __declspec(dllexport) TInt SetInstalledFepName(const TDesC& aName, TBool aRaiseFileError) const;
  1370. __declspec(dllexport) CColorList* GetSystemColorsL() const;
  1371. __declspec(dllexport) void SetSystemColorsL(const CColorList& aColorList) const;
  1372. __declspec(dllexport) TInt OpenFepAttributes() const;
  1373. __declspec(dllexport) TInt GetFepAttribute(TUid aAttribUid, TDes8& aAttribData) const;
  1374. __declspec(dllexport) TInt SetFepAttribute(TUid aAttribUid, const TDesC8& aAttribData) const;
  1375. __declspec(dllexport) TInt CommitFepAttributes() const;
  1376. __declspec(dllexport) void CloseFepAttributes() const;
  1377. __declspec(dllexport) TInt EnableTaskList() const;
  1378. __declspec(dllexport) virtual void REikAppUiSession_Reserved1();
  1379. __declspec(dllexport) virtual void REikAppUiSession_Reserved2();
  1380. private:
  1381. class CExtension;
  1382. void StartServerL();
  1383. private:
  1384. RLibrary iNotUsed;
  1385. private:
  1386. CExtension* iExtension;
  1387. };
  1388. #line 68
  1389. extern void PanicServer(TEikAppUiServPanic aPanic);
  1390. #line 18 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikspmod.h" /* stack depth 2 */
  1391. class TResourceReader;
  1392. class CEikStatusPaneLayoutTree;
  1393. class CEikonEnv;
  1394. class CAknSgcClient;
  1395. const TInt KEikStatusPaneDirectionBit = 0x04;
  1396. const TInt KEikStatusPaneHiddenBit = 0x08;
  1397. const TInt KEikStatusPaneInitInitializedBit = 0x80000000;
  1398. typedef TUid TPaneId;
  1399. class TEikStatusPaneInit
  1400. {
  1401. public:
  1402. TEikStatusPaneInit();
  1403. TEikStatusPaneInit(const TEikStatusPaneInit& aCopy);
  1404. TEikStatusPaneInit& operator=(const TEikStatusPaneInit& aCopy);
  1405. inline TPaneId Id() const;
  1406. void LoadDefaults(TResourceReader& aResource);
  1407. inline TBool AppOwned() const;
  1408. inline TInt ControlTypeId() const;
  1409. inline TInt ControlResourceId() const;
  1410. inline void SetHidden();
  1411. inline void ClearHidden();
  1412. inline TBool IsHidden() const;
  1413. private:
  1414. inline TBool Initialized();
  1415. inline void SetInitialized();
  1416. private:
  1417. TPaneId iId;
  1418. TInt iControlId;
  1419. TInt iControlResource;
  1420. TInt iFlags;
  1421. };
  1422. class CEikStatusPaneSetInit : public CArrayFixFlat<TEikStatusPaneInit>
  1423. {
  1424. public:
  1425. static CEikStatusPaneSetInit* NewL();
  1426. ~CEikStatusPaneSetInit();
  1427. void LoadDefaultsL(TResourceReader& aResource);
  1428. TEikStatusPaneInit& FindL(const TPaneId& aPaneId);
  1429. private:
  1430. CEikStatusPaneSetInit();
  1431. };
  1432. class MEikStatusPaneLayoutTreeVisitor
  1433. {
  1434. public:
  1435. virtual void VisitL(CEikStatusPaneLayoutTree* aNode) = 0;
  1436. };
  1437. class CEikStatusPaneLayoutTree : public CBase
  1438. {
  1439. public:
  1440. enum TDirection
  1441. {
  1442. EHorizontal,
  1443. EVertical
  1444. };
  1445. public:
  1446. ~CEikStatusPaneLayoutTree();
  1447. static CEikStatusPaneLayoutTree* NewL(TResourceReader& aResource, TDirection aDefaultDirection = EHorizontal);
  1448. CEikStatusPaneLayoutTree* Find(const TPaneId& aPaneId);
  1449. void AcceptL(MEikStatusPaneLayoutTreeVisitor* aVisitor);
  1450. inline TPaneId Id() const;
  1451. inline TRect Rect() const;
  1452. private:
  1453. CEikStatusPaneLayoutTree(TDirection aDefaultDirection);
  1454. void ConstructL(TResourceReader& aResource);
  1455. void SetRect(const TRect& aRect);
  1456. inline TDirection Direction();
  1457. void SetDirection(TDirection aDirection);
  1458. inline TInt Size();
  1459. inline TBool Stretchable();
  1460. void SetStretchable(TBool aStretchable);
  1461. void Layout();
  1462. #line 130
  1463. void Layout(TInt aLayoutResourceId);
  1464. #line 143
  1465.     TRect AknLayoutRect(TInt aLayoutResourceId, TPaneId aPaneId);
  1466. #line 153
  1467.     void SetAknLayoutUsed(TBool aAknLayoutUsed);
  1468. #line 163
  1469.     TBool AknLayoutUsed();
  1470. private:
  1471. TPaneId iId;
  1472. TInt iFlags;
  1473. TRect iRect;
  1474. TInt iSize;
  1475. typedef CArrayPtrFlat<CEikStatusPaneLayoutTree> CSubPaneArray;
  1476. CSubPaneArray* iSubPanes;
  1477. private:
  1478. friend class CEikStatusPaneLayout;
  1479. };
  1480. class CEikStatusPaneLayout : public CBase
  1481. {
  1482. public:
  1483. static CEikStatusPaneLayout* NewL(TResourceReader& aResource, const TRect& aScreenRect);
  1484. static CEikStatusPaneLayout* NewL(TResourceReader& aResource, const TRect& aScreenRect, TInt aLayoutId);
  1485. ~CEikStatusPaneLayout();
  1486. inline CEikStatusPaneLayoutTree* Find(const TPaneId& aPaneId) const;
  1487. inline void AcceptL(MEikStatusPaneLayoutTreeVisitor* aVisitor);
  1488. inline TRect Rect() const;
  1489. #line 198
  1490. void AknLayoutRefresh(TInt aLayoutResourceId);
  1491. #line 209
  1492.     TBool AknLayoutUsed();
  1493. private:
  1494. CEikStatusPaneLayout();
  1495. void ConstructL(TResourceReader& aResource, const TRect& aScreenRect, TInt aLayoutId);
  1496. private:
  1497. CEikStatusPaneLayoutTree* iRoot;
  1498. };
  1499. class CEikStatusPaneModelBase : public CBase
  1500. {
  1501. public:
  1502. __declspec(dllexport) ~CEikStatusPaneModelBase();
  1503. inline CEikStatusPaneSetInit* PaneInits() const;
  1504. __declspec(dllexport) virtual void SetLayoutL(TInt aLayoutResId, TBool aChangeStatusPaneNow = ETrue);
  1505. inline CEikStatusPaneLayout* CurrentLayout() const;
  1506. __declspec(dllexport) TInt CurrentLayoutResId() const;
  1507. #line 238
  1508. void AknLayoutRefresh();
  1509. #line 250
  1510. TBool AknLayoutUsed(TInt aLayoutId);
  1511. protected:
  1512. class CIdLayoutPair : public CBase
  1513. {
  1514. public:
  1515. CIdLayoutPair(TInt aResId, CEikStatusPaneLayout* aLayout);
  1516. ~CIdLayoutPair();
  1517. public:
  1518. TInt iResId;
  1519. CEikStatusPaneLayout* iLayout;
  1520. };
  1521. typedef CArrayPtrFlat<CIdLayoutPair> CLayoutIdSet;
  1522. typedef CArrayFixFlat<TInt> CIdSet;
  1523. protected:
  1524. __declspec(dllexport) CEikStatusPaneModelBase(CEikonEnv& aEikEnv);
  1525. __declspec(dllexport) void BaseConstructL(TInt aCoreResId);
  1526. __declspec(dllexport) CEikStatusPaneLayout* LoadLayoutL(TInt aLayoutResId);
  1527. inline CIdSet* LegalIds() const;
  1528. TBool IsLegalId(TInt aLayoutResId) const;
  1529. private:
  1530. CEikStatusPaneLayout* Layout(TInt aLayoutResId);
  1531. void CheckLayoutL(CEikStatusPaneLayout* aLayout);
  1532. private:
  1533. __declspec(dllexport) virtual void Reserved_1();
  1534. private:
  1535. class TLayoutChecker : public MEikStatusPaneLayoutTreeVisitor
  1536. {
  1537. public:
  1538. TLayoutChecker(CEikStatusPaneSetInit* aPanes);
  1539. void VisitL(CEikStatusPaneLayoutTree* aNode);
  1540. private:
  1541. CEikStatusPaneSetInit* iPanes;
  1542. };
  1543. protected:
  1544. CLayoutIdSet* iLayouts;
  1545. TInt iCurrentResId;
  1546. CEikonEnv& iEikEnv;
  1547. private:
  1548. CEikStatusPaneSetInit* iPanes;
  1549. CEikStatusPaneLayout* iCurrentLayout;
  1550. CIdSet* iLegalIds;
  1551. };
  1552. class CEikAppStatusPaneModel : public CEikStatusPaneModelBase
  1553. {
  1554. public:
  1555. static CEikAppStatusPaneModel* NewL(CEikonEnv& aEikEnv, TInt aCoreResId, TInt aAppResId = 0 , TBool aChangeStatusPaneNow = ETrue);
  1556. ~CEikAppStatusPaneModel();
  1557. void ApplyCurrentLayoutL();
  1558. public:
  1559. void SetLayoutL(TInt aLayoutResId, TBool aChangeStatusPaneNow = ETrue);
  1560. public:
  1561. void SetLayoutL(TInt aLayoutResId, TBool aChangeStatusPaneNow, TBool aNotfiyServerSide);
  1562. private:
  1563. CEikAppStatusPaneModel(CEikonEnv& aEikEnv);
  1564. void ConstructL(TInt aCoreResId, TInt aAppResId, TBool aChangeStatusPaneNow = ETrue);
  1565. };
  1566. inline TPaneId TEikStatusPaneInit::Id() const { return iId; }
  1567. inline TBool TEikStatusPaneInit::AppOwned() const { return iFlags & 1 ; }
  1568. inline TInt TEikStatusPaneInit::ControlTypeId() const { return iControlId; }
  1569. inline TInt TEikStatusPaneInit::ControlResourceId() const { return iControlResource; }
  1570. inline void TEikStatusPaneInit::SetHidden() {iFlags|=KEikStatusPaneHiddenBit;}
  1571. inline void TEikStatusPaneInit::ClearHidden() {iFlags&=~KEikStatusPaneHiddenBit;}
  1572. inline TBool TEikStatusPaneInit::IsHidden() const {return iFlags&KEikStatusPaneHiddenBit;}
  1573. inline CEikStatusPaneLayoutTree* CEikStatusPaneLayout::Find(const TPaneId& aPaneId) const { return iRoot->Find(aPaneId); }
  1574. inline void CEikStatusPaneLayout::AcceptL(MEikStatusPaneLayoutTreeVisitor* aVisitor) { iRoot->AcceptL(aVisitor); }
  1575. inline TRect CEikStatusPaneLayout::Rect() const { return iRoot->Rect(); }
  1576. inline TPaneId CEikStatusPaneLayoutTree::Id() const { return iId; }
  1577. inline TRect CEikStatusPaneLayoutTree::Rect() const { return iRect; }
  1578. inline CEikStatusPaneSetInit* CEikStatusPaneModelBase::PaneInits() const { return iPanes; }
  1579. inline CEikStatusPaneLayout* CEikStatusPaneModelBase::CurrentLayout() const { return iCurrentLayout; }
  1580. inline CEikStatusPaneModelBase::CIdSet* CEikStatusPaneModelBase::LegalIds() const { return iLegalIds; }
  1581. #line 10 "C:\Symbian\9.1\S60_3rd\epoc32\include\eikspane.h" /* stack depth 1 */
  1582. #line 21
  1583. class CCoeBrushAndPenContext;
  1584. class CEikStatusPaneContainer;
  1585. class TEikStatusPaneSyncDrawer;
  1586. class CEikStatusPaneBaseExtension;
  1587. class CAknStatuspaneClearer;
  1588. const TInt KStatusPaneCapsPresentBit = 1;
  1589. const TInt KStatusPaneCapsAppOwnedBit = 2;
  1590. const TInt KStatusPaneCapsInCurrentLayoutBit = 4;
  1591. #line 38
  1592. class MEikStatusPaneObserver
  1593. {
  1594. public:
  1595. virtual void HandleStatusPaneSizeChange() = 0;
  1596. };
  1597. class CEikStatusPaneBase : public CBase
  1598. {
  1599. public:
  1600. class TPaneCapabilities
  1601. {
  1602. public:
  1603. TPaneCapabilities();
  1604. inline TBool IsPresent() const;
  1605. inline TBool IsAppOwned() const;
  1606. inline TBool IsInCurrentLayout() const;
  1607. private:
  1608. inline void SetPresent();
  1609. inline void SetAppOwned();
  1610. inline void SetInCurrentLayout();
  1611. private:
  1612. TInt iFlags;
  1613. private:
  1614. friend class CEikStatusPaneBase;
  1615. };
  1616. public:
  1617. __declspec(dllexport) ~CEikStatusPaneBase();
  1618. __declspec(dllexport) static CEikStatusPaneBase* Current();
  1619. inline   void SetObserver(MEikStatusPaneObserver* aObserver);
  1620. __declspec(dllexport) void ReduceRect(TRect& aBoundingRect) const;
  1621. __declspec(dllexport) void GetShapeL(TRegion& aRegion, TBool aIncludeAppPanes, TBool aIncludeServerPanes) const;
  1622. __declspec(dllexport) virtual void SwitchLayoutL(TInt aLayoutResourceId);
  1623. __declspec(dllexport) virtual void MakeVisible(TBool aVisible);
  1624. __declspec(dllexport) virtual void SetDimmed(TBool aDimmed);
  1625. __declspec(dllexport) virtual void SetFaded(TBool aFaded);
  1626. __declspec(dllexport) virtual void HandleResourceChange(TInt aType);
  1627. __declspec(dllexport) virtual TBool OkToChangeStatusPaneNow();
  1628. __declspec(dllexport) void SetFlags(TInt aFlags);
  1629. __declspec(dllexport) TInt Flags() const;
  1630. __declspec(dllexport) TBool IsVisible() const;
  1631. __declspec(dllexport) TBool IsDimmed() const;
  1632. __declspec(dllexport) TBool IsFaded() const;
  1633. __declspec(dllexport) TPaneCapabilities PaneCapabilities(TPaneId aPaneId) const;
  1634. __declspec(dllexport) TRect PaneRectL(TPaneId aPaneId) const;
  1635. __declspec(dllexport) CCoeControl* ControlL(TPaneId aPaneId) const;
  1636. __declspec(dllexport) CCoeControl* SwapControlL(TPaneId aPaneId, CCoeControl* aNewControl);
  1637. __declspec(dllexport) CCoeControl* ContainerControlL(TPaneId aPaneId) const;
  1638. inline RWindowGroup* WindowGroup() const;
  1639. __declspec(dllexport) void DrawNow();
  1640. __declspec(dllexport) TInt CurrentLayoutResId() const;
  1641. protected:
  1642. __declspec(dllexport) CEikStatusPaneBase(CEikonEnv& aEikEnv, RWindowGroup* aParent);
  1643. __declspec(dllexport) void BaseConstructL(TInt aCoreResId);
  1644. virtual CEikStatusPaneModelBase* CreateModelL(TInt aCoreResId) const = 0;
  1645. void CreatePanesL();
  1646. void CreatePaneL(const TEikStatusPaneInit& aPaneInit);
  1647. CEikStatusPaneContainer* Find(TPaneId aPaneId) const;
  1648. virtual TBool IsApp() const = 0;
  1649. inline TRect Rect() const;
  1650. enum TDrawCmd { ENoDraw, EDrawNow, EDrawDeferred };
  1651. void DoDrawNow(TDrawCmd aDraw);
  1652. CAknStatuspaneClearer* Clearer();
  1653. __declspec(dllexport) void DisableClearer(TBool aDisabled);
  1654. __declspec(dllexport) void CommonPrepareForAppExit();
  1655. private:
  1656. void DoSwitchLayoutL(TInt aLayoutResourceId, TDrawCmd aDraw);
  1657. void ApplyLayoutL(CEikStatusPaneLayout* aLayout, TDrawCmd aDraw);
  1658. void SetAllInvisible();
  1659. void SetNotNeededInvisible();
  1660. public:
  1661.     void ReportSizeChange();
  1662. private:
  1663. class TSetRectAndVisibility : public MEikStatusPaneLayoutTreeVisitor
  1664. {
  1665. public:
  1666. TSetRectAndVisibility(TBool aIsApp, CEikStatusPaneBase* aStatusPane);
  1667. void VisitL(CEikStatusPaneLayoutTree* aNode);
  1668. private:
  1669. TBool iIsApp;
  1670. CEikStatusPaneBase* iStatusPane;
  1671. };
  1672. friend class TSetRectAndVisibility;
  1673. private:
  1674.     void SetLastUsedResourceId(TInt aResourceId);
  1675.     TInt LastUsedResourceId();
  1676.     TInt ReadInitialUsedResourceIdL(TInt aCoreResId);
  1677.     TInt InitialUsedResourceId();
  1678.     TRect LargestBoundingRect(TRegion& aWholeRegion, TRegion& aRemovedRegion) const;
  1679. protected:
  1680.     void SetInitialUsedResourceId(TInt aResourceId);
  1681. protected:
  1682. CEikonEnv& iEikEnv;
  1683. CEikStatusPaneModelBase* iModel;
  1684. TInt iFlags;
  1685. private:
  1686. typedef CArrayPtrFlat<CEikStatusPaneContainer> CContainerControls;
  1687. CContainerControls* iControls;
  1688. MEikStatusPaneObserver* iObserver;
  1689. RWindowGroup* iParentWindowGroup;
  1690. CEikStatusPaneBaseExtension* iExtension;
  1691. };
  1692. class CEikStatusPane : public CEikStatusPaneBase, public MCoeForegroundObserver
  1693. {
  1694. public:
  1695. __declspec(dllexport) static CEikStatusPane* NewL(CEikonEnv& aEikEnv, RWindowGroup* aParent, TInt aCoreStatusPaneModelResId, TInt aAppStatusPaneModelResId=0 );
  1696. __declspec(dllexport) ~CEikStatusPane();
  1697. __declspec(dllexport) void ApplyCurrentSettingsL();
  1698. __declspec(dllexport) void PrepareForAppExit();
  1699. __declspec(dllexport) virtual void MakeVisible(TBool aVisible);
  1700. __declspec(dllexport) virtual void SetDimmed(TBool aDimmed);
  1701. __declspec(dllexport) virtual void SetFaded(TBool aFaded);
  1702. __declspec(dllexport) virtual void HandleResourceChange(TInt aType);
  1703. __declspec(dllexport) virtual TBool OkToChangeStatusPaneNow();
  1704. private:
  1705. CEikStatusPane(CEikonEnv& aEikEnv, RWindowGroup* aParent, TInt aAppStatusPaneModelId);
  1706. void ConstructL(TInt aCoreStatusPaneModelResId);
  1707. virtual CEikStatusPaneModelBase* CreateModelL(TInt aCoreResId) const;
  1708. TBool IsApp() const;
  1709. void ApplyCurrentFlags();
  1710. void HideAppPanes(TBool aHide);
  1711. private:
  1712. void HandleGainingForeground();
  1713. void HandleLosingForeground();
  1714. private:
  1715.     TInt ReadInitialUsedResourceIdL(TInt aCoreResId, TInt aAppStatusPaneModelResId);
  1716.     void DoHandleLosingForegroundL();
  1717. private:
  1718. TInt iAppDeclId;
  1719. TEikStatusPaneSyncDrawer* iSyncDrawer;
  1720. TInt iSpare;
  1721. };
  1722. #line 216
  1723. inline TBool CEikStatusPaneBase::TPaneCapabilities::IsPresent() const { return iFlags & KStatusPaneCapsPresentBit; }
  1724. inline TBool CEikStatusPaneBase::TPaneCapabilities::IsAppOwned() const { return iFlags & KStatusPaneCapsAppOwnedBit; }
  1725. inline TBool CEikStatusPaneBase::TPaneCapabilities::IsInCurrentLayout() const { return iFlags & KStatusPaneCapsInCurrentLayoutBit; }
  1726. inline void CEikStatusPaneBase::SetObserver(MEikStatusPaneObserver* aObserver) { iObserver = aObserver; }
  1727. inline TRect CEikStatusPaneBase::Rect() const { return iModel->CurrentLayout()->Rect(); }
  1728. inline RWindowGroup* CEikStatusPaneBase::WindowGroup() const { return iParentWindowGroup; }
  1729. #line 6 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  1730. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnavi.h" /* stack depth 1 */
  1731. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\coeccntx.h" /* stack depth 2 */
  1732. #line 13
  1733. class MCoeControlContext
  1734. #line 30
  1735. {
  1736. public:
  1737. __declspec(dllexport) virtual void ActivateContext(CWindowGc& aGc,RDrawableWindow& aWindow) const;
  1738. __declspec(dllexport) virtual void ResetContext(CWindowGc& aGc) const;
  1739. __declspec(dllexport) virtual void PrepareContext(CWindowGc& aGc) const;
  1740. protected:
  1741. __declspec(dllexport) MCoeControlContext();
  1742. private:
  1743. __declspec(dllexport) virtual void MCoeControlContext_Reserved1();
  1744. __declspec(dllexport) virtual void MCoeControlContext_Reserved2();
  1745. private:
  1746. TInt iMCoeControlContext_Reserved1;
  1747. };
  1748. class CCoeBrushAndPenContext : public CBase, public MCoeControlContext
  1749. {
  1750. public:
  1751. __declspec(dllexport) static CCoeBrushAndPenContext* NewL();
  1752. __declspec(dllexport) void SetBrushStyle(CWindowGc::TBrushStyle aBrushStyle);
  1753. __declspec(dllexport) void SetBrushColor(TRgb aColor);
  1754. __declspec(dllexport) void SetBrushBitmap(const CFbsBitmap& aBitmap);
  1755. __declspec(dllexport) void SetPenColor(TRgb aColor);
  1756. __declspec(dllexport) CWindowGc::TBrushStyle BrushStyle() const;
  1757. __declspec(dllexport) TRgb BrushColor() const;
  1758. __declspec(dllexport) const CFbsBitmap& BrushBitmap() const;
  1759. __declspec(dllexport) TRgb PenColor() const;
  1760. protected:
  1761. __declspec(dllexport) void PrepareContext(CWindowGc& aGc) const;
  1762. private:
  1763. CCoeBrushAndPenContext();
  1764. private:
  1765. CWindowGc::TBrushStyle iBrushStyle;
  1766. TRgb iBrushColor;
  1767. const CFbsBitmap* iBitmap;
  1768. TRgb iPenColor;
  1769. };
  1770. class MCoeControlBrushContext : public MCoeControlContext
  1771. #line 91
  1772. {
  1773. public:
  1774. __declspec(dllexport) MCoeControlBrushContext();
  1775. protected:
  1776. __declspec(dllexport) void PrepareContext(CWindowGc& aGc) const;
  1777. public:
  1778. CWindowGc::TBrushStyle iBrushStyle;
  1779. TRgb iBrushColor;
  1780. const CFbsBitmap* iBitmap;
  1781. private:
  1782. TInt iMCoeControlBrushContext_Reserved1;
  1783. };
  1784. #line 28 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnavi.h" /* stack depth 1 */
  1785. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknvolumecontrol.h" /* stack depth 2 */
  1786. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnavidecoratorobserver.h" /* stack depth 3 */
  1787. #line 33
  1788. class MAknNaviDecoratorObserver
  1789.     {
  1790. public:
  1791.     enum TAknNaviDecoratorEvents
  1792.         {
  1793.         EAknNaviDecoratorEventRightTabArrow,
  1794.         EAknNaviDecoratorEventLeftTabArrow
  1795.         };
  1796. public:
  1797.     virtual void HandleNaviDecoratorEventL( TInt aEventID ) = 0;
  1798.     };
  1799. #line 25 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknvolumecontrol.h" /* stack depth 2 */
  1800. class CGulIcon;
  1801. class MAknsSkinInstance;
  1802. class CVolumeExtension;
  1803. class CAknVolumeControl : public CAknControl, public MAknNaviDecoratorObserver
  1804.     {
  1805.     public:
  1806.         __declspec(dllexport) CAknVolumeControl();
  1807.         __declspec(dllexport) ~CAknVolumeControl();
  1808.         __declspec(dllexport) void SetValue(TInt aValue);
  1809.         __declspec(dllexport) TInt Value() const;
  1810.     public:
  1811.         TSize MinimumSize();
  1812.         TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
  1813.         __declspec(dllexport) void ConstructFromResourceL(TResourceReader& aReader);
  1814.         __declspec(dllexport) void HandleResourceChange(TInt aType);
  1815. #line 58
  1816.         __declspec(dllexport) static CFbsBitmap* CreateBitmapL(TInt aValue);
  1817. #line 68
  1818.         __declspec(dllexport) static CGulIcon* CreateSetStyleListBoxIconL( TInt aValue );
  1819.     protected:
  1820.         void SizeChanged();
  1821.         void Draw(const TRect& aRect) const;
  1822.     public:
  1823.     __declspec(dllexport) void HandlePointerEventL(const TPointerEvent& aPointerEvent);
  1824.         __declspec(dllexport) void HandleNaviDecoratorEventL( TInt aEventID );
  1825. #line 104
  1826.     private:
  1827.         __declspec(dllexport) void* ExtensionInterface( TUid aInterface );
  1828.     private:
  1829.         void SetVolumeLayout(TInt aStyle);
  1830.         static TBool DrawSkinnedBackgroundL(CFbsBitGc* aFbsBitGc, MAknsSkinInstance* aSkin,
  1831.                                             const TRect& aOrigin, TRect& aOuterRect, TRect& aInnerRect);
  1832. #line 127
  1833. void CreateNaviIconL();
  1834.     private:
  1835.         CFbsBitmap*         iBitmap;
  1836.         CFbsBitmap*         iMaskBitmap;
  1837.         TPoint              iStartPos;
  1838.         CVolumeExtension*   iExtension;
  1839.         TInt                iSpare1;
  1840.         TPoint              iBmpPos;
  1841.         TInt                iValue;
  1842.         TInt                iStyle;
  1843.     };
  1844. #line 29 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnavi.h" /* stack depth 1 */
  1845. class CAknNavigationDecorator;
  1846. class CEikStatusPaneBase;
  1847. class CFbsBitmap;
  1848. class MAknTabObserver;
  1849. class CAknNavigationControlContainerExtension;
  1850. class MAknsControlContext;
  1851. class MAknNavigationDecoratorInterface
  1852.     {
  1853. public:
  1854.     virtual ~MAknNavigationDecoratorInterface() { }
  1855.     virtual CCoeControl* DecoratedControl()=0;
  1856.     };
  1857. class MAknNavigationContainerInterface
  1858.     {
  1859. public:
  1860.     virtual ~MAknNavigationContainerInterface() { }
  1861.     virtual CAknNavigationDecorator* CreateMessageLabelL(const TDesC& aText)=0;
  1862.     virtual CAknNavigationDecorator* CreateTabGroupL()=0;
  1863.     virtual void PushL(CAknNavigationDecorator&)=0;
  1864.     virtual void Pop()=0;
  1865.     };
  1866. class CAknNavigationControlContainer : public CAknControl,
  1867.                                        public MCoeControlContext,
  1868.                                        public MCoeControlObserver,
  1869.                                        public MAknNavigationContainerInterface
  1870.     {
  1871. public:
  1872.     enum { ETypeId = 0x101F8740 };
  1873. public:
  1874. __declspec(dllexport) CAknNavigationControlContainer();
  1875. __declspec(dllexport) ~CAknNavigationControlContainer();
  1876. __declspec(dllexport) void ConstructL();
  1877. __declspec(dllexport) void ConstructFromResourceL(TResourceReader& aReader);
  1878. __declspec(dllexport) CAknNavigationDecorator* ConstructNavigationDecoratorFromResourceL(TResourceReader& aReader);
  1879. __declspec(dllexport) CAknNavigationDecorator* CreateTabGroupL();
  1880. #line 118
  1881. __declspec(dllexport) CAknNavigationDecorator* CreateTabGroupL(MAknTabObserver* aObserver);
  1882. #line 127
  1883. __declspec(dllexport) CAknNavigationDecorator* CreateTabGroupL(TResourceReader& aReader);
  1884. #line 137
  1885.     __declspec(dllexport) CAknNavigationDecorator* CreateTabGroupL(TResourceReader& aReader, MAknTabObserver* aObserver);
  1886. #line 146
  1887. __declspec(dllexport) CAknNavigationDecorator* CreateNavigationLabelL(const TDesC& aText = KNullDesC);
  1888. #line 155
  1889. __declspec(dllexport) CAknNavigationDecorator* CreateNavigationLabelL(TResourceReader& aReader);
  1890. #line 167
  1891. __declspec(dllexport) CAknNavigationDecorator* CreateNavigationImageL(const CFbsBitmap* aBitmap = 0 , const CFbsBitmap* aMaskBitmap = 0 );
  1892. #line 176
  1893. __declspec(dllexport) CAknNavigationDecorator* CreateNavigationImageL(TResourceReader& aReader);
  1894. #line 185
  1895. __declspec(dllexport) CAknNavigationDecorator* CreateMessageLabelL(const TDesC& aText = KNullDesC);
  1896. #line 194
  1897. __declspec(dllexport) CAknNavigationDecorator* CreateMessageLabelL(TResourceReader& aReader);
  1898. #line 203
  1899.     __declspec(dllexport) CAknNavigationDecorator* CreateVolumeIndicatorL(TInt aResourceId);
  1900.     __declspec(dllexport) CAknNavigationDecorator* CreateEditorIndicatorContainerL();
  1901. #line 220
  1902. __declspec(dllexport) void PushDefaultL( TBool aAllowDuplicates = EFalse );
  1903. #line 233
  1904. __declspec(dllexport) void PushL(CAknNavigationDecorator& aNaviPaneControl);
  1905. #line 244
  1906. __declspec(dllexport) void Pop();
  1907. __declspec(dllexport) void Pop(CAknNavigationDecorator* aControl);
  1908. #line 261
  1909. __declspec(dllexport) CAknNavigationDecorator* Top();
  1910. #line 274
  1911.     __declspec(dllexport) TInt ReplaceL(CAknNavigationDecorator& aToBeReplaced,
  1912.                                               CAknNavigationDecorator& aReplacement);
  1913.     __declspec(dllexport) CAknNavigationDecorator* ResourceDecorator();
  1914.     CFbsBitmap& NaviArrowBitmap(TInt aId);
  1915. public:
  1916.     __declspec(dllexport) static TInt ColorScheme();
  1917.     void NotifyNaviWipeStatusL();
  1918.     static TInt CurrentNaviWipeBitmap();
  1919.     __declspec(dllexport) void HandlePointerEventL(const TPointerEvent& aPointerEvent);
  1920. protected:
  1921.     __declspec(dllexport) virtual void SizeChanged();
  1922.     __declspec(dllexport) virtual void HandleResourceChange(TInt aType);
  1923.     __declspec(dllexport) virtual TInt CountComponentControls() const;
  1924.     __declspec(dllexport) virtual CCoeControl* ComponentControl(TInt aIndex) const;
  1925. protected:
  1926.     __declspec(dllexport) void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType);
  1927. private:
  1928. __declspec(dllexport) virtual void Draw(const TRect& aRect) const;
  1929. private:
  1930.     __declspec(dllexport) void* ExtensionInterface( TUid aInterface );
  1931. public:
  1932.     TBool NaviWipeUsed() const;
  1933.     CFbsBitmap* NaviColorBitmap() const;
  1934.     static void SetBackgroundContextAttributes(CCoeControl* aControl, TBool aNaviWipeUsed);
  1935. private:
  1936.     TBool IsFepOwnedEditorIndicatorControl(CAknNavigationDecorator* aDecorator) const;
  1937.     void HandleVisibilityOfNonFepOwnedIndicatorControl(
  1938.         CAknNavigationDecorator* aDecorator, TBool aVisible);
  1939. #line 381
  1940.     TBool DrawDefaultNaviWipe(CWindowGc& aGc, const TRect& aRect) const;
  1941. #line 393
  1942.     TBool DrawDefaultNaviSolid(CWindowGc& aGc, const TRect& aRect) const;
  1943. #line 406
  1944.     TBool DrawSkinnedNaviWipe(CWindowGc& aGc, const TRect& aRect, MAknsSkinInstance* aSkin, MAknsControlContext* aCc) const;
  1945. #line 419
  1946.     TBool DrawSkinnedNaviSolid(CWindowGc& aGc, const TRect& aRect, MAknsSkinInstance* aSkin, MAknsControlContext* aCc) const;
  1947.     void LoadNaviColorBitmapL();
  1948.     void SetContainerWindowNonFading(TBool aNonFading);
  1949. protected:
  1950.     TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
  1951. private:
  1952. CEikStatusPaneBase* iStatusPane;
  1953.     CAknNavigationDecorator* iNaviDecoratorFromResource;
  1954. typedef CArrayPtrFlat<CAknNavigationDecorator> CAknNaviPaneStack;
  1955. CAknNaviPaneStack* iNaviPaneControls;
  1956.     CFbsBitmap* iNaviArrowBitmap[4];
  1957.    TInt  iSpare;
  1958.     CAknNavigationControlContainerExtension* iExtension;
  1959. };
  1960. #line 7 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  1961. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnavide.h" /* stack depth 1 */
  1962. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnaviobserver.h" /* stack depth 2 */
  1963. #line 29
  1964. class MAknNavigationObserver
  1965.     {
  1966. public:
  1967.     enum TAknNavigationEvent
  1968.         {
  1969.         ENaviEventHandleNavigation = 0x0010,
  1970.         ENaviEventLeftMostItemReached,
  1971.         ENaviEventRightMostItemReached,
  1972.         ENaviEventOneItemExists,
  1973.         ENaviEventRedrawNeeded
  1974.         };
  1975.     };
  1976. #line 32 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknnavide.h" /* stack depth 1 */
  1977. class CEikScrollButton;
  1978. class CAknTabGroup;
  1979. class MAknNaviDecoratorObserver;
  1980. class CAknNavigationDecorator :  public CAknControl,
  1981.                                  public MCoeControlObserver,
  1982.                                  public MAknNavigationDecoratorInterface
  1983. {
  1984. friend class CAknNavigationControlContainer;
  1985. public:
  1986. enum TScrollButton
  1987. {
  1988. ELeftButton =  0x0001,
  1989. ERightButton = 0x0002
  1990. };
  1991.     enum TControlType
  1992.         {
  1993.         ENotSpecified,
  1994.         ETabGroup,
  1995.         ENaviLabel,
  1996.         ENaviImage,
  1997.         EHintText,
  1998.         EEditorIndicator,
  1999.         ENaviVolume
  2000.         };
  2001. public:
  2002. #line 79
  2003. __declspec(dllexport) static CAknNavigationDecorator* NewL(
  2004.         CAknNavigationControlContainer* aNavigationControlContainer,
  2005.         CCoeControl* aDecoratedControl, TControlType aType = ENotSpecified);
  2006. __declspec(dllexport) ~CAknNavigationDecorator();
  2007. __declspec(dllexport) CCoeControl* DecoratedControl();
  2008. __declspec(dllexport) void MakeScrollButtonVisible(TBool aVisible);
  2009. __declspec(dllexport) TBool ScrollButtonVisible() const;
  2010. #line 118
  2011. __declspec(dllexport) void SetScrollButtonDimmed(TScrollButton aButton, TBool aDimmed);
  2012. __declspec(dllexport) TBool IsScrollButtonDimmed(TScrollButton aButton) const;
  2013.     __declspec(dllexport) void SetControlType(TControlType aType);
  2014.     __declspec(dllexport) TControlType ControlType() const;
  2015.     __declspec(dllexport) virtual void SetNaviDecoratorObserver( MAknNaviDecoratorObserver* aObserver);
  2016.     void SetNaviStack(CAknNavigationControlContainer* aContainer);
  2017.     __declspec(dllexport) void HandlePointerEventL(const TPointerEvent& aPointerEvent);
  2018.     enum TAknNaviControlLayoutStyle
  2019.         {
  2020.         ENaviControlLayoutNormal = 0x1,
  2021.         ENaviControlLayoutNarrow = 0x2
  2022.         };
  2023.     enum TAknNaviControlLayoutMode
  2024.         {
  2025.         ENaviControlLayoutModeAutomatic = 0x400,
  2026.         ENaviControlLayoutModeForced = 0x800
  2027.         };
  2028. #line 189
  2029.     __declspec(dllexport) void SetNaviControlLayoutStyle(TAknNaviControlLayoutStyle aStyle);
  2030. #line 198
  2031.     __declspec(dllexport) TAknNaviControlLayoutStyle NaviControlLayoutStyle();
  2032. #line 210
  2033.     __declspec(dllexport) TBool NaviControlLayoutStyleSupported(TAknNaviControlLayoutStyle aStyle);
  2034. #line 228
  2035.     __declspec(dllexport) void SetNaviControlLayoutMode(TAknNaviControlLayoutMode aMode);
  2036. #line 239
  2037.     __declspec(dllexport) TAknNaviControlLayoutMode NaviControlLayoutMode();
  2038. protected:
  2039.     __declspec(dllexport) virtual void SizeChanged();
  2040.     __declspec(dllexport) virtual TInt CountComponentControls() const;
  2041.     __declspec(dllexport) virtual CCoeControl* ComponentControl(TInt aIndex) const;
  2042. protected:
  2043.     __declspec(dllexport) void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType);
  2044. private:
  2045.     __declspec(dllexport) void* ExtensionInterface( TUid aInterface );
  2046. private:
  2047. __declspec(dllexport) void ConstructL();
  2048. private:
  2049. __declspec(dllexport) virtual void Draw(const TRect& aRect) const;
  2050.     TRect ParentRect();
  2051. public:
  2052. #line 305
  2053.     static TRect DecoratedControlRect(TInt aControlType);
  2054. #line 318
  2055.     static TRect DecoratedControlNarrowRect(TInt aControlType);
  2056. private:
  2057. #line 329
  2058.     static TRect DecoratedDefaultControlRect();
  2059. #line 339
  2060.     static TRect DecoratedTabControlRect();
  2061. #line 349
  2062.     static TRect DecoratedVolumeControlRect();
  2063.     void SizeChangedInNormalLayout();
  2064.     void SizeChangedInNarrowLayout();
  2065.     void InitLayoutStyleTimer();
  2066.     void CancelLayoutStyleTimer();
  2067.     static TInt LayoutStyleEvent(TAny * aPtr);
  2068.     void DoLayoutStyleEvent();
  2069. protected:
  2070. CCoeControl* iDecoratedControl;
  2071. CAknNavigationControlContainer* iContainer;
  2072.     MAknNaviDecoratorObserver* iNaviDecoratorObserver;
  2073. private:
  2074. TBool iNaviArrowsVisible;
  2075. TBool iNaviArrowLeftDimmed;
  2076. TBool iNaviArrowRightDimmed;
  2077.     TControlType iControlType;
  2078.     TPoint iArrowLeftPos;
  2079.     TSize iArrowLeftSize;
  2080.     TPoint iArrowRightPos;
  2081.     TSize iArrowRightSize;
  2082.     TInt iLayoutFlags;
  2083.     CPeriodic* iLayoutStyleTimer;
  2084.     TInt iSpare[2];
  2085. };
  2086. #line 8 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  2087. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknViewAppUi.h" /* stack depth 1 */
  2088. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknappui.h" /* stack depth 2 */
  2089. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\Eikspane.h" /* stack depth 3 */
  2090. #line 25 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknappui.h" /* stack depth 2 */
  2091. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\AknTouchPaneObserver.h" /* stack depth 3 */
  2092. #line 33
  2093. class MAknTouchPaneObserver
  2094.     {
  2095.     public:
  2096.         virtual void HandleTouchPaneSizeChange() = 0;
  2097.     };
  2098. #line 29 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknappui.h" /* stack depth 2 */
  2099. class CEikButtonGroupContainer;
  2100. class CAknAppShutter;
  2101. class CAknAppUiExtension;
  2102. class CAknWsEventMonitor;
  2103. class CAknKeySoundSystem;
  2104. class CAknAppUiBaseExtension;
  2105. class CAknTouchPane;
  2106. class CAknToolbar;
  2107. #line 52
  2108. class CAknAppUiBase : public CEikAppUi
  2109.     {
  2110. private:
  2111.     friend class CAknAppUi;
  2112.     enum
  2113.         {
  2114.         EAppOrientationSpecifiedFlag      = 0x00010000,
  2115.         EAppOrientationLandscapeFlag      = 0x00020000,
  2116.         EAppOrientationAutomaticFlag      = 0x00040000,
  2117.         EAknEnableSkinFlag                = 0x00080000,
  2118.         EAknDisableHighlightAnimationFlag = 0x00100000
  2119.         };
  2120.     public:
  2121.     enum TAppUiOrientation
  2122.         {
  2123.         EAppUiOrientationUnspecified,
  2124.         EAppUiOrientationPortrait,
  2125.         EAppUiOrientationLandscape,
  2126.         EAppUiOrientationAutomatic
  2127.         };
  2128.     enum
  2129.         {
  2130. #line 112
  2131.         EAknEnableSkin = EAknEnableSkinFlag,
  2132.         EAppOrientationPortrait     = EAppOrientationSpecifiedFlag,
  2133. EAppOrientationLandscape    = EAppOrientationSpecifiedFlag
  2134.                               | EAppOrientationLandscapeFlag,
  2135. EAppOrientationAutomatic    = EAppOrientationSpecifiedFlag
  2136.                               | EAppOrientationAutomaticFlag,
  2137.         EAknDisableHighlightAnimation = EAknDisableHighlightAnimationFlag
  2138. };
  2139. public:
  2140.     __declspec(dllexport) ~CAknAppUiBase();
  2141.     __declspec(dllexport) CAknAppUiBase();
  2142. public:
  2143.     __declspec(dllexport) void BaseConstructL( TInt aAppUiFlags );
  2144. #line 150
  2145.     __declspec(dllexport) void HandleForegroundEventL(TBool aForeground);
  2146. public:
  2147.     __declspec(dllexport) void ConstructL();
  2148.     __declspec(dllexport) void Exit();
  2149. __declspec(dllexport) void SetFadedL(TBool aFaded);
  2150. #line 179
  2151. __declspec(dllexport) void HandleResourceChangeL(TInt aType);
  2152. __declspec(dllexport) TRect ApplicationRect() const;
  2153. public:
  2154. __declspec(dllexport) void PrepareToExit();
  2155. public:
  2156.     __declspec(dllexport) TBool IsFaded() const;
  2157.     __declspec(dllexport) CAknWsEventMonitor* EventMonitor() const;
  2158. __declspec(dllexport) CAknKeySoundSystem* KeySounds() const;
  2159. __declspec(dllexport) TBool IsFullScreenApp() const;
  2160. __declspec(dllexport) TBool IsLayoutAwareApp() const;
  2161. __declspec(dllexport) void SetLayoutAwareApp(TBool aLayoutAwareApp);
  2162. __declspec(dllexport) TBool IsForeground() const;
  2163. __declspec(dllexport) TBool IsPartialForeground() const;
  2164. __declspec(dllexport) TAppUiOrientation Orientation() const;
  2165. __declspec(dllexport) void SetOrientationL(TAppUiOrientation aOrientation);
  2166. TInt FindAppWgIdBelowMeL();
  2167. TInt EventForForegroundState(TBool aPartialFg, TBool aForeground);
  2168. TBool ThreadIsForeground() const;
  2169.     void SimulateWsEventL(TInt aEvent);
  2170.     __declspec(dllexport) TAknUiZoom LocalUiZoom() const;
  2171. #line 302
  2172.     __declspec(dllexport) void SetLocalUiZoomL(TAknUiZoom aZoom);
  2173. protected:
  2174. __declspec(dllexport) virtual void HandleScreenDeviceChangedL();
  2175. protected:
  2176.     __declspec(dllexport) virtual void HandleApplicationSpecificEventL(TInt aType,
  2177.         const TWsEvent& aEvent);
  2178. protected:
  2179.     __declspec(dllexport) void SetFullScreenApp(TBool aIsFullScreen);
  2180.     __declspec(dllexport) void ReplaceKeySoundsL( TInt aUid );
  2181. protected:
  2182. __declspec(dllexport) virtual TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
  2183. private:
  2184.     void UpdateSettingCacheAndForwardEventL( TInt aEventId );
  2185.     void SetAppUiAndLeaveIfErrorL( TInt aError );
  2186. private:
  2187.     TBitFlags iAknFlags;
  2188. CAknWsEventMonitor* iEventMonitor;
  2189. CAknKeySoundSystem* iKeySounds;
  2190.     CAknAppUiBaseExtension* iAppUiBaseExtension;
  2191.     };
  2192. class CAknAppUi : public CAknAppUiBase, MEikStatusPaneObserver,
  2193.             public MCoeViewDeactivationObserver,
  2194.             public MAknTouchPaneObserver
  2195.     {
  2196. public:
  2197. #line 379
  2198. __declspec(dllexport) void BaseConstructL(TInt aAppUiFlags=EStandardApp);
  2199.     __declspec(dllexport) ~CAknAppUi();
  2200. public:
  2201.     __declspec(dllexport) void ConstructL();
  2202. public:
  2203. __declspec(dllexport) CEikStatusPane* StatusPane();
  2204. __declspec(dllexport) CEikButtonGroupContainer* Cba();
  2205.     __declspec(dllexport) CAknTouchPane* TouchPane();
  2206.     __declspec(dllexport) CAknToolbar* PopupToolbar() const;
  2207.     __declspec(dllexport) CAknToolbar* CurrentPopupToolbar() const;
  2208.     void StopDisplayingPopupToolbar();
  2209. #line 439
  2210. __declspec(dllexport) void ProcessCommandL(TInt aCommand);
  2211. #line 451
  2212.     __declspec(dllexport) TErrorHandlerResponse HandleError (TInt aError,
  2213.         const SExtendedError& aExtErr, TDes& aErrorText, TDes& aContextText);
  2214. __declspec(dllexport) void RunAppShutter();
  2215. __declspec(dllexport) TBool IsAppShutterRunning() const;
  2216. public:
  2217. #line 477
  2218. __declspec(dllexport) virtual void HandleViewDeactivation(
  2219.     const TVwsViewId& aViewIdToBeDeactivated,
  2220.     const TVwsViewId &aNewlyActivatedViewId);
  2221. public:
  2222. __declspec(dllexport) void PrepareToExit();
  2223. public:
  2224.     __declspec(dllexport) void HandleTouchPaneSizeChange();
  2225. protected:
  2226. __declspec(dllexport) void HandleStatusPaneSizeChange();
  2227. __declspec(dllexport) void HandleSystemEventL(const TWsEvent& aEvent);
  2228. protected:
  2229. __declspec(dllexport) virtual void Reserved_MtsmPosition();
  2230. __declspec(dllexport) virtual void Reserved_MtsmObject();
  2231. protected:
  2232.     __declspec(dllexport) void HandleForegroundEventL(TBool aForeground);
  2233. __declspec(dllexport) void HandleWsEventL(const TWsEvent& aEvent,
  2234.     CCoeControl* aDestination);
  2235. #line 540
  2236. __declspec(dllexport) void SetKeyBlockMode(TAknKeyBlockMode aMode);
  2237.     __declspec(dllexport) void HandleErrorL(TInt aError, HBufC** aErrorDesc, TBool aShowNote = ETrue );
  2238. #line 552
  2239.     void DumpControl(CCoeControl* aControl, TInt aLevel, RDebug& aDebug);
  2240.     void DecideWsClientBufferSizesL();
  2241. private:
  2242. void UpdateKeyBlockMode();
  2243. private:
  2244. TBool iDumpNextControl;
  2245. CAknAppShutter* iAppShutter;
  2246. TAknKeyBlockMode iBlockMode;
  2247. CAknAppUiExtension * iExtension;
  2248. public:
  2249.     __declspec(dllexport) void HideApplicationFromFSW(TBool aHide=ETrue);
  2250.     };
  2251. #line 24 "C:\Symbian\9.1\S60_3rd\epoc32\include\aknViewAppUi.h" /* stack depth 1 */
  2252. class CAknView;
  2253. class CAknViewShutter;
  2254. class CAknLocalScreenClearer;
  2255. class CAknViewAppUiExtension;
  2256. class CAknViewNavigator;
  2257. #line 43
  2258. class CAknViewAppUi : public CAknAppUi
  2259.     {
  2260. public:
  2261. class CViewActivationItem : public CBase
  2262. {
  2263. public:
  2264. #line 58
  2265. static CViewActivationItem* NewLC(CAknView* aNewView,
  2266.                                   TUid aCustomMessageId,
  2267.                                   const TDesC8& aCustomMessage,
  2268.                                   const TVwsViewId& aPrevViewId);
  2269. ~CViewActivationItem();
  2270. private:
  2271. CViewActivationItem(CAknView* aNewView,
  2272.                     TUid aCustomMessageId,
  2273.                     const TVwsViewId& aPrevViewId);
  2274. void ConstructL(const TDesC8& aCustomMessage);
  2275. public:
  2276. CAknView* iNewView;
  2277. TUid iCustomMessageId;
  2278. HBufC8* iCustomMessage;
  2279. TVwsViewId iPrevViewId;
  2280. };
  2281.         class TAknSplitViewContainer
  2282.             {
  2283.             public:
  2284.                 TBool IsPartOf( const TUid aViewId );
  2285.             public:
  2286.                 TUid iViewIds[2];
  2287.                 TBool iFailed[2];
  2288.                 TRect iViewRect[2];
  2289.                 TInt iLeftViewSize;
  2290.             };
  2291.      typedef CArrayPtrFlat<CViewActivationItem> CAknViewActivationQueue;
  2292.      typedef CArrayPtrFlat<CAknView> CAknViews;
  2293. public:
  2294. __declspec(dllexport) void BaseConstructL(TInt aAppUiFlags=EStandardApp);
  2295. __declspec(dllexport) virtual ~CAknViewAppUi();
  2296. __declspec(dllexport) void ActivateLocalViewL(TUid aViewId);
  2297. #line 143
  2298. __declspec(dllexport) void ActivateLocalViewL(TUid aViewId,
  2299.                                  TUid aCustomMessageId,
  2300.                                  const TDesC8& aCustomMessage);
  2301. __declspec(dllexport) CAknView* View(TUid aView) const;
  2302. __declspec(dllexport) void AddViewL(CAknView* aView);
  2303. __declspec(dllexport) void RemoveView(TUid aViewId);
  2304. __declspec(dllexport) void ProcessCommandL(TInt aCommand);
  2305. __declspec(dllexport) void StopDisplayingMenuBar();
  2306. void ViewActivatedL(CAknView* aView,
  2307.                     const TVwsViewId& aPrevViewId,
  2308.                     TUid aCustomMessageId,
  2309.                     const TDesC8& aCustomMessage);
  2310. void ViewDeactivated(CAknView* aView);
  2311. #line 196
  2312.     __declspec(dllexport) void SetSplitViewL( const TUid aView1Id, const TUid aView2Id, const TInt aLeftViewSize );
  2313. #line 205
  2314.     __declspec(dllexport) void RemoveSplitViewL( const TUid aViewId );
  2315.     __declspec(dllexport) TBool SplitViewActive() const;
  2316.     __declspec(dllexport) TUid FocusedView() const;
  2317.     __declspec(dllexport) TBool ViewShown( const TUid aViewId ) const;
  2318.     TRect ViewRect( const TUid aViewId ) const;
  2319.     TKeyResponse HandleViewNavigationL( const TKeyEvent& aKeyEvent );
  2320. protected:
  2321. __declspec(dllexport) void HandleStatusPaneSizeChange();
  2322. __declspec(dllexport) void HandleForegroundEventL(TBool aForeground);
  2323. #line 268
  2324.     __declspec(dllexport) void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination );
  2325. private:
  2326. static TInt ActivationCallBack(TAny* aThis);
  2327. void ActivationTick();
  2328. void QueueActivationTick();
  2329.     CAknViewAppUiExtension* Extension() const;
  2330.     void ActivateSplitViewL( CViewActivationItem* aItem );
  2331.     TAknSplitViewContainer* SplitView( const TUid aViewId ) const;
  2332. protected:
  2333.     CAknView* iView;
  2334.     CAknViews* iViews;
  2335. private:
  2336.     CAknViewShutter* iShutter;
  2337.     CAknLocalScreenClearer* iClearer;
  2338.     CAknViewActivationQueue* iActivationQueue;
  2339.     CIdle* iActivationTick;
  2340.     CAknViewAppUiExtension* iExtension;
  2341.     };
  2342. #line 9 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  2343. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\akniconutils.h" /* stack depth 1 */
  2344. #line 31
  2345. class CFbsBitmap;
  2346. class MAknIconObserver;
  2347. enum TScaleMode
  2348.     {
  2349.     EAspectRatioPreserved = 0,
  2350. #line 57
  2351.     EAspectRatioPreservedAndUnusedSpaceRemoved = 1,
  2352.     EAspectRatioNotPreserved = 2
  2353.     };
  2354. class TAknContentDimensions
  2355. {
  2356. public:
  2357. inline TAknContentDimensions();
  2358. inline TAknContentDimensions(TReal32 aWidth, TReal32 aHeight);
  2359. inline void SetDimensions(TReal32 aWidth, TReal32 aHeight);
  2360. inline void SetDimensions(const TSize& aDimensions);
  2361. public:
  2362. TReal32 iWidth;
  2363. TReal32 iHeight;
  2364. };
  2365. class CAknIcon : public CBase
  2366.     {
  2367.     public:
  2368.         __declspec(dllexport) static CAknIcon* NewL();
  2369.         ~CAknIcon();
  2370.     public:
  2371.         __declspec(dllexport) CFbsBitmap* Bitmap() const;
  2372.         __declspec(dllexport) CFbsBitmap* Mask() const;
  2373.         __declspec(dllexport) void SetBitmap( CFbsBitmap* aBitmap );
  2374.         __declspec(dllexport) void SetMask( CFbsBitmap* aMask );
  2375.     private:
  2376.         inline CAknIcon() {}
  2377.     private:
  2378.         CFbsBitmap* iBitmap;
  2379.         CFbsBitmap* iMask;
  2380.     };
  2381. #line 112
  2382. class MAknIconFileProvider
  2383.     {
  2384.     public:
  2385.         enum TIconFileType
  2386.             {
  2387.             EMbmFile = 0,
  2388.             EMifFile = 1
  2389.             };
  2390.     public:
  2391.         virtual ~MAknIconFileProvider() {}
  2392. #line 144
  2393.         virtual void RetrieveIconFileHandleL(
  2394.             RFile& aFile, const TIconFileType aType ) = 0;
  2395. #line 159
  2396.         virtual void Finished() = 0;
  2397.     };
  2398. class AknIconUtils
  2399.     {
  2400.     public:
  2401. #line 188
  2402.         __declspec(dllexport) static void CreateIconL(
  2403.             CFbsBitmap*& aBitmap,
  2404.             CFbsBitmap*& aMask,
  2405.             const TDesC& aFileName,
  2406.             TInt aBitmapId,
  2407.             TInt aMaskId );
  2408. #line 213
  2409.         __declspec(dllexport) static void CreateIconLC(
  2410.             CFbsBitmap*& aBitmap,
  2411.             CFbsBitmap*& aMask,
  2412.             const TDesC& aFileName,
  2413.             TInt aBitmapId,
  2414.             TInt aMaskId );
  2415. #line 233
  2416.         __declspec(dllexport) static CFbsBitmap* CreateIconL(
  2417.             const TDesC& aFileName,
  2418.             TInt aBitmapId );
  2419. #line 258
  2420.         __declspec(dllexport) static void CreateIconL(
  2421.             CFbsBitmap*& aBitmap,
  2422.             CFbsBitmap*& aMask,
  2423.             MAknIconFileProvider& aFileProvider,
  2424.             TInt aBitmapId,
  2425.             TInt aMaskId );
  2426. #line 285
  2427.         __declspec(dllexport) static void CreateIconLC(
  2428.             CFbsBitmap*& aBitmap,
  2429.             CFbsBitmap*& aMask,
  2430.             MAknIconFileProvider& aFileProvider,
  2431.             TInt aBitmapId,
  2432.             TInt aMaskId );
  2433. #line 307
  2434.         __declspec(dllexport) static CFbsBitmap* CreateIconL(
  2435.             MAknIconFileProvider& aFileProvider,
  2436.             TInt aBitmapId );
  2437. #line 333
  2438.         __declspec(dllexport) static void PreserveIconData( CFbsBitmap* aBitmap );
  2439. #line 343
  2440.         __declspec(dllexport) static void DestroyIconData( CFbsBitmap* aBitmap );
  2441. #line 360
  2442.         __declspec(dllexport) static TInt SetSize(
  2443.             CFbsBitmap* aBitmap,
  2444.             const TSize& aSize,
  2445.             TScaleMode aMode = EAspectRatioPreserved );
  2446. #line 381
  2447.         __declspec(dllexport) static TInt SetSizeAndRotation(
  2448.             CFbsBitmap* aBitmap,
  2449.             const TSize& aSize,
  2450.             TScaleMode aMode,
  2451.             TInt aAngle );
  2452. #line 398
  2453.         __declspec(dllexport) static void SetObserver( CFbsBitmap* aBitmap, MAknIconObserver* aObserver );
  2454.         __declspec(dllexport) static const TDesC& AvkonIconFileName();
  2455. #line 421
  2456.         __declspec(dllexport) static void ValidateLogicalAppIconId(
  2457.             const TDesC& aIconFileName,
  2458.             TInt& aBitmapId,
  2459.             TInt& aMaskId );
  2460. #line 435
  2461.         __declspec(dllexport) static TBool IsMifFile( const TDesC& aFileName );
  2462. #line 447
  2463.         __declspec(dllexport) static TBool IsMifIcon( const CFbsBitmap* aBitmap );
  2464. #line 465
  2465.         __declspec(dllexport) static TInt GetContentDimensions(
  2466.             CFbsBitmap* aBitmap,
  2467.             TSize& aContentDimensions );
  2468. #line 484
  2469.         __declspec(dllexport) static TInt GetContentDimensions(
  2470.             CFbsBitmap* aBitmap,
  2471.             TAknContentDimensions& aContentDimensions );
  2472. #line 520
  2473.         __declspec(dllexport) static CAknIcon* CreateIconL( CAknIcon* aSourceIcon );
  2474. #line 537
  2475.         __declspec(dllexport) static CFbsBitmap* CreateIconL( CFbsBitmap* aSourceBitmap );
  2476. #line 549
  2477.         __declspec(dllexport) static void SetIconColor( CFbsBitmap* aBitmap, const TRgb aColor );
  2478.         static void ScaleBitmapL(
  2479.             const TRect& aTrgRect,
  2480.             CFbsBitmap* aTrgBitmap,
  2481.             CFbsBitmap* aSrcBitmap );
  2482. #line 578
  2483.         static void RotateAndScaleBitmapL(
  2484.             const TRect& aTrgRect,
  2485.             CFbsBitmap* aTrgBitmap,
  2486.             CFbsBitmap* aSrcBitmap,
  2487.             TInt aAngle );
  2488.     private:
  2489. #line 594
  2490.         static TBool IsAknBitmap( const CFbsBitmap* aBitmap );
  2491.         static void CreateIconLC(
  2492.             CFbsBitmap*& aBitmap,
  2493.             CFbsBitmap*& aMask,
  2494.             const TDesC& aFileName,
  2495.             TInt aBitmapId,
  2496.             TInt aMaskId,
  2497.             MAknIconFileProvider* aFileProvider );
  2498.         static void CreateIconLC(
  2499.             CFbsBitmap*& aBitmap,
  2500.             CFbsBitmap*& aMask,
  2501.             const TDesC& aFileName,
  2502.             TInt aBitmapId,
  2503.             TInt aMaskId,
  2504.             RFile& aFile );
  2505.     private:
  2506.         AknIconUtils();
  2507.     };
  2508. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\AknIconUtils.inl" /* stack depth 2 */
  2509. #line 22
  2510. inline TAknContentDimensions::TAknContentDimensions():
  2511.     iWidth(0),iHeight(0)
  2512.     {
  2513.     }
  2514. inline TAknContentDimensions::TAknContentDimensions(TReal32 aWidth, TReal32 aHeight):
  2515.     iWidth(aWidth),iHeight(aHeight)
  2516.     {
  2517.     }
  2518. inline void TAknContentDimensions::SetDimensions(TReal32 aWidth, TReal32 aHeight)
  2519.     {
  2520.     iWidth  = aWidth;
  2521.     iHeight = aHeight;
  2522.     }
  2523. inline void TAknContentDimensions::SetDimensions(const TSize& aDimensions)
  2524.     {
  2525.     iWidth  = aDimensions.iWidth;
  2526.     iHeight = aDimensions.iHeight;
  2527.     }
  2528. #line 624 "C:\Symbian\9.1\S60_3rd\epoc32\include\akniconutils.h" /* stack depth 1 */
  2529. #line 10 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  2530. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\S60UIExample.mbg" /* stack depth 1 */
  2531. enum TMifS60uiexample
  2532. {
  2533. EMbmS60uiexampleGame_bkg = 16384,
  2534. EMbmS60uiexampleGame_bkg_mask = 16385,
  2535. EMbmS60uiexampleStart_bkg = 16386,
  2536. EMbmS60uiexampleStart_bkg_mask = 16387,
  2537. EMbmS60uiexampleGraduated_bkg = 16388,
  2538. EMbmS60uiexampleGraduated_bkg_mask = 16389,
  2539. EMbmS60uiexampleGun = 16390,
  2540. EMbmS60uiexampleGun_mask = 16391,
  2541. EMbmS60uiexampleDagger = 16392,
  2542. EMbmS60uiexampleDagger_mask = 16393,
  2543. EMbmS60uiexampleCandlestick = 16394,
  2544. EMbmS60uiexampleCandlestick_mask = 16395,
  2545. EMbmS60uiexampleLastElement
  2546. };
  2547. #line 11 "C:\gbtukmanpf01\NOK124\Courses\S60\05300-S60_C++_Introduction\Working\LabCode\Lab_05304-s2.cb1\starter\src\S60UIExamplePlayContainer.cpp" /* stack depth 0 */
  2548. CS60UIExamplePlayContainer* CS60UIExamplePlayContainer::
  2549. NewL(const TRect& aRect, CS60UIExampleModel& aModel)
  2550.     {
  2551.     CS60UIExamplePlayContainer* self =
  2552.             CS60UIExamplePlayContainer::NewLC(aRect, aModel);
  2553.     CleanupStack::Pop(self);
  2554.     return self;
  2555.     }
  2556. CS60UIExamplePlayContainer* CS60UIExamplePlayContainer::
  2557. NewLC(const TRect& aRect, CS60UIExampleModel& aModel)
  2558.     {
  2559.     CS60UIExamplePlayContainer* self =
  2560.             new (ELeave) CS60UIExamplePlayContainer(aModel);
  2561.     CleanupStack::PushL(self);
  2562.     self->ConstructL(aRect);
  2563.     return self;
  2564.     }
  2565. CS60UIExamplePlayContainer::
  2566.     CS60UIExamplePlayContainer(CS60UIExampleModel& aModel)
  2567.     : iModel(aModel)
  2568.     {
  2569.     }
  2570. void CS60UIExamplePlayContainer::ConstructL(const TRect& aRect)
  2571.     {
  2572.     CreateWindowL();
  2573.     CEikStatusPane* statusPane = ((CAknViewAppUi*)CEikonEnv::Static()->EikAppUi()) ->StatusPane();
  2574.     iNaviPane = (CAknNavigationControlContainer*)
  2575.         statusPane->ControlL(TUid::Uid(0x100059BD ));
  2576.     UpdateNaviPaneL();
  2577.     const static TLitC<sizeof(L"z:\resource\apps\S60UIExample.mif")/2> KSvgFile={sizeof(L"z:\resource\apps\S60UIExample.mif")/2-1,L"z:\resource\apps\S60UIExample.mif"} ;
  2578.     iBkgBitmap = AknIconUtils::CreateIconL(KSvgFile, EMbmS60uiexampleGame_bkg);
  2579.     SetRect(aRect);
  2580.     ActivateL();
  2581.     }
  2582. CS60UIExamplePlayContainer::~CS60UIExamplePlayContainer()
  2583.     {
  2584.     delete iNaviDecorator;
  2585.     delete iBkgBitmap;
  2586.     }
  2587. void CS60UIExamplePlayContainer::SizeChanged()
  2588.     {
  2589.     TRect rect = Rect();
  2590.     TInt error = AknIconUtils::SetSize(iBkgBitmap,
  2591.                                        rect.Size(),
  2592.                                        EAspectRatioNotPreserved);
  2593.     }
  2594. void CS60UIExamplePlayContainer::HandleResourceChange(TInt aType)
  2595.     {
  2596.     CCoeControl::HandleResourceChange(aType);
  2597.     if (aType == KEikDynamicLayoutVariantSwitch)
  2598.         {
  2599.         TRect rect;
  2600.         AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
  2601.         SetRect(rect);
  2602.         }
  2603.     }
  2604. void CS60UIExamplePlayContainer::Draw(const TRect& aRect) const
  2605.     {
  2606.     CWindowGc& gc = SystemGc();
  2607.     gc.BitBlt(TPoint(0,0), iBkgBitmap);
  2608.     if (iModel.IsGamePaused())
  2609.         {
  2610.         const static TLitC<sizeof(L"Game Paused")/2> KPausedText={sizeof(L"Game Paused")/2-1,L"Game Paused"} ;
  2611.         gc.SetPenStyle(CGraphicsContext::ESolidPen);
  2612.         gc.SetPenColor(TRgb(0x000000) );
  2613.         gc.UseFont(AknLayoutUtils::FontFromId(EAknLogicalFontTitleFont));
  2614.         TPoint textPos(aRect.iBr.iX/4, aRect.iBr.iY/2);
  2615.         gc.DrawText(KPausedText, textPos);
  2616.         gc.DiscardFont();
  2617.         }
  2618.     }
  2619. TKeyResponse CS60UIExamplePlayContainer::OfferKeyEventL(const TKeyEvent&
  2620.                                                         aKeyEvent,
  2621.                                                         TEventCode aType)
  2622.     {
  2623.     if (aType != EEventKey)
  2624.         {
  2625.         return EKeyWasNotConsumed;
  2626.         }
  2627.     if (!iModel.IsGameStarted() || iModel.IsGamePaused())
  2628.         {
  2629.         return EKeyWasNotConsumed;
  2630.         }
  2631.     switch (aKeyEvent.iCode)
  2632.         {
  2633.         case '1':
  2634.         case '2':
  2635.         case '3':
  2636.         case '4':
  2637.         case '5':
  2638.         case '6':
  2639.         case '7':
  2640.         case '8':
  2641.         case '9':
  2642.             {
  2643.             TInt keyNum = aKeyEvent.iCode - '0';
  2644.             TInt score = iModel.Score() + keyNum;
  2645.             iModel.SetScore(score);
  2646.             TInt level = iModel.LevelNumber();
  2647.             if (score > level *100)
  2648.                 {
  2649.                 iModel.SetLevelNumber(level + 1);
  2650.                 }
  2651.             UpdateNaviPaneL();
  2652.             break;
  2653.             }
  2654.         default:
  2655.             return EKeyWasNotConsumed;
  2656.         }
  2657.     return EKeyWasConsumed;
  2658.     }
  2659. void CS60UIExamplePlayContainer::UpdateNaviPaneL()
  2660.     {
  2661.     if (iNaviDecorator)
  2662.         {
  2663.         iNaviPane->Pop(iNaviDecorator);
  2664.         delete iNaviDecorator;
  2665.         iNaviDecorator = 0 ;
  2666.         }
  2667.     TBuf<100> naviText;
  2668.     const static TLitC<sizeof(L"Level %d  Score %d")/2> KNaviText={sizeof(L"Level %d  Score %d")/2-1,L"Level %d  Score %d"} ;
  2669.     naviText.Format(KNaviText,iModel.LevelNumber(), iModel.Score());
  2670.     iNaviDecorator = iNaviPane->CreateNavigationLabelL(naviText);
  2671.     iNaviPane->PushL(*iNaviDecorator);
  2672.     }