Title: [111240] trunk/Source/WebCore
Revision
111240
Author
[email protected]
Date
2012-03-19 13:59:10 -0700 (Mon, 19 Mar 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=81553
        
[New Multicolumn] Stub out classes to represent sets of column region boxes.

RenderRegionSet is an abstract class representing a set of contiguous anonymous
same-size regions.
        
RenderMultiColumnSet derives from RenderRegionSet and represents a set of contiguous
columns. It will also handle unique column behavior like column rule painting.
        
Eventually there will be a RenderPageSet derived class for printing/pages, but
that will come later after I finish rebuilding multi-column layout.

Reviewed by Dan Bernstein.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderMultiColumnSet.cpp: Added.
(WebCore):
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::renderName):
* rendering/RenderMultiColumnSet.h: Added.
(WebCore):
(RenderMultiColumnSet):
* rendering/RenderRegionSet.cpp: Added.
(WebCore):
(WebCore::RenderRegionSet::RenderRegionSet):
* rendering/RenderRegionSet.h: Added.
(WebCore):
(RenderRegionSet):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (111239 => 111240)


--- trunk/Source/WebCore/ChangeLog	2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/ChangeLog	2012-03-19 20:59:10 UTC (rev 111240)
@@ -1,3 +1,39 @@
+2012-03-19  David Hyatt  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=81553
+        
+        [New Multicolumn] Stub out classes to represent sets of column region boxes.
+
+        RenderRegionSet is an abstract class representing a set of contiguous anonymous
+        same-size regions.
+        
+        RenderMultiColumnSet derives from RenderRegionSet and represents a set of contiguous
+        columns. It will also handle unique column behavior like column rule painting.
+        
+        Eventually there will be a RenderPageSet derived class for printing/pages, but
+        that will come later after I finish rebuilding multi-column layout.
+
+        Reviewed by Dan Bernstein.
+
+        * GNUmakefile.list.am:
+        * Target.pri:
+        * WebCore.gypi:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * rendering/RenderMultiColumnSet.cpp: Added.
+        (WebCore):
+        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
+        (WebCore::RenderMultiColumnSet::renderName):
+        * rendering/RenderMultiColumnSet.h: Added.
+        (WebCore):
+        (RenderMultiColumnSet):
+        * rendering/RenderRegionSet.cpp: Added.
+        (WebCore):
+        (WebCore::RenderRegionSet::RenderRegionSet):
+        * rendering/RenderRegionSet.h: Added.
+        (WebCore):
+        (RenderRegionSet):
+
 2012-03-19  Raymond Toy  <[email protected]>
 
         Add playback state for AudioBufferSourceNode and add number of active nodes

Modified: trunk/Source/WebCore/GNUmakefile.list.am (111239 => 111240)


--- trunk/Source/WebCore/GNUmakefile.list.am	2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/GNUmakefile.list.am	2012-03-19 20:59:10 UTC (rev 111240)
@@ -3724,6 +3724,8 @@
 	Source/WebCore/rendering/RenderMeter.h \
     Source/WebCore/rendering/RenderMultiColumnBlock.cpp \
     Source/WebCore/rendering/RenderMultiColumnBlock.h \
+    Source/WebCore/rendering/RenderMultiColumnSet.cpp \
+    Source/WebCore/rendering/RenderMultiColumnSet.h \
 	Source/WebCore/rendering/RenderObjectChildList.cpp \
 	Source/WebCore/rendering/RenderObjectChildList.h \
 	Source/WebCore/rendering/RenderObject.cpp \
@@ -3737,6 +3739,8 @@
 	Source/WebCore/rendering/RenderQuote.h \
 	Source/WebCore/rendering/RenderRegion.cpp \
 	Source/WebCore/rendering/RenderRegion.h \
+    Source/WebCore/rendering/RenderRegionSet.cpp \
+	Source/WebCore/rendering/RenderRegionSet.h \
 	Source/WebCore/rendering/RenderReplaced.cpp \
 	Source/WebCore/rendering/RenderReplaced.h \
 	Source/WebCore/rendering/RenderReplica.cpp \

Modified: trunk/Source/WebCore/Target.pri (111239 => 111240)


--- trunk/Source/WebCore/Target.pri	2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/Target.pri	2012-03-19 20:59:10 UTC (rev 111240)
@@ -1249,12 +1249,14 @@
     rendering/RenderMenuList.cpp \
     rendering/RenderMeter.cpp \
     rendering/RenderMultiColumnBlock.cpp \
+    rendering/RenderMultiColumnSet.cpp \
     rendering/RenderObject.cpp \
     rendering/RenderObjectChildList.cpp \
     rendering/RenderPart.cpp \
     rendering/RenderProgress.cpp \
     rendering/RenderQuote.cpp \
     rendering/RenderRegion.cpp \
