Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(546)

Unified Diff: third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Issue 2267383003: [LayoutNG] Introduces NGPhysicalConstraintSpace and makes NGConstraintSpace a "view". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix win compile? Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h b/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
new file mode 100644
index 0000000000000000000000000000000000000000..10b9a37a92afe4016f5816292da7bc768815537b
--- /dev/null
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
@@ -0,0 +1,68 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NGPhysicalConstraintSpace_h
+#define NGPhysicalConstraintSpace_h
+
+#include "core/CoreExport.h"
+#include "core/layout/ng/ng_units.h"
+#include "platform/heap/Handle.h"
+#include "wtf/DoublyLinkedList.h"
+
+namespace blink {
+
+enum NGExclusionType {
+ NGClearNone = 0,
+ NGClearFloatLeft = 1,
+ NGClearFloatRight = 2,
+ NGClearFragment = 4
+};
+
+enum NGFragmentationType {
+ FragmentNone,
+ FragmentPage,
+ FragmentColumn,
+ FragmentRegion
+};
+
+enum NGDirection { LeftToRight = 0, RightToLeft = 1 };
+
+class NGExclusion {
+ public:
+ NGExclusion();
+ ~NGExclusion() {}
+};
+
+// The NGPhysicalConstraintSpace contains the underlying data for the
+// NGConstraintSpace. It is not meant to be used directly as all members are in
+// the physical coordinate space. Instead NGConstraintSpace should be used.
+class CORE_EXPORT NGPhysicalConstraintSpace final
+ : public GarbageCollected<NGPhysicalConstraintSpace> {
+ public:
+ NGPhysicalConstraintSpace();
+ NGPhysicalConstraintSpace(const NGPhysicalConstraintSpace&);
+
+ void AddExclusion(const NGExclusion, unsigned options = 0);
+ DoublyLinkedList<const NGExclusion> Exclusions(unsigned options = 0) const;
+
+ DEFINE_INLINE_TRACE() {}
+
+ private:
+ friend class NGConstraintSpace;
+
+ NGPhysicalSize container_size_;
+
+ unsigned fixed_width_ : 1;
+ unsigned fixed_height_ : 1;
+ unsigned width_direction_triggers_scrollbar_ : 1;
+ unsigned height_direction_triggers_scrollbar_ : 1;
+ unsigned width_direction_fragmentation_type_ : 2;
+ unsigned height_direction_fragmentation_type_ : 2;
+
+ DoublyLinkedList<const NGExclusion> exclusions_;
+};
+
+} // namespace blink
+
+#endif // NGPhysicalConstraintSpace_h

Powered by Google App Engine
This is Rietveld 408576698