StoneyVCV v2
StoneyDSP Modules for VCV Rack 2.
Loading...
Searching...
No Matches
PortWidget.hpp
Go to the documentation of this file.
1
31#pragma once
32
33#define STONEYVCV_COMPONENTLIBRARY_PORTWIDGET_HPP_INCLUDED 1
34
35#if defined (STONEYVCV_BUILD_COMPONENTLIBRARY)
36
37//==============================================================================
38
39#include <StoneyVCV.hpp>
41
42//==============================================================================
43
44#include <rack.hpp>
45#include <StoneyDSP/Core.hpp>
46
47//==============================================================================
48
49namespace StoneyDSP
50{
55//==============================================================================
56
57namespace StoneyVCV
58{
63//==============================================================================
64
65namespace ComponentLibrary
66{
71//==============================================================================
72
79struct ThemedPortWidgetPanel : virtual ::rack::widget::TransparentWidget
80{
81
82 //==========================================================================
83
84public:
85
86 //==========================================================================
87
88 using DrawArgs = ::rack::widget::TransparentWidget::DrawArgs;
89
90 //==========================================================================
91
96 ThemedPortWidgetPanel();
97
98 virtual ~ThemedPortWidgetPanel();
99
100 //==========================================================================
101
107 virtual void step() override;
108
114 virtual void draw(const ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortWidgetPanel::DrawArgs &args) override;
115
116 //==========================================================================
117
118 ::std::string labelText;
119
124 bool isOutput;
125
126 //==========================================================================
127
128private:
129
130 //==========================================================================
131
132 STONEYDSP_DECLARE_NON_COPYABLE(ThemedPortWidgetPanel)
133 STONEYDSP_DECLARE_NON_MOVEABLE(ThemedPortWidgetPanel)
134};
135
136//==============================================================================
137
142struct ThemedPortWidget : virtual ::rack::app::ThemedSvgPort
143{
144
145 //==========================================================================
146
147public:
148
149 //==========================================================================
150
151 using DrawArgs = ::rack::app::ThemedSvgPort::DrawArgs;
152
153 ThemedPortWidget();
154
155 virtual ~ThemedPortWidget();
156
157 //==========================================================================
158
159 virtual void step() override;
160
161 virtual void draw(const ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortWidget::DrawArgs &args) override;
162
163 //==========================================================================
164
165 bool isOutput;
166
167 ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortWidgetPanel* panel;
168
169 //==========================================================================
170
171private:
172
173 //==========================================================================
174
175 ::rack::FramebufferWidget* fb;
176
177 bool lastPrefersDarkPanels;
178
179 STONEYDSP_DECLARE_NON_COPYABLE(ThemedPortWidget)
180 STONEYDSP_DECLARE_NON_MOVEABLE(ThemedPortWidget)
181};
182
183//==============================================================================
184
186} // namespace ComponentLibrary
187
188//==============================================================================
189
191} // namespace StoneyVCV
192
193//==============================================================================
194
196} // namespace StoneyDSP
197
198//==============================================================================
199
200#endif // STONEYVCV_BUILD_COMPONENTLIBRARY
201
202//==============================================================================
StoneyDSP Modules for VCV Rack 2.
StoneyDSP Modules for VCV Rack 2.
The StoneyDSP namespace.
Definition StoneyVCV.hpp:58