+    rendering/RenderRegionSet.cpp \
     rendering/RenderReplaced.cpp \
     rendering/RenderReplica.cpp \
     rendering/RenderRuby.cpp \

Modified: trunk/Source/WebCore/WebCore.gypi (111239 => 111240)


--- trunk/Source/WebCore/WebCore.gypi	2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/WebCore.gypi	2012-03-19 20:59:10 UTC (rev 111240)
@@ -4621,6 +4621,8 @@
             'rendering/RenderMeter.h',
             'rendering/RenderMultiColumnBlock.cpp',
             'rendering/RenderMultiColumnBlock.h',
+            'rendering/RenderMultiColumnSet.cpp',
+            'rendering/RenderMultiColumnSet.h',
             'rendering/RenderObject.cpp',
             'rendering/RenderObjectChildList.cpp',
             'rendering/RenderPart.cpp',
@@ -4630,6 +4632,8 @@
             'rendering/RenderQuote.h',
             'rendering/RenderRegion.cpp',
             'rendering/RenderRegion.h',
+            'rendering/RenderRegionSet.cpp',
+            'rendering/RenderRegionSet.h',
             'rendering/RenderReplaced.cpp',
             'rendering/RenderReplica.cpp',
             'rendering/RenderReplica.h',

Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (111239 => 111240)


--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj	2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj	2012-03-19 20:59:10 UTC (rev 111240)
@@ -39901,7 +39901,63 @@
 				RelativePath="..\rendering\RenderMultiColumnBlock.h"
 				>
 			</File>
+            <File
+				RelativePath="..\rendering\RenderMultiColumnSet.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_Cairo_CFLite|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release_Cairo_CFLite|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_All|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Production|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
 			<File
+				RelativePath="..\rendering\RenderMultiColumnSet.h"
+				>
+			</File>
+			<File
 				RelativePath="..\rendering\RenderObject.cpp"
 				>
 				<FileConfiguration
@@ -40189,7 +40245,15 @@
 				RelativePath="..\rendering\RenderRegion.h"
 				>
 			</File>
+            <File
+				RelativePath="..\rendering\RenderRegionSet.cpp"
+				>
+			</File>
 			<File
+				RelativePath="..\rendering\RenderRegionSet.h"
+				>
+			</File>
+			<File
 				RelativePath="..\rendering\RenderReplaced.cpp"
 				>
 				<FileConfiguration

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (111239 => 111240)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2012-03-19 20:54:50 UTC (rev 111239)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2012-03-19 20:59:10 UTC (rev 111240)
@@ -5507,6 +5507,8 @@
 		BCE1C43B0D9830D3003B02F2 /* JSLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE1C4390D9830D3003B02F2 /* JSLocation.cpp */; };
 		BCE1C43C0D9830D3003B02F2 /* JSLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE1C43A0D9830D3003B02F2 /* JSLocation.h */; };
 		BCE1C4400D9830F4003B02F2 /* JSLocationCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */; };
+		BCE32B9C1517C0B200F542EC /* RenderMultiColumnSet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE32B9B1517C0B100F542EC /* RenderMultiColumnSet.h */; };
+		BCE32B9E1517C22700F542EC /* RenderMultiColumnSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE32B9D1517C22700F542EC /* RenderMultiColumnSet.cpp */; };
 		BCE3BEC20D222B1D007E06E4 /* TagNodeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE3BEC00D222B1D007E06E4 /* TagNodeList.cpp */; };
 		BCE3BEC30D222B1D007E06E4 /* TagNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE3BEC10D222B1D007E06E4 /* TagNodeList.h */; };
 		BCE4389C140B1BA8005E437E /* JSDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE4389B140B1BA7005E437E /* JSDictionary.h */; };
@@ -5526,6 +5528,8 @@
 		BCE789861120E7A60060ECE5 /* BidiRun.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE789851120E7A60060ECE5 /* BidiRun.h */; };
 		BCE7898B1120E8020060ECE5 /* BidiRun.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE7898A1120E8020060ECE5 /* BidiRun.cpp */; };
 		BCE7B1930D4E86960075A539 /* JSHistoryCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE7B1920D4E86960075A539 /* JSHistoryCustom.cpp */; };
+		BCE93F451517C567008CCF74 /* RenderRegionSet.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE93F441517C567008CCF74 /* RenderRegionSet.h */; };
+		BCE93F471517C6D5008CCF74 /* RenderRegionSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE93F461517C6D5008CCF74 /* RenderRegionSet.cpp */; };
 		BCEA478F097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEA477C097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp */; };
 		BCEA4790097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEA477D097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		BCEA4852097D93020094C9E4 /* RenderBlockLineLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEA4813097D93020094C9E4 /* RenderBlockLineLayout.cpp */; };
