homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsapplibrarystate.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:06:53 +0300
changeset 61 2b1b11a301d2
parent 51 4785f57bf3d4
child 63 52b0f64eeb51
permissions -rw-r--r--
Revision: 201025 Kit: 2010127

/*
 * Copyright (c) 2009 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: Menu Application Library state.
 *
 */

#ifndef HSAPPLIBRARYSTATE_H
#define HSAPPLIBRARYSTATE_H

#include <QState>
#include <hbdocumentloader.h>
#include "hsmenustates_global.h"
#include "hsmenuview.h"
#include "hsmainwindow.h"
#include "hsmenumodewrapper.h"
#include "hsapp_defs.h"

HS_STATES_TEST_CLASS(MenuStatesTest)

class HbAction;
class HbView;
class HbMainWindow;
class QActionGroup;

class HsAllAppsState;
class HsAllCollectionsState;
class HsCollectionState;
class HsInstalledAppsState;
class HsMenuModeTransition;
class HsMenuModeWrapper;


class HsAppLibraryState: public QState
{
    Q_OBJECT

    HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest)

public:

    HsAppLibraryState(QState *parent = 0);

    virtual ~HsAppLibraryState();

signals:

    void collectionEntered();

    void toHomescreenState();

    void initialize();

public slots:

    void clearToolbarLatch();

    int oviStoreAction();

    void allAppsStateEntered();

    void allCollectionsStateEntered();

protected:

    void onEntry(QEvent *event);

private:

    void construct();

    void constructToolbar();

private:

    HsMenuViewBuilder mMenuViewBuilder;
    /**
     * All Applications state.
     * Own.
     */
    HsAllAppsState *mAllAppsState;

    /**
     * Transition to remember last visited child state in Application Library.
     * Own.
     */
    HsMenuModeTransition *mHistoryTransaction;

    /**
     * All Collections state.
     * Own.
     */
    HsAllCollectionsState *mAllCollectionsState;

    /**
     * Collection state.
     * Own.
     */
    HsCollectionState *mCollectionState;

    HsInstalledAppsState *mInstalledAppsState;

    HsMenuModeWrapper mMenuMode;
    
    HsMainWindow mMainWindow;
    
};

#endif //HSAPPLIBRARYSTATE_H