#include "font.h"
#include "debug.h"
#include "lyxrc.h"
+#include "lyxrow.h"
#include "FloatList.h"
#include "language.h"
#include "ParagraphParameters.h"
using std::endl;
using std::find;
using std::pair;
+using lyx::pos_type;
LyXText::LyXText(BufferView * bv)
// If position is -1, we get the layout font of the paragraph.
// If position is -2, we get the font of the manual label of the paragraph.
LyXFont const LyXText::getFont(Buffer const * buf, Paragraph * par,
- Paragraph::size_type pos) const
+ pos_type pos) const
{
lyx::Assert(pos >= 0);
void LyXText::setCharFont(BufferView * bv, Paragraph * par,
- Paragraph::size_type pos, LyXFont const & fnt,
+ pos_type pos, LyXFont const & fnt,
bool toggleall)
{
Buffer const * buf = bv->buffer();
LyXFont font = getFont(buf, par, pos);
font.update(fnt, buf->params.language, toggleall);
// Let the insets convert their font
- if (isMetaInset(par, pos)) {
+ if (par->isInset(pos)) {
Inset * inset = par->getInset(pos);
if (isEditableInset(inset)) {
UpdatableInset * uinset =
void LyXText::setCharFont(Buffer const * buf, Paragraph * par,
- Paragraph::size_type pos, LyXFont const & fnt)
+ pos_type pos, LyXFont const & fnt)
{
LyXFont font(fnt);
// inserts a new row behind the specified row, increments
// the touched counters
void LyXText::insertRow(Row * row, Paragraph * par,
- Paragraph::size_type pos) const
+ pos_type pos) const
{
Row * tmprow = new Row;
if (!row) {
// removes the row and reset the touched counters
void LyXText::removeRow(Row * row) const
{
- /* this must not happen before the currentrow for clear reasons.
- so the trick is just to set the current row onto the previous
- row of this row */
- int unused_y;
- getRow(row->par(), row->pos(), unused_y);
-
if (row->next())
row->next()->previous(row->previous());
if (!row->previous()) {
if (cursor.pos() == 0 && cursor.par()->bibkey) {
inset = cursor.par()->bibkey;
} else if (cursor.pos() < cursor.par()->size()
- && isMetaInset(cursor.par(), cursor.pos())) {
+ && cursor.par()->isInset(cursor.pos())) {
inset = cursor.par()->getInset(cursor.pos());
}
return inset;
textclasslist.Style(buf->params.textclass, par->getLayout());
LyXFont layoutfont;
- for (Paragraph::size_type pos = 0; pos < par->size(); ++pos) {
+ for (pos_type pos = 0; pos < par->size(); ++pos) {
if (pos < beginningOfMainBody(buf, par))
layoutfont = layout.labelfont;
else
Paragraph * LyXText::setLayout(BufferView * bview,
LyXCursor & cur, LyXCursor & sstart_cur,
LyXCursor & send_cur,
- LyXTextClass::size_type layout)
+ lyx::layout_type layout)
{
Paragraph * endpar = send_cur.par()->next();
Paragraph * undoendpar = endpar;
// set layout over selection and make a total rebreak of those paragraphs
-void LyXText::setLayout(BufferView * bview, LyXTextClass::size_type layout)
+void LyXText::setLayout(BufferView * bview, lyx::layout_type layout)
{
LyXCursor tmpcursor = cursor; /* store the current cursor */
}
-Paragraph::size_type LyXText::beginningOfMainBody(Buffer const * buf,
+pos_type LyXText::beginningOfMainBody(Buffer const * buf,
Paragraph const * par) const
{
if (textclasslist.Style(buf->params.textclass,
}
// Get font setting before we cut
- Paragraph::size_type pos = selection.end.pos();
+ pos_type pos = selection.end.pos();
LyXFont const font = selection.start.par()
->getFontSettings(bview->buffer()->params,
selection.start.pos());
void LyXText::insertStringAsLines(BufferView * bview, string const & str)
{
Paragraph * par = cursor.par();
- Paragraph::size_type pos = cursor.pos();
+ pos_type pos = cursor.pos();
Paragraph * endpar = cursor.par()->next();
setCursorParUndo(bview);
}
} while (res.par() &&
- !(isMetaInset(res.par(), res.pos())
+ !(res.par()->isInset(res.pos())
&& (inset = res.par()->getInset(res.pos())) != 0
&& find(codes.begin(), codes.end(), inset->lyxCode())
!= codes.end()
void LyXText::checkParagraph(BufferView * bview, Paragraph * par,
- Paragraph::size_type pos)
+ pos_type pos)
{
LyXCursor tmpcursor;
int y = 0;
- Paragraph::size_type z;
+ pos_type z;
Row * row = getRow(par, pos, y);
// is there a break one row above
}
int const tmpheight = row->height();
- Paragraph::size_type const tmplast = rowLast(row);
+ pos_type const tmplast = rowLast(row);
refresh_y = y;
refresh_row = row;
void LyXText::setCursor(BufferView * bview, Paragraph * par,
- Paragraph::size_type pos,
+ pos_type pos,
bool setfont, bool boundary) const
{
LyXCursor old_cursor = cursor;
void LyXText::setCursor(BufferView *bview, LyXCursor & cur, Paragraph * par,
- Paragraph::size_type pos, bool boundary) const
+ pos_type pos, bool boundary) const
{
cur.par(par);
cur.pos(pos);
float fill_label_hfill;
prepareToPrint(bview, row, x, fill_separator, fill_hfill,
fill_label_hfill);
- Paragraph::size_type cursor_vpos = 0;
- Paragraph::size_type last = rowLastPrintable(row);
+ pos_type cursor_vpos = 0;
+ pos_type last = rowLastPrintable(row);
if (pos > last + 1) // This shouldn't happen.
pos = last + 1;
cursor_vpos = (bidi_level(pos) % 2 == 0)
? log2vis(pos) : log2vis(pos) + 1;
- Paragraph::size_type main_body =
+ pos_type main_body =
beginningOfMainBody(bview->buffer(), row->par());
if ((main_body > 0) &&
((main_body-1 > last) ||
!row->par()->isLineSeparator(main_body-1)))
main_body = 0;
- for (Paragraph::size_type vpos = row->pos();
+ for (pos_type vpos = row->pos();
vpos < cursor_vpos; ++vpos) {
pos = vis2log(vpos);
if (main_body > 0 && pos == main_body - 1) {
}
cur.x(int(x));
- cur.x_fix(cur.x());
+ cur.x_fix(cur.x());
cur.row(row);
}
void LyXText::setCursorIntern(BufferView * bview, Paragraph * par,
- Paragraph::size_type pos,
+ pos_type pos,
bool setfont, bool boundary) const
{
InsetText * it = static_cast<InsetText *>(par->inInset());
void LyXText::setCurrentFont(BufferView * bview) const
{
- Paragraph::size_type pos = cursor.pos();
+ pos_type pos = cursor.pos();
if (cursor.boundary() && pos > 0)
--pos;
Row * row = getRowNearY(y);
bool bound = false;
- Paragraph::size_type const column = getColumnNearX(bview, row, x,
- bound);
-
+ pos_type const column = getColumnNearX(bview, row, x, bound);
cur.par(row->par());
cur.pos(row->pos() + column);
cur.x(x);