dependencies/hs_content_control_ui/hscontentcontrolui.h
author Christian Morlok <symbian.org@christianmorlok.de>
Wed, 07 Apr 2010 14:35:19 +0200
branchv5backport
changeset 54 666a2952b5b3
parent 34 1494d39c2fee
permissions -rw-r--r--
renamed dlls+exe to prevent conflicts with existing files in emulator; changelog attached. * renamed dlls/exe: - aifw.dll to aifw_hs.dll - cputils to cputils_hs - aiidleint.dll to aiidleint_hs.dll - aiutils.dll to aiutils_hs.dll - MenuInterface.dll to MenuInterface_hs.dll - XCFW.dll to XCFW_hs.dll - homescreen.exe to homescreen_hs.exe - ailaunch.exe to ailaunch_hs.exe * new UID for Active Idle (aifw_hs.dll, aiidleint_hs.dll and homescreen.exe): #define AI_UID3_AIFW_COMMON 0xEDFF45C4 (was 0x102750F0 = 271012080) * new UID for cputils_hs.dll: 0xE3E7134E (was 0x20016B7F = 536963967) * new UID for AI Utilities Factory (aiutils_hs.dll): 0xEC55106C (was 0x10281865 = 271063141) * new UID for MenuInterface_hs.dll: 0xEEE24485 (was 0x10210EAB = 270601899) * new UID for XCFW_hs.dll: 0xEB12332F (was 0x10210EA0 = 270601888) * new UID for ailaunch_hs.exe: 0xEF5A047A (was 0x200286E3 = 537036515)

/*
 * Copyright (c) 2008 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 HSCONTENTCONTROLUI_H
#define HSCONTENTCONTROLUI_H

// System includes
#include <e32base.h>
#include <ecom/ecom.h>

// Forward declarations
class MHsContentController;
class CAknView;

/**
 *  Content control UI interface
 *
 *
 *  @code
 *
 *  @endcode
 *
 *  @lib hscontentcontrol.lib
 *  @since S60 v5.0
 */
class MHsContentControlUi
    {
public:
    /**
     *
     */
    virtual void Activate() = 0;

    /**
     *
     */
    virtual void DeActivate() = 0;

    /**
    *
    */    
    virtual void Views( RPointerArray<CAknView>& aViews ) = 0;
    
    /**
     *
     */
    virtual void NotifyWidgetListChanged() = 0;

    /**
     *
     */
    virtual void NotifyViewListChanged() = 0;

    /**
     *
     */
    virtual void NotifyAppListChanged() = 0;
    
    /**
    *
    */
    virtual void SetContentController( MHsContentController* aController ) = 0;
    };

/**
 *  Content control UI base class
 *
 *
 *  @code
 *
 *  @endcode
 *
 *  @lib hscontentcontrol.lib
 *  @since S60 v5.0
 */
class CHsContentControlUi : public CBase, public MHsContentControlUi
    {
public:
    /**
     * Two-phased constructor.
     * @param aImplUid Requested implementation UID
     */
    IMPORT_C static CHsContentControlUi* NewL(
        TUid aImplUid );

    /**
     * Destructor.
     */
    inline ~CHsContentControlUi();

public:  // From MHsContentControlUi
    /**
     *
     */
    inline void Activate();

    /**
     *
     */
    inline void DeActivate();

    /**
     *
     */
    inline void Views( RPointerArray<CAknView>& aViews );
    
    /**
     *
     */
    inline void NotifyWidgetListChanged();

    /**
     *
     */
    inline void NotifyViewListChanged();

    /**
     *
     */
    inline void NotifyAppListChanged();
    
    /**
     *
     */
    void SetContentController(
        MHsContentController* aController );
    

public:  // New functions

    /**
     *
     */
    TUid ImplUid() const;

    /**
     *
     */
    void SetContentControlTypeL(
        const TDesC8& aContentControlType );

    /**
     *
     */
    const TDesC8& ContentControlType() const;

protected: // Data

    /**
     *
     */
    MHsContentController* iHsContentController;

private: // Data
    
    /**
     *
     */
    TUid iDestructKey;
    
    /**
     *
     */
    TUid iImplUid;

    /**
     *
     */
    HBufC8* iContentControlType;

    };

inline CHsContentControlUi::~CHsContentControlUi()
    {
    delete iContentControlType;
    REComSession::DestroyedImplementation( iDestructKey );
    }

inline void CHsContentControlUi::Activate()
    {
    // Default implementation of MHsContentControlUi method
    }
inline void CHsContentControlUi::DeActivate()
    {
    // Default implementation of MHsContentControlUi method
    }
inline void CHsContentControlUi::Views( 
        RPointerArray<CAknView>& /*aViews*/ )
    {
    // Default implementation of MHsContentControlUi method
    }
inline void CHsContentControlUi::NotifyWidgetListChanged()
    {
    // Default implementation of MHsContentControlUi method
    }
inline void CHsContentControlUi::NotifyViewListChanged()
    {
    // Default implementation of MHsContentControlUi method
    }
inline void CHsContentControlUi::NotifyAppListChanged()
    {
    // Default implementation of MHsContentControlUi method
    }

inline void CHsContentControlUi::SetContentController(
    MHsContentController* aController )
    {
    iHsContentController = aController;
    }

#endif // HSCONTENTCONTROLUI_H
// End of file