X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMenuBackend.h;h=903b130630f4c1942ececb41e4a5964d7985e4ff;hb=b9aa557b359463dfb0a2132b665570c8d1e5d605;hp=c704539eb0a600b6d738939f7e802647e33a9b6c;hpb=3420904448b247cc270597c31b52d777e38ac647;p=lyx.git diff --git a/src/MenuBackend.h b/src/MenuBackend.h index c704539eb0..903b130630 100644 --- a/src/MenuBackend.h +++ b/src/MenuBackend.h @@ -20,8 +20,11 @@ #include + +namespace lyx { + class LyXLex; -class LyXView; +class Buffer; class Menu; /// @@ -41,6 +44,8 @@ public: /** This is the list of opened Documents, typically for the Documents menu. */ Documents, + /** This is the bookmarks */ + Bookmarks, /// Toc, /** This is a list of viewable formats @@ -67,6 +72,8 @@ public: /** This is the list of selections that can be pasted. */ PasteRecent, + /** toolbars */ + Toolbars, /** Available branches in document */ Branches }; @@ -74,23 +81,23 @@ public: explicit MenuItem(Kind kind); MenuItem(Kind kind, - std::string const & label, - std::string const & command = std::string(), + docstring const & label, + docstring const & submenu = docstring(), bool optional = false); MenuItem(Kind kind, - std::string const & label, + docstring const & label, FuncRequest const & func, bool optional = false); /// This one is just to please boost::shared_ptr<> ~MenuItem(); /// The label of a given menuitem - std::string const label() const; + docstring const label() const; /// The keyboard shortcut (usually underlined in the entry) - std::string const shortcut() const; + docstring const shortcut() const; /// The complete label, with label and shortcut separated by a '|' - std::string const fulllabel() const { return label_;} + docstring const fulllabel() const { return label_;} /// The kind of entry Kind kind() const { return kind_; } /// the action (if relevant) @@ -103,12 +110,15 @@ public: 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 - std::string const binding() const; + /** + * returns the binding associated to this action. + * Use the native UI format when \c forgui is true. + */ + docstring const binding(bool forgui) const; /// the description of the submenu (if relevant) - std::string const & submenuname() const { return submenuname_; } + docstring const & submenuname() const { return submenuname_; } /// set the description of the submenu - void submenuname(std::string const & name) { submenuname_ = name; } + void submenuname(docstring const & name) { submenuname_ = name; } /// Menu * submenu() const { return submenu_.get(); } /// @@ -119,11 +129,11 @@ private: /// Kind kind_; /// - std::string label_; + docstring label_; /// FuncRequest func_; /// - std::string submenuname_; + docstring submenuname_; /// bool optional_; /// @@ -143,20 +153,27 @@ public: /// typedef ItemList::size_type size_type; /// - explicit Menu(std::string const & name = std::string()) + explicit Menu(docstring const & name = docstring()) : name_(name) {} - /// - Menu & add(MenuItem const &, LyXView const * view = 0); + /// Add the menu item unconditionally + Menu & add(MenuItem const &); + /// Checks the associated FuncRequest status before adding the + /// menu item. + Menu & addWithStatusCheck(MenuItem const &); /// Menu & read(LyXLex &); /// - std::string const & name() const { return name_; } + docstring const & name() const { return name_; } /// bool empty() const { return items_.empty(); } + /// Clear the menu content. + void clear() { items_.clear(); } /// ItemList::size_type size() const { return items_.size(); } /// - bool hasSubmenu(std::string const &) const; + MenuItem const & operator[](size_type) const; + /// + bool hasFunc(FuncRequest const &) const; /// const_iterator begin() const { return items_.begin(); @@ -174,7 +191,7 @@ private: /// ItemList items_; /// - std::string name_; + docstring name_; }; @@ -188,26 +205,36 @@ public: /// typedef MenuList::iterator iterator; /// + MenuBackend() {} + /// void read(LyXLex &); /// void add(Menu const &); /// - bool hasMenu(std::string const &) const; + bool hasMenu(docstring const &) const; /// - Menu & getMenu(std::string const &); + Menu & getMenu(docstring const &); /// - Menu const & getMenu(std::string const &) const; + Menu const & getMenu(docstring const &) const; /// Menu const & getMenubar() const; /// bool empty() const { return menulist_.empty(); } + /** This defines a menu whose entries list the FuncRequests + that will be removed by expand() in other menus. This is + used by the Qt/Mac code + */ + void specialMenu(Menu const &); + /// + Menu const & specialMenu() { return specialmenu_; } + /// 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, Branches */ void expand(Menu const & frommenu, Menu & tomenu, - LyXView const *) const; + Buffer const *) const; /// const_iterator begin() const { return menulist_.begin(); @@ -229,9 +256,14 @@ private: MenuList menulist_; /// Menu menubar_; + /// + Menu specialmenu_; }; /// extern MenuBackend menubackend; + +} // namespace lyx + #endif /* MENUBACKEND_H */