A [baseview
] backend for the [Iced
] GUI library.
The main branch of this repository tracks the latest crates.io release of iced, while iced_git branch tracks its git repository.
```rust use baseview::{Size, WindowOpenOptions, WindowScalePolicy}; use iced_baseview::*;
fn main() { let settings = Settings { window: WindowOpenOptions { title: String::from("iced_baseview slider"), size: Size::new(500.0, 300.0), scale: WindowScalePolicy::SystemScaleFactor, }, flags: (), };
IcedWindow::<MyProgram>::open_blocking(settings);
}
pub enum Message { SliderChanged(u32), }
struct MyProgram { sliderstate: slider::State, slidervalue: u32, slidervaluestr: String, }
impl Application for MyProgram { type Executor = executor::Default; type Message = Message; type Flags = ();
fn new(_flags: ()) -> (Self, Command<Self::Message>) {
(
Self {
slider_state: slider::State::new(),
slider_value: 0,
slider_value_str: String::from("0"),
},
Command::none(),
)
}
fn update(&mut self, _window: &mut WindowQueue, message: Self::Message) -> Command<Self::Message> {
match message {
Message::SliderChanged(value) => {
self.slider_value = value;
self.slider_value_str = format!("{}", value);
}
}
Command::none()
}
fn view(&mut self) -> Element<'_, Self::Message> {
let slider_widget = Slider::new(
&mut self.slider_state,
0..=1000,
self.slider_value,
Message::SliderChanged,
);
let content = Column::new()
.width(Length::Fill)
.align_items(Align::Center)
.padding(20)
.spacing(20)
.push(Text::new("Slide me!"))
.push(slider_widget)
.push(Text::new(self.slider_value_str.as_str()));
Container::new(content)
.width(Length::Fill)
.height(Length::Fill)
.center_x()
.center_y()
.into()
}
} ```
Examples of how to use this library for audio plugins can be found here:
* [iced-baseplug-examples
]