]> git.lyx.org Git - lyx.git/blobdiff - src/bufferlist.h
* lib/languages:
[lyx.git] / src / bufferlist.h
index 5d8ddab2e4828699f08ef89c65430ba60ff68571..161f95b7f520a63a2742f7ad0d10322164507795 100644 (file)
@@ -17,6 +17,9 @@
 #include <string>
 #include <vector>
 
+
+namespace lyx {
+
 class Buffer;
 class OutputParams;
 
@@ -25,9 +28,19 @@ class OutputParams;
  * and deletions of new ones.
  */
 class BufferList : boost::noncopyable {
+public:
+       typedef std::vector<Buffer *>::iterator iterator;
+       typedef std::vector<Buffer *>::const_iterator const_iterator;
+
 public:
        BufferList();
 
+       iterator begin();
+       const_iterator begin() const;
+
+       iterator end();
+       const_iterator end() const;
+
        /// write all buffers, asking the user, returns false if cancelled
        bool quitWriteAll();
 
@@ -58,6 +71,9 @@ public:
        /// return head of buffer list if any
        Buffer * first();
 
+       /// return back of buffer list if any
+       Buffer * last();
+
        /// returns true if the buffer exists already
        bool exists(std::string const &) const;
 
@@ -69,7 +85,19 @@ public:
        /// returns a pointer to the buffer with the given number.
        Buffer * getBuffer(unsigned int);
        /// returns a pointer to the buffer whose temppath matches the string
-       Buffer * BufferList::getBufferFromTmp(std::string const &);
+       Buffer * getBufferFromTmp(std::string const &);
+
+       /** returns a pointer to the buffer that follows argument in
+        * buffer list. The buffer following the last in list is the
+        * first one.
+        */
+       Buffer * next(Buffer const *) const;
+
+       /** returns a pointer to the buffer that precedes argument in
+        * buffer list. The buffer preceding the first in list is the
+        * last one.
+        */
+       Buffer * previous(Buffer const *) const;
 
        /// reset current author for all buffers
        void setCurrentAuthor(std::string const & name, std::string const & email);
@@ -87,4 +115,10 @@ private:
        void emergencyWrite(Buffer * buf);
 };
 
+/// Implementation is in lyx_main.C
+extern BufferList & theBufferList();
+
+
+} // namespace lyx
+
 #endif // BUFFERLIST_H