bagetmodel/src/baget.cpp
author hgs
Wed, 24 Mar 2010 13:06:03 +0200
changeset 90 0e41c72311af
parent 85 7feec50967db
permissions -rw-r--r--
201011_02

/*
* 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:  Base class for all bagets.
*
*/

#include "baget.h"
#include "baget_p.h"

/*!
    \enum BagetState
    Lists states that the baget can be in.
*/

/*
    \var BagetState BagetStateConstructed
    Baget is in this state right after construction.
*/

/*
    \var BagetState BagetStateRunning
    Baget is performing regular operations (animations, etc.).
    Baget is set to Running state after a call to start (if previously Constructed or Stopped) 
    or resume (if previously Suspended) methods.
    \sa Baget::start()
    \sa Baget::resume()
*/

/*
    \var BagetState BagetStateSuspended
    Baget operations are suspended (e.g. animation timers stopped).
    Baget is set to Suspended after a call to suspend (if previously Running) method.
    \sa Baget::suspend()
*/

/*
    \var BagetState BagetStateStopped 
    Baget finished all processing and released all resources.
    Baget is set to Stopped after a call to stop (if previously Running or Suspended) method.
    \sa Baget::stop()
*/

/*!
    \class Baget
    \brief Base class for all Bagets.

    Baget (BAckGround widgET) is a widget intended to be displayed in the background 
    of an application view. It does not respond to user input. It usually performs some 
    animations to make the view more appealing.
    Bagets are intended for use with HbStackedLayout as the bottom most QGraphicsWidget.
 */

/*!
    Constructs a new Baget with \a parent and \a flags.
 */
Baget::Baget(QGraphicsItem *parent, Qt::WindowFlags flags) :
    QGraphicsWidget(parent, flags), m_d(new BagetPrivate(this))
{
}

/*!
    Destructs the class.
 */
Baget::~Baget()
{
    delete m_d;
}

/*!
    \fn void Baget::faulted()

    This signal is emitted if a fault occurs when changing Baget's state.
 */

/*!
    Returns the state that the Baget is currently in.
    \return The current state.
 */
BagetState Baget::currentState()
{
    return m_d->currentState();
}

/*!
    Initiates Baget's processing.
 */
void Baget::start()
{
    m_d->start();
}

/*!
    Stops Baget's processing.
    After this call Baget should also free all resources.
 */
void Baget::stop()
{
    m_d->stop();
}

/*!
    Resumes Baget's processing.
 */
void Baget::resume()
{
    m_d->resume();
}

/*!
    Suspends Baget's processing.
 */
void Baget::suspend()
{
    m_d->suspend();
}

/*!
    \fn virtual bool Baget::onStart() = 0

    After a call it should start Baget's processing.
    Returns true if the operation secceeded, otherwise false - in this case 
    the faulted() signal will be emitted by the base class.
    \return Indicates if the operation succeeded.
 */

/*!
    \fn virtual bool Baget::onStop() = 0

    After a call it should stop Baget's processing and 
    free all resources.
    Returns true if the operation secceeded, otherwise false - in this case 
    the faulted() signal will be emitted by the base class.
    \return Indicates if the operation succeeded.
 */

/*!
    After a call it should resume Baget's processing.
    Returns true if the operation secceeded, otherwise false - in this case 
    the faulted() signal will be emitted by the base class.
    The default implementation does nothing and always returns true.
    \return Indicates if the operation succeeded.
 */
bool Baget::onResume()
{
    return true;
}

/*!
    After a call it should suspend Baget's processing.
    Returns true if the operation secceeded, otherwise false - in this case 
    the faulted() signal will be emitted by the base class.
    The default implementation does nothing and always returns true.
    \return Indicates if the operation succeeded.
 */
bool Baget::onSuspend()
{
    return true;
}