44 Commits

Author SHA1 Message Date
troy%netscape.com
1c0da71da3 Renamed Init() to SetInitialChildList() and added an additional parameter
for the name of the child list


git-svn-id: svn://10.0.0.236/trunk@14333 18797224-902f-48f8-a5cc-f745e15eee43
1998-11-10 06:05:32 +00:00
buster%netscape.com
96b01811a9 fixed the bug where events were not getting passed down to content inside
of cells with rowspans.  Basically, I just override HandleEvent() in nsTableRowGroupFrame
to ask nsTableRowFrame::Contains(), rather than the default action which is to
just use the child's rect.


git-svn-id: svn://10.0.0.236/trunk@14218 18797224-902f-48f8-a5cc-f745e15eee43
1998-11-07 00:36:37 +00:00
buster%netscape.com
cf08e060ad some extremely preliminary work for styleChanged incremental reflow
git-svn-id: svn://10.0.0.236/trunk@13722 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-30 07:57:44 +00:00
buster%netscape.com
75468d7b44 all containers now decend from nsHTMLContainerFrame
all "unknown frame" incremental reflow support methods now
replaced with nsHTMLContainerFrame::AddFrame and ::RemoveFrame


git-svn-id: svn://10.0.0.236/trunk@13209 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-20 17:45:07 +00:00
buster%netscape.com
066a8fdc3f incremental reflow now includes insert/append/delete cell
git-svn-id: svn://10.0.0.236/trunk@13201 18797224-902f-48f8-a5cc-f745e15eee43
1998-10-20 15:59:56 +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
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
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
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
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
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
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
ec0b3d1318 any table with a nonsense rowspan lays out better
git-svn-id: svn://10.0.0.236/trunk@6344 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-24 00:43:09 +00:00
troy
ca3a5dd4c3 Some more changes of nsIPresContext* to nsIPresContext&
git-svn-id: svn://10.0.0.236/trunk@5601 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-15 17:05:21 +00:00
troy
daf7150ca5 Some improvements to the incremental reflow logic to handle all the
cases handled by resize reflow


git-svn-id: svn://10.0.0.236/trunk@5579 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-15 04:45:58 +00:00
troy
eb7fa8a66e Changed API for CreateContinuingFrame and GetReflowMetrics to take
a reference to a nsIPresContext


git-svn-id: svn://10.0.0.236/trunk@5569 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-15 03:23:23 +00:00
troy
547dc8ae9b Changed Reflow() member function to take a reference to a nsIPresContext
instead of a pointer


git-svn-id: svn://10.0.0.236/trunk@5565 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-15 02:53:09 +00:00
troy
5d54fed53c Incremental reflow changes
git-svn-id: svn://10.0.0.236/trunk@5482 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-14 15:29:50 +00:00
troy
5b2534fcda More code re-shuffling. I need to hurry and check-in before Cujo
whacks the tree


git-svn-id: svn://10.0.0.236/trunk@5320 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 22:56:13 +00:00
troy
45923e2e1b Changed it so we assume that rows are always complete
git-svn-id: svn://10.0.0.236/trunk@5277 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 05:23:05 +00:00
troy
c54f7d9d1c Some incremental improvements
git-svn-id: svn://10.0.0.236/trunk@5276 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-10 04:00:38 +00:00
troy
89a3525fb4 Moved code that resized the table row cells from the row group frame
to the row frame. It's now handled as part of the DidReflow() post-
processing code


git-svn-id: svn://10.0.0.236/trunk@4916 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 20:35:23 +00:00
buster
192406dc56 added an optimization that skips pass2 cell reflows when the new available width is unchanged
from the prior available width.  Some real-world test cases sped up
1-2 orders of magnitude for resize reflow.  Initial reflow is unchanged because
we still need to get pass1 metrics on all content.
fixed nsCSSBlockFrame.cpp to take margins into account when computing parent's available width
fixed distribution of excess space to table cells when table is bigger than the content it holds.
not quite finished yet, but better.


git-svn-id: svn://10.0.0.236/trunk@4905 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 17:40:56 +00:00
troy
5984f25221 Some work-in-progress for incremental reflow
git-svn-id: svn://10.0.0.236/trunk@4892 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-02 05:39:10 +00:00
troy
a4008f60fb Some work-in-progress for incremental reflow
git-svn-id: svn://10.0.0.236/trunk@4779 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 04:55:15 +00:00
troy
e7ec0d1a2b Removed some vertical margin collapsing stuff that wasn't needed
git-svn-id: svn://10.0.0.236/trunk@4777 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-01 03:03:32 +00:00
atotic
de08420b29 Another class reference inside class declaration problem
class A {
  void A:method
};
is bad


