PanelDelegateFactory.hpp
1 #pragma once
2 #include <score/plugins/Interface.hpp>
3 #include <score/plugins/InterfaceList.hpp>
4 #include <score/plugins/panel/PanelDelegate.hpp>
5 
6 namespace score
7 {
9 class SCORE_LIB_BASE_EXPORT PanelDelegateFactory : public score::InterfaceBase
10 {
11  SCORE_INTERFACE(PanelDelegateFactory, "8d6211f7-5244-44f9-94dd-f3e32255c43e")
12 public:
13  static const constexpr bool ui_interface = true;
14  virtual ~PanelDelegateFactory();
15 
17  virtual std::unique_ptr<PanelDelegate> make(const score::GUIApplicationContext& ctx)
18  = 0;
19 };
20 
22 class SCORE_LIB_BASE_EXPORT PanelDelegateFactoryList final
23  : public InterfaceList<score::PanelDelegateFactory>
24 {
25 public:
26  using object_type = PanelDelegate;
28 };
29 }
Base class for plug-in interfaces.
Definition: Interface.hpp:52
InterfaceList Default implementation of InterfaceListBase.
Definition: InterfaceList.hpp:80
Reimplement this interface to register new panels.
Definition: PanelDelegateFactory.hpp:10
virtual std::unique_ptr< PanelDelegate > make(const score::GUIApplicationContext &ctx)=0
Create an instance of a PanelDelegate. Will only be called once.
All the panels are registered in this interface list.
Definition: PanelDelegateFactory.hpp:24
The PanelDelegate class.
Definition: PanelDelegate.hpp:50
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Specializes ApplicationContext with the QMainWindow.
Definition: GUIApplicationContext.hpp:15