williamr@2: /* williamr@2: * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Screen Clearer API, support for screen blanking. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef AKNCLEARER_H williamr@2: #define AKNCLEARER_H williamr@2: williamr@2: #include williamr@2: williamr@2: #include williamr@2: williamr@2: class CAknScreenClearerBaseExtension; williamr@2: williamr@2: /** williamr@2: * This class is base class for screen blanking. williamr@2: * williamr@2: * @since Series 60 0.9 williamr@2: */ williamr@2: class CAknScreenClearerBase : public CAknControl williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Handles situation when status pane size changes. williamr@2: */ williamr@2: IMPORT_C void HandleStatusPaneSizeChangeL(); williamr@2: williamr@2: public: // from CCoeControl williamr@2: williamr@2: /** williamr@2: * From CCoeControl. williamr@2: */ williamr@2: IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); williamr@2: williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: IMPORT_C virtual ~CAknScreenClearerBase(); williamr@2: williamr@2: /** williamr@2: * Symbian 2nd phase constructor. williamr@2: * williamr@2: * @param aParent Parent window group. williamr@2: * @param aOrdinalPos Ordinal position of the blank window. williamr@2: * @param aBlankAppStatusPane A flag to decide if application status pane area is to blanked or not. williamr@2: */ williamr@2: IMPORT_C void ConstructL(RWindowGroup& aParent, TInt aOrdinalPos, TBool aBlankAppStatusPane); williamr@2: williamr@2: private: // from CCoeControl williamr@2: williamr@2: /** williamr@2: * From CCoeControl. williamr@2: */ williamr@2: IMPORT_C void Draw(const TRect& aRect) const; williamr@2: williamr@2: private: // from CAknControl williamr@2: /** williamr@2: * From CAknControl. williamr@2: */ williamr@2: IMPORT_C void* ExtensionInterface( TUid aInterface ); williamr@2: williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * Sets shape for the cleared window. williamr@2: */ williamr@2: void SetShapeL(); williamr@2: williamr@2: /** williamr@2: * Sets skin background and shape for the cleared window. williamr@2: */ williamr@2: void SetSkinShapeL(); williamr@2: williamr@2: private: williamr@2: CAknScreenClearerBaseExtension* iExtension; williamr@2: TBitFlags iFlags; williamr@2: }; williamr@2: williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * This class is for use inside applications for screen blanking. williamr@2: * williamr@2: * @since Series 60 0.9 williamr@2: */ williamr@2: class CAknLocalScreenClearer : public CAknScreenClearerBase williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. williamr@2: */ williamr@2: IMPORT_C static CAknLocalScreenClearer* NewLC(); williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. williamr@2: * @param aBlankAppStatusPane @c ETrue if application status pane is blank, williamr@2: * @c EFalse if not. williamr@2: */ williamr@2: IMPORT_C static CAknLocalScreenClearer* NewLC(TBool aBlankAppStatusPane); williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. williamr@2: * @param aBlankAppStatusPane @c ETrue if application status pane is blank, williamr@2: * @c EFalse if not. williamr@2: */ williamr@2: IMPORT_C static CAknLocalScreenClearer* NewL(TBool aBlankAppStatusPane); williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: */ williamr@2: IMPORT_C void HandleResourceChange(TInt aType); williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // AKNCLEARER_H