@@ -12550,6 +12554,8 @@
 		BCE1C4390D9830D3003B02F2 /* JSLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSLocation.cpp; sourceTree = "<group>"; };
 		BCE1C43A0D9830D3003B02F2 /* JSLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSLocation.h; sourceTree = "<group>"; };
 		BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSLocationCustom.cpp; sourceTree = "<group>"; };
+		BCE32B9B1517C0B100F542EC /* RenderMultiColumnSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMultiColumnSet.h; sourceTree = "<group>"; };
+		BCE32B9D1517C22700F542EC /* RenderMultiColumnSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMultiColumnSet.cpp; sourceTree = "<group>"; };
 		BCE3BEC00D222B1D007E06E4 /* TagNodeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagNodeList.cpp; sourceTree = "<group>"; };
 		BCE3BEC10D222B1D007E06E4 /* TagNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagNodeList.h; sourceTree = "<group>"; };
 		BCE4389B140B1BA7005E437E /* JSDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDictionary.h; sourceTree = "<group>"; };
@@ -12569,6 +12575,8 @@
 		BCE789851120E7A60060ECE5 /* BidiRun.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BidiRun.h; sourceTree = "<group>"; };
 		BCE7898A1120E8020060ECE5 /* BidiRun.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BidiRun.cpp; sourceTree = "<group>"; };
 		BCE7B1920D4E86960075A539 /* JSHistoryCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHistoryCustom.cpp; sourceTree = "<group>"; };
+		BCE93F441517C567008CCF74 /* RenderRegionSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderRegionSet.h; sourceTree = "<group>"; };
+		BCE93F461517C6D5008CCF74 /* RenderRegionSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderRegionSet.cpp; sourceTree = "<group>"; };
 		BCEA477C097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSComputedStyleDeclaration.cpp; sourceTree = "<group>"; };
 		BCEA477D097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSComputedStyleDeclaration.h; sourceTree = "<group>"; };
 		BCEA477E097CAAC80094C9E4 /* CSSGrammar.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; path = CSSGrammar.y; sourceTree = "<group>"; };
@@ -20681,6 +20689,8 @@
 				A454424D119B3687009BE912 /* RenderMeter.h */,
 				BC45827E151299C10061A556 /* RenderMultiColumnBlock.cpp */,
 				BCC52FD5151298D1003F914B /* RenderMultiColumnBlock.h */,
+				BCE32B9D1517C22700F542EC /* RenderMultiColumnSet.cpp */,
+				BCE32B9B1517C0B100F542EC /* RenderMultiColumnSet.h */,
 				BCEA4840097D93020094C9E4 /* RenderObject.cpp */,
 				BCEA4841097D93020094C9E4 /* RenderObject.h */,
 				BC60EFB60F33A0E700812A93 /* RenderObjectChildList.cpp */,
@@ -20694,6 +20704,8 @@
 				5A574F23131DB93900471B88 /* RenderQuote.h */,
 				D70AD65513E1342B005B50B4 /* RenderRegion.cpp */,
 				D70AD65613E1342B005B50B4 /* RenderRegion.h */,
+				BCE93F461517C6D5008CCF74 /* RenderRegionSet.cpp */,
+				BCE93F441517C567008CCF74 /* RenderRegionSet.h */,
 				A871DFDE0A15376B00B12A68 /* RenderReplaced.cpp */,
 				A871DFDF0A15376B00B12A68 /* RenderReplaced.h */,
 				BCA846D40DC67A350026C309 /* RenderReplica.cpp */,
@@ -22420,7 +22432,6 @@
 				85989DD10ACC8BBD00A0BC51 /* DOMWheelEventInternal.h in Headers */,
 				1403B99709EB13AF00797C7F /* DOMWindow.h in Headers */,
 				9712A5AE15004EDA0048AF10 /* DOMWindowIndexedDatabase.h in Headers */,
-				A886CF771512301700D279F4 /* DOMWindowNotifications.h in Headers */,
 				97D2AD0414B823A60093DF32 /* DOMWindowProperty.h in Headers */,
 				97BC6A351505F081001B74AC /* DOMWindowSQLDatabase.h in Headers */,
 				F35AE5AC14925F5B004D5776 /* DOMWrapperVisitor.h in Headers */,
@@ -24594,6 +24605,8 @@
 				E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
 				977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
 				FD537353137B651800008DCE /* ZeroPole.h in Headers */,
