#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();
std::vector<std::string> const getFileNames() const;
/// FIXME
- void updateIncludedTeXfiles(std::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(std::string const &) 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(std::string const & name, std::string const & email);
void emergencyWrite(Buffer * buf);
};
+/// Implementation is in lyx_main.C
+extern BufferList & theBufferList();
+
+
+} // namespace lyx
+
#endif // BUFFERLIST_H