42 lines
1004 B
Rust
42 lines
1004 B
Rust
use std::sync::Arc;
|
|
|
|
use nih_plug::prelude::*;
|
|
|
|
use nih_plug_vizia::vizia::prelude::*;
|
|
use nih_plug_vizia::widgets::{ParamSlider, ResizeHandle};
|
|
use nih_plug_vizia::{create_vizia_editor, ViziaState};
|
|
|
|
use crate::MidSideParams;
|
|
|
|
#[derive(Lens)]
|
|
struct Data {
|
|
params: Arc<MidSideParams>,
|
|
}
|
|
|
|
impl Model for Data {}
|
|
|
|
pub fn default_state() -> Arc<ViziaState> {
|
|
ViziaState::new(|| (320, 100))
|
|
}
|
|
|
|
pub fn create(state: Arc<ViziaState>, params: Arc<MidSideParams>) -> Option<Box<dyn Editor>> {
|
|
create_vizia_editor(
|
|
state,
|
|
nih_plug_vizia::ViziaTheming::Builtin,
|
|
move |cx, _| {
|
|
nih_plug_vizia::assets::register_noto_sans_light(cx);
|
|
nih_plug_vizia::assets::register_noto_sans_thin(cx);
|
|
|
|
Data {
|
|
params: params.clone(),
|
|
}
|
|
.build(cx);
|
|
|
|
ResizeHandle::new(cx);
|
|
VStack::new(cx, |cx| {
|
|
ParamSlider::new(cx, Data::params, |p| &p.mode);
|
|
});
|
|
},
|
|
)
|
|
}
|