ganeswidgets/tsrc/fute/HgWidgetTest/inc/hgwidgettestview.h
author hgs
Fri, 06 Aug 2010 09:27:34 +0300
changeset 12 6c0ec0ccd2d4
parent 11 42505cd701c6
permissions -rw-r--r--
201031

/*
* 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:
*
*/

#ifndef HGWIDGETTESTVIEW_H_
#define HGWIDGETTESTVIEW_H_

#include <HbView>
#include <hgwidgets/hgmediawall.h>
#include "hgtestdefs.h"

class HbAction;
class QGraphicsLinearLayout;
class HgWidgetTestDataModel;
class HbListWidget;
class HgFlipWidget;
class HbLabel;
class HbDialog;
class QParallelAnimationGroup;
class HgCoverItem;

class HgItemSizeDialog;

class HgWidgetTestView : public HbView
{
    Q_OBJECT

public:

    HgWidgetTestView(QGraphicsItem *parent = 0);
    ~HgWidgetTestView();

private slots:
    void initWidget(HgTestWidgetType type);
    void changeScrollBarVisibility(HgWidget::ScrollBarPolicy policy);
    void changeScrollBarInteractivity(bool value);
    void changeModelImageType(HgTestImageType);
    void changeLowResImageUse(bool value);
    void changeTitleFont(const HbFontSpec &);
    void changeDescriptionFont(const HbFontSpec &);
    void changeWidgetHeight(int);
    void changeWidgetWidth(int);
    void changeReflectionsEnabled(bool);
    void changeEffect3dEnabled(bool);
    void changeItemSizePolicy(HgWidget::ItemSizePolicy);

    void toggleScrollDirection();
    void openDialog(const QModelIndex &index);
    void openView(const QModelIndex& index);
    void closeCurrentView();
    void openDeleteItemsDialog();
    void openMoveItemsDialog();
    void openAddItemsDialog();
    void flipClosed();
    void onScrollingStarted();
    void onScrollingEnded();
    void showOptions();
    void hideOptions();
    void orientationChanged(Qt::Orientation);

    void startItemSizeChange();
    void itemSizeDialogClosed();
    void updateItemSizeAndSpacing();

    void startItemPosChange();
    void updateItemPos();
    void itemPosDialogClosed();
    void useCustomLayout();
    
    void resetOptions();
    void resetModel();
    void activated(/*HbListWidgetItem *item*/);
    void animationFinished();
    void animationAboutToEnd(const QModelIndex& targetIndex);
    void dialogFinished(HbAction* action);
    
private:

    void createMenu();
    void setupWidget();
    void setupWidgetOptions();
    void setupWidgetSize();
    HgWidget *createWidget(HgTestWidgetType type) const;
    HgWidget *copyWidget() const;
    void resizeEvent(QGraphicsSceneResizeEvent *event);
    Qt::Orientation orientation() const;
    void startAnimation(const QModelIndex& index);
    
private: // data

    HgWidget                *mWidget;
    QGraphicsLinearLayout   *mLayout;
    HgWidgetTestDataModel   *mModel;
    HgTestWidgetType        mWidgetType;
    HbListWidget            *mListWidget;
    bool                    mToggleOrientation;
    QItemSelectionModel     *mSelectionModel;
    HgFlipWidget*           mFlipWidget;
    QModelIndex             mFlippedIndex;
    HbLabel*                mFrontItem;
    HbView*                 mOptionsView;
    HgItemSizeDialog        *mItemSizeDialog;
    HgItemSizeDialog        *mItemPosDialog;
    QParallelAnimationGroup *mAnimationGroup;
    HbDialog                *mDialog;
    HgCoverItem             *mCoverItem;
};


#endif /* HGWIDGETTESTVIEW_H_ */