From 9f51f4826f5d5aa6e69970fccb7302c80e6ebc1b Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 25 Dec 2017 21:54:57 +0200 Subject: [PATCH] Headerbar: Added menu popup. --- hammond-gtk/resources/gtk/headerbar.ui | 147 ++++++++++++++++++++++++- hammond-gtk/src/headerbar.rs | 9 +- 2 files changed, 149 insertions(+), 7 deletions(-) diff --git a/hammond-gtk/resources/gtk/headerbar.ui b/hammond-gtk/resources/gtk/headerbar.ui index 9eec825..c71c916 100644 --- a/hammond-gtk/resources/gtk/headerbar.ui +++ b/hammond-gtk/resources/gtk/headerbar.ui @@ -2,7 +2,7 @@ - + False Add a new feed center @@ -117,7 +117,7 @@ False True - + True True False @@ -195,22 +195,159 @@ - + True True - True + False + Add a new feed center True False open-menu-symbolic + 1 + end - 2 + + + + + False + + + True + False + vertical + + + True + False + False + False + Preferences + + + False + True + 0 + + + + + True + True + True + Update Podcasts + + + False + True + 1 + + + + + True + False + + + False + True + 2 + + + + + True + False + False + False + Import Feeds + + + False + True + 3 + + + + + True + False + False + False + Export Feeds + + + False + True + 4 + + + + + True + False + + + False + True + 5 + + + + + True + False + False + False + About + + + False + True + 6 + + + + + True + False + False + False + Help + + + False + True + 7 + + + + + True + False + False + False + Keyboard Shortcuts + + + False + True + 8 + + + + + submenu0 + 1 diff --git a/hammond-gtk/src/headerbar.rs b/hammond-gtk/src/headerbar.rs index 9d62773..fb2e087 100644 --- a/hammond-gtk/src/headerbar.rs +++ b/hammond-gtk/src/headerbar.rs @@ -13,6 +13,7 @@ use content::Content; pub struct Header { pub container: gtk::HeaderBar, add_toggle: gtk::MenuButton, + menu_toggle: gtk::MenuButton, switch: gtk::StackSwitcher, back_button: gtk::Button, show_title: gtk::Label, @@ -23,7 +24,8 @@ impl Default for Header { let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/headerbar.ui"); let header: gtk::HeaderBar = builder.get_object("headerbar").unwrap(); - let add_toggle: gtk::MenuButton = builder.get_object("add_toggle_button").unwrap(); + let add_toggle: gtk::MenuButton = builder.get_object("add_toggle").unwrap(); + let menu_toggle: gtk::MenuButton = builder.get_object("menu_toggle").unwrap(); let switch: gtk::StackSwitcher = builder.get_object("switch").unwrap(); let back_button: gtk::Button = builder.get_object("back_button").unwrap(); let show_title: gtk::Label = builder.get_object("show_title").unwrap(); @@ -34,6 +36,7 @@ impl Default for Header { Header { container: header, add_toggle, + menu_toggle, switch, back_button, show_title, @@ -52,7 +55,8 @@ impl Header { pub fn init(&self, content: Rc) { let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/headerbar.ui"); - let add_popover: gtk::Popover = builder.get_object("add-popover").unwrap(); + let add_popover: gtk::Popover = builder.get_object("add_popover").unwrap(); + let menu_popover: gtk::PopoverMenu = builder.get_object("menu_popover").unwrap(); let new_url: gtk::Entry = builder.get_object("new-url").unwrap(); let add_button: gtk::Button = builder.get_object("add-button").unwrap(); self.switch.set_stack(&content.stack); @@ -69,6 +73,7 @@ impl Header { add_popover.hide(); })); self.add_toggle.set_popover(&add_popover); + self.menu_toggle.set_popover(&menu_popover); let switch = &self.switch; let add_toggle = &self.add_toggle;