photosgallery/viewframework/uiutilities/inc/glxskinchangemonitor.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:45:44 +0200
changeset 0 4e91876724a2
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2008-2009 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:    CoeControl utility for monitoring skin change
*
*/





#ifndef C_GLXSKINCHANGEMONITOR_H
#define C_GLXSKINCHANGEMONITOR_H

#include <coecntrl.h>
#include <AknUtils.h>
#include "mglxskinchangeobserver.h"

/**
 *  CGlxSkinChangeMonitor
 *
 *  Utility to handle skin changes.
 *
 *  @lib 
 *
 *  @internal reviewed 
 */
class CGlxSkinChangeMonitor : public CCoeControl
	{
	
	/* for unit testing */
	friend class t_glxskinchangemonitor;
	friend class t_cglxhuiutility;
	
	public: // the API

	    virtual ~CGlxSkinChangeMonitor();

	    /**
         * Two-phased constructor.
         *
         * @return Pointer
         */
		static CGlxSkinChangeMonitor* NewL();
	
     

	private:	// Implementation

	    /**
	     * C++ constructor 
	     * @param aEnv the Hui environment
	     */
	    CGlxSkinChangeMonitor();
	    
	    
	    /**
        * Symbian 2nd phase constructor
        */
	    void ConstructL();

        
    public:
		/**
		 * Handles resource change. From CCoeControl
		 *
		 * @ref CCoeControl::HandleResourceChange
		 */ 
		void HandleResourceChange( TInt aType );
		
		/**
		 *Add MGlxSkinChangeObserver to skin change observers array. 
		 *@param aObserver Reference of the MGlxSkinChangeObserver.
		 */
		 void AddSkinChangeObserverL( MGlxSkinChangeObserver& aObserver );
		 
		/**
		 *Remove MGlxSkinChangeObserver from skin change observers array. 
		 *@param aObserver Reference of the MGlxSkinChangeObserver.
		 */
		 void RemoveSkinChangeObserver( MGlxSkinChangeObserver& aObserver );

    private:	
    	
    	/**
         * Observers that will be notified if skin is changed
         * owned
         */
        RPointerArray<MGlxSkinChangeObserver> iSkinChangeObservers; 

	};

#endif // C_GLXUIUTILITYCOECONTROL_H