git-svn-id: svn://10.0.0.236/trunk@4638 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-27 02:48:39 +00:00
buster
49fc78ed8a fixed some bugs related to rowspans. This gets us closer on pages like Mozilla.org that were getting wild table heights.
git-svn-id: svn://10.0.0.236/trunk@4429 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-24 19:13:19 +00:00
buster
fe4ba8793e lots of nested tables look much better
misc. nav4 compatibility enhancements
added the ability to QueryInterface for some specific table frame types


git-svn-id: svn://10.0.0.236/trunk@4348 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-23 23:23:21 +00:00
buster
dc23f3a90e Separated table content from table layout. This paves the way for XML/CSS-2 tables.
Lots and lots of optimizations.


git-svn-id: svn://10.0.0.236/trunk@3982 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-17 16:38:24 +00:00
buster
0d87d412e5 some tentative steps towards content/frame separation in tables
git-svn-id: svn://10.0.0.236/trunk@3637 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-11 00:13:18 +00:00
buster
a8657b2060 cell width calculations are working (not for colspan cells yet)
some bug fixes and optimizations
some of the more elaborate test cases are closer to Nav4-compatible


git-svn-id: svn://10.0.0.236/trunk@3301 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-05 02:36:25 +00:00
troy
d2d4e15ea4 Merged ResizeReflow() and IncrementalReflow() into one Reflow() member function
git-svn-id: svn://10.0.0.236/trunk@2253 18797224-902f-48f8-a5cc-f745e15eee43
1998-05-25 17:31:49 +00:00
kostello
997174b4d5 * Added Support for cell spacing
* NOTE: due to changes in the style system -- things won't look correct right away.


git-svn-id: svn://10.0.0.236/trunk@2149 18797224-902f-48f8-a5cc-f745e15eee43
1998-05-21 23:43:18 +00:00
peterl
f9ecfae273 sync to new spacing apis
git-svn-id: svn://10.0.0.236/trunk@1471 18797224-902f-48f8-a5cc-f745e15eee43
1998-05-12 22:28:01 +00:00
troy
5a839584c7 Change to nsIFrame API
git-svn-id: svn://10.0.0.236/trunk@1441 18797224-902f-48f8-a5cc-f745e15eee43
1998-05-12 04:17:56 +00:00
kipp
d75e25fc42 Ported to new CreateFrame/CreateContinuingFrame APIs
git-svn-id: svn://10.0.0.236/trunk@1204 18797224-902f-48f8-a5cc-f745e15eee43
1998-05-07 00:08:20 +00:00
troy
22a5d2831e Frames no longet store the content index-in-parent
git-svn-id: svn://10.0.0.236/trunk@1169 18797224-902f-48f8-a5cc-f745e15eee43
1998-05-05 23:56:50 +00:00
kipp
b87f9199b6 Port to removal of nsStyleMolecule
git-svn-id: svn://10.0.0.236/trunk@665 18797224-902f-48f8-a5cc-f745e15eee43
1998-04-25 18:48:48 +00:00
buster
a7ba4f40d7 table header and footer rowgroups placed properly, replicated across continuing tables
some pagination fixes, including a hack to make negative available heights = 1.


git-svn-id: svn://10.0.0.236/trunk@552 18797224-902f-48f8-a5cc-f745e15eee43
1998-04-23 17:29:07 +00:00
troy
fd68898ebd Changed nsIFrame member functions to return a nsresult
git-svn-id: svn://10.0.0.236/trunk@346 18797224-902f-48f8-a5cc-f745e15eee43
1998-04-17 01:41:24 +00:00
buster
cd9cbaa5c4 documentation changes
git-svn-id: svn://10.0.0.236/trunk@269 18797224-902f-48f8-a5cc-f745e15eee43
1998-04-14 21:45:28 +00:00
kipp
fb1503758e moved to pub
git-svn-id: svn://10.0.0.236/trunk@165 18797224-902f-48f8-a5cc-f745e15eee43
1998-04-13 20:24:54 +00:00