Commit 5b02078f authored by Hwanseung Lee's avatar Hwanseung Lee Committed by Commit Bot

Convert enum to enum class for FocusManager::Direction

Use enum class instead of enum for FocusManager::Direction.
enum class is more type safety.

Bug: 940736
Change-Id: I2cce66fe638739b602637f756e6470d3a553e75c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2497733Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Hwanseung Lee <hwanseung@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821568}
parent 8e4ca09a
...@@ -47,10 +47,11 @@ void FocusCycler::RotateFocus(Direction direction) { ...@@ -47,10 +47,11 @@ void FocusCycler::RotateFocus(Direction direction) {
views::Widget* widget = views::Widget::GetWidgetForNativeView(window); views::Widget* widget = views::Widget::GetWidgetForNativeView(window);
// First try to rotate focus within the active widget. If that succeeds, // First try to rotate focus within the active widget. If that succeeds,
// we're done. // we're done.
if (widget && widget->GetFocusManager()->RotatePaneFocus( if (widget &&
direction == BACKWARD ? views::FocusManager::kBackward widget->GetFocusManager()->RotatePaneFocus(
: views::FocusManager::kForward, direction == BACKWARD ? views::FocusManager::Direction::kBackward
views::FocusManager::FocusCycleWrapping::kDisabled)) { : views::FocusManager::Direction::kForward,
views::FocusManager::FocusCycleWrapping::kDisabled)) {
return; return;
} }
} }
...@@ -94,8 +95,8 @@ void FocusCycler::RotateFocus(Direction direction) { ...@@ -94,8 +95,8 @@ void FocusCycler::RotateFocus(Direction direction) {
views::FocusManager* focus_manager = widget->GetFocusManager(); views::FocusManager* focus_manager = widget->GetFocusManager();
focus_manager->ClearFocus(); focus_manager->ClearFocus();
focus_manager->RotatePaneFocus( focus_manager->RotatePaneFocus(
direction == BACKWARD ? views::FocusManager::kBackward direction == BACKWARD ? views::FocusManager::Direction::kBackward
: views::FocusManager::kForward, : views::FocusManager::Direction::kForward,
views::FocusManager::FocusCycleWrapping::kEnabled); views::FocusManager::FocusCycleWrapping::kEnabled);
break; break;
} else { } else {
......
...@@ -1570,7 +1570,8 @@ void BrowserView::RotatePaneFocus(bool forwards) { ...@@ -1570,7 +1570,8 @@ void BrowserView::RotatePaneFocus(bool forwards) {
return; return;
GetFocusManager()->RotatePaneFocus( GetFocusManager()->RotatePaneFocus(
forwards ? views::FocusManager::kForward : views::FocusManager::kBackward, forwards ? views::FocusManager::Direction::kForward
: views::FocusManager::Direction::kBackward,
views::FocusManager::FocusCycleWrapping::kEnabled); views::FocusManager::FocusCycleWrapping::kEnabled);
} }
......
...@@ -169,7 +169,7 @@ bool FocusManager::RotatePaneFocus(Direction direction, ...@@ -169,7 +169,7 @@ bool FocusManager::RotatePaneFocus(Direction direction,
// Initialize |index| to an appropriate starting index if nothing is // Initialize |index| to an appropriate starting index if nothing is
// focused initially. // focused initially.
int index = direction == kBackward ? 0 : count - 1; int index = direction == Direction::kBackward ? 0 : count - 1;
// Check to see if a pane already has focus and update the index accordingly. // Check to see if a pane already has focus and update the index accordingly.
const views::View* focused_view = GetFocusedView(); const views::View* focused_view = GetFocusedView();
...@@ -185,7 +185,7 @@ bool FocusManager::RotatePaneFocus(Direction direction, ...@@ -185,7 +185,7 @@ bool FocusManager::RotatePaneFocus(Direction direction,
// Rotate focus. // Rotate focus.
int start_index = index; int start_index = index;
for (;;) { for (;;) {
if (direction == kBackward) if (direction == Direction::kBackward)
index--; index--;
else else
index++; index++;
......
...@@ -137,7 +137,7 @@ class VIEWS_EXPORT FocusManager : public ViewObserver { ...@@ -137,7 +137,7 @@ class VIEWS_EXPORT FocusManager : public ViewObserver {
}; };
// TODO(dmazzoni): use Direction in place of bool reverse throughout. // TODO(dmazzoni): use Direction in place of bool reverse throughout.
enum Direction { kForward, kBackward }; enum class Direction { kForward, kBackward };
enum class FocusCycleWrapping { kEnabled, kDisabled }; enum class FocusCycleWrapping { kEnabled, kDisabled };
......
...@@ -509,44 +509,46 @@ TEST_F(FocusManagerTest, RotatePaneFocus) { ...@@ -509,44 +509,46 @@ TEST_F(FocusManagerTest, RotatePaneFocus) {
FocusManager* focus_manager = GetWidget()->GetFocusManager(); FocusManager* focus_manager = GetWidget()->GetFocusManager();
// Advance forwards. Focus should stay trapped within each pane. // Advance forwards. Focus should stay trapped within each pane.
EXPECT_TRUE(focus_manager->RotatePaneFocus( using Direction = FocusManager::Direction;
FocusManager::kForward, FocusManager::FocusCycleWrapping::kEnabled)); using FocusCycleWrapping = FocusManager::FocusCycleWrapping;
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusCycleWrapping::kEnabled));
EXPECT_EQ(v1, focus_manager->GetFocusedView()); EXPECT_EQ(v1, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false); focus_manager->AdvanceFocus(false);
EXPECT_EQ(v2, focus_manager->GetFocusedView()); EXPECT_EQ(v2, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false); focus_manager->AdvanceFocus(false);
EXPECT_EQ(v1, focus_manager->GetFocusedView()); EXPECT_EQ(v1, focus_manager->GetFocusedView());
EXPECT_TRUE(focus_manager->RotatePaneFocus( EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusManager::kForward, FocusManager::FocusCycleWrapping::kEnabled)); FocusCycleWrapping::kEnabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView()); EXPECT_EQ(v3, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false); focus_manager->AdvanceFocus(false);
EXPECT_EQ(v4, focus_manager->GetFocusedView()); EXPECT_EQ(v4, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false); focus_manager->AdvanceFocus(false);
EXPECT_EQ(v3, focus_manager->GetFocusedView()); EXPECT_EQ(v3, focus_manager->GetFocusedView());
EXPECT_TRUE(focus_manager->RotatePaneFocus( EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusManager::kForward, FocusManager::FocusCycleWrapping::kEnabled)); FocusCycleWrapping::kEnabled));
EXPECT_EQ(v1, focus_manager->GetFocusedView()); EXPECT_EQ(v1, focus_manager->GetFocusedView());
// Advance backwards. // Advance backwards.
EXPECT_TRUE(focus_manager->RotatePaneFocus( EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kBackward,
FocusManager::kBackward, FocusManager::FocusCycleWrapping::kEnabled)); FocusCycleWrapping::kEnabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView()); EXPECT_EQ(v3, focus_manager->GetFocusedView());
EXPECT_TRUE(focus_manager->RotatePaneFocus( EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kBackward,
FocusManager::kBackward, FocusManager::FocusCycleWrapping::kEnabled)); FocusCycleWrapping::kEnabled));
EXPECT_EQ(v1, focus_manager->GetFocusedView()); EXPECT_EQ(v1, focus_manager->GetFocusedView());
// Advance without wrap. When it gets to the end of the list of // Advance without wrap. When it gets to the end of the list of
// panes, RotatePaneFocus should return false but the current // panes, RotatePaneFocus should return false but the current
// focused view shouldn't change. // focused view shouldn't change.
EXPECT_TRUE(focus_manager->RotatePaneFocus( EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusManager::kForward, FocusManager::FocusCycleWrapping::kDisabled)); FocusCycleWrapping::kDisabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView()); EXPECT_EQ(v3, focus_manager->GetFocusedView());
EXPECT_FALSE(focus_manager->RotatePaneFocus( EXPECT_FALSE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusManager::kForward, FocusManager::FocusCycleWrapping::kDisabled)); FocusCycleWrapping::kDisabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView()); EXPECT_EQ(v3, focus_manager->GetFocusedView());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment