Headerbar: Factor out the Update Indicator widget.
This commit is contained in:
parent
5d6fbb6f04
commit
b0fc9ef05e
@ -24,11 +24,32 @@ pub struct Header {
|
|||||||
switch: gtk::StackSwitcher,
|
switch: gtk::StackSwitcher,
|
||||||
back: gtk::Button,
|
back: gtk::Button,
|
||||||
show_title: gtk::Label,
|
show_title: gtk::Label,
|
||||||
update_box: gtk::Box,
|
|
||||||
update_label: gtk::Label,
|
|
||||||
update_spinner: gtk::Spinner,
|
|
||||||
menu_button: gtk::MenuButton,
|
menu_button: gtk::MenuButton,
|
||||||
app_menu: MenuModel,
|
app_menu: MenuModel,
|
||||||
|
updater: UpdateIndicator,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
struct UpdateIndicator {
|
||||||
|
container: gtk::Box,
|
||||||
|
text: gtk::Label,
|
||||||
|
spinner: gtk::Spinner,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl UpdateIndicator {
|
||||||
|
fn show(&self) {
|
||||||
|
self.spinner.start();
|
||||||
|
self.spinner.show();
|
||||||
|
self.container.show();
|
||||||
|
self.text.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn hide(&self) {
|
||||||
|
self.spinner.stop();
|
||||||
|
self.spinner.hide();
|
||||||
|
self.container.hide();
|
||||||
|
self.text.hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Header {
|
impl Default for Header {
|
||||||
@ -47,17 +68,21 @@ impl Default for Header {
|
|||||||
let menu_button = builder.get_object("menu_button").unwrap();
|
let menu_button = builder.get_object("menu_button").unwrap();
|
||||||
let app_menu = menus.get_object("menu").unwrap();
|
let app_menu = menus.get_object("menu").unwrap();
|
||||||
|
|
||||||
|
let updater = UpdateIndicator {
|
||||||
|
container: update_box,
|
||||||
|
text: update_label,
|
||||||
|
spinner: update_spinner,
|
||||||
|
};
|
||||||
|
|
||||||
Header {
|
Header {
|
||||||
container: header,
|
container: header,
|
||||||
add_toggle,
|
add_toggle,
|
||||||
switch,
|
switch,
|
||||||
back,
|
back,
|
||||||
show_title,
|
show_title,
|
||||||
update_box,
|
|
||||||
update_label,
|
|
||||||
update_spinner,
|
|
||||||
menu_button,
|
menu_button,
|
||||||
app_menu,
|
app_menu,
|
||||||
|
updater,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,17 +167,11 @@ impl Header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn show_update_notification(&self) {
|
pub fn show_update_notification(&self) {
|
||||||
self.update_spinner.start();
|
self.updater.show();
|
||||||
self.update_box.show();
|
|
||||||
self.update_spinner.show();
|
|
||||||
self.update_label.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn hide_update_notification(&self) {
|
pub fn hide_update_notification(&self) {
|
||||||
self.update_spinner.stop();
|
self.updater.hide();
|
||||||
self.update_box.hide();
|
|
||||||
self.update_spinner.hide();
|
|
||||||
self.update_label.hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn open_menu(&self) {
|
pub fn open_menu(&self) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user