diff -r f00a6757af32 -r 5f0182e07bfb homescreenapp/hsdomainmodel/inc/hsconfiguration.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/hsdomainmodel/inc/hsconfiguration.h Tue Aug 31 15:06:34 2010 +0300 @@ -0,0 +1,248 @@ +/* +* 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 HSCONFIGURATION_H +#define HSCONFIGURATION_H + +#include +#include +#include + +#include + +#include "hsdomainmodel_global.h" + +#include "hstest_global.h" +HOMESCREEN_TEST_CLASS(TestHsDomainModel) + +#define HSCONFIGURATION_GET(getter) \ + HsConfiguration::instance()->getter() +#define HSCONFIGURATION_SET(setter, value) \ + HsConfiguration::instance()->setter(value) + +class HSDOMAINMODEL_EXPORT HsConfiguration : public QObject +{ + Q_OBJECT + Q_PROPERTY(int bounceEffect READ bounceEffect WRITE setBounceEffect) + Q_PROPERTY(int pageChangeAnimationDuration READ pageChangeAnimationDuration WRITE setPageChangeAnimationDuration) + Q_PROPERTY(int pageChangeZoneAnimationDuration READ pageChangeZoneAnimationDuration WRITE setPageChangeZoneAnimationDuration) + Q_PROPERTY(int pageChangeZoneReverseAnimationDuration READ pageChangeZoneReverseAnimationDuration WRITE setPageChangeZoneReverseAnimationDuration) + Q_PROPERTY(int pageRemovedAnimationDuration READ pageRemovedAnimationDuration WRITE setPageRemovedAnimationDuration) + Q_PROPERTY(int newPageAddedAnimationDuration READ newPageAddedAnimationDuration WRITE setNewPageAddedAnimationDuration) + Q_PROPERTY(int widgetDragEffectDuration READ widgetDragEffectDuration WRITE setWidgetDragEffectDuration) + Q_PROPERTY(int widgetDropEffectDuration READ widgetDropEffectDuration WRITE setWidgetDropEffectDuration) + Q_PROPERTY(int defaultPageId READ defaultPageId WRITE setDefaultPageId) + Q_PROPERTY(int maximumPageCount READ maximumPageCount WRITE setMaximumPageCount) + Q_PROPERTY(bool isShortcutLabelVisible READ isShortcutLabelVisible WRITE setShortcutLabelVisible) + Q_PROPERTY(qreal bounceFeedbackEffectDistance READ bounceFeedbackEffectDistance WRITE setBounceFeedbackEffectDistance) + Q_PROPERTY(qreal pageChangeZoneWidth READ pageChangeZoneWidth WRITE setPageChangeZoneWidth) + Q_PROPERTY(qreal pageIndicatorSpacing READ pageIndicatorSpacing WRITE setPageIndicatorSpacing) + Q_PROPERTY(qreal maximumWidgetHeight READ maximumWidgetHeight WRITE setMaximumWidgetHeight) + Q_PROPERTY(qreal maximumWidgetWidth READ maximumWidgetWidth WRITE setMaximumWidgetWidth) + Q_PROPERTY(qreal minimumWidgetHeight READ minimumWidgetHeight WRITE setMinimumWidgetHeight) + Q_PROPERTY(qreal minimumWidgetWidth READ minimumWidgetWidth WRITE setMinimumWidgetWidth) + Q_PROPERTY(qreal pageChangePanDistance READ pageChangePanDistance WRITE setPageChangePanDistance) + Q_PROPERTY(HbFeedback::InstantEffect pageChangeFeedbackEffect READ pageChangeFeedbackEffect WRITE setPageChangeFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetPickFeedbackEffect READ widgetPickFeedbackEffect WRITE setWidgetPickFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetDropFeedbackEffect READ widgetDropFeedbackEffect WRITE setWidgetDropFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetRepositionFeedbackEffect READ widgetRepositionFeedbackEffect WRITE setWidgetRepositionFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetOverTrashbinFeedbackEffect READ widgetOverTrashbinFeedbackEffect WRITE setWidgetOverTrashbinFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetDropToTrashbinFeedbackEffect READ widgetDropToTrashbinFeedbackEffect WRITE setWidgetDropToTrashbinFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect shortcutWidgetTapFeedbackEffect READ shortcutWidgetTapFeedbackEffect WRITE setShortcutWidgetTapFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetMoveBlockedFeedbackEffect READ widgetMoveBlockedFeedbackEffect WRITE setWidgetMoveBlockedFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect clockWidgetTapFeedbackEffect READ clockWidgetTapFeedbackEffect WRITE setClockWidgetTapFeedbackEffect) + Q_PROPERTY(HbFeedback::InstantEffect widgetSnappingFeedbackEffect READ widgetSnappingFeedbackEffect WRITE setWidgetSnappingFeedbackEffect) + Q_PROPERTY(bool isSnapEnabled READ isSnapEnabled WRITE setSnapEnabled) + Q_PROPERTY(int snapTimeout READ snapTimeout WRITE setSnapTimeout) + Q_PROPERTY(qreal snapForce READ snapForce WRITE setSnapForce) + Q_PROPERTY(qreal snapGap READ snapGap WRITE setSnapGap) + Q_PROPERTY(qreal pageMargin READ pageMargin WRITE setPageMargin) + Q_PROPERTY(int snapLineFadeInDuration READ snapLineFadeInDuration WRITE setSnapLineFadeInDuration) + Q_PROPERTY(int snapLineFadeOutDuration READ snapLineFadeOutDuration WRITE setSnapLineFadeOutDuration) + Q_PROPERTY(bool isSnapEffectsEnabled READ isSnapEffectsEnabled WRITE setSnapEffectsEnabled) + Q_PROPERTY(SceneType sceneType READ sceneType WRITE setSceneType) + Q_PROPERTY(QEasingCurve::Type bounceAnimationEasingCurve READ bounceAnimationEasingCurve WRITE setBounceAnimationEasingCurve) + Q_PROPERTY(QEasingCurve::Type pageChangeAnimationEasingCurve READ pageChangeAnimationEasingCurve WRITE setPageChangeAnimationEasingCurve) + + Q_ENUMS(SceneType) + +public: + HsConfiguration(QObject *parent = 0); + ~HsConfiguration(); + + enum SceneType + { + PageWallpapers, + SceneWallpaper + }; + +#define SETVALUE(member, name) \ + if (member != value) { \ + member = value; \ + emit propertyChanged(name); \ + } + + int bounceEffect() const { return mBounceEffect; } + void setBounceEffect(int value) { SETVALUE(mBounceEffect, "bounceEffect") } + int pageChangeAnimationDuration() const { return mPageChangeAnimationDuration; } + void setPageChangeAnimationDuration(int value) { SETVALUE(mPageChangeAnimationDuration, "pageChangeAnimationDuration") } + int pageChangeZoneAnimationDuration() const { return mPageChangeZoneAnimationDuration; } + void setPageChangeZoneAnimationDuration(int value) { SETVALUE(mPageChangeZoneAnimationDuration, "pageChangeZoneAnimationDuration") } + int pageChangeZoneReverseAnimationDuration() const { return mPageChangeZoneReverseAnimationDuration; } + void setPageChangeZoneReverseAnimationDuration(int value) { SETVALUE(mPageChangeZoneReverseAnimationDuration, "pageChangeZoneReverseAnimationDuration") } + int pageRemovedAnimationDuration() const { return mPageRemovedAnimationDuration; } + void setPageRemovedAnimationDuration(int value) { SETVALUE(mPageRemovedAnimationDuration, "pageRemovedAnimationDuration") } + int newPageAddedAnimationDuration() const { return mNewPageAddedAnimationDuration; } + void setNewPageAddedAnimationDuration(int value) { SETVALUE(mNewPageAddedAnimationDuration, "newPageAddedAnimationDuration") } + int widgetDragEffectDuration() const { return mWidgetDragEffectDuration; } + void setWidgetDragEffectDuration(int value) { SETVALUE(mWidgetDragEffectDuration, "widgetDragEffectDuration") } + int widgetDropEffectDuration() const { return mWidgetDropEffectDuration; } + void setWidgetDropEffectDuration(int value) { SETVALUE(mWidgetDropEffectDuration, "widgetDropEffectDuration") } + int defaultPageId() const { return mDefaultPageId; } + void setDefaultPageId(int value) { SETVALUE(mDefaultPageId, "defaultPageId") } + int maximumPageCount() const { return mMaximumPageCount; } + void setMaximumPageCount(int value) { SETVALUE(mMaximumPageCount, "maximumPageCount") } + bool isShortcutLabelVisible() const { return mIsShortcutLabelVisible; } + void setShortcutLabelVisible(bool value) { SETVALUE(mIsShortcutLabelVisible, "isShortcutLabelVisible") } + qreal bounceFeedbackEffectDistance() const { return mBounceFeedbackEffectDistance; } + void setBounceFeedbackEffectDistance(qreal value) { SETVALUE(mBounceFeedbackEffectDistance, "bounceFeedbackEffectDistance") } + qreal pageChangeZoneWidth() const { return mPageChangeZoneWidth; } + void setPageChangeZoneWidth(qreal value) { SETVALUE(mPageChangeZoneWidth, "pageChangeZoneWidth") } + qreal pageIndicatorSpacing() const { return mPageIndicatorSpacing; } + void setPageIndicatorSpacing(qreal value) { SETVALUE(mPageIndicatorSpacing, "pageIndicatorSpacing") } + qreal maximumWidgetHeight() const { return mMaximumWidgetHeight; } + void setMaximumWidgetHeight(qreal value) { SETVALUE(mMaximumWidgetHeight, "maximumWidgetHeight") } + qreal maximumWidgetWidth() const { return mMaximumWidgetWidth; } + void setMaximumWidgetWidth(qreal value) { SETVALUE(mMaximumWidgetWidth, "maximumWidgetWidth") } + qreal minimumWidgetHeight() const { return mMinimumWidgetHeight; } + void setMinimumWidgetHeight(qreal value) { SETVALUE(mMinimumWidgetHeight, "minimumWidgetHeight") } + qreal minimumWidgetWidth() const { return mMinimumWidgetWidth; } + void setMinimumWidgetWidth(qreal value) { SETVALUE(mMinimumWidgetWidth, "minimumWidgetWidth") } + qreal pageChangePanDistance() const { return mPageChangePanDistance; } + void setPageChangePanDistance(qreal value) { SETVALUE(mPageChangePanDistance, "pageChangePanDistance") } + HbFeedback::InstantEffect pageChangeFeedbackEffect() const { return mPageChangeFeedbackEffect; } + void setPageChangeFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mPageChangeFeedbackEffect, "pageChangeFeedbackEffect") } + HbFeedback::InstantEffect widgetPickFeedbackEffect() const { return mWidgetPickFeedbackEffect; } + void setWidgetPickFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetPickFeedbackEffect, "widgetPickFeedbackEffect") } + HbFeedback::InstantEffect widgetDropFeedbackEffect() const { return mWidgetDropFeedbackEffect; } + void setWidgetDropFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetDropFeedbackEffect, "widgetDropFeedbackEffect") } + HbFeedback::InstantEffect widgetRepositionFeedbackEffect() const { return mWidgetRepositionFeedbackEffect; } + void setWidgetRepositionFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetRepositionFeedbackEffect, "widgetRepositionFeedbackEffect") } + HbFeedback::InstantEffect widgetOverTrashbinFeedbackEffect() const { return mWidgetOverTrashbinFeedbackEffect; } + void setWidgetOverTrashbinFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetOverTrashbinFeedbackEffect, "widgetOverTrashbinFeedbackEffect") } + HbFeedback::InstantEffect widgetDropToTrashbinFeedbackEffect() const { return mWidgetDropToTrashbinFeedbackEffect; } + void setWidgetDropToTrashbinFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetDropToTrashbinFeedbackEffect, "widgetDropToTrashbinFeedbackEffect") } + HbFeedback::InstantEffect shortcutWidgetTapFeedbackEffect() const { return mShortcutWidgetTapFeedbackEffect; } + void setShortcutWidgetTapFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mShortcutWidgetTapFeedbackEffect, "shortcutWidgetTapFeedbackEffect") } + HbFeedback::InstantEffect widgetMoveBlockedFeedbackEffect() const { return mWidgetMoveBlockedFeedbackEffect; } + void setWidgetMoveBlockedFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetMoveBlockedFeedbackEffect, "widgetMoveBlockedFeedbackEffect") } + HbFeedback::InstantEffect clockWidgetTapFeedbackEffect() const { return mClockWidgetTapFeedbackEffect; } + void setClockWidgetTapFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mClockWidgetTapFeedbackEffect, "clockWidgetTapFeedbackEffect") } + HbFeedback::InstantEffect widgetSnappingFeedbackEffect() const { return mWidgetSnappingFeedbackEffect; } + void setWidgetSnappingFeedbackEffect(HbFeedback::InstantEffect value) { SETVALUE(mWidgetSnappingFeedbackEffect, "widgetSnappingFeedbackEffect") } + bool isSnapEnabled() const { return mIsSnapEnabled; } + void setSnapEnabled(bool value) { SETVALUE(mIsSnapEnabled, "isSnapEnabled") } + int snapTimeout() const { return mSnapTimeout; } + void setSnapTimeout(int value) { SETVALUE(mSnapTimeout, "snapTimeout") } + qreal snapForce() const { return mSnapForce; } + void setSnapForce(qreal value) { SETVALUE(mSnapForce, "snapForce") } + qreal snapGap() const { return mSnapGap; } + void setSnapGap(qreal value) { SETVALUE(mSnapGap, "snapGap") } + qreal pageMargin() const { return mPageMargin; } + void setPageMargin(qreal value) { SETVALUE(mPageMargin, "pageMargin") } + int snapLineFadeInDuration() const { return mSnapLineFadeInDuration; } + void setSnapLineFadeInDuration(int value) { SETVALUE(mSnapLineFadeInDuration, "snapLineFadeInDuration") } + int snapLineFadeOutDuration() const { return mSnapLineFadeOutDuration; } + void setSnapLineFadeOutDuration(int value) { SETVALUE(mSnapLineFadeOutDuration, "snapLineFadeOutDuration") } + bool isSnapEffectsEnabled() const { return mIsSnapEffectsEnabled; } + void setSnapEffectsEnabled(bool value) { SETVALUE(mIsSnapEffectsEnabled, "isSnapEffectsEnabled") } + SceneType sceneType() const { return mSceneType; } + void setSceneType(SceneType value) { SETVALUE(mSceneType, "sceneType") } + QEasingCurve::Type bounceAnimationEasingCurve() const { return mBounceAnimationEasingCurve; } + void setBounceAnimationEasingCurve(QEasingCurve::Type value) { SETVALUE(mBounceAnimationEasingCurve, "bounceAnimationEasingCurve") } + QEasingCurve::Type pageChangeAnimationEasingCurve() const { return mPageChangeAnimationEasingCurve; } + void setPageChangeAnimationEasingCurve(QEasingCurve::Type value) { SETVALUE(mPageChangeAnimationEasingCurve, "pageChangeAnimationEasingCurve") } + +#undef SETVALUE + + QSizeF minimumWidgetSizeInUnits() const; + QSizeF maximumWidgetSizeInUnits() const; + QSizeF minimumWidgetSizeInPixels() const; + QSizeF maximumWidgetSizeInPixels() const; + + bool load(); + bool importFromFile(const QString &path); + bool exportToFile(const QString &path); + + static HsConfiguration *instance(); + static HsConfiguration *takeInstance(); + static void setInstance(HsConfiguration *instance); + +signals: + void propertyChanged(const QString &name); + +private: + Q_DISABLE_COPY(HsConfiguration) + +private: + int mBounceEffect; + int mPageChangeAnimationDuration; + int mPageChangeZoneAnimationDuration; + int mPageChangeZoneReverseAnimationDuration; + int mPageRemovedAnimationDuration; + int mNewPageAddedAnimationDuration; + int mWidgetDragEffectDuration; + int mWidgetDropEffectDuration; + int mDefaultPageId; + int mMaximumPageCount; + bool mIsShortcutLabelVisible; + qreal mBounceFeedbackEffectDistance; + qreal mPageChangeZoneWidth; + qreal mPageIndicatorSpacing; + qreal mMaximumWidgetHeight; + qreal mMaximumWidgetWidth; + qreal mMinimumWidgetHeight; + qreal mMinimumWidgetWidth; + qreal mPageChangePanDistance; + HbFeedback::InstantEffect mPageChangeFeedbackEffect; + HbFeedback::InstantEffect mWidgetPickFeedbackEffect; + HbFeedback::InstantEffect mWidgetDropFeedbackEffect; + HbFeedback::InstantEffect mWidgetRepositionFeedbackEffect; + HbFeedback::InstantEffect mWidgetOverTrashbinFeedbackEffect; + HbFeedback::InstantEffect mWidgetDropToTrashbinFeedbackEffect; + HbFeedback::InstantEffect mShortcutWidgetTapFeedbackEffect; + HbFeedback::InstantEffect mWidgetMoveBlockedFeedbackEffect; + HbFeedback::InstantEffect mClockWidgetTapFeedbackEffect; + HbFeedback::InstantEffect mWidgetSnappingFeedbackEffect; + bool mIsSnapEnabled; + int mSnapTimeout; + qreal mSnapForce; + qreal mSnapGap; + qreal mPageMargin; + int mSnapLineFadeInDuration; + int mSnapLineFadeOutDuration; + bool mIsSnapEffectsEnabled; + SceneType mSceneType; + QEasingCurve::Type mBounceAnimationEasingCurve; + QEasingCurve::Type mPageChangeAnimationEasingCurve; + + static HsConfiguration *mInstance; + + HOMESCREEN_TEST_FRIEND_CLASS(TestHsDomainModel) +}; + +#endif // HSCONFIGURATION_H