Added a "flags" variable for combobox creation

also fixed a a small problem with border padding being added in for fixed size comboboxes
r=self,  bug 19382
This commit is contained in:
rods%netscape.com 1999-12-05 20:43:18 +00:00
Родитель 0588f997f5
Коммит 1abe243c94
4 изменённых файлов: 16 добавлений и 6 удалений

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

@ -78,7 +78,7 @@ static NS_DEFINE_IID(kIPrivateDOMEventIID, NS_IPRIVATEDOMEVENT_IID);
const char * kMozDropdownActive = "-moz-dropdown-active";
nsresult
NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame)
NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame, PRUint32 aFlags)
{
NS_PRECONDITION(aNewFrame, "null OUT ptr");
if (nsnull == aNewFrame) {
@ -88,6 +88,7 @@ NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame)
if (!it) {
return NS_ERROR_OUT_OF_MEMORY;
}
it->SetFlags(aFlags);
*aNewFrame = it;
return NS_OK;
}
@ -109,7 +110,7 @@ nsComboboxControlFrame::nsComboboxControlFrame()
mSelectedIndex = -1;
//Shrink the area around it's contents
SetFlags(NS_BLOCK_SHRINK_WRAP);
//SetFlags(NS_BLOCK_SHRINK_WRAP);
}
//--------------------------------------------------------------
@ -730,6 +731,7 @@ nsComboboxControlFrame::Reflow(nsIPresContext* aPresContext,
//nsRect absolutePixels;
//GetAbsoluteFramePosition(aPresContext, displayFrame, absoluteTwips, absolutePixels);
//PositionDropdown(aPresContext, displayRect.height, absoluteTwips, absolutePixels);
aStatus = NS_FRAME_COMPLETE;
return rv;
}
}
@ -810,7 +812,8 @@ nsComboboxControlFrame::Reflow(nsIPresContext* aPresContext,
// Reflow again with the width of the display frame set.
nsAreaFrame::Reflow(aPresContext, aDesiredSize, firstPassState, aStatus);
// nsAreaFrame::Reflow adds in the border and padding so we need to remove it
aDesiredSize.width -= borderPadding.left + borderPadding.right;
// XXX rods - this hould not be subtracted in
//aDesiredSize.width -= borderPadding.left + borderPadding.right;
// Reflow the dropdown list to match the width of the display + button
ReflowComboChildFrame(dropdownFrame, aPresContext, dropdownDesiredSize, firstPassState, aStatus, aDesiredSize.width, NS_UNCONSTRAINEDSIZE);

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

@ -58,6 +58,8 @@ class nsComboboxControlFrame : public nsAreaFrame,
public nsIRollupListener
{
public:
friend nsresult NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame, PRUint32 aFlags);
nsComboboxControlFrame();
~nsComboboxControlFrame();

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

@ -78,7 +78,7 @@ static NS_DEFINE_IID(kIPrivateDOMEventIID, NS_IPRIVATEDOMEVENT_IID);
const char * kMozDropdownActive = "-moz-dropdown-active";
nsresult
NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame)
NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame, PRUint32 aFlags)
{
NS_PRECONDITION(aNewFrame, "null OUT ptr");
if (nsnull == aNewFrame) {
@ -88,6 +88,7 @@ NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame)
if (!it) {
return NS_ERROR_OUT_OF_MEMORY;
}
it->SetFlags(aFlags);
*aNewFrame = it;
return NS_OK;
}
@ -109,7 +110,7 @@ nsComboboxControlFrame::nsComboboxControlFrame()
mSelectedIndex = -1;
//Shrink the area around it's contents
SetFlags(NS_BLOCK_SHRINK_WRAP);
//SetFlags(NS_BLOCK_SHRINK_WRAP);
}
//--------------------------------------------------------------
@ -730,6 +731,7 @@ nsComboboxControlFrame::Reflow(nsIPresContext* aPresContext,
//nsRect absolutePixels;
//GetAbsoluteFramePosition(aPresContext, displayFrame, absoluteTwips, absolutePixels);
//PositionDropdown(aPresContext, displayRect.height, absoluteTwips, absolutePixels);
aStatus = NS_FRAME_COMPLETE;
return rv;
}
}
@ -810,7 +812,8 @@ nsComboboxControlFrame::Reflow(nsIPresContext* aPresContext,
// Reflow again with the width of the display frame set.
nsAreaFrame::Reflow(aPresContext, aDesiredSize, firstPassState, aStatus);
// nsAreaFrame::Reflow adds in the border and padding so we need to remove it
aDesiredSize.width -= borderPadding.left + borderPadding.right;
// XXX rods - this hould not be subtracted in
//aDesiredSize.width -= borderPadding.left + borderPadding.right;
// Reflow the dropdown list to match the width of the display + button
ReflowComboChildFrame(dropdownFrame, aPresContext, dropdownDesiredSize, firstPassState, aStatus, aDesiredSize.width, NS_UNCONSTRAINEDSIZE);

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

@ -58,6 +58,8 @@ class nsComboboxControlFrame : public nsAreaFrame,
public nsIRollupListener
{
public:
friend nsresult NS_NewComboboxControlFrame(nsIPresShell* aPresShell, nsIFrame** aNewFrame, PRUint32 aFlags);
nsComboboxControlFrame();
~nsComboboxControlFrame();