00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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
00029
00030 const TUid KUidExampleShellApp={ 0xE800004E };
00031
00032
00033
00034
00035
00036 class TExampleShellModel
00037 {
00038 public:
00039 TExampleShellModel();
00040 TBool Differs(const TExampleShellModel* aCompare) const;
00041 public:
00042 TFileName iLibrary;
00043 };
00044
00045
00046
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
00057 void ResetExampleL(CGraphicExampleControl* aExample);
00058 private:
00059 void Draw(const TRect& ) const;
00060 TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
00061 TInt CountComponentControls() const;
00062 CCoeControl* ComponentControl(TInt aIndex) const;
00063 private:
00064 void NotifyGraphicExampleFinished();
00065 public:
00066 void NotifyStatus(const TDesC& aMessage);
00067 private:
00068 void CreateLabelL();
00069 private:
00070 CGraphicExampleControl* iExampleControl;
00071 CEikLabel* iLabel;
00072
00073 TExampleShellModel* iModel;
00074 };
00075
00076
00077
00078
00079
00080 class CExampleShellDocument : public CEikDocument
00081 {
00082 public:
00083 CExampleShellDocument(CEikApplication& aApp): CEikDocument(aApp) { }
00084 TExampleShellModel* Model() { return(&iModel); }
00085 private:
00086 CEikAppUi* CreateAppUiL();
00087 private:
00088 TExampleShellModel iModel;
00089 };
00090
00091
00092
00093
00094
00095 class CExampleShellAppUi : public CEikAppUi
00096 {
00097 public:
00098 void ConstructL();
00099 ~CExampleShellAppUi();
00100 private:
00101 void HandleCommandL(TInt aCommand);
00102 private:
00103
00104 private:
00105 CExampleShellContainer* iContainer;
00106 TExampleShellModel* iModel;
00107 };
00108
00109
00110
00111
00112
00113 class CExampleShellApplication : public CEikApplication
00114 {
00115 private:
00116 CApaDocument* CreateDocumentL();
00117 TUid AppDllUid() const;
00118 };
00119
00120 #endif