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