From ab6b2bcb32bf4e7342b94e7faa3994c7fc8127b2 Mon Sep 17 00:00:00 2001 From: buster Date: Wed, 17 Jun 1998 19:51:51 +0000 Subject: [PATCH] minor updates and fixes --- layout/html/document/src/ua.css | 1 + layout/html/table/src/nsITableContent.h | 2 +- layout/html/table/src/nsTableCell.cpp | 10 ---- layout/html/table/src/nsTableCell.h | 2 - layout/html/table/src/nsTableCol.cpp | 16 ------ layout/html/table/src/nsTableColGroup.cpp | 36 +++---------- layout/html/table/src/nsTableContent.cpp | 7 +-- layout/html/table/src/nsTableContent.h | 4 +- layout/html/table/src/nsTableFrame.cpp | 7 +-- layout/html/table/src/nsTablePart.cpp | 36 +++++-------- layout/html/table/src/nsTablePart.h | 9 ---- layout/html/table/src/nsTableRow.cpp | 23 -------- layout/html/table/src/nsTableRow.h | 5 -- layout/html/table/src/nsTableRowGroup.cpp | 64 +++-------------------- layout/html/table/src/nsTableRowGroup.h | 16 +----- layout/style/ua.css | 1 + layout/tables/nsTableFrame.cpp | 7 +-- 17 files changed, 40 insertions(+), 206 deletions(-) diff --git a/layout/html/document/src/ua.css b/layout/html/document/src/ua.css index 39c3e06831e7..cd905f816a1e 100644 --- a/layout/html/document/src/ua.css +++ b/layout/html/document/src/ua.css @@ -236,6 +236,7 @@ CAPTION { text-align: center; display: table-caption; } +TR { display: table-row;} TBODY { display: table-row-group; } THEAD { display: table-header-group; } TFOOT { display: table-footer-group; } diff --git a/layout/html/table/src/nsITableContent.h b/layout/html/table/src/nsITableContent.h index 34e97848c116..67eeec18483a 100644 --- a/layout/html/table/src/nsITableContent.h +++ b/layout/html/table/src/nsITableContent.h @@ -70,7 +70,7 @@ public: /** returns PR_TRUE if there is an actual input tag corresponding to * this content object. */ - virtual PRBool IsImplicit () const =0; + NS_IMETHOD IsSynthetic(PRBool& aResult) = 0; /** returns PR_TRUE if this content object should NOT be written to the output stream. * for example, we don't generally want to output implicit tags when saving. diff --git a/layout/html/table/src/nsTableCell.cpp b/layout/html/table/src/nsTableCell.cpp index 9f2f0eb0850f..acd342c3a405 100644 --- a/layout/html/table/src/nsTableCell.cpp +++ b/layout/html/table/src/nsTableCell.cpp @@ -355,8 +355,6 @@ void nsTableCell::SetRowSpan(int aRowSpan) NS_ASSERTION(0ResetCellMap (); } nsresult diff --git a/layout/html/table/src/nsTableCell.h b/layout/html/table/src/nsTableCell.h index 1acb38a29901..1b064d73d2f0 100644 --- a/layout/html/table/src/nsTableCell.h +++ b/layout/html/table/src/nsTableCell.h @@ -125,8 +125,6 @@ public: /** set the starting column for this cell. Always >= 1 */ virtual void SetColIndex (int aColIndex); - virtual void ResetCellMap (); - protected: virtual nsContentAttr AttributeToString(nsIAtom* aAttribute, nsHTMLValue& aValue, diff --git a/layout/html/table/src/nsTableCol.cpp b/layout/html/table/src/nsTableCol.cpp index 8476e3b61ec5..157043324ebb 100644 --- a/layout/html/table/src/nsTableCol.cpp +++ b/layout/html/table/src/nsTableCol.cpp @@ -37,11 +37,6 @@ static const PRBool gsDebug = PR_FALSE; static const PRBool gsNoisyRefs = PR_FALSE; #endif -// hack, remove when hack in nsTableCol constructor is removed -static PRInt32 HACKcounter=0; -static nsIAtom *HACKattribute=nsnull; -#include "prprf.h" // remove when nsTableCol constructor hack is removed -// end hack code nsTableColFrame::nsTableColFrame(nsIContent* aContent, nsIFrame* aParentFrame) : nsFrame(aContent, aParentFrame) @@ -133,17 +128,6 @@ nsTableCol::nsTableCol (PRBool aImplicit) void nsTableCol::Init() { - /* begin hack */ - // temporary hack to get around style sheet optimization that folds all - // col style context into one, unless there is a unique HTML attribute set - char out[40]; - PR_snprintf(out, 40, "%d", HACKcounter); - const nsString value(out); - if (nsnull==HACKattribute) - HACKattribute = NS_NewAtom("Steve's unbelievable hack attribute"); - SetAttribute(HACKattribute, value); - HACKcounter++; - /* end hack */ } nsTableCol::~nsTableCol() diff --git a/layout/html/table/src/nsTableColGroup.cpp b/layout/html/table/src/nsTableColGroup.cpp index abd06b21b3ae..4be6ed4eeb5d 100644 --- a/layout/html/table/src/nsTableColGroup.cpp +++ b/layout/html/table/src/nsTableColGroup.cpp @@ -35,12 +35,6 @@ static const PRBool gsDebug = PR_FALSE; static const PRBool gsNoisyRefs = PR_FALSE; #endif -// hack, remove when hack in nsTableCol constructor is removed -static PRInt32 HACKcounter=0; -static nsIAtom *HACKattribute=nsnull; -#include "prprf.h" // remove when nsTableCol constructor hack is removed -// end hack code - nsTableColGroup::nsTableColGroup(nsIAtom* aTag, int aSpan) : nsTableContent(aTag), @@ -48,17 +42,6 @@ nsTableColGroup::nsTableColGroup(nsIAtom* aTag, int aSpan) mStartColIndex(0), mColCount(0) { - /* begin hack */ - // temporary hack to get around style sheet optimization that folds all - // col style context into one, unless there is a unique HTML attribute set - char out[40]; - PR_snprintf(out, 40, "%d", HACKcounter); - const nsString value(out); - if (nsnull==HACKattribute) - HACKattribute = NS_NewAtom("Steve's unbelievable hack attribute"); - SetAttribute(HACKattribute, value); - HACKcounter++; - /* end hack */ } nsTableColGroup::nsTableColGroup (PRBool aImplicit) @@ -68,17 +51,6 @@ nsTableColGroup::nsTableColGroup (PRBool aImplicit) mColCount(0) { mImplicit = aImplicit; - /* begin hack */ - // temporary hack to get around style sheet optimization that folds all - // col style context into one, unless there is a unique HTML attribute set - char out[40]; - PR_snprintf(out, 40, "%d", HACKcounter); - const nsString value(out); - if (nsnull==HACKattribute) - HACKattribute = NS_NewAtom("Steve's unbelievable hack attribute"); - SetAttribute(HACKattribute, value); - HACKcounter++; - /* end hack */ } @@ -161,7 +133,9 @@ nsTableColGroup::AppendChild (nsIContent *aContent, PRBool aNotify) PRBool contentHandled = PR_FALSE; // SEC: TODO verify that aContent is table content nsTableContent *tableContent = (nsTableContent *)aContent; - if (PR_FALSE==tableContent->IsImplicit()) + PRBool isImplicit; + tableContent->IsSynthetic(isImplicit); + if (PR_FALSE==isImplicit) { /* if aContent is not implicit, * and if we already have an implicit column for this actual column, @@ -172,7 +146,9 @@ nsTableColGroup::AppendChild (nsIContent *aContent, PRBool aNotify) { nsTableContent *col = (nsTableContent*)ChildAt(colIndex); NS_ASSERTION(nsnull!=col, "bad child"); - if (PR_TRUE==col->IsImplicit()) + PRBool colIsImplicit; + col->IsSynthetic(colIsImplicit); + if (PR_TRUE==colIsImplicit) { ReplaceChildAt(aContent, colIndex, aNotify); contentHandled = PR_TRUE; diff --git a/layout/html/table/src/nsTableContent.cpp b/layout/html/table/src/nsTableContent.cpp index e531dfdb0b44..f469f907c306 100644 --- a/layout/html/table/src/nsTableContent.cpp +++ b/layout/html/table/src/nsTableContent.cpp @@ -130,9 +130,10 @@ void nsTableContent::SetTable (nsTablePart *aTable) mTable = aTable; } -PRBool nsTableContent::IsImplicit () const +NS_METHOD nsTableContent::IsSynthetic(PRBool& aResult) { - return mImplicit; + aResult = mImplicit; + return NS_OK; } /** @@ -169,7 +170,7 @@ void nsTableContent::List(FILE* out, PRInt32 aIndent) const } char *isImplicitString = ""; - if (PR_TRUE==IsImplicit()) + if (PR_TRUE==mImplicit) isImplicitString = " (I)"; ListAttributes(out); diff --git a/layout/html/table/src/nsTableContent.h b/layout/html/table/src/nsTableContent.h index 2dfd000f635c..ee666d1a54ac 100644 --- a/layout/html/table/src/nsTableContent.h +++ b/layout/html/table/src/nsTableContent.h @@ -29,7 +29,7 @@ * within a table. * * @author sclark - * @version $Revision: 3.5 $ + * @version $Revision: 3.6 $ * @see */ class nsTableContent : public nsHTMLContainer, public nsITableContent @@ -87,7 +87,7 @@ public: /** @see nsITableContent::IsImplicit */ - virtual PRBool IsImplicit () const; + NS_IMETHOD IsSynthetic(PRBool& aResult); /** @see nsITableContent::SkipSelfForSaving */ virtual PRBool SkipSelfForSaving (); diff --git a/layout/html/table/src/nsTableFrame.cpp b/layout/html/table/src/nsTableFrame.cpp index d60cb22365e6..976c022cc43d 100644 --- a/layout/html/table/src/nsTableFrame.cpp +++ b/layout/html/table/src/nsTableFrame.cpp @@ -464,7 +464,6 @@ void nsTableFrame::EnsureColumns(nsIPresContext* aPresContext, // need to find the generic way to stamp out this content, and ::AppendChild it // this might be ok. no matter what my mcontent is, I know it needs a colgroup as a kid? - // QQQ needs a ref count? lastColGroup = new nsTableColGroup (PR_TRUE); // XXX: how do I know whether AppendChild should notify or not? mContent->AppendChild(lastColGroup, PR_FALSE); // was AppendColGroup @@ -629,7 +628,6 @@ void nsTableFrame::BuildCellMap () } if (gsDebug==PR_TRUE) DumpCellMap (); - //QQQ EnsureColumns(); } /** @@ -810,7 +808,6 @@ void nsTableFrame::AppendLayoutData(nsVoidArray* aList, nsTableCellFrame* aTable void nsTableFrame::RecalcLayoutData() { - //QQQ should we ensureCellMap here? PRInt32 colCount = mCellMap->GetColCount(); PRInt32 rowCount = mCellMap->GetRowCount(); PRInt32 row = 0; @@ -1261,9 +1258,9 @@ nsReflowStatus nsTableFrame::ResizeReflowPass1(nsIPresContext* aPresContext, } } + // BuildColumnCache calls EnsureCellMap. If that ever changes, be sure to call EnsureCellMap + // here first. BuildColumnCache(aPresContext, aDesiredSize, aReflowState, aStatus); - EnsureCellMap();//QQQ have to determine where the right place for this is now that it's a frame-side operation - //QQQ cell map used to be forced before loop // Recalculate Layout Dependencies RecalcLayoutData(); diff --git a/layout/html/table/src/nsTablePart.cpp b/layout/html/table/src/nsTablePart.cpp index 812ed54d46cf..0adf91436a00 100644 --- a/layout/html/table/src/nsTablePart.cpp +++ b/layout/html/table/src/nsTablePart.cpp @@ -112,22 +112,10 @@ const char *nsTablePart::kHeaderCellTagString="TH"; * I do not check or addref aTag because my superclass does that for me */ nsTablePart::nsTablePart(nsIAtom* aTag) - : nsHTMLContainer(aTag), - mColCount(0), - mSpecifiedColCount(0) + : nsHTMLContainer(aTag) { } -/** constructor - * I do not check or addref aTag because my superclass does that for me - */ -nsTablePart::nsTablePart (nsIAtom* aTag, PRInt32 aColumnCount) - : nsHTMLContainer(aTag), - mColCount(aColumnCount), - mSpecifiedColCount(0) -{ -} - /** */ nsTablePart::~nsTablePart() @@ -161,13 +149,6 @@ nsrefcnt nsTablePart::Release(void) return mRefCnt; } -/** assumes that mColCount has been set */ -///QQQQQ can be removed? -PRInt32 nsTablePart::GetMaxColumns () -{ - return mColCount; -} - /** add a child to the table content. * tables are special because they require the content to be normalized, in order. * so this function doesn't really "append" the content, but adds it in the proper place, @@ -229,7 +210,10 @@ nsTablePart::AppendChild (nsIContent * aContent, PRBool aNotify) } NS_RELEASE(child); // child: REFCNT-- } - if ((nsnull == group) || (! group->IsImplicit ())) + PRBool groupIsImplicit = PR_FALSE; + if (nsnull!=group) + group->IsSynthetic(groupIsImplicit); + if ((nsnull == group) || (PR_FALSE==groupIsImplicit)) { if (gsDebug==PR_TRUE) printf ("nsTablePart::AppendChild -- creating an implicit row group.\n"); nsIAtom * rowGroupTag = NS_NewAtom(kRowGroupBodyTagString); // rowGroupTag: REFCNT++ @@ -285,7 +269,10 @@ nsTablePart::AppendChild (nsIContent * aContent, PRBool aNotify) caption = (nsTableCaption *)content; NS_RELEASE(lastChild); // lastChild: REFCNT-- } - if ((nsnull == caption) || (! caption->IsImplicit ())) + PRBool captionIsImplicit = PR_FALSE; + if (nsnull!=caption) + caption->IsSynthetic(captionIsImplicit); + if ((nsnull == caption) || (PR_FALSE==captionIsImplicit)) { if (gsDebug==PR_TRUE) printf ("nsTablePart::AppendChild -- adding an implicit caption.\n"); caption = new nsTableCaption (PR_TRUE); @@ -535,7 +522,10 @@ PRBool nsTablePart::AppendColumn(nsTableCol *aContent) NS_RELEASE(child); // child: REFCNT-- } } - if ((PR_FALSE == foundColGroup) || (! group->IsImplicit ())) + PRBool groupIsImplicit = PR_FALSE; + if (nsnull!=group) + group->IsSynthetic(groupIsImplicit); + if ((PR_FALSE == foundColGroup) || (PR_FALSE==groupIsImplicit)) { if (gsDebug==PR_TRUE) printf ("nsTablePart::AppendChild -- creating an implicit column group.\n"); diff --git a/layout/html/table/src/nsTablePart.h b/layout/html/table/src/nsTablePart.h index 65ee68905ff5..36ec3e3c09fe 100644 --- a/layout/html/table/src/nsTablePart.h +++ b/layout/html/table/src/nsTablePart.h @@ -98,13 +98,6 @@ public: virtual void MapAttributesInto(nsIStyleContext* aContext, nsIPresContext* aPresContext); -/* public Table methods */ - - /** returns the actual number of columns in this table.
- * as a side effect, will call BuildCellMap to constuct mCellMap if needed. - */ - virtual PRInt32 GetMaxColumns(); - /* overrides from nsHTMLContainer */ @@ -152,8 +145,6 @@ protected: private: - PRInt32 mColCount; - PRInt32 mSpecifiedColCount; static nsIAtom *kDefaultTag; }; diff --git a/layout/html/table/src/nsTableRow.cpp b/layout/html/table/src/nsTableRow.cpp index 3938669a32a6..0c07cf1c1c91 100644 --- a/layout/html/table/src/nsTableRow.cpp +++ b/layout/html/table/src/nsTableRow.cpp @@ -110,25 +110,6 @@ nsrefcnt nsTableRow::Release(void) return mRefCnt; } -//QQQ could be removed -PRInt32 nsTableRow::GetMaxColumns() -{ - int sum = 0; - for (int i = 0, n = ChildCount(); i < n; i++) { - nsTableCell *cell = (nsTableCell *) ChildAt(i); // cell: REFCNT++ - sum += cell->GetColSpan(); - NS_RELEASE(cell); // cell: REFCNT-- - } - return sum; -} - -void nsTableRow::ResetCellMap () -{ - if (nsnull != mRowGroup) - { - mRowGroup->ResetCellMap (); - } -} NS_IMETHODIMP nsTableRow::AppendChild (nsIContent *aContent, PRBool aNotify) @@ -150,7 +131,6 @@ nsTableRow::AppendChild (nsIContent *aContent, PRBool aNotify) if (NS_OK == rv) { ((nsTableCell *)aContent)->SetRow (this); - ResetCellMap (); } } } @@ -177,7 +157,6 @@ nsTableRow::InsertChildAt (nsIContent *aContent, PRInt32 aIndex, if (NS_OK == rv) { ((nsTableCell *)aContent)->SetRow (this); - ResetCellMap (); } } } @@ -216,7 +195,6 @@ nsTableRow::ReplaceChildAt (nsIContent *aContent, PRInt32 aIndex, ((nsTableCell *)aContent)->SetRow (this); if (nsnull!=oldChild) ((nsTableCell *)oldChild)->SetRow (nsnull); - ResetCellMap (); } NS_IF_RELEASE(oldChild); // oldChild: REFCNT-- #endif @@ -244,7 +222,6 @@ nsTableRow::RemoveChildAt (int aIndex, PRBool aNotify) { if (nsnull != oldChild) ((nsTableCell *)oldChild)->SetRow (nsnull); - ResetCellMap (); } } NS_IF_RELEASE(oldChild); // oldChild: REFCNT-- diff --git a/layout/html/table/src/nsTableRow.h b/layout/html/table/src/nsTableRow.h index 0c76b4e7a98e..2816ad0b62fd 100644 --- a/layout/html/table/src/nsTableRow.h +++ b/layout/html/table/src/nsTableRow.h @@ -98,11 +98,6 @@ public: /** set this row's starting row index */ virtual void SetRowIndex (int aRowIndex); - /** return the number of columns represented by the cells in this row */ - virtual PRInt32 GetMaxColumns(); - - /** notify the containing nsTablePart that cell information has changed */ - virtual void ResetCellMap (); /* ----------- nsTableContent overrides ----------- */ diff --git a/layout/html/table/src/nsTableRowGroup.cpp b/layout/html/table/src/nsTableRowGroup.cpp index 55087fb724cc..6e4fa8b740cb 100644 --- a/layout/html/table/src/nsTableRowGroup.cpp +++ b/layout/html/table/src/nsTableRowGroup.cpp @@ -43,27 +43,10 @@ static const PRBool gsNoisyRefs = PR_FALSE; static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kITableContentIID, NS_ITABLECONTENT_IID); -// hack, remove when hack in nsTableCol constructor is removed -static PRInt32 HACKcounter=0; -static nsIAtom *HACKattribute=nsnull; -#include "prprf.h" // remove when nsTableCol constructor hack is removed -// end hack code - // nsTableContent checks aTag nsTableRowGroup::nsTableRowGroup(nsIAtom* aTag) : nsTableContent(aTag) { - /* begin hack */ - // temporary hack to get around style sheet optimization that folds all - // col style context into one, unless there is a unique HTML attribute set - char out[40]; - PR_snprintf(out, 40, "%d", HACKcounter); - const nsString value(out); - if (nsnull==HACKattribute) - HACKattribute = NS_NewAtom("Steve's unbelievable hack attribute"); - SetAttribute(HACKattribute, value); - HACKcounter++; - /* end hack */ } // nsTableContent checks aTag @@ -71,39 +54,12 @@ nsTableRowGroup::nsTableRowGroup(nsIAtom* aTag, PRBool aImplicit) : nsTableContent(aTag) { mImplicit = aImplicit; - /* begin hack */ - // temporary hack to get around style sheet optimization that folds all - // col style context into one, unless there is a unique HTML attribute set - char out[40]; - PR_snprintf(out, 40, "%d", HACKcounter); - const nsString value(out); - if (nsnull==HACKattribute) - HACKattribute = NS_NewAtom("Steve's unbelievable hack attribute"); - SetAttribute(HACKattribute, value); - HACKcounter++; - /* end hack */ } nsTableRowGroup::~nsTableRowGroup() { } -/** return the number of columns in the widest row in this group */ -///QQQ could be removed -PRInt32 nsTableRowGroup::GetMaxColumns() -{ // computed every time for now, could be cached - PRInt32 result = 0; - PRInt32 numRows = ChildCount(); - for (PRInt32 rowIndex = 0; rowIndex < numRows; rowIndex++) - { - nsTableRow *row = (nsTableRow*)ChildAt(rowIndex); - PRInt32 numCols = row->GetMaxColumns(); - if (result < numCols) - result = numCols; - } - return result; -} - // Added for debuging purposes -- remove from final build nsrefcnt nsTableRowGroup::AddRef(void) { @@ -186,11 +142,6 @@ nsTableRowGroup::CreateFrame(nsIPresContext* aPresContext, return rv; } -void nsTableRowGroup::ResetCellMap () -{ - -} - NS_IMETHODIMP nsTableRowGroup::AppendChild (nsIContent *aContent, PRBool aNotify) { @@ -210,7 +161,6 @@ nsTableRowGroup::AppendChild (nsIContent *aContent, PRBool aNotify) { ((nsTableRow *)aContent)->SetRowGroup (this); // make sure the table cell map gets rebuilt - ResetCellMap (); } } // otherwise, if it's a cell, create an implicit row for it @@ -229,7 +179,10 @@ nsTableRowGroup::AppendChild (nsIContent *aContent, PRBool aNotify) NS_RELEASE(child); // child: REFCNT-- } } - if ((nsnull == row) || (! row->IsImplicit ())) + PRBool rowIsImplicit = PR_FALSE; + if (nsnull!=row) + row->IsSynthetic(rowIsImplicit); + if ((nsnull == row) || (PR_FALSE==rowIsImplicit)) { printf ("nsTableRow::AppendChild -- creating an implicit row.\n"); nsIAtom * trDefaultTag = NS_NewAtom(nsTablePart::kRowTagString); // trDefaultTag: REFCNT++ @@ -271,7 +224,6 @@ nsTableRowGroup::InsertChildAt (nsIContent *aContent, PRInt32 aIndex, if (NS_OK==result) { ((nsTableRow *)aContent)->SetRowGroup (this); - ResetCellMap (); } return result; @@ -304,7 +256,6 @@ nsTableRowGroup::ReplaceChildAt (nsIContent *aContent, PRInt32 aIndex, ((nsTableRow *)aContent)->SetRowGroup (this); if (nsnull != lastChild) ((nsTableRow *)lastChild)->SetRowGroup (nsnull); - ResetCellMap (); } NS_IF_RELEASE(lastChild); // lastChild: REFCNT-- return result; @@ -327,7 +278,6 @@ nsTableRowGroup::RemoveChildAt (PRInt32 aIndex, PRBool aNotify) { if (nsnull != lastChild) ((nsTableRow *)lastChild)->SetRowGroup (nsnull); - ResetCellMap (); } NS_IF_RELEASE(lastChild); // lastChild: REFCNT-- return result; @@ -381,9 +331,9 @@ NS_NewTableRowGroupPart(nsIHTMLContent** aInstancePtrResult, if (nsnull == aInstancePtrResult) { return NS_ERROR_NULL_POINTER; } - nsIHTMLContent* body = new nsTableRowGroup(aTag); - if (nsnull == body) { + nsIHTMLContent* content = new nsTableRowGroup(aTag); + if (nsnull == content) { return NS_ERROR_OUT_OF_MEMORY; } - return body->QueryInterface(kIHTMLContentIID, (void **) aInstancePtrResult); + return content->QueryInterface(kIHTMLContentIID, (void **) aInstancePtrResult); } diff --git a/layout/html/table/src/nsTableRowGroup.h b/layout/html/table/src/nsTableRowGroup.h index 0f0d72aa7934..75c3cceffe5b 100644 --- a/layout/html/table/src/nsTableRowGroup.h +++ b/layout/html/table/src/nsTableRowGroup.h @@ -55,10 +55,7 @@ public: /** destructor, not responsible for any memory destruction itself */ virtual ~nsTableRowGroup(); - /** return the max of the number of columns represented by the contained rows */ - virtual PRInt32 GetMaxColumns(); - - // For debugging purposes only + // For debugging purposes only NS_IMETHOD_(nsrefcnt) AddRef(); NS_IMETHOD_(nsrefcnt) Release(); @@ -74,15 +71,9 @@ public: nsIStyleContext* aStyleContext, nsIFrame*& aResult); - /** return the number of contained rows */ - int GetRowCount (); - /** returns nsITableContent::kTableRowGroupType */ int GetType(); - /** notify the containing nsTablePart that cell information has changed */ - virtual void ResetCellMap (); - /* ----------- overrides from nsTableContent ---------- */ /** can only append objects that are rows (implement nsITableContent and are . @@ -116,11 +107,6 @@ protected: }; -/** return the number of contained rows */ -inline int nsTableRowGroup::GetRowCount () -{ - return ChildCount (); -} /** returns nsITableContent::kTableRowGroupType */ inline int nsTableRowGroup::GetType() diff --git a/layout/style/ua.css b/layout/style/ua.css index 39c3e06831e7..cd905f816a1e 100644 --- a/layout/style/ua.css +++ b/layout/style/ua.css @@ -236,6 +236,7 @@ CAPTION { text-align: center; display: table-caption; } +TR { display: table-row;} TBODY { display: table-row-group; } THEAD { display: table-header-group; } TFOOT { display: table-footer-group; } diff --git a/layout/tables/nsTableFrame.cpp b/layout/tables/nsTableFrame.cpp index d60cb22365e6..976c022cc43d 100644 --- a/layout/tables/nsTableFrame.cpp +++ b/layout/tables/nsTableFrame.cpp @@ -464,7 +464,6 @@ void nsTableFrame::EnsureColumns(nsIPresContext* aPresContext, // need to find the generic way to stamp out this content, and ::AppendChild it // this might be ok. no matter what my mcontent is, I know it needs a colgroup as a kid? - // QQQ needs a ref count? lastColGroup = new nsTableColGroup (PR_TRUE); // XXX: how do I know whether AppendChild should notify or not? mContent->AppendChild(lastColGroup, PR_FALSE); // was AppendColGroup @@ -629,7 +628,6 @@ void nsTableFrame::BuildCellMap () } if (gsDebug==PR_TRUE) DumpCellMap (); - //QQQ EnsureColumns(); } /** @@ -810,7 +808,6 @@ void nsTableFrame::AppendLayoutData(nsVoidArray* aList, nsTableCellFrame* aTable void nsTableFrame::RecalcLayoutData() { - //QQQ should we ensureCellMap here? PRInt32 colCount = mCellMap->GetColCount(); PRInt32 rowCount = mCellMap->GetRowCount(); PRInt32 row = 0; @@ -1261,9 +1258,9 @@ nsReflowStatus nsTableFrame::ResizeReflowPass1(nsIPresContext* aPresContext, } } + // BuildColumnCache calls EnsureCellMap. If that ever changes, be sure to call EnsureCellMap + // here first. BuildColumnCache(aPresContext, aDesiredSize, aReflowState, aStatus); - EnsureCellMap();//QQQ have to determine where the right place for this is now that it's a frame-side operation - //QQQ cell map used to be forced before loop // Recalculate Layout Dependencies RecalcLayoutData();