3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS.
14 #include "BufferView.h"
17 #include "dispatchresult.h"
18 #include "iterators.h"
20 #include "paragraph.h"
22 #include "insets/updatableinset.h"
27 DispatchResult Cursor::dispatch(FuncRequest const &)
29 for (int i = data_.size() - 1; i >= 0; --i) {
30 lyxerr << "trying to dispatch to " << data_[i].text_ << std::endl;
36 void buildCursor(Cursor & cursor, BufferView & bv)
38 UpdatableInset * inset = bv.theLockingInset();
39 lyxerr << "\nbuildCursor: " << inset << std::endl;
43 inset = inset->getLockingInset();
46 ParIterator pit = bv.buffer()->par_iterator_begin();
47 ParIterator end = bv.buffer()->par_iterator_end();
48 for ( ; pit != end && !ok; ++pit) {
49 InsetList::iterator it = pit->insetlist.begin();
50 InsetList::iterator iend = pit->insetlist.end();
51 for ( ; it != iend && !ok; ++it)
52 if (it->inset == inset || it->inset == inset->owner())
57 lyxerr << " tli not found! inset: " << inset << std::endl;
61 vector<ParagraphList::iterator> pits;
62 vector<ParagraphList const *> plists;
63 vector<LyXText *> texts;
65 pit.getPits(pits, plists, texts);
67 cursor.data_.resize(pits.size());
68 for (size_t i = 0, n = pits.size(); i != n; ++i) {
69 cursor.data_[i].text_ = texts[i];
70 cursor.data_[i].pit_ = pits[i];
71 //cursor.data_[i].pos_ = texts[i]->cursor.pos();
72 cursor.data_[i].pos_ = 0;
73 lyxerr << " text: " << cursor.data_[i].text_
74 << " pit: " << cursor.data_[i].pit_->id()
75 << " pos: " << cursor.data_[i].pos_