1 #ifndef OPERATORCOMPONENT_HPP
2 #define OPERATORCOMPONENT_HPP
4 #include "Showcase.hpp"
5 #include "UIComponent.hpp"
13 typedef std::weak_ptr<MultiWidgets::Operator> OperatorWeakPtr;
18 virtual void removeInstance()
override;
20 virtual MultiWidgets::OperatorPtr operatorInstance(MultiWidgets::Widget & host,
21 bool immediate =
false)
override;
23 virtual void propertyReceived(
const PropertyKey &key,
24 const PropertyValue &value)
override;
26 const PropertyValue &value)
override;
29 OperatorWeakPtr m_instanceOperator;
30 MultiWidgets::OperatorPtr m_strongRef;
32 MultiWidgets::WidgetWeakPtr m_hostWidget;
40 MultiWidgets::OperatorPtr createOperator();
43 virtual ComponentInstancePtr instanceImpl()
override;
46 std::function<MultiWidgets::OperatorPtr(void)> m_createFunc;
49 typedef std::shared_ptr<OperatorComponent> OperatorComponentPtr;
50 typedef std::weak_ptr<OperatorComponent> OperatorComponentWeakPtr;
53 #define SHOWCASE_OPERATOR_COMPONENT(name, type) \
55 Showcase::FactoryRegistrant<Showcase::OperatorComponent> MW_PLUGIN_CONCAT(component, __LINE__) \
56 (name, [] { return std::make_shared<Showcase::OperatorComponent>(\
57 [] { return std::make_shared<type>(); } ); }); \
60 #endif // OPERATORCOMPONENT_HPP