]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insettext.C
some cascading name changes
[lyx.git] / src / insets / insettext.C
index aec6572950ceb7c1b1447220d0fdcf809a889a9e..9d414218ba572794709d44d5f915690177084739 100644 (file)
@@ -120,13 +120,23 @@ InsetText::~InsetText()
        delete (*cit).second;
        (*cit).second = 0;
     }
-    LyXParagraph * p = par->next;
+#ifndef NEW_INSETS
+    LyXParagraph * p = par->next_;
     delete par;
     while(p) {
        par = p;
-       p = p->next;
+       p = p->next_;
        delete par;
     }
+#else
+    LyXParagraph * p = par->next();
+    delete par;
+    while(p) {
+       par = p;
+       p = p->next();
+       delete par;
+    }
+#endif
 }
 
 
@@ -138,13 +148,23 @@ void InsetText::clear()
        delete (*cit).second;
        (*cit).second = 0;
     }
-    LyXParagraph * p = par->next;
+#ifndef NEW_INSETS
+    LyXParagraph * p = par->next_;
+    delete par;
+    while(p) {
+       par = p;
+       p = p->next_;
+       delete par;
+    }
+#else
+    LyXParagraph * p = par->next();
     delete par;
     while(p) {
        par = p;
-       p = p->next;
+       p = p->next();
        delete par;
     }
+#endif
     par = new LyXParagraph();
 }
 
@@ -188,13 +208,23 @@ void InsetText::Read(Buffer const * buf, LyXLex & lex)
        (*cit).second = 0;
     }
 
-    LyXParagraph * p = par->next;
+#ifndef NEW_INSETS
+    LyXParagraph * p = par->next_;
+    delete par;
+    while(p) {
+       par = p;
+       p = p->next_;
+       delete par;
+    }
+#else
+    LyXParagraph * p = par->next();
     delete par;
     while(p) {
        par = p;
-       p = p->next;
+       p = p->next();
        delete par;
     }
