Falkon Develop
Cross-platform Qt-based web browser
webscrollbarmanager.h
Go to the documentation of this file.
1/* ============================================================
2* Falkon - Qt web browser
3* Copyright (C) 2016 David Rosca <nowrep@gmail.com>
4*
5* This program is free software: you can redistribute it and/or modify
6* it under the terms of the GNU General Public License as published by
7* the Free Software Foundation, either version 3 of the License, or
8* (at your option) any later version.
9*
10* This program is distributed in the hope that it will be useful,
11* but WITHOUT ANY WARRANTY; without even the implied warranty of
12* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13* GNU General Public License for more details.
14*
15* You should have received a copy of the GNU General Public License
16* along with this program. If not, see <http://www.gnu.org/licenses/>.
17* ============================================================ */
18
19#ifndef WEBSCROLLBARMANAGER_H
20#define WEBSCROLLBARMANAGER_H
21
22#include <QObject>
23#include <QHash>
24
25class QScrollBar;
26
27class WebView;
28
29class WebScrollBarManager : public QObject
30{
31 Q_OBJECT
32
33public:
34 explicit WebScrollBarManager(QObject *parent = nullptr);
35
36 void loadSettings();
37
38 void addWebView(WebView *view);
39 void removeWebView(WebView *view);
40
41 QScrollBar *scrollBar(Qt::Orientation orientation, WebView *view) const;
42
44
45private:
46 void createUserScript(int thickness);
47 void removeUserScript();
48 QSize viewportSize(WebView *view, int thickness) const;
49
50 bool m_enabled = true;
51 QString m_scrollbarJs;
52 QHash<WebView*, struct ScrollBarData*> m_scrollbars;
53};
54
55#endif // WEBSCROLLBARMANAGER_H
static WebScrollBarManager * instance()
void removeWebView(WebView *view)
QScrollBar * scrollBar(Qt::Orientation orientation, WebView *view) const
void addWebView(WebView *view)
WebScrollBarManager(QObject *parent=nullptr)