00001 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). 00002 // All rights reserved. 00003 // This component and the accompanying materials are made available 00004 // under the terms of "Eclipse Public License v1.0" 00005 // which accompanies this distribution, and is available 00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html". 00007 // 00008 // Initial Contributors: 00009 // Nokia Corporation - initial contribution. 00010 // 00011 // Contributors: 00012 // 00013 // Description: 00014 // 00015 00016 #ifndef __GraphicsShell_H 00017 #define __GraphicsShell_H 00018 00019 #include <coecntrl.h> 00020 #include <coeccntx.h> 00021 00022 #include <eikappui.h> 00023 #include <eikapp.h> 00024 #include <eikdoc.h> 00025 00026 #include "GraphicsControl.h" 00027 00028 // UID of app 00029 00030 const TUid KUidExampleShellApp={ 0xE800004E }; 00031 00032 // 00033 // TExampleShellModel 00034 // 00035 00036 class TExampleShellModel 00037 { 00038 public: 00039 TExampleShellModel(); 00040 TBool Differs(const TExampleShellModel* aCompare) const; 00041 public: 00042 TFileName iLibrary; // active control 00043 }; 00044 00045 // 00046 // class CExampleShellContainer 00047 // 00048 00049 class CExampleShellContainer : public CCoeControl, 00050 public MCoeControlBrushContext, 00051 public MGraphicsExampleObserver 00052 { 00053 public: 00054 void ConstructL(const TRect& aRect, TExampleShellModel* aModel); 00055 ~CExampleShellContainer(); 00056 // changing view 00057 void ResetExampleL(CGraphicExampleControl* aExample); 00058 private: // from CCoeControl 00059 void Draw(const TRect& /*aRect*/) const; 00060 TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); 00061 TInt CountComponentControls() const; 00062 CCoeControl* ComponentControl(TInt aIndex) const; 00063 private: // from MGraphicsExampleObserver 00064 void NotifyGraphicExampleFinished(); 00065 public: // also from MGraphicsExampleObserver 00066 void NotifyStatus(const TDesC& aMessage); 00067 private: // new function 00068 void CreateLabelL(); 00069 private: // data 00070 CGraphicExampleControl* iExampleControl; // example control 00071 CEikLabel* iLabel; // label for status messages 00072 // irrelevant 00073 TExampleShellModel* iModel; 00074 }; 00075 00076 // 00077 // CExampleShellDocument 00078 // 00079 00080 class CExampleShellDocument : public CEikDocument 00081 { 00082 public: 00083 CExampleShellDocument(CEikApplication& aApp): CEikDocument(aApp) { } 00084 TExampleShellModel* Model() { return(&iModel); } 00085 private: // from CEikDocument 00086 CEikAppUi* CreateAppUiL(); 00087 private: 00088 TExampleShellModel iModel; 00089 }; 00090 00091 // 00092 // CExampleShellAppUi 00093 // 00094 00095 class CExampleShellAppUi : public CEikAppUi 00096 { 00097 public: 00098 void ConstructL(); 00099 ~CExampleShellAppUi(); 00100 private: // from CEikAppUi 00101 void HandleCommandL(TInt aCommand); 00102 private: // internal use 00103 // void PrepareToolbarButtons(); 00104 private: 00105 CExampleShellContainer* iContainer; 00106 TExampleShellModel* iModel; 00107 }; 00108 00109 // 00110 // CExampleShellApplication 00111 // 00112 00113 class CExampleShellApplication : public CEikApplication 00114 { 00115 private: // from CApaApplication 00116 CApaDocument* CreateDocumentL(); 00117 TUid AppDllUid() const; 00118 }; 00119 00120 #endif
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.