17#ifndef DAF_UI_HPP_INCLUDED
18#define DAF_UI_HPP_INCLUDED
20#include "DafDetails.hpp"
21#include "extra/LeakDetector.hpp"
22#include "src/DafPluginChecks.h"
35# include DAF_UI_CUSTOM_INCLUDE_PATH
38# include "../dgl/Cairo.hpp"
39typedef DGL_NAMESPACE::CairoTopLevelWidget UIWidget;
40#elif DAF_UI_USE_NANOVG
41# include "../dgl/NanoVG.hpp"
42typedef DGL_NAMESPACE::NanoTopLevelWidget UIWidget;
44# include "../dgl/TopLevelWidget.hpp"
45typedef DGL_NAMESPACE::TopLevelWidget UIWidget;
48#if DAF_UI_FILE_BROWSER
49# include "extra/FileBrowserDialog.hpp"
72class UI :
public UIWidget
84 UI(uint width = 0, uint height = 0,
bool automaticallyScaleAndSetAsMinimumSize =
false);
160#if DAF_PLUGIN_WANT_STATE
179#if DAF_PLUGIN_WANT_MIDI_INPUT
184 void sendNote(uint8_t channel, uint8_t note, uint8_t velocity);
187#if DAF_UI_FILE_BROWSER
200 bool openFileBrowser(
const DAF_NAMESPACE::FileBrowserOptions& options =
FileBrowserOptions());
203#if DAF_PLUGIN_WANT_DIRECT_ACCESS
224#if DAF_PLUGIN_WANT_PROGRAMS
232#if DAF_PLUGIN_WANT_STATE
292 virtual void uiFocus(
bool focus, DGL_NAMESPACE::CrossingMode mode);
307#if DAF_UI_FILE_BROWSER
317 virtual void uiFileBrowserSelected(
const char* filename);
334 PrivateData*
const uiData;
335 friend class PluginWindow;
336 friend class UIExporter;
338 void requestSizeChange(uint width, uint height)
override;
340 DAF_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(
UI)
const char * getBundlePath() const noexcept
void editParameter(uint32_t index, bool started)
virtual uint32_t uiClipboardDataOffer()
uint getBackgroundColor() const noexcept
bool requestStateFile(const char *key)
uint getForegroundColor() const noexcept
std::vector< DGL_NAMESPACE::ClipboardDataOffer > getClipboardDataOfferTypes()
virtual void programLoaded(uint32_t index)
UI(uint width=0, uint height=0, bool automaticallyScaleAndSetAsMinimumSize=false)
void onResize(const ResizeEvent &ev) override
bool isResizable() const noexcept
void setParameterValue(uint32_t index, float value)
double getSampleRate() const noexcept
virtual void parameterChanged(uint32_t index, float value)
void sendNote(uint8_t channel, uint8_t note, uint8_t velocity)
void * getPluginInstancePointer() const noexcept
virtual void uiReshape(uint width, uint height)
void setState(const char *key, const char *value)
virtual void sampleRateChanged(double newSampleRate)
virtual void uiScaleFactorChanged(double scaleFactor)
virtual void uiFocus(bool focus, DGL_NAMESPACE::CrossingMode mode)
virtual void stateChanged(const char *key, const char *value)
virtual void uiIdle()
Definition DafUI.hpp:258
#define END_NAMESPACE_DAF
Definition DafInfo.hpp:996
#define START_NAMESPACE_DAF
Definition DafInfo.hpp:990
#define DAF_UI_CUSTOM_WIDGET_TYPE
Definition DafInfo.hpp:651
FileBrowserOptions()
Definition FileBrowserDialogImpl.hpp:85