|  | @@ -3,22 +3,22 @@ use mpd::status::State;
 | 
	
		
			
				|  |  |  use mpd::idle;
 | 
	
		
			
				|  |  |  use mpd::idle::Idle;
 | 
	
		
			
				|  |  |  use std::thread;
 | 
	
		
			
				|  |  | -use ui::widget;
 | 
	
		
			
				|  |  | -use ui::widget::Widget;
 | 
	
		
			
				|  |  | +use ui::draw_context::DrawContext;
 | 
	
		
			
				|  |  | +use widgets::{Message, MessageSender, Widget};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const MARGIN: u16 = 7;
 | 
	
		
			
				|  |  |  const WIDTH: u16 = 250;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  pub struct Music {
 | 
	
		
			
				|  |  | -    context: widget::DrawContext,
 | 
	
		
			
				|  |  | -    tx: widget::MessageSender,
 | 
	
		
			
				|  |  | +    context: DrawContext,
 | 
	
		
			
				|  |  | +    tx: MessageSender,
 | 
	
		
			
				|  |  |      state: State,
 | 
	
		
			
				|  |  |      artist: String,
 | 
	
		
			
				|  |  |      title: String,
 | 
	
		
			
				|  |  |      last_pos: u16
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -pub fn mpd(tx: widget::MessageSender, context: widget::DrawContext) -> Music {
 | 
	
		
			
				|  |  | +pub fn mpd(tx: MessageSender, context: DrawContext) -> Music {
 | 
	
		
			
				|  |  |      Music {
 | 
	
		
			
				|  |  |          context: context,
 | 
	
		
			
				|  |  |          tx: tx,
 | 
	
	
		
			
				|  | @@ -48,7 +48,7 @@ impl Music {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -impl widget::Widget for Music {
 | 
	
		
			
				|  |  | +impl Widget for Music {
 | 
	
		
			
				|  |  |      fn init(&mut self) {
 | 
	
		
			
				|  |  |          let tx = self.tx.clone();
 | 
	
		
			
				|  |  |          thread::spawn(move || monitor_thread(tx));
 | 
	
	
		
			
				|  | @@ -79,15 +79,15 @@ impl widget::Widget for Music {
 | 
	
		
			
				|  |  |          WIDTH
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    fn handle_event(&mut self, event: &widget::Message) -> bool {
 | 
	
		
			
				|  |  | +    fn handle_event(&mut self, event: &Message) -> bool {
 | 
	
		
			
				|  |  |          match event {
 | 
	
		
			
				|  |  | -            &widget::Message::MpdEvent(ref state, ref artist, ref title) => {
 | 
	
		
			
				|  |  | +            &Message::MpdEvent(ref state, ref artist, ref title) => {
 | 
	
		
			
				|  |  |                  self.state = state.clone();
 | 
	
		
			
				|  |  |                  self.artist = artist.clone();
 | 
	
		
			
				|  |  |                  self.title = title.clone();
 | 
	
		
			
				|  |  |                  self.redraw();
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  | -            &widget::Message::MousePress(_x) => {
 | 
	
		
			
				|  |  | +            &Message::MousePress(_x) => {
 | 
	
		
			
				|  |  |                  toggle();
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              _ => {}
 | 
	
	
		
			
				|  | @@ -96,7 +96,7 @@ impl widget::Widget for Music {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -fn monitor_thread(tx: widget::MessageSender) {
 | 
	
		
			
				|  |  | +fn monitor_thread(tx: MessageSender) {
 | 
	
		
			
				|  |  |      let mut conn = mpd::client::Client::connect("127.0.0.1:6600").unwrap();
 | 
	
		
			
				|  |  |      loop {
 | 
	
		
			
				|  |  |          let unknown = "Unknown".to_string();
 | 
	
	
		
			
				|  | @@ -105,7 +105,7 @@ fn monitor_thread(tx: widget::MessageSender) {
 | 
	
		
			
				|  |  |          let artist = song.tags.get("Artist").unwrap_or(&unknown);
 | 
	
		
			
				|  |  |          let title = song.title.as_ref().unwrap_or(&unknown);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        tx.send(widget::Message::MpdEvent(state, artist.clone(), title.clone())).expect("Failed to send mpd event");
 | 
	
		
			
				|  |  | +        tx.send(Message::MpdEvent(state, artist.clone(), title.clone())).expect("Failed to send mpd event");
 | 
	
		
			
				|  |  |          conn.wait(&[idle::Subsystem::Player]).ok();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |