]> git.lyx.org Git - lyx.git/blobdiff - src/MenuBackend.h
fix a visual cursor edge-case:
[lyx.git] / src / MenuBackend.h
index 0ac9ee3e20859495c84d639b8977d740e66480c0..33e9d57b45c181bdf90ebfba02933eae83ce3f3f 100644 (file)
@@ -19,6 +19,7 @@
 #include <boost/shared_ptr.hpp>
 
 #include <vector>
+#include <stack>
 
 
 namespace lyx {
@@ -63,6 +64,12 @@ public:
                /** This is the list of elements available
                 * for insertion into document. */
                CharStyles,
+               /** This is the list of user-configurable
+               insets to insert into document */
+               Custom,
+               /** This is the list of XML elements to
+               insert into the document */
+               Elements,
                /** This is the list of floats that we can
                    insert a list for. */
                FloatListInsert,
@@ -110,11 +117,8 @@ 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.        
-        * Use the native UI format when \c forgui is true.
-        */
-       docstring const binding(bool forgui) const;
+       ///returns the binding associated to this action.
+       docstring const binding() const;
        /// the description of the  submenu (if relevant)
        docstring const & submenuname() const { return submenuname_; }
        /// set the description of the  submenu
@@ -153,8 +157,7 @@ public:
        ///
        typedef ItemList::size_type size_type;
        ///
-       explicit Menu(docstring const & name = docstring())
-               : name_(name) {}
+       explicit Menu(docstring const & name = docstring()) : name_(name) {}
        /// Add the menu item unconditionally
        Menu & add(MenuItem const &);
        /// Checks the associated FuncRequest status before adding the
@@ -175,16 +178,16 @@ public:
        ///
        bool hasFunc(FuncRequest const &) const;
        ///
-       const_iterator begin() const {
-               return items_.begin();
-       }
+       const_iterator begin() const { return items_.begin(); }
        ///
-       const_iterator end() const {
-               return items_.end();
-       }
+       const_iterator end() const { return items_.end(); }
 
        // Check whether the menu shortcuts are unique
        void checkShortcuts() const;
+       
+       // search for func in this menu iteratively, and put menu
+       // names in a stack.
+       bool searchFunc(FuncRequest & func, std::stack<docstring> & names) const;
 
 private:
        friend class MenuBackend;
@@ -236,21 +239,14 @@ public:
        void expand(Menu const & frommenu, Menu & tomenu,
                    Buffer const *) const;
        ///
-       const_iterator begin() const {
-               return menulist_.begin();
-       }
+       const_iterator begin() const { return menulist_.begin(); }
        ///
-       iterator begin() {
-               return menulist_.begin();
-       }
+       iterator begin() { return menulist_.begin(); }
        ///
-       const_iterator end() const {
-               return menulist_.end();
-       }
+       const_iterator end() const { return menulist_.end(); }
        ///
-       iterator end() {
-               return menulist_.end();
-       }
+       iterator end() { return menulist_.end(); }
+
 private:
        ///
        MenuList menulist_;
@@ -260,10 +256,6 @@ private:
        Menu specialmenu_;
 };
 
-///
-extern MenuBackend menubackend;
-
-
 } // namespace lyx
 
-#endif /* MENUBACKEND_H */
+#endif // MENUBACKEND_H