homesync/contentmanager/mediaservant/inc/msappui.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/*
* 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:  Definition for MediaServant appui class
*
*/


#ifndef C_CMSAPPUI_H
#define C_CMSAPPUI_H

// INCLUDES
#include <aknViewAppUi.h>
#include <GSPluginInterface.h>
#include <GSFWViewUIDs.h>
#include <GSPluginLoader.h>

#include "msparameteragent.h"
#include "msfillrulecontroller.h"

// FORWARD DECLARATIONS
class CMSEngine;
class CMSStoreListController;
class CCmDriveInfo;
class CMSGSInterface;

/**
 *  Application UI class.
 *
 *  @since S60 5.1
 */
NONSHARABLE_CLASS( CMSAppUi ): public CAknViewAppUi
    {

    public:


        /**
         * Destructor.
         */
        ~CMSAppUi();

        /**
         * Changes active view according to parameters.
         * @since S60 3.1
         * @param aOldView current view
         * @param aNewView new view
         */
        void ChangeViewL(const TUid& aOldView, const TUid& aNewView);

        /**
         * Returns fill rule controller
         * @since S60 3.1
         * @return CMSFillRuleController, controller pointer
         */
        CMSFillRuleController* FillRuleController();

        /**
         * Returns store rule controller
         * @since S60 5.0
         * @return CCmStoreListController, pointer to controller
         */
        CMSStoreListController* StoreListController();

        /**
         * Refresh store and fill lists
         * @since S60 3.1
         */
        void RefreshListsL();

        /**
         * File server session
         * @since S60 3.1
         * return RFs, file server session
         */
        RFs& FsSession();

        /**
         * Returns msengine
         * @since S60 3.1
         * @return CMSEngine, pointer to engine
         */
        CMSEngine* MSEngine();

        /**
         * Reads memory info
         * @since S60 3.1
         * @param aCapasity, size of memory
         * @param aFreeSpace, free space of memory
         * @return TInt, error code
         */
        TInt ReadMMCInfoL( TInt64& aCapasity, TInt64& aFreeSpace );
        /**
         * Get Filled Files Size
         * @since S60 3.1
         * @param aSize, size of filled files
         * @param aID, fill rule ID
         */
        void GetFilledFilesSize( TInt64& aSize, const TInt aID );

        /**
         * Returns pointer to parameter agent
         * @since S60 3.1
         * @return CMSParameterAgent, parameter agent
         */
        CMSParameterAgent* ParameterAgent();

        /**
         * drive selection indicator
         * @since S60 3.1
         * @return TBool, ETrue if selected, EFalse otherwise
         */
        TBool DriveSelectedL();

        /**
         * drive selection indicator
         * @since S60 3.1
         * @return TBool, ETrue if selected, EFalse otherwise
         */
        CMSGSInterface* SettingsPlugin();

        /**
         * Compares IDs of two drives
         * @since S60 3.1
         * @return TBool, ETrue if match, EFalse otherwise
         */

        static TBool CompareIds( const CCmDriveInfo& aStoredDrive,
                                 const CCmDriveInfo& aDrive );

        /**
         * Start wizard
         * 
         * @since S60 5.1
         * @return TInt, wizard exit code
         */
        TInt RunWizardL();
        
protected:

// From base class CAknViewAppUi

        /**
         * From CAknViewAppUi
         * See base class definition
         */
        void HandleCommandL( TInt aCommand );

private:
        /**
         * Performs the second phase construction.
         */
        void ConstructL();

        /**
         * Checks if selected memory is on the device
         * @since S60 3.1
         * @return TBool, ETrue if found, EFalse otherwise
         */
        TBool MemoryAttachedL();


        /**
         * Loads gs plugin ( settings view )
         * @since S60 3.1
         */
        void LoadSettingsPluginL();

       /**
         * Check memory selected status, if none of drives have been selected
         * the mass memory will be selected as default drive
         * @since S60 3.2
         */
        void CheckDrivesSelectedL();

private:

        /**
         * view which is currently active
         */
        TInt iActiveView;
        /** 
         * focus index of main view
         */        
        TInt iMainFocusIndex;
        /**
         * pointer to application engine
         */
        CMSEngine*                  iMSEngine;              // owned
        /**
         * parameter class
         */
        CMSParameterAgent*          iParameterAgent;        // owned
        /**
         * fill list controller
         */
        CMSFillRuleController*      iFillRuleController;    // owned
        /**
         * store list controller
         */
        CMSStoreListController*     iStoreListController;   // owned
        /**
         * GS plugin ( settings view )
         */
        CMSGSInterface*             iPlugin;                // owned
    };
#endif // C_CMSAPPUI_H

// End of File