removed border subtraction from out table frame and adjusted in layout strategy.

This commit is contained in:
karnaze%netscape.com 1999-09-13 21:45:58 +00:00
Родитель c81c71360e
Коммит 95e4bec1f7
4 изменённых файлов: 20 добавлений и 40 удалений

Просмотреть файл

@ -149,18 +149,15 @@ BasicTableLayoutStrategy::BalanceColumnWidths(nsIStyleContext* aTableSty
if (!tableIsAutoWidth && (specifiedTableWidth > 0)) {
maxWidth = PR_MIN(specifiedTableWidth, aMaxWidthIn); // specifiedWidth usually == aMaxWidthIn for fixed table
}
// reduce the maxWidth by border and padding in some cases, since we will be dealing with content width
if (!tableIsAutoWidth && (maxWidth != NS_UNCONSTRAINEDSIZE)) {
const nsStylePosition* position;
mTableFrame->GetStyleData(eStyleStruct_Position, ((const nsStyleStruct *&)position));
if (eStyleUnit_Percent != position->mWidth.GetUnit()) {
const nsStyleSpacing* spacing;
mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing);
nsMargin borderPadding;
spacing->CalcBorderPaddingFor(mTableFrame, borderPadding);
maxWidth -= borderPadding.left + borderPadding.right;
maxWidth = PR_MAX(0, maxWidth);
}
// reduce the maxWidth by border and padding, since we will be dealing with content width
// XXX should this be done in aMaxWidthIn by the caller?
if (maxWidth != NS_UNCONSTRAINEDSIZE) {
const nsStyleSpacing* spacing;
mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing);
nsMargin borderPadding;
spacing->CalcBorderPaddingFor(mTableFrame, borderPadding);
maxWidth -= borderPadding.left + borderPadding.right;
maxWidth = PR_MAX(0, maxWidth);
}
// set the table's columns to the min width
// initialize the col percent and cell percent values to 0.

Просмотреть файл

@ -809,14 +809,7 @@ nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& a
maxWidth = aReflowState.availableWidth;
break;
}
// Subtract out border and padding
const nsStyleSpacing* spacing =
(const nsStyleSpacing*)mStyleContext->GetStyleData(eStyleStruct_Spacing);
nsMargin borderPadding;
spacing->CalcBorderPaddingFor(this, borderPadding);
maxWidth -= borderPadding.left + borderPadding.right;
if (maxWidth <= 0) {
// Nonsense style specification
maxWidth = 0;

Просмотреть файл

@ -149,18 +149,15 @@ BasicTableLayoutStrategy::BalanceColumnWidths(nsIStyleContext* aTableSty
if (!tableIsAutoWidth && (specifiedTableWidth > 0)) {
maxWidth = PR_MIN(specifiedTableWidth, aMaxWidthIn); // specifiedWidth usually == aMaxWidthIn for fixed table
}
// reduce the maxWidth by border and padding in some cases, since we will be dealing with content width
if (!tableIsAutoWidth && (maxWidth != NS_UNCONSTRAINEDSIZE)) {
const nsStylePosition* position;
mTableFrame->GetStyleData(eStyleStruct_Position, ((const nsStyleStruct *&)position));
if (eStyleUnit_Percent != position->mWidth.GetUnit()) {
const nsStyleSpacing* spacing;
mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing);
nsMargin borderPadding;
spacing->CalcBorderPaddingFor(mTableFrame, borderPadding);
maxWidth -= borderPadding.left + borderPadding.right;
maxWidth = PR_MAX(0, maxWidth);
}
// reduce the maxWidth by border and padding, since we will be dealing with content width
// XXX should this be done in aMaxWidthIn by the caller?
if (maxWidth != NS_UNCONSTRAINEDSIZE) {
const nsStyleSpacing* spacing;
mTableFrame->GetStyleData(eStyleStruct_Spacing, (const nsStyleStruct *&)spacing);
nsMargin borderPadding;
spacing->CalcBorderPaddingFor(mTableFrame, borderPadding);
maxWidth -= borderPadding.left + borderPadding.right;
maxWidth = PR_MAX(0, maxWidth);
}
// set the table's columns to the min width
// initialize the col percent and cell percent values to 0.

Просмотреть файл

@ -809,14 +809,7 @@ nscoord nsTableOuterFrame::ComputeAvailableTableWidth(const nsHTMLReflowState& a
maxWidth = aReflowState.availableWidth;
break;
}
// Subtract out border and padding
const nsStyleSpacing* spacing =
(const nsStyleSpacing*)mStyleContext->GetStyleData(eStyleStruct_Spacing);
nsMargin borderPadding;
spacing->CalcBorderPaddingFor(this, borderPadding);
maxWidth -= borderPadding.left + borderPadding.right;
if (maxWidth <= 0) {
// Nonsense style specification
maxWidth = 0;