[gnote] Add support for submenus in main window popover
- From: Aurimas ÄŒernius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Add support for submenus in main window popover
- Date: Thu, 24 Dec 2015 14:18:40 +0000 (UTC)
commit da62f89dd45663878870dcb95849833718474d66
Author: Aurimas ÄŒernius <aurisc4 gmail com>
Date: Thu Dec 24 16:11:14 2015 +0200
Add support for submenus in main window popover
src/recentchanges.cpp | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/recentchanges.cpp b/src/recentchanges.cpp
index 64a1905..9086502 100644
--- a/src/recentchanges.cpp
+++ b/src/recentchanges.cpp
@@ -732,6 +732,7 @@ namespace gnote {
Gtk::PopoverMenu *NoteRecentChanges::make_window_menu(Gtk::Button *button, const std::vector<Gtk::Widget*>
& items)
{
+ std::map<Glib::ustring, Gtk::Widget*> submenus;
Gtk::PopoverMenu *menu = manage(new Gtk::PopoverMenu);
Gtk::Grid *main_grid = manage(new Gtk::Grid);
main_grid->property_margin_start() = 10;
@@ -741,7 +742,13 @@ namespace gnote {
Gtk::Grid *grid = create_inner_popover_grid(top);
FOREACH(Gtk::Widget *item, items) {
if(item) {
- grid->attach(*manage(item), 0, top++, 1, 1);
+ utils::PopoverSubmenu *submenu = dynamic_cast<utils::PopoverSubmenu*>(item);
+ if(submenu) {
+ submenus[submenu->name()] = item;
+ }
+ else {
+ grid->attach(*manage(item), 0, top++, 1, 1);
+ }
}
else {
main_grid->attach(*grid, 0, main_top++, 1, 1);
@@ -761,6 +768,10 @@ namespace gnote {
main_grid->attach(*grid, 0, main_top++, 1, 1);
menu->add(*main_grid);
+ for(auto & submenu : submenus) {
+ menu->add(*submenu.second);
+ menu->child_property_submenu(*submenu.second) = submenu.first;
+ }
menu->set_relative_to(*button);
menu->set_modal(true);
menu->set_position(Gtk::POS_BOTTOM);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]