Reuse some code and simplify InsetTabular::cursorPos()

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36487 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Vincent van Ravesteijn 2010-11-25 13:22:04 +00:00
parent 0fd75fefc4
commit 9fe6d655f3
2 changed files with 15 additions and 11 deletions

View File

@ -4720,21 +4720,13 @@ void InsetTabular::cursorPos(BufferView const & bv,
{
cell(sl.idx())->cursorPos(bv, sl, boundary, x, y);
int const row = tabular.cellRow(sl.idx());
int const col = tabular.cellColumn(sl.idx());
// y offset correction
for (int r = 0; r < row; ++r)
y += tabular.rowDescent(r) + tabular.rowAscent(r + 1)
+ tabular.interRowSpace(r + 1);
y += cellYPos(sl.idx());
y += tabular.textVOffset(sl.idx());
y += offset_valign_;
// x offset correction
for (int c = 0; c < col; ++c)
x += tabular.column_info[c].width;
x += cellXPos(sl.idx());
x += tabular.textHOffset(sl.idx());
x += ADD_TO_TABULAR_WIDTH;
x += scx_;
@ -4807,13 +4799,23 @@ InsetTabular::idx_type InsetTabular::getNearestCell(BufferView & bv, int x, int
}
int InsetTabular::cellYPos(idx_type const cell) const
{
row_type row = tabular.cellRow(cell);
int ly = 0;
for (row_type r = 0; r < row; ++r)
ly += tabular.rowDescent(r) + tabular.rowAscent(r + 1)
+ tabular.interRowSpace(r + 1);
return ly;
}
int InsetTabular::cellXPos(idx_type const cell) const
{
col_type col = tabular.cellColumn(cell);
int lx = 0;
for (col_type c = 0; c < col; ++c)
lx += tabular.column_info[c].width;
return lx;
}

View File

@ -928,6 +928,8 @@ private:
///
int cellXPos(idx_type cell) const;
///
int cellYPos(idx_type cell) const;
///
void resetPos(Cursor & cur) const;
///
bool copySelection(Cursor & cur);