Loading...
Searching...
No Matches
PlugFrame.hpp
1#pragma once
2#include <Vst3/UI/WindowContainer.hpp>
3
4#include <QTimer>
5#include <QWindow>
6
7#include <pluginterfaces/gui/iplugview.h>
8
9namespace vst3
10{
11
12#if defined(_WIN32) || defined(__APPLE__) || !__has_include(<xcb/xcb.h>)
13class PlugFrame final : public Steinberg::IPlugFrame
14{
15public:
16 Steinberg::tresult PLUGIN_API queryInterface(const Steinberg::TUID _iid, void** obj) override
17 {
18 *obj = nullptr;
19 return Steinberg::kResultFalse;
20 }
21
22 Steinberg::uint32 PLUGIN_API addRef() override { return 1; }
23 Steinberg::uint32 PLUGIN_API release() override { return 1; }
24
25 QDialog* w;
27 PlugFrame(QDialog& w, WindowContainer& wc)
28 : w{&w}
29 , wc{wc}
30 {
31 }
32
33 Steinberg::tresult
34 PLUGIN_API resizeView(Steinberg::IPlugView* view, Steinberg::ViewRect* newSize) override
35 {
36 if(!view || !newSize)
37 return Steinberg::kInvalidArgument;
38 return wc.setSizeFromVst(*view, *newSize, *w) ? Steinberg::kResultTrue
39 : Steinberg::kResultFalse;
40 }
41};
42#endif
43}
Definition PlugFrame.hpp:14
Definition WindowContainer.hpp:82
bool setSizeFromVst(Steinberg::IPlugView &view, Steinberg::ViewRect &r, QDialog &parentWindow) const
Definition WindowContainer.hpp:267