blob: 3cf57ca914aa00c752c48e73685fa86255cac1ad (
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
//=========================================================
// MusE
// Linux Music Editor
// vst_native_editor.h
// (C) Copyright 2012 Tim E. Real (terminator356 on users dot sourceforge dot net)
// Some of the editor window coding was adapted from QTractor (by rncbc aka Rui Nuno Capela)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; version 2 of
// the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
//=========================================================
#ifndef __VST_NATIVE_EDITOR_H__
#define __VST_NATIVE_EDITOR_H__
#include <QWidget>
#include "config.h"
#ifdef VST_NATIVE_SUPPORT
#if defined(Q_WS_X11)
#include <QX11Info>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#undef Bool
#undef Status
#undef None
#undef KeyPress
#undef KeyRelease
#undef FocusIn
#undef FocusOut
#undef Type
#undef FontChange
#undef CursorShape
#undef Unsorted
typedef void (*XEventProc)(XEvent *);
#endif
namespace MusECore {
class VstNativeSynthIF;
}
#endif // VST_NATIVE_SUPPORT
namespace MusEGui {
class VstNativeEditor : public QWidget
{
Q_OBJECT
#ifdef VST_NATIVE_SUPPORT
#if defined(Q_WS_X11)
Display* _display;
Window _vstEditor;
XEventProc _vstEventProc;
bool _buttonPress;
#endif
MusECore::VstNativeSynthIF* _sif;
protected:
virtual void showEvent(QShowEvent *pShowEvent);
virtual void closeEvent(QCloseEvent *pCloseEvent);
virtual void moveEvent(QMoveEvent *pMoveEvent);
public:
VstNativeEditor(QWidget *parent, Qt::WindowFlags wflags = 0);
~VstNativeEditor();
void open(MusECore::VstNativeSynthIF* sif);
//void close();
#if defined(Q_WS_X11)
// Local X11 event filter.
bool x11EventFilter(XEvent *pEvent);
#endif
//MusECore::VstNativeSynthIF* sif() const { return _sif; }
#endif // VST_NATIVE_SUPPORT
};
} // namespace MusEGui
#endif
|