/** Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved.* This component and the accompanying materials are made available* under the terms of "Eclipse Public License v1.0"* which accompanies this distribution, and is available* at the URL "http://www.eclipse.org/legal/epl-v10.html".** Initial Contributors:* Nokia Corporation - initial contribution.** Contributors:** Description: Default implementation of bitmap class.**/#ifndef CIHLBITMAP_H#define CIHLBITMAP_H// INCLUDES#include <MIHLBitmap.h>#include <e32base.h>// CLASS DECLARATION/*** CIHLBitmap** Default implementation of bitmap class.* @lib IHL.lib* @since 3.0*/NONSHARABLE_CLASS( CIHLBitmap ) : public CBase, public MIHLBitmap { public: // Constructors and destructor /** * Two-phased constructors */ static CIHLBitmap* NewL(); /** * Virtual destructor. */ virtual ~CIHLBitmap(); public: // From base class MIHLBitmap /** * From MIHLBitmap, see base class header. */ TInt Create( const TSize& aSize, TDisplayMode aDisplayMode ); /** * From MIHLBitmap, see base class header. */ TInt Create( const TSize& aSize, TDisplayMode aBitmapDisplayMode, TDisplayMode aMaskDisplayMode ); /** * From MIHLBitmap, see base class header. */ TInt Copy( const CFbsBitmap& aBitmap, TBool aDuplicate ); /** * From MIHLBitmap, see base class header. */ TInt Copy( const CFbsBitmap& aBitmap, const CFbsBitmap& aMask, TBool aDuplicate ); /** * From MIHLBitmap, see base class header. */ TInt Copy( const MIHLBitmap& aBitmap, TBool aDuplicate ); /** * From MIHLBitmap, see base class header. */ void Reset(); /** * From MIHLBitmap, see base class header. */ TBool IsCreated() const; /** * From MIHLBitmap, see base class header. */ const CFbsBitmap& Bitmap() const; /** * From MIHLBitmap, see base class header. */ TBool HasMask() const; /** * From MIHLBitmap, see base class header. */ const CFbsBitmap& Mask() const; /** * From MIHLBitmap, see base class header. */ void Draw( CBitmapContext& aContext, const TPoint& aPoint ) const; /** * From MIHLBitmap, see base class header. */ void Draw( CBitmapContext& aContext, const TPoint& aPoint, const TRect& aSourceRect ) const; public: // Internal interface /** * Non-const bitmap reference. * @since 3.0 * @return Non-const bitmap reference. */ CFbsBitmap& BitmapModifyable(); /** * Non-const bitmap reference. * @since 3.0 * @return Non-const bitmap reference. */ CFbsBitmap& MaskModifyable(); /** * Set editor pointer. This information is used * internally to detect what class has made changes to bitmap data. * @since 3.0 * @param aEditorPtr Editor pointer */ void SetEditorPtr( const TAny* aEditorPtr ); /** * Set editor value. Meaning of this value may vary depending * on type of editor class. * @since 3.0 * @param aEditorValue Editor custom value */ void SetEditorValue( TInt aEditorValue ); /** * Return Editor pointer. NULL if just created or reseted. * @return Editor pointer. */ const TAny* EditorPtr() const; /** * Return editor value. * @since 3.0 * @return Editor custom value. */ TInt EditorValue() const; public: // Private methods TInt CopyBitmap( const CFbsBitmap& aSource, CFbsBitmap& aDestination ); TInt CopyBitmapData( const CFbsBitmap& aSource, CFbsBitmap& aDestination, const TSize& aSize, const TDisplayMode& aDisplayMode ); private: // Private constructors CIHLBitmap(); void ConstructL(); private: // Data // Own: Bitmap pointers CFbsBitmap* iBitmap; CFbsBitmap* iMask; // Ref: Editor ptr const TAny* iEditorPtr; // Editor value TInt iEditorValue; };#endif // CIHLBITMAP_H// End of File