void NotebookNoteAddin::update_menu() { // // Clear out the old list // for(std::list<Gtk::MenuItem *>::const_iterator iter = m_menu_items.begin(); iter != m_menu_items.end(); ++iter) { m_menu->remove (**iter); } m_menu_items.clear(); // // Build a new menu // // Add the "New Notebook..." Gtk::ImageMenuItem *newNotebookMenuItem = manage(new Gtk::ImageMenuItem (_("_New notebook..."), true)); newNotebookMenuItem->set_image(*manage(new Gtk::Image( IconManager::obj().get_icon(IconManager::NOTEBOOK_NEW, 16)))); newNotebookMenuItem->signal_activate() .connect(sigc::mem_fun(*this,&NotebookNoteAddin::on_new_notebook_menu_item)); newNotebookMenuItem->show (); m_menu->append (*newNotebookMenuItem); m_menu_items.push_back(newNotebookMenuItem); // Add the "(no notebook)" item at the top of the list NotebookMenuItem *noNotebookMenuItem = manage(new NotebookMenuItem (m_radio_group, get_note(), Notebook::Ptr())); noNotebookMenuItem->show_all (); m_menu->append (*noNotebookMenuItem); m_menu_items.push_back(noNotebookMenuItem); NotebookMenuItem *active_menu_item = noNotebookMenuItem; Notebook::Ptr current_notebook = NotebookManager::obj().get_notebook_from_note(get_note()); // Add in all the real notebooks std::list<NotebookMenuItem*> notebookMenuItems; get_notebook_menu_items (notebookMenuItems); if (!notebookMenuItems.empty()) { Gtk::SeparatorMenuItem *separator = manage(new Gtk::SeparatorMenuItem ()); separator->show_all (); m_menu->append (*separator); m_menu_items.push_back(separator); for(std::list<NotebookMenuItem*>::const_iterator iter = notebookMenuItems.begin(); iter != notebookMenuItems.end(); ++iter) { NotebookMenuItem* item = *iter; item->show_all (); m_menu->append (*item); m_menu_items.push_back(item); if(current_notebook == item->get_notebook()) active_menu_item = item; } } active_menu_item->set_active(true); }
bool NotebookNewNoteMenuItem::operator>(const NotebookMenuItem & rhs) { return m_notebook->get_name() > rhs.get_notebook()->get_name(); }