X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fcursor_slice.C;h=f4e6fb43a99fa3d01bb90ca4495965d94c4bbc4c;hb=ea53de7c85a432377f87a4e0cc47a027d7793a74;hp=4427fc3984f0647fe7b2644f306e475d1b8996e3;hpb=55ee6cb34695c044d986988328e8f0fb1f03d407;p=lyx.git diff --git a/src/cursor_slice.C b/src/cursor_slice.C index 4427fc3984..f4e6fb43a9 100644 --- a/src/cursor_slice.C +++ b/src/cursor_slice.C @@ -45,12 +45,30 @@ void CursorSlice::idx(idx_type idx) } +size_t CursorSlice::nargs() const +{ + return inset_->nargs(); +} + + +size_t CursorSlice::ncols() const +{ + return inset_->ncols(); +} + + CursorSlice::idx_type CursorSlice::idx() const { return idx_; } +CursorSlice::idx_type & CursorSlice::idx() +{ + return idx_; +} + + void CursorSlice::par(par_type par) { par_ = par; @@ -63,6 +81,12 @@ CursorSlice::par_type CursorSlice::par() const } +CursorSlice::par_type & CursorSlice::par() +{ + return par_; +} + + void CursorSlice::pos(pos_type pos) { pos_ = pos; @@ -75,6 +99,20 @@ CursorSlice::pos_type CursorSlice::pos() const } +CursorSlice::pos_type & CursorSlice::pos() +{ + return pos_; +} + + +CursorSlice::pos_type CursorSlice::lastpos() const +{ + BOOST_ASSERT(inset_); +#warning implement me for texted, too. + return inset_->asMathInset() ? cell().size() : 0; +} + + void CursorSlice::boundary(bool boundary) { boundary_ = boundary; @@ -87,43 +125,43 @@ bool CursorSlice::boundary() const } -MathInset * CursorSlice::asMathInset() const +CursorSlice::row_type CursorSlice::row() const { - return static_cast(const_cast(inset_)); + BOOST_ASSERT(asMathInset()); + return asMathInset()->row(idx_); } -UpdatableInset * CursorSlice::asUpdatableInset() const +CursorSlice::col_type CursorSlice::col() const { - return static_cast(const_cast(inset_)); + BOOST_ASSERT(asMathInset()); + return asMathInset()->col(idx_); } -MathArray & CursorSlice::cell(CursorSlice::idx_type idx) const +MathInset * CursorSlice::asMathInset() const { - BOOST_ASSERT(inset_); - BOOST_ASSERT(asMathInset()); - return asMathInset()->cell(idx); + return inset_ ? inset_->asMathInset() : 0; } -MathArray & CursorSlice::cell() const +UpdatableInset * CursorSlice::asUpdatableInset() const { - BOOST_ASSERT(inset_); - return asMathInset()->cell(idx_); + return inset_ ? inset_->asUpdatableInset() : 0; } -void CursorSlice::getPos(int & x, int & y) const +MathArray & CursorSlice::cell() const { - BOOST_ASSERT(inset_); - asMathInset()->getPos(idx_, pos_, x, y); + BOOST_ASSERT(asMathInset()); + return asMathInset()->cell(idx_); } -void CursorSlice::setPos(int pos) +void CursorSlice::getScreenPos(int & x, int & y) const { - pos_ = pos; + BOOST_ASSERT(asMathInset()); + asMathInset()->getScreenPos(idx_, pos_, x, y); }