screensaver/screensaverplugins/snsrbigclockscreensaverplugin/inc/snsrbigclockscreensaver.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:40:07 +0300
changeset 77 4b195f3bea29
parent 61 2b1b11a301d2
child 86 e4f038c420f7
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
* Copyright (c) 2009 - 2010 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: Big clock Screensaver.
*
*/

#ifndef SNSRBIGCLOCKSCREENSAVER_H
#define SNSRBIGCLOCKSCREENSAVER_H

#include <QTimer>

#include <screensaver.h>
#include "snsrtest_global.h"

SCREENSAVER_TEST_CLASS(T_SnsrBigClockScreensaverPlugin)

class HbMainWindow;
class SnsrBigClockContainer;
class SnsrIndicatorModel;
class XQSettingsManager;

class SnsrBigClockScreensaver : public Screensaver
{
    Q_OBJECT

public:

    enum ClockFormat
    {
        ClockFormatUndefined,
        ClockFormatAnalog,
        ClockFormatDigital
    };

    SnsrBigClockScreensaver();
    ~SnsrBigClockScreensaver();

private:

    ClockFormat clockFormat();
    void removeCurrentContainer();
    void setCurrentContainer( SnsrBigClockContainer* newContainer );

    virtual bool onInitialize();
    virtual bool onForeground();
    virtual bool onPartialForeground();
    virtual bool onBackground();
    virtual bool onPowerSave();
    virtual bool onClose();
    virtual void onHandleActiveIndicators(const QList<HbIndicatorInterface*> &activeIndicators);
    virtual void onHandleActivatedIndicator(HbIndicatorInterface *activatedIndicator);
    virtual void onHandleDeactivatedIndicator(HbIndicatorInterface *deactivatedIndicator);
    virtual void getActiveScreenRows(int *firstActiveRow, int *lastActiveRow);
    virtual void updateLayout();

private slots:

    void updateActiveAreaForLowPower();

private:

    QTimer mTimer;
    HbMainWindow *mMainWindow;
    SnsrBigClockContainer *mCurrentContainer;
    SnsrIndicatorModel *mIndicatorModel;
    XQSettingsManager *m_setManager;

    SCREENSAVER_TEST_FRIEND_CLASS(T_SnsrBigClockScreensaverPlugin)

};

#endif // SNSRBIGCLOCKSCREENSAVER_H