char-mid-side/src/editor.rs

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);
});
},
)
}