X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMenuBackend.h;h=136814ad809e02d72a737b742161f805bb80760e;hb=5d3718cad2a2ef6a4d6a495054ab0705ba27b6b5;hp=af49d96e1e5fd6ed85a937eb0ad352aea40f3e05;hpb=a0afb0fd38bfd4a8ec7309eca24f3b765114ae6f;p=lyx.git diff --git a/src/MenuBackend.h b/src/MenuBackend.h index af49d96e1e..136814ad80 100644 --- a/src/MenuBackend.h +++ b/src/MenuBackend.h @@ -14,15 +14,17 @@ #ifndef MENUBACKEND_H #define MENUBACKEND_H -#ifdef __GNUG__ -#pragma interface -#endif - #include "LString.h" + +#include + #include +#include "FuncStatus.h" + class LyXLex; -class Buffer; +class LyXView; +class Menu; /// class MenuItem { @@ -70,10 +72,10 @@ public: MenuItem(Kind kind, string const & label, int action, - bool optional = false) - : kind_(kind), label_(label), - action_(action), submenu_(), optional_(optional) {} + bool optional = false); + /// This one is just to please boost::shared_ptr<> + ~MenuItem(); /// The label of a given menuitem string const label() const; /// The keyboard shortcut (usually underlined in the entry) @@ -84,11 +86,27 @@ public: Kind kind() const { return kind_; } /// the action (if relevant) int action() const { return action_; } - /// the description of the submenu (if relevant) - string const & submenu() const { return submenu_; } /// returns true if the entry should be ommited when disabled bool optional() const { return optional_; } + /// returns the status of the lfun associated with this entry + FuncStatus const & status() const { return status_; } + /// returns the status of the lfun associated with this entry + FuncStatus & status() { return status_; } + /// returns the status of the lfun associated with this entry + void status(FuncStatus const & status) { status_ = status; } + /// returns the binding associated to this action + string const binding() const; + /// the description of the submenu (if relevant) + string const & submenuname() const { return submenuname_; } + /// set the description of the submenu + void submenuname(string const & name) { submenuname_ = name; } + /// + Menu * submenu() const { return submenu_.get(); } + /// + void submenu(Menu * menu); + private: + //friend class MenuBackend; /// Kind kind_; /// @@ -96,9 +114,13 @@ private: /// int action_; /// - string submenu_; + string submenuname_; /// bool optional_; + /// + FuncStatus status_; + /// + boost::shared_ptr submenu_; }; @@ -110,18 +132,14 @@ public: /// typedef ItemList::const_iterator const_iterator; /// + typedef ItemList::size_type size_type; + /// explicit Menu(string const & name = string()) : name_(name) {} /// - Menu & add(MenuItem const &); + Menu & add(MenuItem const &, LyXView const * view = 0); /// Menu & read(LyXLex &); - /// Expands some special entries of the menu - /** The entries with the following kind are expanded to a - sequence of Command MenuItems: Lastfiles, Documents, - ViewFormats, ExportFormats, UpdateFormats - */ - void expand(Menu & tomenu, Buffer *) const; /// string const & name() const { return name_; } /// @@ -143,6 +161,7 @@ public: void checkShortcuts() const; private: + friend class MenuBackend; /// ItemList items_; /// @@ -173,6 +192,13 @@ public: Menu const & getMenubar() const; /// bool empty() const { return menulist_.empty(); } + /// Expands some special entries of the menu + /** The entries with the following kind are expanded to a + sequence of Command MenuItems: Lastfiles, Documents, + ViewFormats, ExportFormats, UpdateFormats + */ + void expand(Menu const & frommenu, Menu & tomenu, + LyXView const *) const; /// const_iterator begin() const { return menulist_.begin();