+				BCE32B9C1517C0B200F542EC /* RenderMultiColumnSet.h in Headers */,
+				BCE93F451517C567008CCF74 /* RenderRegionSet.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -25567,7 +25580,6 @@
 				85C7F5E80AAFBAFB004014DD /* DOMWheelEvent.mm in Sources */,
 				1403B99809EB13AF00797C7F /* DOMWindow.cpp in Sources */,
 				9712A5AD15004EDA0048AF10 /* DOMWindowIndexedDatabase.cpp in Sources */,
-				A886CF761512301700D279F4 /* DOMWindowNotifications.cpp in Sources */,
 				97D2AD0314B823A60093DF32 /* DOMWindowProperty.cpp in Sources */,
 				97BC6A341505F081001B74AC /* DOMWindowSQLDatabase.cpp in Sources */,
 				BC53DA481143134D000D817E /* DOMWrapperWorld.cpp in Sources */,
@@ -27578,6 +27590,8 @@
 				E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
 				977E2E0E12F0FC9C00C13379 /* XSSAuditor.cpp in Sources */,
 				FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
+				BCE32B9E1517C22700F542EC /* RenderMultiColumnSet.cpp in Sources */,
+				BCE93F471517C6D5008CCF74 /* RenderRegionSet.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Added: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (0 => 111240)


--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp	                        (rev 0)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp	2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2012 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RenderMultiColumnSet.h"
+
+namespace WebCore {
+
+RenderMultiColumnSet::RenderMultiColumnSet(Node* node, RenderFlowThread* flowThread)
+    : RenderRegionSet(node, flowThread)
+{
+}
+
+const char* RenderMultiColumnSet::renderName() const
+{    
+    return "RenderMultiColumnSet";
+}
+
+}

Added: trunk/Source/WebCore/rendering/RenderMultiColumnSet.h (0 => 111240)


--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.h	                        (rev 0)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.h	2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2012 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef RenderMultiColumnSet_h
+#define RenderMultiColumnSet_h
+
+#include "RenderRegionSet.h"
+
+namespace WebCore {
+
+// RenderMultiColumnSet represents a set of columns that all have the same width and height. By combining runs of same-size columns into a single
+// object, we significantly reduce the number of unique RenderObjects required to represent columns.
+//
+// A simple multi-column block will have exactly one RenderMultiColumnSet child. A simple paginated multi-column block will have three
+// RenderMultiColumnSet children: one for the content at the bottom of the first page (whose columns will have a shorter height), one
+// for the 2nd to n-1 pages, and then one last column set that will hold the shorter columns on the final page (that may have to be balanced
+// as well).
+//
+// Column spans result in the creation of new column sets as well, since a spanning region has to be placed in between the column sets that
+// come before and after the span.
+class RenderMultiColumnSet : public RenderRegionSet {
+public:
+    RenderMultiColumnSet(Node*, RenderFlowThread*);
+    
+private:
+    virtual const char* renderName() const;
+};
+
+} // namespace WebCore
+
+#endif // RenderMultiColumnSet_h
+

Added: trunk/Source/WebCore/rendering/RenderRegionSet.cpp (0 => 111240)


--- trunk/Source/WebCore/rendering/RenderRegionSet.cpp	                        (rev 0)
+++ trunk/Source/WebCore/rendering/RenderRegionSet.cpp	2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RenderRegionSet.h"
+
+namespace WebCore {
+
+RenderRegionSet::RenderRegionSet(Node* node, RenderFlowThread* flowThread)
+    : RenderRegion(node, flowThread)
+{
+}
+
+}

Added: trunk/Source/WebCore/rendering/RenderRegionSet.h (0 => 111240)


--- trunk/Source/WebCore/rendering/RenderRegionSet.h	                        (rev 0)
+++ trunk/Source/WebCore/rendering/RenderRegionSet.h	2012-03-19 20:59:10 UTC (rev 111240)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2012 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef RenderRegionSet_h
+#define RenderRegionSet_h
+
+#include "RenderRegion.h"
+#include "RenderBoxRegionInfo.h"
+
+namespace WebCore {
+
+class RenderFlowThread;
+
+// RenderRegionSet represents a set of regions that all have the same width and height. It is a "composite region box" that
+// can be used to represent a single run of contiguous regions.
+//
+// By combining runs of same-size columns or pages into a single object, we significantly reduce the number of unique RenderObjects
+// required to represent those objects.
+//
+// This class is abstract and is only intended for use by renderers that generate anonymous runs of identical regions, i.e.,
+// columns and printing. RenderMultiColumnSet and RenderPageSet represent runs of columns and pages respectively.
+//
+// FIXME: For now we derive from RenderRegion, but this may change at some point.
+
+class RenderRegionSet : public RenderRegion {
+public:
+    RenderRegionSet(Node*, RenderFlowThread*);
+    
+private:
+    virtual const char* renderName() const = 0;
+};
+
+} // namespace WebCore
+
+#endif // RenderRegionSet_h
+
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to