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,9 +47,10 @@ void FocusCycler::RotateFocus(Direction direction) {
views::Widget* widget = views::Widget::GetWidgetForNativeView(window);
// First try to rotate focus within the active widget. If that succeeds,
// we're done.
if (widget && widget->GetFocusManager()->RotatePaneFocus(
direction == BACKWARD ? views::FocusManager::kBackward
: views::FocusManager::kForward,
if (widget &&
widget->GetFocusManager()->RotatePaneFocus(
direction == BACKWARD ? views::FocusManager::Direction::kBackward
: views::FocusManager::Direction::kForward,
views::FocusManager::FocusCycleWrapping::kDisabled)) {
return;
}
......@@ -94,8 +95,8 @@ void FocusCycler::RotateFocus(Direction direction) {
views::FocusManager* focus_manager = widget->GetFocusManager();
focus_manager->ClearFocus();
focus_manager->RotatePaneFocus(
direction == BACKWARD ? views::FocusManager::kBackward
: views::FocusManager::kForward,
direction == BACKWARD ? views::FocusManager::Direction::kBackward
: views::FocusManager::Direction::kForward,
views::FocusManager::FocusCycleWrapping::kEnabled);
break;
} else {
......
......@@ -1570,7 +1570,8 @@ void BrowserView::RotatePaneFocus(bool forwards) {
return;
GetFocusManager()->RotatePaneFocus(
forwards ? views::FocusManager::kForward : views::FocusManager::kBackward,
forwards ? views::FocusManager::Direction::kForward
: views::FocusManager::Direction::kBackward,
views::FocusManager::FocusCycleWrapping::kEnabled);
}
......
......@@ -169,7 +169,7 @@ bool FocusManager::RotatePaneFocus(Direction direction,
// Initialize |index| to an appropriate starting index if nothing is
// 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.
const views::View* focused_view = GetFocusedView();
......@@ -185,7 +185,7 @@ bool FocusManager::RotatePaneFocus(Direction direction,
// Rotate focus.
int start_index = index;
for (;;) {
if (direction == kBackward)
if (direction == Direction::kBackward)
index--;
else
index++;
......
......@@ -137,7 +137,7 @@ class VIEWS_EXPORT FocusManager : public ViewObserver {
};
// TODO(dmazzoni): use Direction in place of bool reverse throughout.
enum Direction { kForward, kBackward };
enum class Direction { kForward, kBackward };
enum class FocusCycleWrapping { kEnabled, kDisabled };
......
......@@ -509,44 +509,46 @@ TEST_F(FocusManagerTest, RotatePaneFocus) {
FocusManager* focus_manager = GetWidget()->GetFocusManager();
// Advance forwards. Focus should stay trapped within each pane.
EXPECT_TRUE(focus_manager->RotatePaneFocus(
FocusManager::kForward, FocusManager::FocusCycleWrapping::kEnabled));
using Direction = FocusManager::Direction;
using FocusCycleWrapping = FocusManager::FocusCycleWrapping;
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusCycleWrapping::kEnabled));
EXPECT_EQ(v1, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false);
EXPECT_EQ(v2, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false);
EXPECT_EQ(v1, focus_manager->GetFocusedView());
EXPECT_TRUE(focus_manager->RotatePaneFocus(
FocusManager::kForward, FocusManager::FocusCycleWrapping::kEnabled));
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusCycleWrapping::kEnabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false);
EXPECT_EQ(v4, focus_manager->GetFocusedView());
focus_manager->AdvanceFocus(false);
EXPECT_EQ(v3, focus_manager->GetFocusedView());
EXPECT_TRUE(focus_manager->RotatePaneFocus(
FocusManager::kForward, FocusManager::FocusCycleWrapping::kEnabled));
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusCycleWrapping::kEnabled));
EXPECT_EQ(v1, focus_manager->GetFocusedView());
// Advance backwards.
EXPECT_TRUE(focus_manager->RotatePaneFocus(
FocusManager::kBackward, FocusManager::FocusCycleWrapping::kEnabled));
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kBackward,
FocusCycleWrapping::kEnabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView());
EXPECT_TRUE(focus_manager->RotatePaneFocus(
FocusManager::kBackward, FocusManager::FocusCycleWrapping::kEnabled));
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kBackward,
FocusCycleWrapping::kEnabled));
EXPECT_EQ(v1, focus_manager->GetFocusedView());
// Advance without wrap. When it gets to the end of the list of
// panes, RotatePaneFocus should return false but the current
// focused view shouldn't change.
EXPECT_TRUE(focus_manager->RotatePaneFocus(
FocusManager::kForward, FocusManager::FocusCycleWrapping::kDisabled));
EXPECT_TRUE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusCycleWrapping::kDisabled));
EXPECT_EQ(v3, focus_manager->GetFocusedView());
EXPECT_FALSE(focus_manager->RotatePaneFocus(
FocusManager::kForward, FocusManager::FocusCycleWrapping::kDisabled));
EXPECT_FALSE(focus_manager->RotatePaneFocus(Direction::kForward,
FocusCycleWrapping::kDisabled));
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