]> git.lyx.org Git - lyx.git/blobdiff - src/cursor_slice.C
and some mathed de-uglyfication
[lyx.git] / src / cursor_slice.C
index 4427fc3984f0647fe7b2644f306e475d1b8996e3..f4e6fb43a99fa3d01bb90ca4495965d94c4bbc4c 100644 (file)
@@ -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<MathInset *>(const_cast<InsetBase *>(inset_));
+       BOOST_ASSERT(asMathInset());
+       return asMathInset()->row(idx_);
 }
 
 
-UpdatableInset * CursorSlice::asUpdatableInset() const
+CursorSlice::col_type CursorSlice::col() const
 {
-       return static_cast<UpdatableInset *>(const_cast<InsetBase *>(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);
 }