X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMenuBackend.h;h=2fe43c9cebdb497d5e6d79b306d1d970dada360d;hb=6a55be9506b112110826cf63bc21786044569f1d;hp=4bb8fd0e728a2119ad3c550ac2bb02cc1f344f1b;hpb=0be0fcfd5907d448cd51addf83ed7032719a0692;p=lyx.git diff --git a/src/MenuBackend.h b/src/MenuBackend.h index 4bb8fd0e72..2fe43c9ceb 100644 --- a/src/MenuBackend.h +++ b/src/MenuBackend.h @@ -13,14 +13,13 @@ #ifndef MENUBACKEND_H #define MENUBACKEND_H -#include "LString.h" +#include "FuncStatus.h" +#include "funcrequest.h" #include #include -#include "FuncStatus.h" - class LyXLex; class LyXView; class Menu; @@ -56,6 +55,9 @@ public: /** This is a list of importable formats typically for the File->Export menu. */ ImportFormats, + /** This is the list of elements available + * for insertion into document. */ + CharStyles, /** This is the list of floats that we can insert a list for. */ FloatListInsert, @@ -68,28 +70,31 @@ public: /** Available branches in document */ Branches }; - /// Create a Command type MenuItem + + explicit MenuItem(Kind kind); + MenuItem(Kind kind, - string const & label = string(), - string const & command = string(), + std::string const & label, + std::string const & command = std::string(), bool optional = false); + MenuItem(Kind kind, - string const & label, - int action, + std::string const & label, + FuncRequest const & func, bool optional = false); /// This one is just to please boost::shared_ptr<> ~MenuItem(); /// The label of a given menuitem - string const label() const; + std::string const label() const; /// The keyboard shortcut (usually underlined in the entry) - string const shortcut() const; + std::string const shortcut() const; /// The complete label, with label and shortcut separated by a '|' - string const fulllabel() const { return label_;} + std::string const fulllabel() const { return label_;} /// The kind of entry Kind kind() const { return kind_; } /// the action (if relevant) - int action() const { return action_; } + FuncRequest const & func() const { return func_; } /// 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 @@ -99,11 +104,11 @@ public: /// 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; + std::string const binding() const; /// the description of the submenu (if relevant) - string const & submenuname() const { return submenuname_; } + std::string const & submenuname() const { return submenuname_; } /// set the description of the submenu - void submenuname(string const & name) { submenuname_ = name; } + void submenuname(std::string const & name) { submenuname_ = name; } /// Menu * submenu() const { return submenu_.get(); } /// @@ -114,11 +119,11 @@ private: /// Kind kind_; /// - string label_; + std::string label_; /// - int action_; + FuncRequest func_; /// - string submenuname_; + std::string submenuname_; /// bool optional_; /// @@ -138,20 +143,22 @@ public: /// typedef ItemList::size_type size_type; /// - explicit Menu(string const & name = string()) + explicit Menu(std::string const & name = std::string()) : name_(name) {} /// Menu & add(MenuItem const &, LyXView const * view = 0); /// Menu & read(LyXLex &); /// - string const & name() const { return name_; } + std::string const & name() const { return name_; } /// bool empty() const { return items_.empty(); } /// ItemList::size_type size() const { return items_.size(); } /// - bool hasSubmenu(string const &) const; + MenuItem const & operator[](size_type) const; + /// + bool hasFunc(FuncRequest const &) const; /// const_iterator begin() const { return items_.begin(); @@ -169,7 +176,7 @@ private: /// ItemList items_; /// - string name_; + std::string name_; }; @@ -181,19 +188,28 @@ public: /// typedef MenuList::const_iterator const_iterator; /// + typedef MenuList::iterator iterator; + /// + MenuBackend::MenuBackend() : specialmenu_(0) {} + /// void read(LyXLex &); /// void add(Menu const &); /// - bool hasMenu(string const &) const; + bool hasMenu(std::string const &) const; /// - Menu & getMenu(string const &); + Menu & getMenu(std::string const &); /// - Menu const & getMenu(string const &) const; + Menu const & getMenu(std::string const &) const; /// Menu const & getMenubar() const; /// bool empty() const { return menulist_.empty(); } + /** This defines a menu whose entries list the FuncRequests + will be removed by expand() in other menus. This is used by + the Qt/Mac code + */ + void specialMenu(std::string const &); /// Expands some special entries of the menu /** The entries with the following kind are expanded to a sequence of Command MenuItems: Lastfiles, Documents, @@ -206,14 +222,24 @@ public: return menulist_.begin(); } /// + iterator begin() { + return menulist_.begin(); + } + /// const_iterator end() const { return menulist_.end(); } + /// + iterator end() { + return menulist_.end(); + } private: /// MenuList menulist_; /// Menu menubar_; + /// + Menu * specialmenu_; }; ///