]> git.sesse.net Git - vlc/blob - modules/gui/qt4/util/input_slider.hpp
Delete the "QPainter::begin: A paint device can only be painted by one painter at...
[vlc] / modules / gui / qt4 / util / input_slider.hpp
1 /*****************************************************************************
2  * input_slider.hpp : A slider that controls an input
3  ****************************************************************************
4  * Copyright (C) 2006 the VideoLAN team
5  * $Id$
6  *
7  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
8  *          Jean-Baptiste Kempf <jb@videolan.org>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25 #ifndef _INPUTSLIDER_H_
26 #define _INPUTSLIDER_H_
27
28 #include "qt4.hpp"
29
30 #include <QSlider>
31 #include <QMouseEvent>
32
33 class InputSlider : public QSlider
34 {
35     Q_OBJECT
36 public:
37     InputSlider( QWidget *_parent );
38     InputSlider( Qt::Orientation q,QWidget *_parent );
39     virtual ~InputSlider()   {};
40 protected:
41     virtual void mouseMoveEvent(QMouseEvent *event);
42     virtual void mousePressEvent(QMouseEvent* event);
43     virtual void mouseReleaseEvent(QMouseEvent* event);
44 private:
45     bool b_sliding;
46     int inputLength;
47     char psz_length[MSTRTIME_MAX_SIZE];
48 public slots:
49     void setPosition( float, int, int );
50 private slots:
51     void userDrag( int );
52 signals:
53     void sliderDragged( float );
54 };
55
56
57 class QPaintEvent;
58 #include <QAbstractSlider>
59
60 class SoundSlider : public QAbstractSlider
61 {
62     Q_OBJECT
63 public:
64     SoundSlider( QWidget *_parent, int _i_step, bool b_softamp, char * );
65     virtual ~SoundSlider() {};
66 protected:
67     int paddingL;
68     int paddingR;
69     virtual void paintEvent(QPaintEvent *);
70     virtual void wheelEvent( QWheelEvent *event );
71     virtual void mousePressEvent( QMouseEvent * );
72     virtual void mouseMoveEvent( QMouseEvent * );
73     virtual void mouseReleaseEvent( QMouseEvent * );
74 private:
75     bool b_sliding;
76     bool b_outside;
77     int i_oldvalue;
78     float f_step;
79     void changeValue( int x );
80     QPixmap pixGradient;
81     QPixmap pixOutside;
82 };
83
84 #endif