+#endif
     par = new LyXParagraph;
     while (lex.IsOK()) {
         lex.nextToken();
@@ -221,7 +251,11 @@ void InsetText::Read(Buffer const * buf, LyXLex & lex)
     par = return_par;
     while(return_par) {
        return_par->SetInsetOwner(this);
-       return_par = return_par->next;
+#ifndef NEW_INSETS
+       return_par = return_par->next_;
+#else
+       return_par = return_par->next();
+#endif
     }
     
     if (token != "\\end_inset") {
@@ -273,7 +307,7 @@ void InsetText::draw(BufferView * bv, LyXFont const & f,
 
     // no draw is necessary !!!
     if ((drawFrame == LOCKED) && !locked && !par->size()) {
-       if (!cleared && (need_update == CLEAR_FRAME)) {
+       if (!cleared && (need_update & CLEAR_FRAME)) {
            pain.rectangle(top_x + 1, baseline - insetAscent + 1,
                           width(bv, f) - 1,
                           insetAscent + insetDescent - 1,
@@ -349,7 +383,7 @@ void InsetText::draw(BufferView * bv, LyXFont const & f,
        if (y_offset < 0)
            y_offset = y;
        TEXT(bv)->first = first;
-       if (cleared || !locked || (need_update&FULL) || (need_update&INIT)) {
+       if (cleared) { // (need_update&FULL) || (need_update&INIT)
            int yf = y_offset;
            y = 0;
            while ((row != 0) && (yf < ph)) {
@@ -359,6 +393,13 @@ void InsetText::draw(BufferView * bv, LyXFont const & f,
                yf += row->height();
                row = row->next();
            }
+       } else if (!locked) {
+           if (need_update & CURSOR) {
+               bv->screen()->ToggleSelection(TEXT(bv), bv, true, y_offset,int(x));
+               TEXT(bv)->ClearSelection(bv);
+               TEXT(bv)->sel_cursor = TEXT(bv)->cursor;
+           }
+           bv->screen()->Update(TEXT(bv), bv, y_offset, int(x));
        } else {
            locked = false;
            if (need_update & SELECTION)
@@ -505,7 +546,11 @@ void InsetText::Edit(BufferView * bv, int x, int y, unsigned int button)
 
     // If the inset is empty set the language of the current font to the
     // language to the surronding text.
-    if (par->Last() == 0 && !par->next) {
+#ifndef NEW_INSETS
+    if (par->Last() == 0 && !par->next_) {
+#else#
+    if (par->Last() == 0 && !par->next()) {
+#endif
        LyXFont font(LyXFont::ALL_IGNORE);
        font.setLanguage(bv->getParentLanguage(this));
        SetFont(bv, font, false);
@@ -740,7 +785,7 @@ void InsetText::InsetKeyPress(XKeyEvent * xke)
 
 UpdatableInset::RESULT
 InsetText::LocalDispatch(BufferView * bv,
-                        int action, string const & arg)
+                        kb_action action, string const & arg)
 {
     no_selection = false;
     UpdatableInset::RESULT
@@ -778,6 +823,8 @@ InsetText::LocalDispatch(BufferView * bv,
                    moveRightIntern(bv, false, false);
                dispatched = true;
                break;
+           default:
+               break;
            }
            the_locking_inset = 0;
            if (dispatched)
@@ -801,11 +848,11 @@ InsetText::LocalDispatch(BufferView * bv,
 
            bv->text->SetUndo(bv->buffer(), Undo::INSERT,
 #ifndef NEW_INSETS
-                             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-                             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+                             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+                             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-                             bv->text->cursor.par()->previous,
-                             bv->text->cursor.par()->next
+                             bv->text->cursor.par()->previous(),
+                             bv->text->cursor.par()->next()
 #endif
                    );
            bv->setState();
@@ -815,7 +862,6 @@ InsetText::LocalDispatch(BufferView * bv,
                }
            }
            TEXT(bv)->ClearSelection(bv);
-           TEXT(bv)->sel_cursor = TEXT(bv)->cursor;
            for (string::size_type i = 0; i < arg.length(); ++i) {
                if (greek_kb_flag) {
                    if (!math_insert_greek(bv, arg[i])) {
@@ -828,6 +874,7 @@ InsetText::LocalDispatch(BufferView * bv,
                }
            }
        }
+       TEXT(bv)->sel_cursor = TEXT(bv)->cursor;
        UpdateLocal(bv, CURSOR_PAR, true);
        result=DISPATCHED_NOUPDATE;
        break;
@@ -888,11 +935,11 @@ InsetText::LocalDispatch(BufferView * bv,
     case LFUN_BACKSPACE:
        bv->text->SetUndo(bv->buffer(), Undo::DELETE,
 #ifndef NEW_INSETS
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+                         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-         bv->text->cursor.par()->previous,
-         bv->text->cursor.par()->next
+         bv->text->cursor.par()->previous(),
+         bv->text->cursor.par()->next()
 #endif
                );
        if (TEXT(bv)->selection)
@@ -904,11 +951,11 @@ InsetText::LocalDispatch(BufferView * bv,
     case LFUN_DELETE:
        bv->text->SetUndo(bv->buffer(), Undo::DELETE,
 #ifndef NEW_INSETS
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+                         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-         bv->text->cursor.par()->previous,
-         bv->text->cursor.par()->next
+         bv->text->cursor.par()->previous(),
+         bv->text->cursor.par()->next()
 #endif
                );
        if (TEXT(bv)->selection)
@@ -920,11 +967,11 @@ InsetText::LocalDispatch(BufferView * bv,
     case LFUN_CUT:
        bv->text->SetUndo(bv->buffer(), Undo::DELETE,
 #ifndef NEW_INSETS
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+                         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-         bv->text->cursor.par()->previous,
-         bv->text->cursor.par()->next
+         bv->text->cursor.par()->previous(),
+         bv->text->cursor.par()->next()
 #endif
                );
        TEXT(bv)->CutSelection(bv);
@@ -962,11 +1009,11 @@ InsetText::LocalDispatch(BufferView * bv,
        }
        bv->text->SetUndo(bv->buffer(), Undo::INSERT,
 #ifndef NEW_INSETS
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-         bv->text->cursor.par()->previous,
-         bv->text->cursor.par()->next
+         bv->text->cursor.par()->previous(),
+         bv->text->cursor.par()->next()
 #endif
                );
        TEXT(bv)->PasteSelection(bv);
@@ -989,11 +1036,11 @@ InsetText::LocalDispatch(BufferView * bv,
            return DISPATCHED;
        bv->text->SetUndo(bv->buffer(), Undo::INSERT,
 #ifndef NEW_INSETS
-           bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-           bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+           bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+           bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-           bv->text->cursor.par()->previous,
-           bv->text->cursor.par()->next
+           bv->text->cursor.par()->previous(),
+           bv->text->cursor.par()->next()
 #endif
                );
        TEXT(bv)->InsertChar(bv, LyXParagraph::META_NEWLINE);
@@ -1044,10 +1091,10 @@ InsetText::LocalDispatch(BufferView * bv,
            // inherit bufferparams/paragraphparams in a strange way. (Lgb)
     {
            LyXParagraph * par = TEXT(bv)->cursor.par();
-           Spacing::Space cur_spacing = par->spacing.getSpace();
+           Spacing::Space cur_spacing = par->params.spacing().getSpace();
            float cur_value = 1.0;
            if (cur_spacing == Spacing::Other) {
-                   cur_value = par->spacing.getValue();
+                   cur_value = par->params.spacing().getValue();
            }
                        
            std::istringstream istr(arg.c_str());
@@ -1078,7 +1125,7 @@ InsetText::LocalDispatch(BufferView * bv,
                           << arg << endl;
            }
            if (cur_spacing != new_spacing || cur_value != new_value) {
-                   par->spacing.set(new_spacing, new_value);
+                   par->params.spacing(Spacing(new_spacing, new_value));
                    //TEXT(bv)->RedoParagraph(owner->view());
                    UpdateLocal(bv, CURSOR_PAR, true);
                    //bv->update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
@@ -1087,13 +1134,18 @@ InsetText::LocalDispatch(BufferView * bv,
     break;
        
     default:
-       result = UNDISPATCHED;
+       if (!bv->Dispatch(action, arg))
+           result = UNDISPATCHED;
        break;
     }
 
     /// If the action has deleted all text in the inset, we need to change the
     // language to the language to the surronding text.
-    if (par->Last() == 0 && !par->next) {
+#ifndef NEW_INSETS
+    if (par->Last() == 0 && !par->next_) {
+#else
+    if (par->Last() == 0 && !par->next()) {
+#endif
        LyXFont font(LyXFont::ALL_IGNORE);
        font.setLanguage(bv->getParentLanguage(this));
        SetFont(bv, font, false);
@@ -1125,7 +1177,11 @@ int InsetText::Ascii(Buffer const * buf, ostream & os, int linelen) const
        tmp = buf->asciiParagraph(p, linelen);
        lines += countChar(tmp, '\n');
        os << tmp;
-       p = p->next;
+#ifndef NEW_INSETS
+       p = p->next();
+#else
+       p = p->next();
+#endif
     }
     return lines;
 }
@@ -1140,7 +1196,11 @@ int InsetText::DocBook(Buffer const * buf, ostream & os) const
     string tmp;
     while (p) {
        buf->SimpleDocBookOnePar(os,tmp,p,desc,0);
-       p = p->next;
+#ifndef NEW_INSETS
+       p = p->next_;
+#else
+       p = p->next();
+#endif
     }
     
     return lines;
@@ -1152,7 +1212,11 @@ void InsetText::Validate(LaTeXFeatures & features) const
     LyXParagraph * p = par;
     while(p) {
        p->validate(features);
-       p = p->next;
+#ifndef NEW_INSETS
+       p = p->next_;
+#else
+       p = p->next();
+#endif
     }
 }
 
@@ -1258,7 +1322,11 @@ UpdatableInset::RESULT
 InsetText::moveRightIntern(BufferView * bv, bool behind, 
                           bool activate_inset, bool selecting)
 {
-    if (!cpar(bv)->next && (cpos(bv) >= cpar(bv)->Last()))
+#ifndef NEW_INSETS
+    if (!cpar(bv)->next_ && (cpos(bv) >= cpar(bv)->Last()))
+#else
+    if (!cpar(bv)->next() && (cpos(bv) >= cpar(bv)->Last()))
+#endif
        return FINISHED;
     if (activate_inset && checkAndActivateInset(bv, behind))
        return DISPATCHED;
@@ -1273,7 +1341,11 @@ UpdatableInset::RESULT
 InsetText::moveLeftIntern(BufferView * bv, bool behind,
                          bool activate_inset, bool selecting)
 {
-    if (!cpar(bv)->previous && (cpos(bv) <= 0))
+#ifndef NEW_INSETS
+    if (!cpar(bv)->previous_ && (cpos(bv) <= 0))
+#else
+    if (!cpar(bv)->previous() && (cpos(bv) <= 0))
+#endif
        return FINISHED;
     TEXT(bv)->CursorLeft(bv);
     if (!selecting)
@@ -1313,11 +1385,11 @@ bool InsetText::InsertInset(BufferView * bv, Inset * inset)
     }
     bv->text->SetUndo(bv->buffer(), Undo::INSERT,
 #ifndef NEW_INSETS
-             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-             bv->text->cursor.par()->previous,
-             bv->text->cursor.par()->next
+             bv->text->cursor.par()->previous(),
+             bv->text->cursor.par()->next()
 #endif
            );
     inset->setOwner(this);
@@ -1353,15 +1425,17 @@ UpdatableInset * InsetText::GetFirstLockingInsetOfType(Inset::Code c)
 
 void InsetText::SetFont(BufferView * bv, LyXFont const & font, bool toggleall)
 {
-    bv->text->SetUndo(bv->buffer(), Undo::EDIT,
+    if (TEXT(bv)->selection) {
+       bv->text->SetUndo(bv->buffer(), Undo::EDIT,
 #ifndef NEW_INSETS
-             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous,
-             bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next
+                         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->previous_,
+                         bv->text->cursor.par()->ParFromPos(bv->text->cursor.pos())->next_
 #else
-             bv->text->cursor.par()->previous,
-             bv->text->cursor.par()->next
+                         bv->text->cursor.par()->previous(),
+                         bv->text->cursor.par()->next()
 #endif
            );
+    }
     TEXT(bv)->SetFont(bv, font, toggleall);
     bv->fitCursor(TEXT(bv));
     UpdateLocal(bv, CURSOR_PAR, true);
@@ -1438,7 +1512,7 @@ int InsetText::getMaxWidth(Painter & pain, UpdatableInset const * inset) const
 }
 
 
-void InsetText::SetParagraphData(LyXParagraph *p)
+void InsetText::SetParagraphData(LyXParagraph * p)
 {
     // delete all instances of LyXText before deleting the paragraps used
     // by it.
@@ -1447,26 +1521,49 @@ void InsetText::SetParagraphData(LyXParagraph *p)
        (*cit).second = 0;
     }
 
+#ifndef NEW_INSETS
     LyXParagraph * np;
     if (par) {
-       np = par->next;
+       np = par->next_;
+       delete par;
+       while (np) {
+           par = np;
+           np = np->next_;
+           delete par;
+       }
+    }
+    par = p->Clone();
+    par->SetInsetOwner(this);
+    np = par;
+    while (p->next_) {
+       p = p->next_;
+       np->next(p->Clone());
+       np->next_->previous(np);
+       np = np->next_;
+       np->SetInsetOwner(this);
+    }
+#else
+    LyXParagraph * np;
+    if (par) {
+       np = par->next();
        delete par;
        while(np) {
            par = np;
-           np = np->next;
+           np = np->next();
            delete par;
        }
     }
     par = p->Clone();
     par->SetInsetOwner(this);
     np = par;
-    while(p->next) {
-       p = p->next;
-       np->next = p->Clone();
-       np->next->previous = np;
-       np = np->next;
+    while(p->next()) {
+       p = p->next();
+       np->next(p->Clone());
+       np->next()->previous(np);
+       np = np->next();
        np->SetInsetOwner(this);
     }
+#endif
     need_update = INIT;
 }
 
@@ -1593,16 +1690,26 @@ void InsetText::deleteLyXText(BufferView * bv, bool recursive) const
     if (recursive) {
        /// then remove all LyXText in text-insets
        LyXParagraph * p = par;
-       for (;p;p = p->next) {
+#ifndef NEW_INSETS
+       for (; p; p = p->next_) {
            p->deleteInsetsLyXText(bv);
        }
+#else
+       for (; p; p = p->next()) {
+           p->deleteInsetsLyXText(bv);
+       }
+#endif
     }
 }
 
 
 void InsetText::resizeLyXText(BufferView * bv) const
 {
-    if (!par->next && !par->size()) // resize not neccessary!
+#ifndef NEW_INSETS
+    if (!par->next_ && !par->size()) // resize not neccessary!
+#else
+    if (!par->next() && !par->size()) // resize not neccessary!
+#endif
        return;
     if ((cache.find(bv) == cache.end()) || !cache[bv])
        return;
@@ -1663,9 +1770,15 @@ void InsetText::resizeLyXText(BufferView * bv) const
        /// then resize all LyXText in text-insets
        inset_x = cx(bv) - top_x + drawTextXOffset;
        inset_y = cy(bv) + drawTextYOffset;
-       for (LyXParagraph * p = par; p; p = p->next) {
+#ifndef NEW_INSETS
+       for (LyXParagraph * p = par; p; p = p->next_) {
+           p->resizeInsetsLyXText(bv);
+       }
+#else
+       for (LyXParagraph * p = par; p; p = p->next()) {
            p->resizeInsetsLyXText(bv);
        }
+#endif
     }
     need_update = FULL;
 }
@@ -1673,7 +1786,11 @@ void InsetText::resizeLyXText(BufferView * bv) const
 
 void InsetText::removeNewlines()
 {
-    for (LyXParagraph * p = par; p; p = p->next) {
+#ifndef NEW_INSETS
+    for (LyXParagraph * p = par; p; p = p->next_) {
+#else
+    for (LyXParagraph * p = par; p; p = p->next()) {
+#endif
        for (int i = 0; i < p->Last(); ++i) {
            if (p->GetChar(i) == LyXParagraph::META_NEWLINE)
                p->Erase(i);