}
-int Tabular::columnWidth(idx_type cell) const
+int Tabular::cellWidth(idx_type cell) const
{
int w = 0;
col_type const span = columnSpan(cell);
}
-void Tabular::setCellWidth(idx_type cell, int new_width)
-{
- cellInfo(cell).width = new_width + 2 * WIDTH_OF_LINE
- + interColumnSpace(cell);
-}
-
-
void Tabular::setAlignment(idx_type cell, LyXAlignment align,
bool onlycolumn)
{
}
-int Tabular::cellWidth(idx_type cell) const
-{
- return cellInfo(cell).width;
-}
-
-
int Tabular::textHOffset(idx_type cell) const
{
// the LaTeX Way :-(
int x = WIDTH_OF_LINE;
+ int const w = cellWidth(cell) - cellInfo(cell).width;
+
switch (getAlignment(cell)) {
case LYX_ALIGN_CENTER:
- x += (columnWidth(cell) - cellWidth(cell)) / 2;
+ x += w / 2;
break;
case LYX_ALIGN_RIGHT:
- x += columnWidth(cell) - cellWidth(cell);
- // + interColumnSpace(cell);
+ x += w;
break;
case LYX_ALIGN_DECIMAL: {
// we center when no decimal point
if (cellInfo(cell).decimal_width == 0) {
- x += (columnWidth(cell) - cellWidth(cell)) / 2;
+ x += w / 2;
break;
}
col_type const c = cellColumn(cell);
int w = xo(cur.bv()) + ADD_TO_TABULAR_WIDTH;
col_type c = 0;
for (; c < tabular.ncols() && x > w; ++c)
- w += tabular.columnWidth(c);
+ w += tabular.cellWidth(c);
return c - 1;
}
tabular.cellInset(cell)->metrics(m, dim);
if (!p_width.zero())
dim.wid = m.base.textwidth;
- tabular.setCellWidth(cell, dim.wid);
+ tabular.cellInfo(cell).width = dim.wid + 2 * WIDTH_OF_LINE
+ + tabular.interColumnSpace(cell);
// FIXME(?): do we need a second metrics call?
TextMetrics const & tm =
idx = tabular.cellIndex(r, c);
if (tabular.isPartOfMultiRow(r, c)) {
- nx += tabular.columnWidth(idx);
+ nx += tabular.cellWidth(idx);
continue;
}
bv->coordCache().insets().add(cell(idx).get(), cx, cy);
cell(idx)->draw(pi, cx, cy);
drawCellLines(pi.pain, nx, y, r, idx, pi.change_);
- nx += tabular.columnWidth(idx);
+ nx += tabular.cellWidth(idx);
pi.selected = original_selection_state;
}
idx_type const cell = tabular.cellIndex(r, c);
if (tabular.isPartOfMultiRow(r, c)) {
- xx += tabular.columnWidth(cell);
+ xx += tabular.cellWidth(cell);
continue;
}
- int const w = tabular.columnWidth(cell);
+ int const w = tabular.cellWidth(cell);
int const h = tabular.cellHeight(cell);
int const yy = y - tabular.rowAscent(r);
if (isCellSelected(cur, r, c))
row_type row, idx_type cell, Change const & change) const
{
y -= tabular.rowAscent(row);
- int const w = tabular.columnWidth(cell);
+ int const w = tabular.cellWidth(cell);
int const h = tabular.cellHeight(cell);
Color linecolor = change.changed() ? change.color() : Color_tabularline;
Color gridcolor = change.changed() ? change.color() : Color_tabularonoffline;
Inset const & inset = *tabular.cellInset(cell);
Point o = bv.coordCache().getInsets().xy(&inset);
int const xbeg = o.x_ - tabular.textHOffset(cell);
- int const xend = xbeg + tabular.columnWidth(cell);
+ int const xend = xbeg + tabular.cellWidth(cell);
row_type const row = tabular.cellRow(cell);
int const ybeg = o.y_ - tabular.rowAscent(row)
- tabular.interRowSpace(row);
int const X2 = maxwidth;
int const offset = ADD_TO_TABULAR_WIDTH + 2;
int const x1 = xo(cur.bv()) + cellXPos(cur[i].idx()) + offset;
- int const x2 = x1 + tabular.columnWidth(cur[i].idx());
+ int const x2 = x1 + tabular.cellWidth(cur[i].idx());
if (x1 < X1)
scx_ = X1 + 20 - x1;