]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
typo
[lyx.git] / src / Buffer.h
index add05579cc0ec37442ead719347ed8b9056c3648..a9696812bf7c458b1ae9103626166de7fe31b73b 100644 (file)
@@ -29,7 +29,6 @@ namespace lyx {
 
 class BiblioInfo;
 class BufferParams;
-class BufferSet;
 class DispatchResult;
 class DocIterator;
 class docstring_list;
@@ -70,6 +69,11 @@ class FileName;
 class FileNameList;
 }
 
+
+class Buffer;
+typedef std::list<Buffer *> ListOfBuffers;
+
+
 /** The buffer object.
  * This is the buffer object. It contains all the informations about
  * a document loaded into LyX.
@@ -301,9 +305,6 @@ public:
        void setParent(Buffer const *);
        Buffer const * parent() const;
 
-       // Collect all relative buffer
-       std::vector<Buffer const *> allRelatives() const;
-
        /** Get the document's master (or \c this if this is not a
            child document)
         */
@@ -312,11 +313,26 @@ 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(bool grand_children = true) const;
-
-       /// Add all children (and grandchildren) to supplied vector
-       void getChildren(std::vector<Buffer *> & children, bool grand_children = true) const;
+       /// \return true if this \c Buffer has children
+       bool hasChildren() const;
+       
+       /// \return a list of the direct children of this Buffer.
+       /// this list has no duplicates and is in the order in which
+       /// the children appear.
+       ListOfBuffers getChildren() const;
+       
+       /// \return a list of all descendents of this Buffer (children,
+       /// grandchildren, etc). this list has no duplicates and is in
+       /// the order in which the children appear.
+       ListOfBuffers getDescendents() const;
+
+       /// Collect all relative buffers, in the order in which they appear.
+       /// I.e., the "root" Buffer is first, then its first child, then any
+       /// of its children, etc. However, there are no duplicates in this
+       /// list.
+       /// This is "stable", too, in the sense that it returns the same
+       /// thing from whichever Buffer it is called.
+       ListOfBuffers allRelatives() const;
 
        /// Is buffer read-only?
        bool isReadonly() const;
@@ -594,7 +610,10 @@ private:
        /// of loaded child documents).
        support::FileNameList const & 
                getBibfilesCache(UpdateScope scope = UpdateMaster) const;
+       ///
+       void collectChildren(ListOfBuffers & children, bool grand_children) const;
 
+       
        /// Use the Pimpl idiom to hide the internals.
        class Impl;
        /// The pointer never changes although *pimpl_'s contents may.