score-plugin-media/Media/Effect/Settings/View.hpp
1 #pragma once
2 #include <score/plugins/Interface.hpp>
3 #include <score/plugins/InterfaceList.hpp>
4 #include <score/plugins/ProjectSettings/ProjectSettingsView.hpp>
5 #include <score/plugins/settingsdelegate/SettingsDelegateView.hpp>
6 
7 #include <score_plugin_media_export.h>
8 
9 #include <verdigris>
10 
11 class QTabWidget;
12 
13 namespace Media::Settings
14 {
16 {
17  W_OBJECT(View)
18 public:
19  View();
20 
21 private:
22  QWidget* getWidget() override;
23 
24  QTabWidget* m_widg{};
25 };
26 
27 class SCORE_PLUGIN_MEDIA_EXPORT PluginSettingsTab
28  : public QObject
29  , public score::InterfaceBase
30 {
31  SCORE_INTERFACE(PluginSettingsTab, "a0ba4ef1-a448-45a5-b322-c1913c9b06a4")
32 public:
33  ~PluginSettingsTab() override;
34 
35  virtual QString name() const noexcept = 0;
36  virtual QWidget* make(const score::ApplicationContext& ctx) = 0;
37 };
38 
39 class PluginSettingsFactoryList final : public score::InterfaceList<PluginSettingsTab>
40 {
41 };
42 }
Definition: score-plugin-media/Media/Effect/Settings/View.hpp:40
Definition: score-plugin-media/Media/Effect/Settings/View.hpp:30
Definition: score-plugin-media/Media/Effect/Settings/View.hpp:16
Base class for plug-in interfaces.
Definition: Interface.hpp:52
InterfaceList Default implementation of InterfaceListBase.
Definition: InterfaceList.hpp:80
Definition: SettingsDelegateView.hpp:18
Used to access all the application-wide state and structures.
Definition: ApplicationContext.hpp:24