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

Side by Side Diff: third_party/WebKit/Source/core/layout/line/RootInlineBox.cpp

Issue 2916493002: Make SelectionState enum class (Closed)
Patch Set: Created 3 years, 6 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 /* 1 /*
2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 std::max(PrevRootBox()->LineBottom(), LineTop()) - result; 336 std::max(PrevRootBox()->LineBottom(), LineTop()) - result;
337 result = 337 result =
338 PrevRootBox()->ComputeOverAnnotationAdjustment(lowest_allowed_position); 338 PrevRootBox()->ComputeOverAnnotationAdjustment(lowest_allowed_position);
339 } 339 }
340 340
341 return result; 341 return result;
342 } 342 }
343 343
344 SelectionState RootInlineBox::GetSelectionState() const { 344 SelectionState RootInlineBox::GetSelectionState() const {
345 // Walk over all of the selected boxes. 345 // Walk over all of the selected boxes.
346 SelectionState state = SelectionNone; 346 SelectionState state = SelectionState::kNone;
347 for (InlineBox* box = FirstLeafChild(); box; box = box->NextLeafChild()) { 347 for (InlineBox* box = FirstLeafChild(); box; box = box->NextLeafChild()) {
348 SelectionState box_state = box->GetSelectionState(); 348 SelectionState box_state = box->GetSelectionState();
349 if ((box_state == SelectionStart && state == SelectionEnd) || 349 if ((box_state == SelectionState::kStart &&
350 (box_state == SelectionEnd && state == SelectionStart)) { 350 state == SelectionState::kEnd) ||
351 state = SelectionBoth; 351 (box_state == SelectionState::kEnd &&
352 } else if (state == SelectionNone || 352 state == SelectionState::kStart)) {
353 ((box_state == SelectionStart || box_state == SelectionEnd) && 353 state = SelectionState::kStartAndEnd;
354 (state == SelectionNone || state == SelectionInside))) { 354 } else if (state == SelectionState::kNone ||
355 ((box_state == SelectionState::kStart ||
356 box_state == SelectionState::kEnd) &&
357 (state == SelectionState::kNone ||
358 state == SelectionState::kInside))) {
355 state = box_state; 359 state = box_state;
356 } else if (box_state == SelectionNone && state == SelectionStart) { 360 } else if (box_state == SelectionState::kNone &&
361 state == SelectionState::kStart) {
357 // We are past the end of the selection. 362 // We are past the end of the selection.
358 state = SelectionBoth; 363 state = SelectionState::kStartAndEnd;
359 } 364 }
360 if (state == SelectionBoth) 365 if (state == SelectionState::kStartAndEnd)
361 break; 366 break;
362 } 367 }
363 368
364 return state; 369 return state;
365 } 370 }
366 371
367 InlineBox* RootInlineBox::FirstSelectedBox() const { 372 InlineBox* RootInlineBox::FirstSelectedBox() const {
368 for (InlineBox* box = FirstLeafChild(); box; box = box->NextLeafChild()) { 373 for (InlineBox* box = FirstLeafChild(); box; box = box->NextLeafChild()) {
369 if (box->GetSelectionState() != SelectionNone) 374 if (box->GetSelectionState() != SelectionState::kNone)
370 return box; 375 return box;
371 } 376 }
372 377
373 return nullptr; 378 return nullptr;
374 } 379 }
375 380
376 InlineBox* RootInlineBox::LastSelectedBox() const { 381 InlineBox* RootInlineBox::LastSelectedBox() const {
377 for (InlineBox* box = LastLeafChild(); box; box = box->PrevLeafChild()) { 382 for (InlineBox* box = LastLeafChild(); box; box = box->PrevLeafChild()) {
378 if (box->GetSelectionState() != SelectionNone) 383 if (box->GetSelectionState() != SelectionState::kNone)
379 return box; 384 return box;
380 } 385 }
381 386
382 return nullptr; 387 return nullptr;
383 } 388 }
384 389
385 LayoutUnit RootInlineBox::SelectionTop() const { 390 LayoutUnit RootInlineBox::SelectionTop() const {
386 LayoutUnit selection_top = line_top_; 391 LayoutUnit selection_top = line_top_;
387 if (has_annotations_before_) 392 if (has_annotations_before_)
388 selection_top -= !GetLineLayoutItem().Style()->IsFlippedLinesWritingMode() 393 selection_top -= !GetLineLayoutItem().Style()->IsFlippedLinesWritingMode()
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 } 792 }
788 end_box = nullptr; 793 end_box = nullptr;
789 return nullptr; 794 return nullptr;
790 } 795 }
791 796
792 const char* RootInlineBox::BoxName() const { 797 const char* RootInlineBox::BoxName() const {
793 return "RootInlineBox"; 798 return "RootInlineBox";
794 } 799 }
795 800
796 } // namespace blink 801 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp ('k') | third_party/WebKit/Source/core/page/TouchAdjustment.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698