]> git.lyx.org Git - lyx.git/blobdiff - src/bufferlist.C
Use MenuItem::status() instead of own submenudisabled function
[lyx.git] / src / bufferlist.C
index 20a0a72e05fb429c9bfefeb33e60285b4f31a8a0..109d25f9e71e36790c79763d3d86ab53393cc79d 100644 (file)
@@ -22,6 +22,7 @@
 #include "lyx_main.h"
 #include "output_latex.h"
 #include "paragraph.h"
+#include "ParagraphList_fwd.h"
 
 #include "frontends/Alert.h"
 
@@ -39,6 +40,8 @@ using lyx::support::OnlyFilename;
 using lyx::support::removeAutosaveFile;
 using lyx::support::prefixIs;
 
+using boost::bind;
+
 using std::auto_ptr;
 using std::endl;
 using std::find;
@@ -214,6 +217,35 @@ Buffer * BufferList::getBuffer(unsigned int choice)
 }
 
 
+Buffer * BufferList::next(Buffer const * buf) const 
+{
+       if (bstore.empty())
+               return 0;
+       BufferStorage::const_iterator it = find(bstore.begin(), 
+                                               bstore.end(), buf);
+       BOOST_ASSERT(it != bstore.end());
+       ++it;
+       if (it == bstore.end())
+               return bstore.front();
+       else
+               return *it;
+}
+
+
+Buffer * BufferList::previous(Buffer const * buf) const 
+{
+       if (bstore.empty())
+               return 0;
+       BufferStorage::const_iterator it = find(bstore.begin(), 
+                                               bstore.end(), buf);
+       BOOST_ASSERT(it != bstore.end());
+       if (it == bstore.begin())
+               return bstore.back();
+       else
+               return *(it - 1);
+}
+
+
 void BufferList::updateIncludedTeXfiles(string const & mastertmpdir,
                                        OutputParams const & runparams)
 {
@@ -235,7 +267,7 @@ void BufferList::updateIncludedTeXfiles(string const & mastertmpdir,
 void BufferList::emergencyWriteAll()
 {
        for_each(bstore.begin(), bstore.end(),
-                boost::bind(&BufferList::emergencyWrite, this, _1));
+                bind(&BufferList::emergencyWrite, this, _1));
 }