]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlRef.C
The reference dialog now disconnects from the inset on Apply. Its behaviour
[lyx.git] / src / frontends / controllers / ControlRef.C
index b909d5bb88d4560f4692c1bd13c3ba76e6dde7fc..62148f588a7e01b73a72ff8220cfa31f44d1c087 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <config.h>
+#include <algorithm>
 
 #ifdef __GNUG__
 #pragma implementation
 #include "LyXView.h"
 #include "buffer.h"
 #include "lyxfunc.h"
+#include "bufferlist.h"
 
 using SigC::slot;
+using std::vector;
+using std::find;
+
+extern BufferList bufferlist;
 
 ControlRef::ControlRef(LyXView & lv, Dialogs & d)
        : ControlCommand(lv, d, LFUN_REF_INSERT)
@@ -35,21 +41,41 @@ ControlRef::ControlRef(LyXView & lv, Dialogs & d)
 }
 
 
-std::vector<string> const ControlRef::getLabelList() const
+vector<string> const ControlRef::getLabelList(string const & name) const
 {
-       return lv_.buffer()->getLabelList();
+       Buffer * buffer = bufferlist.getBuffer(name);
+       if (!buffer)
+               buffer = lv_.buffer();
+       return buffer->getLabelList();
 }
 
 
 void ControlRef::gotoRef(string const & ref) const
 {
-       lv_.getLyXFunc()->Dispatch(LFUN_BOOKMARK_SAVE, "0");
-       lv_.getLyXFunc()->Dispatch(LFUN_REF_GOTO, ref);
+       lv_.getLyXFunc()->dispatch(LFUN_BOOKMARK_SAVE, "0");
+       lv_.getLyXFunc()->dispatch(LFUN_REF_GOTO, ref);
 }
 
 
 void ControlRef::gotoBookmark() const
 {
-       lv_.getLyXFunc()->Dispatch(LFUN_BOOKMARK_GOTO, "0");
+       lv_.getLyXFunc()->dispatch(LFUN_BOOKMARK_GOTO, "0");
+}
+
+
+vector<string> const ControlRef::getBufferList() const
+{
+       return bufferlist.getFileNames();
 }
 
+
+int ControlRef::getBufferNum() const
+{
+       vector<string> buffers = bufferlist.getFileNames();
+       string const name = lv_.buffer()->fileName();
+       vector<string>::const_iterator cit =
+               find(buffers.begin(), buffers.end(), name);
+       if (cit == buffers.end())
+               return 0;
+       return cit - buffers.begin();
+}