idlefw/plugins/pslnactiveidleplugin/inc/pslnactiveidleplugin.h
author William Roberts <williamr@symbian.org>
Mon, 08 Mar 2010 21:43:47 +0000
branchCompilerCompatibility
changeset 13 b2bba7f74ac0
parent 0 79c6a41cd166
permissions -rw-r--r--
Create CompilerCompatibility branch

/*
* Copyright (c) 2005-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:  View for Active Idle skinning.
*
*/


#ifndef C_PSLNACTIVEIDLEPLUGIN_H
#define C_PSLNACTIVEIDLEPLUGIN_H

#include <aknsettingpage.h>
#include <pslnfwbaseview.h>
#include <coneresloader.h>
#include <pslnfwplugininterface.h>
#include <mpslnfwmsklabelobserver.h>


class CAknViewAppUi;
class CPslnActiveIdlePluginContainer;
class CPslnActiveIdlePluginEngine;

enum TAiUIControllers
{
    EAiUICUnknown = -1,
    EAiUICNative = 0,
    EAiUICXML
};

// View item text length
const TInt KPslnItemMaxTextLength = 128;


/**
 *  CPslnActiveIdlePlugin view class for Active Idle Theme settings
 *
 *  @since S60 3.2
 */
class CPslnActiveIdlePlugin :
    public CPslnFWBaseView,
    public MPslnFWMSKObserver
{
public: // Constructors and destructor

    /**
     * Symbian OS two-phased constructor
     *
     * @param aAppUi pointer to app ui, TAny static cast'd.
     * @return Psln AI skinning view.
     */
    static CPslnActiveIdlePlugin* NewL(TAny* aAppUi);

    /**
     * Destructor
     */
    ~CPslnActiveIdlePlugin();

// From CPslnFWnInterface

    /**
     * @see CPslnFWPluginInterface.
     */
    void GetCaptionL(TDes& aCaption) const;


    /**
     * @see CPslnFWPluginInterface.
     */
    void GetTabTextL(TDes& aCaption) const;

    /**
     * @see CPslnFWPluginInterface.
     */
    CGulIcon* CreateIconL();

    /**
     * @see CPslnFWPluginInterface.
     */
    void GetLocationTypeAndIndex(TPslnFWLocationType& aType, TInt& aIndex) const;

// from AknView

    /**
     * Returns view id.
     * @return TUid
     */
    TUid Id() const;

    /**
     * Handles commands.
     * @param aCommand Command to be handled.
     */
    void HandleCommandL(TInt aCommand);

// new methods

    /**
     * Get CPslnActiveIdlePlugin's ccontainer.
     * @return pointer to container.
     */
    CPslnActiveIdlePluginContainer* Container();

    /**
     * From MPslnFWMSKObserver.
     * Checks if the MSK label needs to be adjusted.
     */
    void CheckMiddleSoftkeyLabelL();
    
    /**
     * Return engine instance.
     */
    CPslnActiveIdlePluginEngine* Engine();

protected: // From CAknView

    void DoActivateL(
        const TVwsViewId& aPrevViewId,
        TUid aCustomMessageId,
        const TDesC8& aCustomMessage);

    void DoDeactivate();

// Construction

    CPslnActiveIdlePlugin(CAknViewAppUi* aAppUi);

    void ConstructL();

private: // From MEikMenuObserver

    /**
     * Changes MenuPane dynamically
     */
    void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);

// from CPslnFWBaseView

    void NewContainerL();

    void HandleListBoxSelectionL();

    /**
     * Remove command and label from MSK
     */
    void RemoveCommandFromMSK();
    
    /**
     * @see CPslnFWBaseView.
     */
    void SetTitlePaneL( TInt& aResourceId );

private: // data

    /// Resource loader for own resources.
    RConeResourceLoader         iResourceLoader;

    /// Resource loader for common psln resources.
    RConeResourceLoader         iResourceLoaderCommon;

    /// Resource loader for Psln app resources.
    RConeResourceLoader         iResourceLoaderPsln;

    /// Application UI pointer. Not owned.
    CAknViewAppUi*              iAppUi;

    /// Navi pane. Not owned.
    CAknNavigationDecorator*    iNaviPaneContext;
    
    /// Ai2 perso engine
    CPslnActiveIdlePluginEngine* iEngine;

};

#endif // C_PSLNACTIVEIDLEPLUGIN_H

// End of File.