OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NGLayoutOpportunityIterator_h | 5 #ifndef NGLayoutOpportunityIterator_h |
6 #define NGLayoutOpportunityIterator_h | 6 #define NGLayoutOpportunityIterator_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "core/layout/ng/ng_constraint_space.h" | 9 #include "core/layout/ng/ng_constraint_space.h" |
10 #include "core/layout/ng/ng_layout_opportunity_tree_node.h" | 10 #include "core/layout/ng/ng_layout_opportunity_tree_node.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 // | 26 // |
27 // @param space Constraint space with exclusions for which this iterator needs | 27 // @param space Constraint space with exclusions for which this iterator needs |
28 // to generate layout opportunities. | 28 // to generate layout opportunities. |
29 // @param opt_origin_point Optional origin_point parameter that is used as a | 29 // @param opt_origin_point Optional origin_point parameter that is used as a |
30 // default start point for layout opportunities. | 30 // default start point for layout opportunities. |
31 // @param opt_leader_point Optional 'leader' parameter that is used to specify | 31 // @param opt_leader_point Optional 'leader' parameter that is used to specify |
32 // the ending point of temporary excluded rectangle | 32 // the ending point of temporary excluded rectangle |
33 // which starts from 'origin'. This rectangle may | 33 // which starts from 'origin'. This rectangle may |
34 // represent a text fragment for example. | 34 // represent a text fragment for example. |
35 NGLayoutOpportunityIterator( | 35 NGLayoutOpportunityIterator( |
36 NGConstraintSpace* space, | 36 const NGConstraintSpace* space, |
37 const WTF::Optional<NGLogicalOffset>& opt_origin_point = WTF::nullopt, | 37 const WTF::Optional<NGLogicalOffset>& opt_origin_point = WTF::nullopt, |
38 const WTF::Optional<NGLogicalOffset>& opt_leader_point = WTF::nullopt); | 38 const WTF::Optional<NGLogicalOffset>& opt_leader_point = WTF::nullopt); |
39 | 39 |
40 // Gets the next Layout Opportunity or nullptr if the search is exhausted. | 40 // Gets the next Layout Opportunity or nullptr if the search is exhausted. |
41 // TODO(chrome-layout-team): Refactor with using C++ <iterator> library. | 41 // TODO(chrome-layout-team): Refactor with using C++ <iterator> library. |
42 const NGLayoutOpportunity Next(); | 42 const NGLayoutOpportunity Next(); |
43 | 43 |
44 private: | 44 private: |
45 // Mutable Getters. | 45 // Mutable Getters. |
46 NGLayoutOpportunityTreeNode* MutableOpportunityTreeRoot() { | 46 NGLayoutOpportunityTreeNode* MutableOpportunityTreeRoot() { |
47 return opportunity_tree_root_.get(); | 47 return opportunity_tree_root_.get(); |
48 } | 48 } |
49 | 49 |
50 // Read-only Getters. | 50 // Read-only Getters. |
51 const NGLayoutOpportunityTreeNode* OpportunityTreeRoot() const { | 51 const NGLayoutOpportunityTreeNode* OpportunityTreeRoot() const { |
52 return opportunity_tree_root_.get(); | 52 return opportunity_tree_root_.get(); |
53 } | 53 } |
54 | 54 |
55 NGConstraintSpace* constraint_space_; | 55 const NGConstraintSpace* constraint_space_; |
56 | 56 |
57 NGLayoutOpportunities opportunities_; | 57 NGLayoutOpportunities opportunities_; |
58 NGLayoutOpportunities::const_iterator opportunity_iter_; | 58 NGLayoutOpportunities::const_iterator opportunity_iter_; |
59 Persistent<NGLayoutOpportunityTreeNode> opportunity_tree_root_; | 59 Persistent<NGLayoutOpportunityTreeNode> opportunity_tree_root_; |
60 }; | 60 }; |
61 | 61 |
62 } // namespace blink | 62 } // namespace blink |
63 | 63 |
64 #endif // NGLayoutOpportunityIterator_h | 64 #endif // NGLayoutOpportunityIterator_h |
OLD | NEW |