[gnote] Add sections to popover menu



commit 3128e4cd2542271769caec2e83f9543bd312175e
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sat Dec 5 18:28:06 2015 +0200

    Add sections to popover menu

 src/recentchanges.cpp |   24 +++++++++++++++++++++---
 src/recentchanges.hpp |    1 +
 2 files changed, 22 insertions(+), 3 deletions(-)
---
diff --git a/src/recentchanges.cpp b/src/recentchanges.cpp
index 39f505f..f23388f 100644
--- a/src/recentchanges.cpp
+++ b/src/recentchanges.cpp
@@ -704,22 +704,40 @@ namespace gnote {
     }
   }
 
+  Gtk::Grid *NoteRecentChanges::create_inner_popover_grid(int & top)
+  {
+    Gtk::Grid *grid = manage(new Gtk::Grid);
+    grid->property_margin_top() = 10;
+    grid->property_margin_bottom() = 10;
+    top = 0;
+    return grid;
+  }
+
   GtkPopoverMenu *NoteRecentChanges::make_window_menu(Gtk::Button *button, const std::vector<Gtk::Widget*> & 
items)
   {
     GtkPopoverMenu *menu = GTK_POPOVER_MENU(gtk_popover_menu_new());
-    Gtk::Grid *grid = manage(new Gtk::Grid);
-    grid->property_margin() = 10;
+    Gtk::Grid *main_grid = manage(new Gtk::Grid);
+    main_grid->property_margin_start() = 10;
+    main_grid->property_margin_end() = 10;
+    int main_top = 0;
     int top = 0;
+    Gtk::Grid *grid = create_inner_popover_grid(top);
     FOREACH(Gtk::Widget *item, items) {
       grid->attach(*manage(item), 0, top++, 1, 1);
     }
 
+    if(top > 0) {
+      main_grid->attach(*grid, 0, main_top++, 1, 1);
+      grid = create_inner_popover_grid(top);
+    }
+
     Gtk::Widget *close_item = manage(utils::create_popover_button("win.close-window", _("_Close")));
     close_item->add_accelerator("activate", get_accel_group(), GDK_KEY_W, Gdk::CONTROL_MASK, 
Gtk::ACCEL_VISIBLE);
     close_item->add_accelerator("activate", get_accel_group(), GDK_KEY_Q, Gdk::CONTROL_MASK, 
Gtk::ACCEL_VISIBLE);
     grid->attach(*close_item, 0, top++, 1, 1);
 
-    gtk_container_add(GTK_CONTAINER(menu), GTK_WIDGET(grid->gobj()));
+    main_grid->attach(*grid, 0, main_top++, 1, 1);
+    gtk_container_add(GTK_CONTAINER(menu), GTK_WIDGET(main_grid->gobj()));
     gtk_popover_set_relative_to(GTK_POPOVER(menu), GTK_WIDGET(button->gobj()));
     gtk_popover_set_modal(GTK_POPOVER(menu), TRUE);
     gtk_popover_set_position(GTK_POPOVER(menu), GTK_POS_BOTTOM);
diff --git a/src/recentchanges.hpp b/src/recentchanges.hpp
index 7852cd0..47478ca 100644
--- a/src/recentchanges.hpp
+++ b/src/recentchanges.hpp
@@ -85,6 +85,7 @@ private:
   void on_find_next_button_clicked();
   void on_find_prev_button_clicked();
   GtkPopoverMenu *make_window_menu(Gtk::Button *button, const std::vector<Gtk::Widget*> & items);
+  Gtk::Grid *create_inner_popover_grid(int & top);
   void on_embedded_name_changed(const std::string & name);
   void on_settings_changed(const Glib::ustring & key);
   bool on_notes_widget_key_press(GdkEventKey*);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]