*
* \author Lars Gullik Bjønnes
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#ifndef BUFFER_LIST_H
#define BUFFER_LIST_H
-#include "LString.h"
-
#include <boost/utility.hpp>
+#include <string>
#include <vector>
+
+namespace lyx {
+
class Buffer;
-class LatexRunParams;
+class OutputParams;
/**
* The class holds all all open buffers, and handles construction
* 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();
/// create a new buffer
- Buffer * newBuffer(string const & s, bool ronly = false);
+ Buffer * newBuffer(std::string const & s, bool ronly = false);
/// delete a buffer
void release(Buffer * b);
void closeAll();
/// returns a vector with all the buffers filenames
- std::vector<string> const getFileNames() const;
+ std::vector<std::string> const getFileNames() const;
/// FIXME
- void updateIncludedTeXfiles(string const &, LatexRunParams const &);
+ void updateIncludedTeXfiles(std::string const &, OutputParams const &);
/// emergency save for all buffers
void emergencyWriteAll();
/// 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(string const &) const;
+ bool exists(std::string const &) const;
/// returns true if the buffer is loaded
bool isLoaded(Buffer const * b) const;
/// returns a pointer to the buffer with the given name.
- Buffer * getBuffer(string const &);
+ Buffer * getBuffer(std::string 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 * 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(string const & name, string const & email);
+ void setCurrentAuthor(std::string const & name, std::string 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