150 Commits

Author SHA1 Message Date
buster%netscape.com
b739d3db2f fixed a bug introduced by a slight change in GetColumnCount()
git-svn-id: svn://10.0.0.236/trunk@13187 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-20 05:05:17 +00:00
buster%netscape.com
1b5515eaa5 rows can now be incrementally inserted, appended, and deleted.
git-svn-id: svn://10.0.0.236/trunk@13141 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-19 23:43:06 +00:00
buster%netscape.com
28617bfaaa incremental reflow: append/insert/delete row group, append/insert/delete col
git-svn-id: svn://10.0.0.236/trunk@12922 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-15 21:07:37 +00:00
buster%netscape.com
88c09f9734 progress on table incremental reflow of row group insert/append/delete
git-svn-id: svn://10.0.0.236/trunk@12875 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-15 07:46:16 +00:00
buster%netscape.com
a53203e2ef nsTableFrame can now incrementally insert, append, and delete colgroups
git-svn-id: svn://10.0.0.236/trunk@12839 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-14 22:51:50 +00:00
buster%netscape.com
4a9bcccc01 lots of work for incremental reflow when the target frame is a table frame
git-svn-id: svn://10.0.0.236/trunk@12807 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-14 16:32:45 +00:00
kipp%netscape.com
3af8f78a16 Added an nsIPresContext& to html-reflow-state's ctors and used it to implement better percentage width/height handling
git-svn-id: svn://10.0.0.236/trunk@12575 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-12 14:48:02 +00:00
buster%netscape.com
86cad4cf3a WIP for inner table incremental reflow
lots of interface cleanup


git-svn-id: svn://10.0.0.236/trunk@12539 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-11 09:18:27 +00:00
buster%netscape.com
766b603f84 made allocation of mColumnWidths more flexible
git-svn-id: svn://10.0.0.236/trunk@12454 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-09 21:53:07 +00:00
buster%netscape.com
c6417cadce support nsTableOuterFrame incremental reflow
git-svn-id: svn://10.0.0.236/trunk@12441 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-09 19:59:45 +00:00
troy%netscape.com
ab9971c67b Removed GetContentIndex() from nsIFrame
git-svn-id: svn://10.0.0.236/trunk@12307 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-08 20:35:16 +00:00
buster%netscape.com
5377ebdea8 all frames properly setting ascent and descent values for reflow
WIP incremental reflow in nsTableOuterFrame


git-svn-id: svn://10.0.0.236/trunk@12283 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-08 15:34:48 +00:00
troy%netscape.com
f910aa1e8b Changed ReflowChild() to send the WillReflow() notification as well
git-svn-id: svn://10.0.0.236/trunk@11982 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-06 00:27:22 +00:00
troy%netscape.com
31a923050a Removed calls to MoveTo() BEFORE reflowing a frame. We used to do this
sequence: MoveTo(), Reflow(), SetRect(). Now that we have the WillReflow()/
DidReflow() code sandwhiches we no longer need to do the MoveTo()


git-svn-id: svn://10.0.0.236/trunk@11891 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-05 00:58:32 +00:00
buster%netscape.com
850f72356a merge goof fixed, now works with new reflow API
git-svn-id: svn://10.0.0.236/trunk@11803 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-02 21:35:44 +00:00
buster%netscape.com
68bbfa7e34 minor interface cleanup
git-svn-id: svn://10.0.0.236/trunk@11797 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-02 20:36:35 +00:00
troy%netscape.com
e191c422d9 Eliminated nsIRunaround interface, and folded space manager parameter into
nsHTMLReflowState structure


git-svn-id: svn://10.0.0.236/trunk@11749 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-02 04:10:00 +00:00
troy%netscape.com
7eac0bfdac Separated reflow process out of nsIFrame and into nsIFrameReflow. Also
added nsIHTMLReflow, which is an HTML specific reflow interface


git-svn-id: svn://10.0.0.236/trunk@11646 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-01 04:46:11 +00:00
buster%netscape.com
a0c05dcfa4 fixed a minor bug in colspan layout
the layout strategy can now query the outer frame for the caption min width,
and use it to expand the table if necessary
did some related cleanup while I was in there.


git-svn-id: svn://10.0.0.236/trunk@11473 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-29 23:15:01 +00:00
buster%netscape.com
1c6e6e88a1 fixed bug 915. Colgroup frames now get Init() calls properly with
synthesized COLs.


