summaryrefslogtreecommitdiffstats
path: root/qtbrowserplugin/src/qtbrowserplugin_p.h
blob: 64ae17b881ccfa343fced55769b4b40a83b4f96c (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
// SPDX-License-Identifier: BSD-3-Clause

#ifndef QTBROWSERPLUGIN_P_H
#define QTBROWSERPLUGIN_P_H

#include <QVariant>
#include <QMutexLocker>
#include <QWidget>

#ifdef Q_WS_X11
#   include <X11/Xlib.h>

class QtNPStream;
class QtNPBindable;
#endif

struct QtNPInstance
{
    NPP npp;

    short fMode;

#ifdef Q_WS_WIN
    typedef HWND Widget;
#endif
#ifdef Q_WS_X11
    typedef Window Widget;
    Display *display;
#endif
#ifdef Q_WS_MAC
    typedef NPPort* Widget;
    QWidget *rootWidget;
#endif

    Widget window;

    QRect geometry;
    QString mimetype;
    QByteArray htmlID;
    union {
        QObject* object;
        QWidget* widget;
    } qt;
    QtNPStream *pendingStream;
    QtNPBindable* bindable;
    QObject *filter;

    QMap<QByteArray, QVariant> parameters;

    qint32 notificationSeqNum;
    QMutex seqNumMutex;
    qint32 getNotificationSeqNum()
        {
            QMutexLocker locker(&seqNumMutex);

            if (++notificationSeqNum < 0)
                notificationSeqNum = 1;
            return notificationSeqNum;
        }

};

#endif // QTBROWSERPLUGIN_P_H