src/corelib/kernel/qbasictimer.cpp
changeset 0 1918ee327afb
child 4 3b1da2848fc7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/corelib/kernel/qbasictimer.cpp	Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qbasictimer.h"
+#include "qcoreapplication.h"
+#include "qabstracteventdispatcher.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+    \class QBasicTimer
+    \brief The QBasicTimer class provides timer events for objects.
+
+    \ingroup events
+
+    This is a fast, lightweight, and low-level class used by Qt
+    internally. We recommend using the higher-level QTimer class
+    rather than this class if you want to use timers in your
+    applications.
+
+    To use this class, create a QBasicTimer, and call its start()
+    function with a timeout interval and with a pointer to a QObject
+    subclass. When the timer times out it will send a timer event to
+    the QObject subclass. The timer can be stopped at any time using
+    stop(). isActive() returns true for a timer that is running;
+    i.e. it has been started, has not reached the timeout time, and
+    has not been stopped. The timer's ID can be retrieved using
+    timerId().
+
+    The \l{widgets/wiggly}{Wiggly} example uses QBasicTimer to repaint
+    a widget at regular intervals.
+
+    \sa QTimer, QTimerEvent, QObject::timerEvent(), Timers, {Wiggly Example}
+*/
+
+
+/*!
+    \fn QBasicTimer::QBasicTimer()
+
+    Contructs a basic timer.
+
+    \sa start()
+*/
+/*!
+    \fn QBasicTimer::~QBasicTimer()
+
+    Destroys the basic timer.
+*/
+
+/*!
+    \fn bool QBasicTimer::isActive() const
+
+    Returns true if the timer is running, has not yet timed
+    out, and has not been stopped; otherwise returns false.
+
+    \sa start() stop()
+*/
+
+/*!
+    \fn int QBasicTimer::timerId() const
+
+    Returns the timer's ID.
+
+    \sa QTimerEvent::timerId()
+*/
+
+/*!
+    \fn void QBasicTimer::start(int msec, QObject *object)
+
+    Starts (or restarts) the timer with a \a msec milliseconds
+    timeout.
+
+    The given \a object will receive timer events.
+
+    \sa stop() isActive() QObject::timerEvent()
+ */
+void QBasicTimer::start(int msec, QObject *obj)
+{
+   stop();
+   if (obj)
+       id = obj->startTimer(msec);
+}
+
+/*!
+    Stops the timer.
+
+    \sa start() isActive()
+*/
+void QBasicTimer::stop()
+{
+    if (id) {
+        QAbstractEventDispatcher *eventDispatcher = QAbstractEventDispatcher::instance();
+        if (eventDispatcher)
+            eventDispatcher->unregisterTimer(id);
+    }
+    id = 0;
+}
+
+QT_END_NAMESPACE