hammond-gtk: Added some getters and removed some public fields.

This commit is contained in:
Jordan Petridis 2017-12-28 19:16:51 +02:00
parent 5942e47f2a
commit 287620d6cd
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
2 changed files with 13 additions and 8 deletions

View File

@ -15,8 +15,8 @@ use std::rc::Rc;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct Content { pub struct Content {
pub stack: gtk::Stack, stack: gtk::Stack,
pub shows: Rc<ShowStack>, shows: Rc<ShowStack>,
episodes: Rc<EpisodeStack>, episodes: Rc<EpisodeStack>,
} }
@ -44,11 +44,15 @@ impl Content {
pub fn get_stack(&self) -> gtk::Stack { pub fn get_stack(&self) -> gtk::Stack {
self.stack.clone() self.stack.clone()
} }
pub fn get_shows(&self) -> Rc<ShowStack> {
self.shows.clone()
}
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct ShowStack { pub struct ShowStack {
pub stack: gtk::Stack, stack: gtk::Stack,
header: Rc<Header>, header: Rc<Header>,
epstack: Rc<EpisodeStack>, epstack: Rc<EpisodeStack>,
} }
@ -149,6 +153,10 @@ impl ShowStack {
self.stack self.stack
.set_visible_child_full("widget", gtk::StackTransitionType::SlideLeft) .set_visible_child_full("widget", gtk::StackTransitionType::SlideLeft)
} }
pub fn get_stack(&self) -> gtk::Stack {
self.stack.clone()
}
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]

View File

@ -30,9 +30,6 @@ impl Default for Header {
let back_button: gtk::Button = builder.get_object("back_button").unwrap(); let back_button: gtk::Button = builder.get_object("back_button").unwrap();
let show_title: gtk::Label = builder.get_object("show_title").unwrap(); let show_title: gtk::Label = builder.get_object("show_title").unwrap();
switch.set_halign(gtk::Align::Center);
switch.show();
Header { Header {
container: header, container: header,
add_toggle, add_toggle,
@ -60,7 +57,7 @@ impl Header {
let new_url: gtk::Entry = builder.get_object("new_url").unwrap(); let new_url: gtk::Entry = builder.get_object("new_url").unwrap();
let add_button: gtk::Button = builder.get_object("add_button").unwrap(); let add_button: gtk::Button = builder.get_object("add_button").unwrap();
let refresh_button: gtk::Button = builder.get_object("refresh_button").unwrap(); let refresh_button: gtk::Button = builder.get_object("refresh_button").unwrap();
self.switch.set_stack(&content.stack); self.switch.set_stack(&content.get_stack());
new_url.connect_changed(move |url| { new_url.connect_changed(move |url| {
println!("{:?}", url.get_text()); println!("{:?}", url.get_text());
@ -90,7 +87,7 @@ impl Header {
add_toggle.show(); add_toggle.show();
back.hide(); back.hide();
show_title.hide(); show_title.hide();
content.shows.stack.set_visible_child_full("podcasts", gtk::StackTransitionType::SlideRight); content.get_shows().get_stack().set_visible_child_full("podcasts", gtk::StackTransitionType::SlideRight);
}), }),
); );
} }