StoneyVCV v2
StoneyDSP Modules for VCV Rack 2.
Loading...
Searching...
No Matches
PanelWidget.hpp
Go to the documentation of this file.
1
31#pragma once
32
33#define STONEYVCV_COMPONENTLIBRARY_PANELWIDGET_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
49#include <string>
50#include <array>
51
52//==============================================================================
53
54namespace StoneyDSP
55{
60//==============================================================================
61
62namespace StoneyVCV
63{
68//==============================================================================
69
70namespace ComponentLibrary
71{
76//==============================================================================
77
84struct PanelLinesWidget : virtual ::rack::widget::TransparentWidget
85{
86
87 //==========================================================================
88
89public:
90
91 using DrawArgs = ::rack::widget::TransparentWidget::DrawArgs;
92
93 //==========================================================================
94
99 PanelLinesWidget() = default;
100
106 virtual void draw(const ::StoneyDSP::StoneyVCV::ComponentLibrary::PanelLinesWidget::DrawArgs &args) override;
107
108private:
109
110 //==========================================================================
111
112 STONEYDSP_DECLARE_NON_COPYABLE(PanelLinesWidget)
113 STONEYDSP_DECLARE_NON_MOVEABLE(PanelLinesWidget)
114};
115
116//==============================================================================
117
122struct ThemedPanelWidget : virtual ::rack::widget::Widget
123{
124
125 //==========================================================================
126
127public:
128
129 using DrawArgs = ::rack::widget::Widget::DrawArgs;
130
131 //==========================================================================
132
137 ThemedPanelWidget();
138
143 virtual ~ThemedPanelWidget();
144
145 //==========================================================================
146
151 virtual void step() override;
152
159 virtual void draw(const ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::DrawArgs &args) override;
160
161 //==========================================================================
162
163private:
164
165 //==========================================================================
166
171 ::rack::FramebufferWidget *fb;
172
173 // /**
174 // * @brief
175 // *
176 // */
177 // const ::std::array<::rack::math::Vec, 4> screwsPositions;
178
179 // /**
180 // * @brief
181 // *
182 // */
183 // const ::std::array<::rack::componentlibrary::ThemedScrew *, 4> screws;
184
189 ::StoneyDSP::StoneyVCV::ComponentLibrary::PanelLinesWidget *panelLines;
190
195 ::rack::app::PanelBorder *panelBorder;
196
197 //==========================================================================
198
199 STONEYDSP_DECLARE_NON_COPYABLE(ThemedPanelWidget)
200 STONEYDSP_DECLARE_NON_MOVEABLE(ThemedPanelWidget)
201};
202
203//==============================================================================
204
206} // namespace ComponentLibrary
207
208//==============================================================================
209
211} // namespace StoneyVCV
212
213//==============================================================================
214
216} // namespace StoneyDSP
217
218//==============================================================================
219
220#endif // STONEYVCV_BUILD_COMPONENTLIBRARY
221
222//==============================================================================
StoneyDSP Modules for VCV Rack 2.
StoneyDSP Modules for VCV Rack 2.
The StoneyDSP namespace.
Definition StoneyVCV.hpp:58