void Buffer::setPosition(const Position & pos, ScintillaEditView * identifier) { int index = indexOfReference(identifier); if (index == -1) return; _positions[index] = pos; }
int Buffer::addReference(ScintillaEditView * identifier) { if (indexOfReference(identifier) != -1) return _references; _referees.push_back(identifier); _positions.push_back(Position()); _foldStates.push_back(std::vector<HeaderLineState>()); _references++; return _references; }
int Buffer::removeReference(ScintillaEditView * identifier) { int indexToPop = indexOfReference(identifier); if (indexToPop == -1) return _references; _referees.erase(_referees.begin() + indexToPop); _positions.erase(_positions.begin() + indexToPop); _foldStates.erase(_foldStates.begin() + indexToPop); _references--; return _references; }
void Buffer::setHeaderLineState(const std::vector<HeaderLineState> & folds, ScintillaEditView * identifier) { int index = indexOfReference(identifier); if (index == -1) return; //deep copy std::vector<HeaderLineState> & local = _foldStates[index]; local.clear(); size_t size = folds.size(); for(size_t i = 0; i < size; i++) { local.push_back(folds[i]); } }
void Buffer::setHeaderLineState(const std::vector<size_t> & folds, ScintillaEditView * identifier) { int index = indexOfReference(identifier); if (index == -1) return; //deep copy std::vector<size_t> & local = _foldStates[index]; local.clear(); for (const size_t& fold : folds) { local.push_back(fold); } }
const std::vector<size_t> & Buffer::getHeaderLineState(const ScintillaEditView * identifier) const { int index = indexOfReference(identifier); return _foldStates.at(index); }
Position& Buffer::getPosition(ScintillaEditView* identifier) { int index = indexOfReference(identifier); return _positions.at(index); }
std::vector<HeaderLineState> & Buffer::getHeaderLineState(ScintillaEditView * identifier) { int index = indexOfReference(identifier); return _foldStates.at(index); }