#ifndef BUFFER_LIST_H
#define BUFFER_LIST_H
+#include "support/docstring.h"
+
#include <boost/utility.hpp>
-#include <string>
#include <vector>
+
+namespace lyx {
+
class Buffer;
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();
/// 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;
/// 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);
+ void setCurrentAuthor(docstring const & name, docstring const & email);
private:
/// ask to save a buffer on quit, returns false if should cancel
void emergencyWrite(Buffer * buf);
};
+/// Implementation is in lyx_main.C
+extern BufferList & theBufferList();
+
+
+} // namespace lyx
+
#endif // BUFFERLIST_H