diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/coretoolkit/inc/huicanvasbackground.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/coretoolkit/inc/huicanvasbackground.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,158 @@ +/* +* Copyright (c) 2006-2007 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: +* +*/ + + + +#ifndef __HUICANVASBACKGROUND_H__ +#define __HUICANVASBACKGROUND_H__ + + +#include +#include + +class CHuiCanvasGc; +class CHuiCanvasVisual; + + +class CHuiCanvasBackground : public CBase + { +public: + + /** + * Constructor. + */ + CHuiCanvasBackground(); + + + /** + * Destructor. + */ + ~CHuiCanvasBackground(); + + /** + * Constructor. + */ + static CHuiCanvasBackground* NewL(); + + /** + * Constructor. + */ + static CHuiCanvasBackground* NewLC(); + + /** + * Second-phase constructor. + */ + void ConstructL(); + + /** + * Sets visual which is using this background. + */ + void SetVisual(CHuiCanvasVisual* aVisual); + + /** + * Drawing. + */ + void DrawSelf(CHuiGc& aGc, const TRect& aDisplayRect); + + /** + * Sets the flag that tells the canvas to clear the background before + * doing a refresh. + * + * @param aClearBackground Background clearing mode. + * @see SetBackgroundColor() + */ + void SetClearBackground(CHuiDisplay::TClearMode aClearBackground); + + /** + * Gets the flag that tells the canvas to clear the background before + * doing a refresh. + * + * @return Background clearing mode. + */ + TInt ClearBackground(); + + /** + * Sets the background color of the display, if background clearing has + * been enabled. + * + * @param aBackgroundColor The color to set the background to. + * @see SetClearBackgroundL() + */ + void SetBackgroundColor(const TRgb& aBackgroundColor); + + /** + * Sets the items that specify how to clear display before display refresh. + * Items may have overlapping rectangles, drawing order is same as item order + * in the parameter array. But having lots of overlapping drawing + * causes negative performance impact. + * + * This method is alternative to SetClearBackgroundL and SetBackgroundColor + * methods. + * + * @see SetBackgroundColor() + * @see SetClearBackgroundL() + * @param aItems Array of items that specify how to clear the background. + */ + void SetBackgroundItems(const RArray& aItems); + + /** + * Gets the number of THuiDisplayBackground items set, for the canvas visual + * + * @return Number of background items + */ + TInt BackgroundItemsCount(); + + /** + * Gets the items that specify how to clear display before display refresh. + * @param aItems Returned items are written into the array. + */ + void GetBackgroundItems(RArray& aItems); + + /** + * Gets the background color of the display, if background clearing has + * been enabled. + * + * @return The color to set the background to. + */ + TRgb BackgroundColor() const; + +private: + + void ClearWithColor(CHuiGc& aGc, const TRect& aDisplayRect); + + void ClearWithSkinBackground(const TRect& aDisplayRect); + + void ClearWithBackgroundItems(const TRect& aDisplayRect); + +private: + + /** Canavas visual which uses this background */ + CHuiCanvasVisual* iCanvasVisual; + + /** Determines if the background should be cleared before drawing. */ + TInt iClearBackground; + + /** Background color for the display, if clearing enabled. */ + TRgb iBackgroundColor; + + /** Array of background items */ + RArray iBackgroundItems; + + }; + +#endif +