Playlist
We're now ready to create a new widget: the playlist. We'll need the following new dependencies
:
[dependencies] id3 = "^0.2.0" m3u = "^1.0.0"
Add their corresponding extern crate
statements:
extern crate id3; extern crate m3u;
Let's create a new module for our playlist
:
mod playlist;
In the src/playlist.rs
file, we start by creating our model:
use gtk::ListStore; pub struct Model { current_song: Option<String>, model: ListStore, relm: Relm<Playlist>, }
The Relm
type comes from the relm
crate:
use relm::Relm;
It is useful to send messages to a widget. We'll learn more about that in the section about widget communication. Let's add the model initialization function:
use gdk_pixbuf::Pixbuf; use gtk::{StaticType, Type}; #[widget] impl Widget for Playlist { fn model(relm: &Relm<Self>, _: ()) -> Model { Model { current_song: None, model: ListStore::new(&[ Pixbuf::static_type(), Type::String...