]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
That didn't really work. So revert to old CSS for gray notes.
[lyx.git] / src / Buffer.h
index af69950eb1a74443136eac2624d64a353c617ef7..f745aa04b8563cc2fb43eff35324156c2f5966dd 100644 (file)
@@ -21,6 +21,7 @@
 #include "support/SignalSlot.h"
 
 #include <list>
+#include <set>
 #include <string>
 #include <vector>
 
@@ -129,6 +130,9 @@ public:
        /// Destructor
        ~Buffer();
 
+       ///
+       Buffer * clone() const;
+
        /** High-level interface to buffer functionality.
            This function parses a command string and executes it.
        */
@@ -177,7 +181,7 @@ public:
        /// Write file. Returns \c false if unsuccesful.
        bool writeFile(support::FileName const &) const;
 
-       /// Loads LyX file \c filename into buffer, *  and \return success
+       /// Loads LyX file \c filename into buffer, *  and return success
        bool loadLyXFile(support::FileName const & s);
 
        /// Fill in the ErrorList with the TeXErrors
@@ -311,8 +315,8 @@ public:
        /// \return true if \p child is a child of this \c Buffer.
        bool isChild(Buffer * child) const;
        
-       /// return a vector with all children and grandchildren
-       std::vector<Buffer *> getChildren() const;
+       /// return a vector with all children (and grandchildren)
+       std::vector<Buffer *> getChildren(bool grand_children = true) const;
 
        /// Is buffer read-only?
        bool isReadonly() const;
@@ -429,6 +433,10 @@ public:
        /// Return macro defined before the inclusion of the child
        MacroData const * getMacro(docstring const & name, Buffer const & child, bool global = true) const;
 
+       /// Collect user macro names at loading time
+       typedef std::set<docstring> UserMacroSet;
+       UserMacroSet usermacros;
+
        /// Replace the inset contents for insets which InsetCode is equal
        /// to the passed \p inset_code.
        void changeRefsIfUnique(docstring const & from, docstring const & to,
@@ -520,10 +528,16 @@ public:
        // FIXME This really shouldn't be needed, but at the moment it's not
        // clear how to do it just for the individual pieces we need.
        void setBuffersForInsets() const;
-       ///
-       void updateLabels(UpdateScope = UpdateMaster) const;
-       ///
-       void updateLabels(ParIterator & parit) const;
+       /// Updates screen labels and some other information associated with
+       /// insets and paragraphs. Actually, it's more like a general "recurse
+       /// through the Buffer" routine, that visits all the insets and paragraphs.
+       void updateLabels() const { updateLabels(UpdateMaster, false); }
+       /// \param scope: whether to start with the master document or just
+       /// do this one.
+       /// \param output: whether we are preparing for output.
+       void updateLabels(UpdateScope scope, bool output) const;
+       /// 
+       void updateLabels(ParIterator & parit, bool output) const;
 
        /// Spellcheck starting from \p from.
        /// \p from initial position, will then points to the next misspelled
@@ -543,7 +557,8 @@ private:
        */
        void updateMacros(DocIterator & it,
                                     DocIterator & scope) const;
-
+       ///
+       void setLabel(ParIterator & it) const;
        ///
        void collectRelatives(BufferSet & bufs) const;
 
@@ -566,7 +581,7 @@ private:
        class Impl;
        /// The pointer never changes although *pimpl_'s contents may.
        Impl * const d;
-
+       ///
        frontend::GuiBufferDelegate * gui_;
 
        /// This function is called when the buffer structure is changed.