git-svn-id: svn://10.0.0.236/trunk@11259 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-28 20:38:10 +00:00
kipp%netscape.com
679b3025ae Use modified css rendering API
git-svn-id: svn://10.0.0.236/trunk@11158 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-26 17:17:20 +00:00
buster%netscape.com
0c00c9f654 removed lots of assumptions about frame ordering and containership.
table frames no longer assume they are n levels below the inner table frame
table frames no longer assume their child frames are always the expected type of
frame.  Now they check the display type and use that as sufficient proof that the frame
is of the right type.  This implies a heavy reliance on the frame construction code to do
the right thing and always stamp out the right kind of frame for a given display type.


git-svn-id: svn://10.0.0.236/trunk@10922 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 16:37:22 +00:00
troy%netscape.com
d2a134fb41 Removed IsPseudoFrame() from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10895 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:57:30 +00:00
troy%netscape.com
aec668d182 Changed signature of PushChildren() member function
git-svn-id: svn://10.0.0.236/trunk@10894 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:18:58 +00:00
troy%netscape.com
2bdb85f976 Removed IsLastChild() member function from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10891 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 04:12:01 +00:00
troy%netscape.com
43e6ab37a3 Removed PreReflowCheck() and PostReflowCheck() from nsContainerFrame
git-svn-id: svn://10.0.0.236/trunk@10888 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:59:30 +00:00
troy%netscape.com
bf40dfa99c Removed mFirstContentOffset, LastContentOffset, and mLastContentIsComplete
from nsContainerFrame


git-svn-id: svn://10.0.0.236/trunk@10883 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-24 03:36:52 +00:00
buster%netscape.com
4cca9446d0 all frame initialization and related logic has moved into the various table frames' Init() methods
from their respective InitalReflow() methods.
table-layout=fixed now completely skips pass1 reflow and doesn't require maxElementSize
information, saving a tremendous amount of time during initial reflow.


git-svn-id: svn://10.0.0.236/trunk@10841 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 21:48:26 +00:00
kipp%netscape.com
ba293acaeb Fixed the build
git-svn-id: svn://10.0.0.236/trunk@10737 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-23 01:47:17 +00:00
buster%netscape.com
28f1107062 set all the groundwork for FAST table layout based on CSS-2 table-layout property
git-svn-id: svn://10.0.0.236/trunk@10726 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-22 23:36:06 +00:00
troy%netscape.com
90cbfd4db8 Removed all references to m<First,Last>ContentOffset,mChildCount,mLastContentIsComplete
git-svn-id: svn://10.0.0.236/trunk@10554 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-21 03:40:32 +00:00
troy%netscape.com
82c24af034 Removed farme enumeration member functions for indexed access, last child,
and child count


git-svn-id: svn://10.0.0.236/trunk@10475 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-19 03:24:26 +00:00
buster%netscape.com
d92ddd9be2 added ColIsSpannedInto, ColHasSpanningCells
moved *IsSpannedInto and *HasSpanningCells into cellmap, giving us the oppurtunity
to easily cache results if we want.  These methods are still accessed through nsTableFrame.
changed nsTableFrame::GetCellAt to nsTableFrame::GetCellFrameAt to make it more clear what
the method returns:  a frame, not content.


git-svn-id: svn://10.0.0.236/trunk@10440 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 22:37:14 +00:00
troy%netscape.com
b0bdb9e357 Removed nsIContentDelegate.h
git-svn-id: svn://10.0.0.236/trunk@10418 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 17:34:48 +00:00
troy%netscape.com
b60923ad33 Removed content delegates
git-svn-id: svn://10.0.0.236/trunk@10417 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 17:18:37 +00:00
troy%netscape.com
d2df7b2380 Removed some commented out code that's not needed now that we're using the
new frame construction


git-svn-id: svn://10.0.0.236/trunk@10328 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-18 00:49:40 +00:00
troy%netscape.com
a80395bfae Clean up work
git-svn-id: svn://10.0.0.236/trunk@10188 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 20:27:30 +00:00
troy%netscape.com
8b2676b6e1 Frame construction changes for tables
git-svn-id: svn://10.0.0.236/trunk@10159 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 17:19:20 +00:00
buster%netscape.com
436c4b73a5 better handling of non-cell frames in rowFrames
support for the case where a nested table is in a cell that has colspan>1


