]> git.lyx.org Git - lyx.git/blobdiff - src/cursor_slice.C
Store and use QImage rather than QPixmap.
[lyx.git] / src / cursor_slice.C
index cbbda47d1a276cf24d277ac417d6244b81ccced6..f891844e196547906fa8ac0d54d414290325c0ab 100644 (file)
@@ -34,106 +34,38 @@ CursorSlice::CursorSlice()
 {}
 
 
-CursorSlice::CursorSlice(InsetBase * p)
-       : inset_(p), idx_(0), par_(0), pos_(0), boundary_(false)
+CursorSlice::CursorSlice(InsetBase & p)
+       : inset_(&p), idx_(0), par_(0), pos_(0), boundary_(false)
 {
-       ///BOOST_ASSERT(inset_);
-}
-
-
-void CursorSlice::idx(idx_type idx)
-{
-       idx_ = idx;
+       BOOST_ASSERT(inset_);
 }
 
 
 size_t CursorSlice::nargs() const
 {
+       BOOST_ASSERT(inset_);
        return inset_->nargs();
 }
 
 
 size_t CursorSlice::nrows() const
 {
+       BOOST_ASSERT(inset_);
        return inset_->nrows();
 }
 
 
 size_t CursorSlice::ncols() const
 {
+       BOOST_ASSERT(inset_);
        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;
-}
-
-
-CursorSlice::par_type CursorSlice::par() const
-{
-       return par_;
-}
-
-
-CursorSlice::par_type & CursorSlice::par()
-{
-       return par_;
-}
-
-
-void CursorSlice::pos(pos_type pos)
-{
-       pos_ = pos;
-}
-
-
-CursorSlice::pos_type CursorSlice::pos() const
-{
-       return pos_;
-}
-
-
-CursorSlice::pos_type & CursorSlice::pos()
-{
-       return pos_;
-}
-
-
 CursorSlice::pos_type CursorSlice::lastpos() const
 {
-       return (inset_ && inset_->asMathInset()) ? cell().size() : paragraph().size();
-}
-
-
-void CursorSlice::boundary(bool boundary)
-{
-       boundary_ = boundary;
-}
-
-
-bool CursorSlice::boundary() const
-{
-       return boundary_;
-}
-
-
-bool & CursorSlice::boundary()
-{
-       return boundary_;
+       BOOST_ASSERT(inset_);
+       return inset_->asMathInset() ? cell().size() : paragraph().size();
 }
 
 
@@ -153,13 +85,15 @@ CursorSlice::col_type CursorSlice::col() const
 
 MathInset * CursorSlice::asMathInset() const
 {
-       return inset_ ? inset_->asMathInset() : 0;
+       BOOST_ASSERT(inset_);
+       return inset_->asMathInset();
 }
 
 
 UpdatableInset * CursorSlice::asUpdatableInset() const
 {
-       return inset_ ? inset_->asUpdatableInset() : 0;
+       BOOST_ASSERT(inset_);
+       return inset_->asUpdatableInset();
 }
 
 
@@ -172,7 +106,8 @@ MathArray & CursorSlice::cell() const
 
 LyXText * CursorSlice::text() const
 {
-       return inset_ ? inset_->getText(idx_) : 0;
+       BOOST_ASSERT(inset_);
+       return inset_->getText(idx_);
 }
 
 
@@ -180,7 +115,7 @@ Paragraph & CursorSlice::paragraph()
 {
        // access to the main lyx text must be handled in the cursor
        BOOST_ASSERT(text());
-       return *text()->getPar(par_);
+       return text()->getPar(par_);
 }
 
 
@@ -188,40 +123,40 @@ Paragraph const & CursorSlice::paragraph() const
 {
        // access to the main lyx text must be handled in the cursor
        BOOST_ASSERT(text());
-       return *text()->getPar(par_);
+       return text()->getPar(par_);
 }
 
 
 bool operator==(CursorSlice const & p, CursorSlice const & q)
 {
-       return p.inset_ == q.inset_
-              && p.idx_ == q.idx_
-              && p.par_ == q.par_
-              && p.pos_ == q.pos_;
+       return &p.inset() == &q.inset()
+              && p.idx() == q.idx()
+              && p.par() == q.par()
+              && p.pos() == q.pos();
 }
 
 
 bool operator!=(CursorSlice const & p, CursorSlice const & q)
 {
-       return p.inset_ != q.inset_
-              || p.idx_ != q.idx_
-              || p.par_ != q.par_
-              || p.pos_ != q.pos_;
+       return &p.inset() != &q.inset()
+              || p.idx() != q.idx()
+              || p.par() != q.par()
+              || p.pos() != q.pos();
 }
 
 
 bool operator<(CursorSlice const & p, CursorSlice const & q)
 {
-       if (p.inset_ != q.inset_) {
+       if (&p.inset() != &q.inset()) {
                lyxerr << "can't compare cursor and anchor in different insets\n"
                       << "p: " << p << '\n' << "q: " << q << endl;
-               return true;
+               BOOST_ASSERT(false);
        }
-       if (p.idx_ != q.idx_)
-               return p.idx_ < q.idx_;
-       if (p.par_ != q.par_)
-               return p.par_ < q.par_;
-       return p.pos_ < q.pos_;
+       if (p.idx() != q.idx())
+               return p.idx() < q.idx();
+       if (p.par() != q.par())
+               return p.par() < q.par();
+       return p.pos() < q.pos();
 }
 
 
@@ -231,15 +166,21 @@ bool operator>(CursorSlice const & p, CursorSlice const & q)
 }
 
 
+bool operator<=(CursorSlice const & p, CursorSlice const & q)
+{
+       return !(q < p);
+}
+
+
 std::ostream & operator<<(std::ostream & os, CursorSlice const & item)
 {
-       os << "inset: " << item.inset_
-          << " text: " << item.text()
-          << " idx: " << item.idx_
-          << " par: " << item.par_
-          << " pos: " << item.pos_
-//        << " x: " << item.inset_->x()
-//        << " y: " << item.inset_->y()
+       return os
+          << "inset: " << &item.inset()
+//        << " text: " << item.text()
+          << " idx: " << item.idx()
+          << " par: " << item.par()
+          << " pos: " << item.pos()
+//        << " x: " << item.inset().x()
+//        << " y: " << item.inset().y()
 ;
-       return os;
 }