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

Side by Side Diff: third_party/WebKit/Source/core/layout/ng/ng_layout_inline_items_builder.cc

Issue 2625553005: Changed EUnicodeBidi to an enum class and renamed its members (Closed)
Patch Set: Created 3 years, 11 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 unified diff | Download patch
OLDNEW
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 #include "core/layout/ng/ng_layout_inline_items_builder.h" 5 #include "core/layout/ng/ng_layout_inline_items_builder.h"
6 6
7 #include "core/layout/LayoutObject.h" 7 #include "core/layout/LayoutObject.h"
8 #include "core/layout/ng/ng_inline_node.h" 8 #include "core/layout/ng/ng_inline_node.h"
9 #include "core/style/ComputedStyle.h" 9 #include "core/style/ComputedStyle.h"
10 10
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 AppendAsOpaqueToSpaceCollapsing( 200 AppendAsOpaqueToSpaceCollapsing(
201 style->direction() == TextDirection::kRtl ? rtl : ltr); 201 style->direction() == TextDirection::kRtl ? rtl : ltr);
202 } 202 }
203 203
204 void NGLayoutInlineItemsBuilder::EnterBlock(const ComputedStyle* style) { 204 void NGLayoutInlineItemsBuilder::EnterBlock(const ComputedStyle* style) {
205 // Handle bidi-override on the block itself. 205 // Handle bidi-override on the block itself.
206 // Isolate and embed values are enforced by default and redundant on the block 206 // Isolate and embed values are enforced by default and redundant on the block
207 // elements. 207 // elements.
208 // Plaintext and direction are handled as the paragraph level by 208 // Plaintext and direction are handled as the paragraph level by
209 // NGBidiParagraph::SetParagraph(). 209 // NGBidiParagraph::SetParagraph().
210 if (style->unicodeBidi() == Override || 210 if (style->unicodeBidi() == EUnicodeBidi::kBidiOverride ||
211 style->unicodeBidi() == IsolateOverride) { 211 style->unicodeBidi() == EUnicodeBidi::kIsolateOverride) {
212 AppendBidiControl(style, leftToRightOverrideCharacter, 212 AppendBidiControl(style, leftToRightOverrideCharacter,
213 rightToLeftOverrideCharacter); 213 rightToLeftOverrideCharacter);
214 Enter(nullptr, popDirectionalFormattingCharacter); 214 Enter(nullptr, popDirectionalFormattingCharacter);
215 } 215 }
216 } 216 }
217 217
218 void NGLayoutInlineItemsBuilder::EnterInline(LayoutObject* node) { 218 void NGLayoutInlineItemsBuilder::EnterInline(LayoutObject* node) {
219 // https://drafts.csswg.org/css-writing-modes-3/#bidi-control-codes-injection- table 219 // https://drafts.csswg.org/css-writing-modes-3/#bidi-control-codes-injection- table
220 const ComputedStyle* style = node->style(); 220 const ComputedStyle* style = node->style();
221 switch (style->unicodeBidi()) { 221 switch (style->unicodeBidi()) {
222 case UBNormal: 222 case EUnicodeBidi::kNormal:
223 break; 223 break;
224 case Embed: 224 case EUnicodeBidi::kEmbed:
225 AppendBidiControl(style, leftToRightEmbedCharacter, 225 AppendBidiControl(style, leftToRightEmbedCharacter,
226 rightToLeftEmbedCharacter); 226 rightToLeftEmbedCharacter);
227 Enter(node, popDirectionalFormattingCharacter); 227 Enter(node, popDirectionalFormattingCharacter);
228 break; 228 break;
229 case Override: 229 case EUnicodeBidi::kBidiOverride:
230 AppendBidiControl(style, leftToRightOverrideCharacter, 230 AppendBidiControl(style, leftToRightOverrideCharacter,
231 rightToLeftOverrideCharacter); 231 rightToLeftOverrideCharacter);
232 Enter(node, popDirectionalFormattingCharacter); 232 Enter(node, popDirectionalFormattingCharacter);
233 break; 233 break;
234 case Isolate: 234 case EUnicodeBidi::kIsolate:
235 AppendBidiControl(style, leftToRightIsolateCharacter, 235 AppendBidiControl(style, leftToRightIsolateCharacter,
236 rightToLeftIsolateCharacter); 236 rightToLeftIsolateCharacter);
237 Enter(node, popDirectionalIsolateCharacter); 237 Enter(node, popDirectionalIsolateCharacter);
238 break; 238 break;
239 case Plaintext: 239 case EUnicodeBidi::kPlaintext:
240 AppendAsOpaqueToSpaceCollapsing(firstStrongIsolateCharacter); 240 AppendAsOpaqueToSpaceCollapsing(firstStrongIsolateCharacter);
241 Enter(node, popDirectionalIsolateCharacter); 241 Enter(node, popDirectionalIsolateCharacter);
242 break; 242 break;
243 case IsolateOverride: 243 case EUnicodeBidi::kIsolateOverride:
244 AppendAsOpaqueToSpaceCollapsing(firstStrongIsolateCharacter); 244 AppendAsOpaqueToSpaceCollapsing(firstStrongIsolateCharacter);
245 AppendBidiControl(style, leftToRightOverrideCharacter, 245 AppendBidiControl(style, leftToRightOverrideCharacter,
246 rightToLeftOverrideCharacter); 246 rightToLeftOverrideCharacter);
247 Enter(node, popDirectionalIsolateCharacter); 247 Enter(node, popDirectionalIsolateCharacter);
248 Enter(node, popDirectionalFormattingCharacter); 248 Enter(node, popDirectionalFormattingCharacter);
249 break; 249 break;
250 } 250 }
251 } 251 }
252 252
253 void NGLayoutInlineItemsBuilder::Enter(LayoutObject* node, 253 void NGLayoutInlineItemsBuilder::Enter(LayoutObject* node,
(...skipping 12 matching lines...) Expand all
266 } 266 }
267 267
268 void NGLayoutInlineItemsBuilder::Exit(LayoutObject* node) { 268 void NGLayoutInlineItemsBuilder::Exit(LayoutObject* node) {
269 while (!exits_.isEmpty() && exits_.back().node == node) { 269 while (!exits_.isEmpty() && exits_.back().node == node) {
270 AppendAsOpaqueToSpaceCollapsing(exits_.back().character); 270 AppendAsOpaqueToSpaceCollapsing(exits_.back().character);
271 exits_.pop_back(); 271 exits_.pop_back();
272 } 272 }
273 } 273 }
274 274
275 } // namespace blink 275 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698