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
}
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();
}
(*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();
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") {
// 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,
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)) {
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)
// 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->size() == 0 && !par->next()) {
+#endif
LyXFont font(LyXFont::ALL_IGNORE);
font.setLanguage(bv->getParentLanguage(this));
SetFont(bv, font, false);
UpdatableInset::RESULT
InsetText::LocalDispatch(BufferView * bv,
- int action, string const & arg)
+ kb_action action, string const & arg)
{
no_selection = false;
UpdatableInset::RESULT
moveRightIntern(bv, false, false);
dispatched = true;
break;
+ default:
+ break;
}
the_locking_inset = 0;
if (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
);
bv->setState();
}
}
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])) {
}
}
}
+ TEXT(bv)->sel_cursor = TEXT(bv)->cursor;
UpdateLocal(bv, CURSOR_PAR, true);
result=DISPATCHED_NOUPDATE;
break;
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)
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)
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);
}
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);
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);
// 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());
<< 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);
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->size() == 0 && !par->next()) {
+#endif
LyXFont font(LyXFont::ALL_IGNORE);
font.setLanguage(bv->getParentLanguage(this));
SetFont(bv, font, false);
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;
}
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;
LyXParagraph * p = par;
while(p) {
p->validate(features);
- p = p->next;
+#ifndef NEW_INSETS
+ p = p->next_;
+#else
+ p = p->next();
+#endif
}
}
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)->size()))
+#endif
return FINISHED;
if (activate_inset && checkAndActivateInset(bv, behind))
return DISPATCHED;
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)
}
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);
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);
}
-void InsetText::SetParagraphData(LyXParagraph *p)
+void InsetText::SetParagraphData(LyXParagraph * p)
{
// delete all instances of LyXText before deleting the paragraps used
// by it.
(*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;
}
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;
/// 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;
}
void InsetText::removeNewlines()
{
- for (LyXParagraph * p = par; p; p = p->next) {
+#ifndef NEW_INSETS
+ for (LyXParagraph * p = par; p; p = p->next_) {
for (int i = 0; i < p->Last(); ++i) {
+#else
+ for (LyXParagraph * p = par; p; p = p->next()) {
+ for (int i = 0; i < p->size(); ++i) {
+#endif
if (p->GetChar(i) == LyXParagraph::META_NEWLINE)
p->Erase(i);
}