зеркало из https://github.com/mozilla/pjs.git
support for constrained width, height
This commit is contained in:
Родитель
321ba08ad1
Коммит
4730045a40
|
@ -342,6 +342,9 @@ nsFieldSetFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
nscoord contentWidth = contentSize.width + borderPadding.left + borderPadding.right;
|
nscoord contentWidth = contentSize.width + borderPadding.left + borderPadding.right;
|
||||||
|
|
||||||
aDesiredSize.width = (legendWidth > contentWidth) ? legendWidth : contentWidth;
|
aDesiredSize.width = (legendWidth > contentWidth) ? legendWidth : contentWidth;
|
||||||
|
if (aReflowState.HaveConstrainedWidth() && (aReflowState.minWidth > aDesiredSize.width)) {
|
||||||
|
aDesiredSize.width = aReflowState.minWidth;
|
||||||
|
}
|
||||||
|
|
||||||
// Place the legend
|
// Place the legend
|
||||||
nsRect legendRect(0, 0, 0, 0);
|
nsRect legendRect(0, 0, 0, 0);
|
||||||
|
@ -402,6 +405,9 @@ nsFieldSetFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
aDesiredSize.height = contentTopOffset + contentSize.height + borderPadding.bottom;
|
aDesiredSize.height = contentTopOffset + contentSize.height + borderPadding.bottom;
|
||||||
if (mInline) // XXX parents don't yet ......
|
if (mInline) // XXX parents don't yet ......
|
||||||
aDesiredSize.height += margin.bottom;
|
aDesiredSize.height += margin.bottom;
|
||||||
|
if (aReflowState.HaveConstrainedHeight() && (aReflowState.minHeight > aDesiredSize.height)) {
|
||||||
|
aDesiredSize.height = aReflowState.minHeight;
|
||||||
|
}
|
||||||
aDesiredSize.ascent = aDesiredSize.height;
|
aDesiredSize.ascent = aDesiredSize.height;
|
||||||
aDesiredSize.descent = 0;
|
aDesiredSize.descent = 0;
|
||||||
if (nsnull != aDesiredSize.maxElementSize) {
|
if (nsnull != aDesiredSize.maxElementSize) {
|
||||||
|
|
|
@ -605,6 +605,15 @@ nsHTMLButtonControlFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
aDesiredSize.maxElementSize->width += borderPadding.left + borderPadding.right;
|
aDesiredSize.maxElementSize->width += borderPadding.left + borderPadding.right;
|
||||||
aDesiredSize.maxElementSize->height += borderPadding.top + borderPadding.bottom;
|
aDesiredSize.maxElementSize->height += borderPadding.top + borderPadding.bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if we are constrained and the child is smaller, use the constrained values
|
||||||
|
if (aReflowState.HaveConstrainedWidth() && (aDesiredSize.width < aReflowState.minWidth)) {
|
||||||
|
aDesiredSize.width = aReflowState.minWidth;
|
||||||
|
}
|
||||||
|
if (aReflowState.HaveConstrainedHeight() && (aDesiredSize.height < aReflowState.minHeight)) {
|
||||||
|
aDesiredSize.height = aReflowState.minHeight;
|
||||||
|
}
|
||||||
|
|
||||||
aDesiredSize.ascent = aDesiredSize.height;
|
aDesiredSize.ascent = aDesiredSize.height;
|
||||||
aDesiredSize.descent = 0;
|
aDesiredSize.descent = 0;
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,14 @@ nsLegendFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
|
|
||||||
// add in our border and padding to the size of the child
|
// add in our border and padding to the size of the child
|
||||||
aDesiredSize.width += borderPadding.left + borderPadding.right;
|
aDesiredSize.width += borderPadding.left + borderPadding.right;
|
||||||
|
if (aReflowState.HaveConstrainedWidth() && (aReflowState.minWidth > aDesiredSize.width)) {
|
||||||
|
aDesiredSize.width = aReflowState.minWidth;
|
||||||
|
}
|
||||||
|
|
||||||
aDesiredSize.height += borderPadding.top + borderPadding.bottom;
|
aDesiredSize.height += borderPadding.top + borderPadding.bottom;
|
||||||
|
if (aReflowState.HaveConstrainedHeight() && (aReflowState.minHeight > aDesiredSize.height)) {
|
||||||
|
aDesiredSize.height = aReflowState.minHeight;
|
||||||
|
}
|
||||||
|
|
||||||
// adjust our max element size, if necessary
|
// adjust our max element size, if necessary
|
||||||
if (aDesiredSize.maxElementSize) {
|
if (aDesiredSize.maxElementSize) {
|
||||||
|
|
|
@ -342,6 +342,9 @@ nsFieldSetFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
nscoord contentWidth = contentSize.width + borderPadding.left + borderPadding.right;
|
nscoord contentWidth = contentSize.width + borderPadding.left + borderPadding.right;
|
||||||
|
|
||||||
aDesiredSize.width = (legendWidth > contentWidth) ? legendWidth : contentWidth;
|
aDesiredSize.width = (legendWidth > contentWidth) ? legendWidth : contentWidth;
|
||||||
|
if (aReflowState.HaveConstrainedWidth() && (aReflowState.minWidth > aDesiredSize.width)) {
|
||||||
|
aDesiredSize.width = aReflowState.minWidth;
|
||||||
|
}
|
||||||
|
|
||||||
// Place the legend
|
// Place the legend
|
||||||
nsRect legendRect(0, 0, 0, 0);
|
nsRect legendRect(0, 0, 0, 0);
|
||||||
|
@ -402,6 +405,9 @@ nsFieldSetFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
aDesiredSize.height = contentTopOffset + contentSize.height + borderPadding.bottom;
|
aDesiredSize.height = contentTopOffset + contentSize.height + borderPadding.bottom;
|
||||||
if (mInline) // XXX parents don't yet ......
|
if (mInline) // XXX parents don't yet ......
|
||||||
aDesiredSize.height += margin.bottom;
|
aDesiredSize.height += margin.bottom;
|
||||||
|
if (aReflowState.HaveConstrainedHeight() && (aReflowState.minHeight > aDesiredSize.height)) {
|
||||||
|
aDesiredSize.height = aReflowState.minHeight;
|
||||||
|
}
|
||||||
aDesiredSize.ascent = aDesiredSize.height;
|
aDesiredSize.ascent = aDesiredSize.height;
|
||||||
aDesiredSize.descent = 0;
|
aDesiredSize.descent = 0;
|
||||||
if (nsnull != aDesiredSize.maxElementSize) {
|
if (nsnull != aDesiredSize.maxElementSize) {
|
||||||
|
|
|
@ -605,6 +605,15 @@ nsHTMLButtonControlFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
aDesiredSize.maxElementSize->width += borderPadding.left + borderPadding.right;
|
aDesiredSize.maxElementSize->width += borderPadding.left + borderPadding.right;
|
||||||
aDesiredSize.maxElementSize->height += borderPadding.top + borderPadding.bottom;
|
aDesiredSize.maxElementSize->height += borderPadding.top + borderPadding.bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if we are constrained and the child is smaller, use the constrained values
|
||||||
|
if (aReflowState.HaveConstrainedWidth() && (aDesiredSize.width < aReflowState.minWidth)) {
|
||||||
|
aDesiredSize.width = aReflowState.minWidth;
|
||||||
|
}
|
||||||
|
if (aReflowState.HaveConstrainedHeight() && (aDesiredSize.height < aReflowState.minHeight)) {
|
||||||
|
aDesiredSize.height = aReflowState.minHeight;
|
||||||
|
}
|
||||||
|
|
||||||
aDesiredSize.ascent = aDesiredSize.height;
|
aDesiredSize.ascent = aDesiredSize.height;
|
||||||
aDesiredSize.descent = 0;
|
aDesiredSize.descent = 0;
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,14 @@ nsLegendFrame::Reflow(nsIPresContext& aPresContext,
|
||||||
|
|
||||||
// add in our border and padding to the size of the child
|
// add in our border and padding to the size of the child
|
||||||
aDesiredSize.width += borderPadding.left + borderPadding.right;
|
aDesiredSize.width += borderPadding.left + borderPadding.right;
|
||||||
|
if (aReflowState.HaveConstrainedWidth() && (aReflowState.minWidth > aDesiredSize.width)) {
|
||||||
|
aDesiredSize.width = aReflowState.minWidth;
|
||||||
|
}
|
||||||
|
|
||||||
aDesiredSize.height += borderPadding.top + borderPadding.bottom;
|
aDesiredSize.height += borderPadding.top + borderPadding.bottom;
|
||||||
|
if (aReflowState.HaveConstrainedHeight() && (aReflowState.minHeight > aDesiredSize.height)) {
|
||||||
|
aDesiredSize.height = aReflowState.minHeight;
|
||||||
|
}
|
||||||
|
|
||||||
// adjust our max element size, if necessary
|
// adjust our max element size, if necessary
|
||||||
if (aDesiredSize.maxElementSize) {
|
if (aDesiredSize.maxElementSize) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче