voicerecorder/gsplugin/inc/CVRGSPlugin.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:29:14 +0100
branchRCL_3
changeset 21 c6bafb5162d8
parent 0 845549f293a7
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201030 Kit: 201035

/*
* Copyright (c) 2005 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:	Main settings view class.
*
*/


#ifndef GS_VOICERECORDERGSPLUGIN_H
#define GS_VOICERECORDERGSPLUGIN_H

// Includes
#include <aknview.h>
#include <eikclb.h>
#include <ConeResLoader.h>
#include <gsplugininterface.h>
#include <gsbaseview.h>


// Classes referenced
class CVRGSPluginContainer;
class CAknViewAppUi;
class CGSBaseView;

// Constants

/** 
* UPDATE THIS:
*
* This UID is used for both the view UID and the ECOM plugin implementation 
* UID.
*/
const TUid KGSVoiceRecorderGSPluginUid = { 0x1020729D };

// CLASS DECLARATION

/**
*  CVRGSPlugin view class.
*
* This is an VoiceRecorderGS of the minimal GS plugin.CGSPluginInterface
*/
class CVRGSPlugin : public CGSBaseView
    {
    
    public: // Constructors and destructor
        
        /**
        * Symbian OS two-phased constructor
        * @return 
        * @since 3.1
        */
        static CVRGSPlugin* NewL( TAny* aInitParams );
            
        /**
        * Destructor.
        */
        ~CVRGSPlugin();       
        

    public: // Functions from base classes
        
        /**
        * From CAknView, returns the views id.
        * @return Returns id of the view.
        * @since 3.1
        */       
        TUid Id() const;
        
         /**
        * From MEikCommandObserver, handles the menu based commands.
        * @param aCommand identifies the given command.
        * @since 3.1
        */
        void HandleCommandL( TInt aCommand );
        
        /**
        * Updates specific value to container 
        * @param aListItem item index to update
        * @param aNewValue new value for the setting
        * @since 3.1
        */
        void UpdateListBoxL( const TInt& aListItem, TInt aNewValue );
        
     public: // From CGSPluginInterface 
     
        /**
        * Method for getting caption of this plugin. This should be the
        * localized name of the settings view to be shown in parent view.
        * @param aCaption pointer to Caption variable
        * @since 3.1
        */
        void GetCaptionL( TDes& aCaption ) const;
        
        /**
        * Creates a new icon of desired type. Override this to provide custom
        * icons. Othervise default icon is used. Ownership of the created icon
        * is transferred to the caller.
        *
        * Icon type UIDs (use these defined constants):
        * KGSIconTypeLbxItem  -   ListBox item icon.
        * KGSIconTypeTab      -   Tab icon.
        *
        * @param aIconType UID Icon type UID of the icon to be created.
        * @return Pointer of the icon. NOTE: Ownership of this icon is
        *         transferred to the caller.
        * @since 3.1
        */
        CGulIcon* CreateIconL( const TUid aIconType );
        
        /**
        * Method for checking, if plugin should be visible and used in GS FW.
        * (for example shown in listbox of the parent view).
        *
        * On default plugin is visible. Overwrite this function to enable or
        * disable your plugin dynamically.
        *
        * @return ETrue if plugin should be visible in GS.
        * @return EFalse if plugin should not be visible in GS.
        * @since 3.1
        */
        TBool Visible() const;
        
        /**
        * Reserved for future use/plugin's custom functionality. This can be
        * overwritten if plugin needs to have custom functionality which cannot
        * be fulfilled otherwise.
        * @since 3.1
        */
        TAny* CustomOperationL( TAny* aParam1, TAny* aParam2 );
        
        /**
        * From CEikAppUi
        * Handle skin change event.
        * @since 3.1
        */
        void HandleClientRectChange();
        
        /**
        * From CAknView Activate this view
        * @param aPrevViewId 
        * @param aCustomMessageId 
        * @param aCustomMessage 
        * @since 3.1
        */
        void DoActivateL( const TVwsViewId& aPrevViewId,
                          TUid aCustomMessageId,
                          const TDesC8& aCustomMessage );
                          
        /**
        * From CAknView Deactivate this view
        * @since 3.1
        */
        void DoDeactivate();
        
        /**
        * Get VoiceRecorderGSPlugin's container.
        * @since 3.1
        */
        CVRGSPluginContainer* Container();
        
    protected:

        /**
        * C++ default constructor.
        */
        CVRGSPlugin();

        /**
        * Symbian OS default constructor.
        */
        void ConstructL();
        
        /**
        * Handles OK key press.
        * @since 3.1
        */
        void HandleListBoxSelectionL();
        
        /**
        * Creates new container.
        * @since 3.1
        */
        void NewContainerL();
 
        void CVRGSPlugin::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );

        
    protected: //Data        
       
        RConeResourceLoader iResourceLoader;
        
        // Buffered caption of the plugin. Owned
        HBufC* iCaption; 
        
    private:
    };

#endif // GS_VoiceRecorderGSPLUGIN_H