Olive
resizablescrollbar.h
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef RESIZABLESCROLLBAR_H
22 #define RESIZABLESCROLLBAR_H
23 
24 #include <QScrollBar>
25 
26 class ResizableScrollBar : public QScrollBar
27 {
28  Q_OBJECT
29 public:
30  ResizableScrollBar(QWidget * parent = 0);
31  bool is_resizing();
32 signals:
33  void resize_move(double i);
34 protected:
35  void resizeEvent(QResizeEvent *event) override;
36  void mousePressEvent(QMouseEvent *) override;
37  void mouseMoveEvent(QMouseEvent *) override;
38  void mouseReleaseEvent(QMouseEvent *) override;
39 private:
40  bool resize_init;
41  bool resize_proc;
42  int resize_start;
43  bool resize_top;
44 
45  int resize_start_max;
46  int resize_start_width;
47 };
48 
49 #endif // RESIZABLESCROLLBAR_H
Definition: resizablescrollbar.h:26