williamr@2: /* williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Defines a public class CAknsBasicBackgroundControlContext. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef AKNSBASICBACKGROUNDCONTROLCONTEXT_H williamr@2: #define AKNSBASICBACKGROUNDCONTROLCONTEXT_H williamr@2: williamr@2: // INCLUDES williamr@2: #include <AknsControlContext.h> williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class TAknsBackground; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Implementation of a control context that provides a layout background with williamr@2: * a background bitmap and its layout rectangle. williamr@2: * williamr@2: * This is a public class with exported functions. williamr@2: * The class is not intended for derivation outside the library. williamr@2: * williamr@2: * @lib AknSkins.lib williamr@2: * williamr@2: * @since 2.0 williamr@2: */ williamr@2: NONSHARABLE_CLASS(CAknsBasicBackgroundControlContext) : public CBase, williamr@2: public MAknsControlContext williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. williamr@2: * williamr@2: * @since 2.0 williamr@2: * williamr@2: * @param aImageID Item ID of the background bitmap. williamr@2: * williamr@2: * @param aRect Rectangle where the bitmap should be laid out. williamr@2: * williamr@2: * @param aParentAbsolute ETrue if parent absolute layout should be williamr@2: * used, EFalse otherwise. If a parent absolute layout is used, williamr@2: * the parent position must be set and updated using SetParentPos. williamr@2: * williamr@2: * @return Newly constructed object. williamr@2: */ williamr@2: IMPORT_C static CAknsBasicBackgroundControlContext* NewL( williamr@2: const TAknsItemID& aImageID, const TRect& aRect, williamr@2: TBool aParentAbsolute ); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: virtual ~CAknsBasicBackgroundControlContext(); williamr@2: williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * Sets the item ID of the background bitmap. williamr@2: * williamr@2: * @since 2.0 williamr@2: * williamr@2: * @param aID Item ID of the bitmap. williamr@2: */ williamr@2: IMPORT_C void SetBitmap( const TAknsItemID& aID ); williamr@2: williamr@2: /** williamr@2: * Sets the layout rectangle of the bitmap. williamr@2: * williamr@2: * @since 2.0 williamr@2: * williamr@2: * @param aRect Rectangle where the bitmap should be laid out. williamr@2: */ williamr@2: IMPORT_C void SetRect( const TRect& aRect ); williamr@2: williamr@2: /** williamr@2: * Sets the parent position for the layout. This is only williamr@2: * used if parent absolute layout was enabled during construction. williamr@2: * williamr@2: * @since 2.0 williamr@2: * williamr@2: * @param aPos Parent position in screen relative coordinates. williamr@2: */ williamr@2: IMPORT_C void SetParentPos( const TPoint& aPos ); williamr@2: williamr@2: /** williamr@2: * Sets the parent context (drawn beneath the context itself). williamr@2: * No ownership is claimed. The parent context object must be williamr@2: * valid as long as it is set as parent context. williamr@2: * williamr@2: * @since 2.6 williamr@2: * williamr@2: * @param aParentContext Pointer to the parent context, or williamr@2: * @c NULL (default value) if none used. williamr@2: */ williamr@2: IMPORT_C void SetParentContext( MAknsControlContext* aParentContext ); williamr@2: williamr@2: public: // Functions from MAknsControlContext williamr@2: williamr@2: /** williamr@2: * @copydoc MAknsControlContext::SupplySkinParameter williamr@2: */ williamr@2: TInt SupplySkinParameter( TAknsCCParameter aParam ); williamr@2: williamr@2: /** williamr@2: * @copydoc MAknsControlContext::SupplySkinObject williamr@2: */ williamr@2: TAny* SupplySkinObject( TAknsCCObject aObject ); williamr@2: williamr@2: /** williamr@2: * @copydoc MAknsControlContext::IsCompatibleWithType williamr@2: */ williamr@2: TBool IsCompatibleWithType( const TAknsControlContextType aType ) const; williamr@2: williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * C++ constructor. williamr@2: */ williamr@2: CAknsBasicBackgroundControlContext(); williamr@2: williamr@2: /** williamr@2: * Symbian 2nd phase constructor. williamr@2: */ williamr@2: void ConstructL( const TRect& aRect, TBool aParentAbsolute, williamr@2: const TAknsItemID& aImageID ); williamr@2: williamr@2: protected: // Data williamr@2: williamr@2: TAknsBackground* iLayout; //<! Background layout structure. williamr@2: MAknsControlContext* iParentContext; //<! Parent context (not owned). williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // AKNSBASICBACKGROUNDCONTROLCONTEXT_H williamr@2: williamr@2: // End of File