00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __EmbeddingGraphicsControl_H
00017 #define __EmbeddingGraphicsControl_H
00018
00019 #include <coecntrl.h>
00020 #include <s32file.h>
00021
00022
00023
00024
00025
00026
00027 #include "CommonGraphicsControlFramework.h"
00028
00029 class CSmileyPicture : public CPicture
00030 {
00031 public:
00032 enum TMood { EHappy, ENeutral, ESad };
00033 enum TSizeSpec { ELarge, EMedium, ESmall };
00034
00035
00036 CSmileyPicture();
00037 static CSmileyPicture* NewL(TMood aMood, TSizeSpec aSizeSpec);
00038 static CSmileyPicture* NewL(const CStreamStore& aStore, TStreamId aStreamId);
00039 TStreamId StoreL(CStreamStore& aStore) const;
00040 void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
00041 MGraphicsDeviceMap* aMap)const;
00042
00043 void SetMood(TMood aMood);
00044 TMood Mood();
00045 void SetSize(TSizeSpec aSizeSpec);
00046 TSizeSpec Size();
00047 TInt SpecToFactor() const;
00048
00049 void GetOriginalSizeInTwips(TSize& aSize) const;
00050
00051
00052 void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight);
00053 void SetCropInTwips(const TMargins& aMargins);
00054 TPictureCapability Capability() const;
00055 void GetCropInTwips(TMargins& aMargins) const;
00056 TInt ScaleFactorWidth() const;
00057 TInt ScaleFactorHeight() const;
00058 private:
00059
00060 void ExternalizeL(RWriteStream& aStream) const;
00061 void InternalizeL(RReadStream& aStream);
00062 private:
00063
00064 TMood iMood;
00065 TSizeSpec iSizeSpec;
00066 };
00067
00068
00069
00070 class CPictureControl : public CGraphicExampleControl
00071 {
00072 public:
00073 CPictureControl();
00074 ~CPictureControl() { delete(iPicture); };
00075 void UpdateModelL();
00076 void Draw(const TRect& aRect) const;
00077 private:
00078 enum TDocStatus { EFalse, EHeader, EPicture };
00079 TStreamId StoreHeaderL(CStreamStore& aStore) const;
00080 void StoreHeaderComponentsL(CStoreMap& aMap,CStreamStore& aStore) const;
00081 void RestoreHeaderL(CStreamStore& aStore, TStreamId aId);
00082
00083 TZoomFactor testZf;
00084 MGraphicsDeviceMap* testMap;
00085
00086 TDocStatus iValidDocument;
00087 CSmileyPicture* iPicture;
00088 TPictureHeader iHeader;
00089 TPoint iOffset;
00090 CFileStore* iStore;
00091 TStreamId iHeaderId;
00092 };
00093
00094
00095 #endif