Loading...
Searching...
No Matches
plugins/score-plugin-clap/Clap/Window.hpp
1#pragma once
2#include <Clap/EffectModel.hpp>
3
4#include <score/widgets/PluginWindow.hpp>
5
6#include <clap/all.h>
7
8#include <memory>
9#include <verdigris>
10
11namespace Clap
12{
13
14class Window final : public score::PluginWindow
15{
16public:
17 Window(const Model& e, const score::DocumentContext& ctx, QWidget* parent);
18 ~Window() override;
19
20 void resize(int w, int h);
21
22private:
23 bool createClapWindow();
24 void destroyClapWindow();
25
26 void resizeEvent(QResizeEvent* event) override;
27 void closeEvent(QCloseEvent* event) override;
28 void showEvent(QShowEvent* event) override;
29 void hideEvent(QHideEvent* event) override;
30 void contextMenuEvent(QContextMenuEvent* event) override;
31
32 static void setup_rect(QWidget* container, int width, int height);
33
34 bool queryExtensions();
35 void initializeGui();
36
37 const Model& m_model;
38 PluginHandle* m_handle{};
39
40 // CLAP GUI extension
41 const clap_plugin_gui_t* m_gui_ext{};
42
43 // Window state
44 bool m_gui_created{false};
45 bool m_gui_visible{false};
46 bool m_is_floating{false};
47
48 // Platform specific window handle
49 clap_window_t m_clap_window{};
50
51 // GUI API being used
52 std::string m_gui_api;
53};
54
55}
Definition plugins/score-plugin-clap/Clap/Window.hpp:15
Definition PluginWindow.hpp:9
Definition DocumentContext.hpp:18