17 #ifndef DISTRHO_UI_HPP_INCLUDED
18 #define DISTRHO_UI_HPP_INCLUDED
20 #include "extra/LeakDetector.hpp"
21 #include "src/DistrhoPluginChecks.h"
23 #if DISTRHO_PLUGIN_HAS_EXTERNAL_UI
24 # include "../dgl/Base.hpp"
25 # include "extra/ExternalWindow.hpp"
26 typedef DISTRHO_NAMESPACE::ExternalWindow UIWidget;
27 #elif DISTRHO_UI_USE_NANOVG
28 # include "../dgl/NanoVG.hpp"
29 typedef DGL_NAMESPACE::NanoWidget UIWidget;
31 # include "../dgl/Widget.hpp"
32 typedef DGL_NAMESPACE::Widget UIWidget;
39 # include "OpenGL.hpp"
42 START_NAMESPACE_DISTRHO
58 class UI :
public UIWidget
65 UI(uint width = 0, uint height = 0);
72 #if DISTRHO_UI_USER_RESIZABLE && !DISTRHO_PLUGIN_HAS_EXTERNAL_UI
78 void setGeometryConstraints(uint minWidth, uint minHeight,
bool keepAspectRatio,
bool automaticallyScale =
false);
106 #if DISTRHO_PLUGIN_WANT_STATE
111 void setState(
const char* key,
const char* value);
114 #if DISTRHO_PLUGIN_WANT_MIDI_INPUT
120 void sendNote(uint8_t channel, uint8_t note, uint8_t velocity);
123 #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
134 #if DISTRHO_PLUGIN_HAS_EXTERNAL_UI
152 # if DISTRHO_PLUGIN_HAS_EMBED_UI
172 #if DISTRHO_PLUGIN_WANT_PROGRAMS
180 #if DISTRHO_PLUGIN_WANT_STATE
185 virtual void stateChanged(
const char* key,
const char* value) = 0;
197 #if !DISTRHO_PLUGIN_HAS_EXTERNAL_UI
205 virtual void uiIdle() {}
207 # ifndef DGL_FILE_BROWSER_DISABLED
212 virtual void uiFileBrowserSelected(
const char* filename);
220 virtual void uiReshape(uint width, uint height);
230 void onResize(
const ResizeEvent& ev)
override;
237 PrivateData*
const pData;
238 friend class UIExporter;
239 friend class UIExporterWindow;
241 #if !DISTRHO_PLUGIN_HAS_EXTERNAL_UI
243 void setAbsoluteX(
int)
const noexcept {}
244 void setAbsoluteY(
int)
const noexcept {}
245 void setAbsolutePos(
int,
int)
const noexcept {}
246 void setAbsolutePos(
const DGL_NAMESPACE::Point<int>&)
const noexcept {}
249 DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
UI)
272 END_NAMESPACE_DISTRHO
274 #endif // DISTRHO_UI_HPP_INCLUDED
void editParameter(uint32_t index, bool started)
virtual void parameterChanged(uint32_t index, float value)=0
static uintptr_t getNextWindowId() noexcept
static double getNextScaleFactor() noexcept
void setParameterValue(uint32_t index, float value)
void * getPluginInstancePointer() const noexcept
virtual void sampleRateChanged(double newSampleRate)
virtual void programLoaded(uint32_t index)=0
void sendNote(uint8_t channel, uint8_t note, uint8_t velocity)
UI(uint width=0, uint height=0)
static const char * getNextBundlePath() noexcept
virtual void stateChanged(const char *key, const char *value)=0
double getSampleRate() const noexcept
void setState(const char *key, const char *value)
Definition: DistrhoUI.hpp:58