williamr@4: /* williamr@4: * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: williamr@4: * williamr@4: */ williamr@4: williamr@4: williamr@4: #ifndef __CONPICS_H__ williamr@4: #define __CONPICS_H__ williamr@4: williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: williamr@4: // williamr@4: // Classes declared in this file williamr@4: class CXzePicture; williamr@4: class CTestPicture; williamr@4: class CDummyField; williamr@4: williamr@4: /** williamr@4: @internalTechnology williamr@4: */ williamr@4: const TUid KUidXzePictureType={268435508}; williamr@4: williamr@4: /** williamr@4: @internalComponent williamr@4: */ williamr@4: const TUid KUidXzeDoorType={268435509}; williamr@4: williamr@4: /** williamr@4: @internalComponent williamr@4: */ williamr@4: const TInt KWidthInTwips=360; williamr@4: const TInt KHeightInTwips=360; williamr@4: williamr@4: class MDemPictureFactory : public MPictureFactory williamr@4: /** williamr@4: @internalComponent williamr@4: */ williamr@4: { williamr@4: // Instantiates new CDemPictureHeaders. williamr@4: public: williamr@4: IMPORT_C MDemPictureFactory(); // Force GCC to export vtable. williamr@4: IMPORT_C virtual void NewPictureL(TPictureHeader& aHeader,const CStreamStore& aDeferredPictureStore)const; williamr@4: }; williamr@4: williamr@4: williamr@4: //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// williamr@4: williamr@4: class CXzePicture : public CPicture williamr@4: /** williamr@4: @internalTechnology williamr@4: */ williamr@4: { williamr@4: // A simple test picture, that is store aware, and has state. williamr@4: // williamr@4: public: williamr@4: IMPORT_C static CXzePicture* NewL(TChar aLabel); williamr@4: IMPORT_C static CXzePicture* NewL(const CStreamStore& aStore,TStreamId aId); williamr@4: IMPORT_C virtual ~CXzePicture(); williamr@4: // williamr@4: IMPORT_C void ExternalizeL(RWriteStream& aStream)const; williamr@4: IMPORT_C void InternalizeL(RReadStream& aStream); williamr@4: IMPORT_C void RestoreL(const CStreamStore& aStore,TStreamId aId); williamr@4: // williamr@4: IMPORT_C void GetOriginalSizeInTwips(TSize& aSize) const; williamr@4: // williamr@4: IMPORT_C virtual void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,MGraphicsDeviceMap* aMap=NULL)const; williamr@4: protected: williamr@4: IMPORT_C CXzePicture(TChar aLabel); williamr@4: IMPORT_C CXzePicture(); williamr@4: public: williamr@4: TSize iOriginalSizeInTwips; williamr@4: TChar iLabel; // Provides object state. williamr@4: }; williamr@4: williamr@4: williamr@4: class CXzeDoor : public CXzePicture williamr@4: /** williamr@4: @internalComponent williamr@4: */ williamr@4: { williamr@4: // A sample door, that has emulates 2 states of presence. An iconic representation williamr@4: // and a deep representation. williamr@4: // williamr@4: public: williamr@4: IMPORT_C static CXzeDoor* NewL(TChar aLabel,TBool aAlwaysFailToDetach=EFalse); williamr@4: IMPORT_C static CXzeDoor* NewL(const CStreamStore& aStore,TStreamId aId); williamr@4: // williamr@4: IMPORT_C virtual void DetachFromStoreL(TDetach aDegree); williamr@4: // williamr@4: IMPORT_C void ExternalizeL(RWriteStream& aStream)const; williamr@4: IMPORT_C void InternalizeL(RReadStream& aStream); williamr@4: IMPORT_C void RestoreL(const CStreamStore& aStore,TStreamId aId); williamr@4: protected: williamr@4: IMPORT_C CXzeDoor(TChar aLabel,TBool aAlwaysFailToDetach); williamr@4: IMPORT_C CXzeDoor(TBool aAlwaysFailToDetach); williamr@4: public: williamr@4: TBool iAlwaysFailToDetach; williamr@4: }; williamr@4: williamr@4: williamr@4: class CTestPicture : public CPicture williamr@4: /** williamr@4: @internalTechnology williamr@4: */ williamr@4: { williamr@4: public: williamr@4: IMPORT_C static CTestPicture* NewL(); williamr@4: // williamr@4: IMPORT_C void ExternalizeL(RWriteStream& aStream)const; williamr@4: // williamr@4: IMPORT_C void GetOriginalSizeInTwips(TSize& aSize) const; williamr@4: // williamr@4: IMPORT_C virtual void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,MGraphicsDeviceMap* aMap=NULL) const; williamr@4: protected: williamr@4: IMPORT_C CTestPicture(); williamr@4: public: williamr@4: TSize iOriginalSizeInTwips; williamr@4: }; williamr@4: williamr@4: /////////////////////////////////////////////////////////////////////// williamr@4: williamr@4: williamr@4: class CDummyField : public CTextField williamr@4: /** williamr@4: @internalTechnology williamr@4: */ williamr@4: { williamr@4: public: williamr@4: IMPORT_C CDummyField(); williamr@4: IMPORT_C virtual TInt Value(TPtr& aValueText); // value is always "XXX" williamr@4: IMPORT_C virtual void InternalizeL(RReadStream& aStream); williamr@4: IMPORT_C virtual void ExternalizeL(RWriteStream& aStream)const; williamr@4: IMPORT_C virtual TUid Type() const; williamr@4: }; williamr@4: williamr@4: #endif