1/*
2 Copyright 2009 Sebastian Trueg <trueg@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19
20#ifndef _K_PIXMAPSEQUENCE_WIDGET_H_
21#define _K_PIXMAPSEQUENCE_WIDGET_H_
22
23#include <QtGui/QWidget>
24
25#include "kdeui_export.h"
26
27class KPixmapSequence;
28
29/**
30 * \class KPixmapSequenceWidget kpixmapsequencewidget.h KPixmapSequenceWidget
31 *
32 * \brief A simple widget showing a fixed size pixmap sequence.
33 *
34 * The KPixmapSequenceWidget uses the KPixmapSequenceOverlayPainter to show a
35 * sequence of pixmaps. It is intended as a simple wrapper around the
36 * KPixmapSequenceOverlayPainter in case a widget is more appropriate than
37 * an event filter.
38 *
39 * \author Sebastian Trueg <trueg@kde.org>
40 *
41 * \since 4.4
42 */
43class KDEUI_EXPORT KPixmapSequenceWidget : public QWidget
44{
45 Q_OBJECT
46 Q_PROPERTY(int interval READ interval WRITE setInterval)
47
48public:
49 /**
50 * Constructor
51 */
52 KPixmapSequenceWidget(QWidget *parent = 0);
53
54 /**
55 * Destructor
56 */
57 ~KPixmapSequenceWidget();
58
59 /**
60 * The sequence used to draw the overlay.
61 *
62 * \sa setSequence
63 */
64 KPixmapSequence sequence() const;
65
66 /**
67 * The interval between frames.
68 *
69 * \sa setInterval, KPixmapSequenceOverlayPainter::interval
70 */
71 int interval() const;
72
73 /**
74 * \reimpl
75 */
76 QSize sizeHint() const;
77
78public Q_SLOTS:
79 /**
80 * Set the sequence to be used. By default the KDE busy sequence is used.
81 */
82 void setSequence(const KPixmapSequence &seq);
83
84 /**
85 * Set the interval between frames. The default is 200.
86 * \sa interval, KPixmapSequenceOverlayPainter::setInterval
87 */
88 void setInterval(int msecs);
89
90private:
91 class Private;
92 Private *const d;
93};
94
95#endif
96