summaryrefslogtreecommitdiffstats
path: root/src/core/touch_selection_menu_controller.h
blob: 6a1fc196059295a6bad1fba7fae7904b1d131224 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#ifndef TOUCH_SELECTION_MENU_CONTROLLER_H
#define TOUCH_SELECTION_MENU_CONTROLLER_H

#include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h>
#include <QtCore/QObject>

namespace QtWebEngineCore {

class TouchSelectionControllerClientQt;

class Q_WEBENGINECORE_EXPORT TouchSelectionMenuController : public QObject {
    Q_OBJECT
public:
    enum TouchSelectionCommandFlag {
        Cut = 0x1,
        Copy = 0x2,
        Paste = 0x4
    };
    Q_DECLARE_FLAGS(TouchSelectionCommandFlags, TouchSelectionCommandFlag)
    Q_FLAG(TouchSelectionCommandFlag)

    TouchSelectionMenuController(TouchSelectionControllerClientQt *touchSelectionControllerClient);
    ~TouchSelectionMenuController();
    int buttonCount();
    bool isCommandEnabled(TouchSelectionCommandFlag);
    TouchSelectionCommandFlags availableActions();

public Q_SLOTS:
    void cut();
    void copy();
    void paste();
    void runContextMenu();

private:
    TouchSelectionControllerClientQt *m_touchSelectionControllerClient;
};

} // namespace QtWebEngineCore

#endif // TOUCH_SELECTION_CONTROLLER_CLIENT_QT_H