filemanager/App/inc/CFileManagerMainView.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:09:41 +0200
changeset 0 6a9f87576119
permissions -rw-r--r--
Revision: 201001 Kit: 201003

/*
* Copyright (c) 2006-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:  Main view
*
*/



#ifndef C_FILEMANAGERMAINVIEW_H
#define C_FILEMANAGERMAINVIEW_H


//  INCLUDES
#include <aknview.h>
#include "CFileManagerViewBase.h"


// CLASS DECLARATION
/**
 * This class implements main view of the application.
 *
 *  @since S60 3.1
 */
class CFileManagerMainView : public CFileManagerViewBase
    {

public:  // Constructors and destructor
    /**
     * Two-phased constructor.Leaves created view
     * to cleanup stack.
     *
     * @return Newly constructed view 
     */
    static CFileManagerMainView* NewLC();
    
    /**
     * Destructor.
     */
    ~CFileManagerMainView();

public: // From CFileManagerViewBase
    /**
     * @see CFileManagerViewBase
     */
    void DirectoryChangedL();

    /**
     * @see CFileManagerViewBase
     */
    CFileManagerContainerBase* CreateContainerL();

private: // From CAknView
    /**
     * @see CAknView
     */
    void DoActivateL(
        const TVwsViewId& aPrevViewId,
        TUid aCustomMessageId,
        const TDesC8& aCustomMessage );

    /**
     * @see CAknView
     */
    void DoDeactivate();

    /**
     * @see CAknView
     */
    TUid Id() const;

    /**
     * @see CAknView
     */
    void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );

    /**
     * @see CAknView
     */
    void HandleCommandL( TInt aCommand );

private: // From MFileManagerProcessObserver
    /**
     * @see MFileManagerProcessObserver
     */
    TInt NotifyL( TFileManagerNotify aType, TInt aData, const TDesC& aName );

private: // New functions
    /**
     * Filters main menu in aMenuPane.
     */
    void MainMenuFilteringL( CEikMenuPane& aMenuPane );

    /**
     * Filters remote drives menu in aMenuPane.
     */        
    void RemoteDrivesMenuFilteringL( CEikMenuPane& aMenuPane );

    /**
     * Handles memory store open command
     */
    void CmdOpenMemoryStoreL();

    /**
     * Handles eject command
     */
    void CmdEjectL();

#ifndef RD_FILE_MANAGER_BACKUP
    /**
     * Handles legacy backup command
     */
    void CmdBackupL();

    /**
     * Handles legacy restore command
     */
    void CmdRestoreL();
#endif // RD_FILE_MANAGER_BACKUP

    /**
     * Handles map remote drive command
     */
    void CmdMapRemoteDriveL();

    /**
     * Handles remote drive settings command
     */
    void CmdRemoteDriveSettingsL();

    /**
     * Handles remote drive delete command
     */
    void CmdRemoteDriveDeleteL();

    /**
     * Filters memory storage menu items.
     *
     * @param aMenuPane Menu instance to be filtered.
     */
    void MemoryStorageMenuFilteringL( CEikMenuPane& aMenuPane );

    /**
     * Handles memory storage details command.
     */
    void CmdMemoryStorageDetailsL();

    /**
     * Handles drive rename command.
     */
    void CmdRenameDriveL();

    /**
     * Handles drive password set command.
     */
    void CmdSetDrivePasswordL();

    /**
     * Handles drive password change command.
     */
    void CmdChangeDrivePasswordL();

    /**
     * Handles drive password remove command.
     */
    void CmdRemoveDrivePasswordL();

    /**
     * Gets drive at current position.
     *
     * @return Drive identifier or KErrNotFound.
     */
    TInt DriveAtCurrentPosL();

private:
    /**
    * C++ default constructor.
    */
    CFileManagerMainView();

    void ConstructL();

    };

#endif // C_FILEMANAGERMAINVIEW_H
            
// End of File