2020-12-04 14:37:01 -08:00
|
|
|
#ifndef MENU_H
|
|
|
|
#define MENU_H
|
|
|
|
|
2020-11-30 15:43:52 -08:00
|
|
|
#include <gtkmm/menu.h>
|
2022-01-21 15:39:53 -08:00
|
|
|
#include <gtkmm/menubar.h>
|
2020-11-30 15:43:52 -08:00
|
|
|
#include <gtkmm/menuitem.h>
|
|
|
|
#include <gtkmm/separatormenuitem.h>
|
2022-01-21 15:39:53 -08:00
|
|
|
#include <signal.h>
|
2020-11-30 15:43:52 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \class Menu
|
|
|
|
* \brief The top main-menu
|
|
|
|
*/
|
2021-02-12 12:46:41 -08:00
|
|
|
class Menu : public Gtk::MenuBar
|
2020-11-30 15:43:52 -08:00
|
|
|
{
|
|
|
|
public:
|
2022-01-21 15:39:53 -08:00
|
|
|
sigc::signal<void> new_doc;
|
|
|
|
sigc::signal<void> open;
|
|
|
|
sigc::signal<void> open_edit;
|
|
|
|
sigc::signal<void> edit;
|
|
|
|
sigc::signal<void> save;
|
|
|
|
sigc::signal<void> save_as;
|
|
|
|
sigc::signal<void> publish;
|
|
|
|
sigc::signal<void> quit;
|
|
|
|
sigc::signal<void> undo;
|
|
|
|
sigc::signal<void> redo;
|
|
|
|
sigc::signal<void> cut;
|
|
|
|
sigc::signal<void> copy;
|
|
|
|
sigc::signal<void> paste;
|
|
|
|
sigc::signal<void> del;
|
|
|
|
sigc::signal<void> select_all;
|
|
|
|
sigc::signal<void> find;
|
|
|
|
sigc::signal<void> replace;
|
|
|
|
sigc::signal<void> back;
|
|
|
|
sigc::signal<void> forward;
|
|
|
|
sigc::signal<void> reload;
|
|
|
|
sigc::signal<void> home;
|
2022-01-31 16:11:54 -08:00
|
|
|
sigc::signal<void> toc;
|
2022-01-21 15:39:53 -08:00
|
|
|
sigc::signal<void> source_code;
|
|
|
|
sigc::signal<void> about;
|
2020-11-30 15:43:52 -08:00
|
|
|
|
2022-01-21 15:39:53 -08:00
|
|
|
explicit Menu(const Glib::RefPtr<Gtk::AccelGroup>& accelgroup);
|
|
|
|
virtual ~Menu();
|
2022-05-25 14:22:16 -07:00
|
|
|
void set_back_menu_sensitive(bool sensitive);
|
|
|
|
void set_forward_menu_sensitive(bool sensitive);
|
|
|
|
void set_publish_menu_sensitive(bool sensitive);
|
|
|
|
void set_edit_menu_sensitive(bool sensitive);
|
2020-11-30 15:43:52 -08:00
|
|
|
|
|
|
|
protected:
|
2022-01-21 15:39:53 -08:00
|
|
|
// Child widgets
|
2022-05-25 14:22:16 -07:00
|
|
|
Gtk::MenuItem file_menu_item;
|
|
|
|
Gtk::MenuItem edit_menu_item;
|
|
|
|
Gtk::MenuItem view_menu_item;
|
|
|
|
Gtk::MenuItem help_menu_item;
|
|
|
|
Gtk::Menu file_menu; /*!< File drop-down menu */
|
|
|
|
Gtk::Menu edit_menu; /*!< Edit drop-down menu */
|
|
|
|
Gtk::Menu view_menu; /*!< View drop-down menu */
|
|
|
|
Gtk::Menu help_menu; /*!< Help drop-down menu */
|
|
|
|
Gtk::SeparatorMenuItem separator1;
|
|
|
|
Gtk::SeparatorMenuItem separator2;
|
|
|
|
Gtk::SeparatorMenuItem separator3;
|
|
|
|
Gtk::SeparatorMenuItem separator4;
|
|
|
|
Gtk::SeparatorMenuItem separator5;
|
|
|
|
Gtk::SeparatorMenuItem separator6;
|
|
|
|
Gtk::SeparatorMenuItem separator7;
|
|
|
|
Gtk::SeparatorMenuItem separator8;
|
2020-11-30 15:43:52 -08:00
|
|
|
|
|
|
|
private:
|
2022-05-25 14:22:16 -07:00
|
|
|
Gtk::MenuItem* back_menu_item_;
|
|
|
|
Gtk::MenuItem* forward_menu_item_;
|
|
|
|
Gtk::MenuItem* publish_menu_item_;
|
|
|
|
Gtk::MenuItem* edit_menu_item_;
|
|
|
|
|
|
|
|
Gtk::MenuItem* create_menu_item(const Glib::ustring& label_text);
|
2020-11-30 15:43:52 -08:00
|
|
|
};
|
2020-12-04 14:37:01 -08:00
|
|
|
#endif
|