git-svn-id: svn://10.0.0.236/trunk@10105 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:48:14 +00:00
buster%netscape.com
26f6ed9085 nsTableRowGroupFrame no longer assumes all its children are rows, or that all row children are cells.
git-svn-id: svn://10.0.0.236/trunk@10072 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 20:36:42 +00:00
buster%netscape.com
1c8d847337 nsStyleConsts.h added some HTML 4 consts for tables
nsHTMLAtoms.cpp,h             added some HTML 4 strings for tables
nsHTMLParts.h                 added constructors for new table content classes
nsGenericHTMLElement.cpp,h    added table frame creation, common table attribute parsing
nsHTMLTable*Element.cpp       these are the new table content classes
nsHTMLContentSink.cpp         enabled the new content and removed the old
nsHTMLStyleSheet.cpp          fixed the table style optimizations to work with new content
nsTable*Frame.cpp             these work with the new content


git-svn-id: svn://10.0.0.236/trunk@10047 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 17:58:24 +00:00
buster%netscape.com
acbcec3004 fixed minColSpan to always be at least one. This helps support empty rows,
among other problems.


git-svn-id: svn://10.0.0.236/trunk@9206 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 06:15:18 +00:00
buster%netscape.com
9a7b48eb26 expanded nsIFrame::List to include nsIListFilter *aFilter param, by default nsnull.
aFilter is useful for determining if a frame should output itself during
a List().  In any event, the children of the frame are always processed.
added nsIListFilter, an interface for any object that wants to act like a filter for frame dumps
added   static NS_LAYOUT nsIListFilter * GetFilter(nsString *aFilterName);
currently, only TableListFilter implements nsIListFilter.
in response to List(...TableListFilter), the frame model is dumped in a way that is useful
for table layout regression testing.  Currently this is controlled by command line switches on the viewer app.


git-svn-id: svn://10.0.0.236/trunk@9156 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-02 21:59:54 +00:00
buster%netscape.com
cb664f26da reimplemented cell map in terms of nsVoidArrays for incremental building.
the cellmap is now built incrementally, driven by nsTableRowFrame::InitialReflow


git-svn-id: svn://10.0.0.236/trunk@8888 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-31 21:23:28 +00:00
kipp%netscape.com
29e64a354f XPCOM'ized nsIContent and nsIHTMLContent
git-svn-id: svn://10.0.0.236/trunk@8824 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-29 20:20:38 +00:00
buster%netscape.com
663dc8e0c4 more content decoupling
support work for style optimizations
fixed a bug in table columns  -- the attribute repeat defaults to 1, not 0


git-svn-id: svn://10.0.0.236/trunk@8504 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-26 17:26:38 +00:00
joki%netscape.com
7e064bbd3a Modifying nsIContent's AppendChild -> AppendChildTo to stop conflict with
DOM interfaces.


git-svn-id: svn://10.0.0.236/trunk@8340 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-21 21:38:26 +00:00
buster%netscape.com
ad76084cb9 improved colspan handling.
cells with colspans and specified widths divide their width provisionally between the columns they span. This provisional division is ammended by any cell in any of the effected columns that:
1) has a colspan=1, and
2) has a width specified
the widths of all other columns must be adjusted for cells like these.  Further complicating matters is that it seems <faith> that if multiple colspanning cells intersect a column and each has a width
specified such that the column would have a different width depending on which is used, only the first such cell is used </faith>.  I can neither confirm nor deny this reading the mozilla code.

I also taught the cell map how to deal with this situation:

 colspan=1 | colspan=2 | colspan=1
 colspan=1 | colspan=2 | colspan=1

This table "really" has 4 columns, but the middle cells are treated as if they have no colspan.
Trust me, it matters.  The original colspan attributes can't simply be thrown away because Mr. DOM
could come along at any time and add/remove a cell that would make them important.


git-svn-id: svn://10.0.0.236/trunk@8185 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-19 15:43:51 +00:00
buster%netscape.com
2cd93059a0 fixed nested tables for the case where both parent and child table are %-width,
and the columns are any variety of width types


git-svn-id: svn://10.0.0.236/trunk@8109 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-17 23:37:04 +00:00
buster%netscape.com
fad7c8e1ab fixed a memory leak where a style context was not being released when
the table cell set the table column's style.


git-svn-id: svn://10.0.0.236/trunk@8098 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-17 19:03:36 +00:00