Make XUL boxes check maxheight/maxwidth attrs as well as minwidth. r/sr=hewitt,jst

This commit is contained in:
hyatt%netscape.com 2001-09-20 07:46:13 +00:00
parent b51cf5caf3
commit d6d909e72a

View File

@ -1240,8 +1240,7 @@ nsIBox::AddCSSMinSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize)
value.Trim("%"); value.Trim("%");
nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t); nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t);
if (val > aSize.width) aSize.width = val;
aSize.width = val;
widthSet = PR_TRUE; widthSet = PR_TRUE;
} }
@ -1253,8 +1252,7 @@ nsIBox::AddCSSMinSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize)
value.Trim("%"); value.Trim("%");
nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t); nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t);
if (val > aSize.height) aSize.height = val;
aSize.height = val;
heightSet = PR_TRUE; heightSet = PR_TRUE;
} }
@ -1291,8 +1289,42 @@ nsIBox::AddCSSMaxSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize)
heightSet = PR_TRUE; heightSet = PR_TRUE;
} }
nsCOMPtr<nsIContent> content;
frame->GetContent(getter_AddRefs(content));
return NS_OK; if (content) {
nsIPresContext* presContext = aState.GetPresContext();
nsAutoString value;
PRInt32 error;
if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttr(kNameSpaceID_None, nsXULAtoms::maxwidth, value))
{
float p2t;
presContext->GetScaledPixelsToTwips(&p2t);
value.Trim("%");
nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t);
aSize.width = val;
widthSet = PR_TRUE;
}
if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttr(kNameSpaceID_None, nsXULAtoms::maxheight, value))
{
float p2t;
presContext->GetScaledPixelsToTwips(&p2t);
value.Trim("%");
nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t);
aSize.height = val;
heightSet = PR_TRUE;
}
}
return (widthSet || heightSet);
} }
PRBool PRBool