Commit 7a2c82c8 authored by Kristyn Hamasaki's avatar Kristyn Hamasaki Committed by Commit Bot

Convert some Slider fields to be properties

Bug: 972150
Change-Id: Iaceb58f88fa48baedda753c0520a552edeaff556
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1649306Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Kristyn Hamasaki <khamasaki@google.com>
Cr-Commit-Position: refs/heads/master@{#672721}
parent 2bf52e12
...@@ -151,7 +151,7 @@ void UnifiedVolumeView::Update(bool by_user) { ...@@ -151,7 +151,7 @@ void UnifiedVolumeView::Update(bool by_user) {
float level = CrasAudioHandler::Get()->GetOutputVolumePercent() / 100.f; float level = CrasAudioHandler::Get()->GetOutputVolumePercent() / 100.f;
// Indicate that the slider is inactive when it's muted. // Indicate that the slider is inactive when it's muted.
slider()->UpdateState(!is_muted); slider()->SetIsActive(!is_muted);
// The button should be gray whay muted and colored otherwise. // The button should be gray whay muted and colored otherwise.
button()->SetToggled(!is_muted); button()->SetToggled(!is_muted);
...@@ -165,7 +165,7 @@ void UnifiedVolumeView::Update(bool by_user) { ...@@ -165,7 +165,7 @@ void UnifiedVolumeView::Update(bool by_user) {
// there will be a small discrepancy between slider's value and volume level // there will be a small discrepancy between slider's value and volume level
// on audio side. To avoid the jittering in slider UI, do not set change // on audio side. To avoid the jittering in slider UI, do not set change
// slider value if the change is less than the threshold. // slider value if the change is less than the threshold.
if (std::abs(level - slider()->value()) < kSliderIgnoreUpdateThreshold) if (std::abs(level - slider()->GetValue()) < kSliderIgnoreUpdateThreshold)
return; return;
SetSliderValue(level, by_user); SetSliderValue(level, by_user);
......
...@@ -130,7 +130,7 @@ UnifiedSliderView::UnifiedSliderView(UnifiedSliderListener* listener, ...@@ -130,7 +130,7 @@ UnifiedSliderView::UnifiedSliderView(UnifiedSliderListener* listener,
// Prevent an accessibility event while initiallizing this view. Typically // Prevent an accessibility event while initiallizing this view. Typically
// the first update of the slider value is conducted by the caller function // the first update of the slider value is conducted by the caller function
// to reflect the current value. // to reflect the current value.
slider_->set_enable_accessibility_events(false); slider_->SetEnableAccessibilityEvents(false);
slider_->GetViewAccessibility().OverrideName( slider_->GetViewAccessibility().OverrideName(
l10n_util::GetStringUTF16(accessible_name_id)); l10n_util::GetStringUTF16(accessible_name_id));
...@@ -152,7 +152,7 @@ void UnifiedSliderView::SetSliderValue(float value, bool by_user) { ...@@ -152,7 +152,7 @@ void UnifiedSliderView::SetSliderValue(float value, bool by_user) {
slider_->SetValue(value); slider_->SetValue(value);
if (by_user) if (by_user)
slider_->set_enable_accessibility_events(true); slider_->SetEnableAccessibilityEvents(true);
} }
const char* UnifiedSliderView::GetClassName() const { const char* UnifiedSliderView::GetClassName() const {
......
...@@ -76,13 +76,34 @@ Slider::Slider(SliderListener* listener) ...@@ -76,13 +76,34 @@ Slider::Slider(SliderListener* listener)
Slider::~Slider() = default; Slider::~Slider() = default;
float Slider::GetValue() const {
return value_;
}
void Slider::SetValue(float value) { void Slider::SetValue(float value) {
SetValueInternal(value, VALUE_CHANGED_BY_API); SetValueInternal(value, VALUE_CHANGED_BY_API);
} }
void Slider::UpdateState(bool control_on) { bool Slider::GetEnableAccessibilityEvents() const {
is_active_ = control_on; return accessibility_events_enabled_;
SchedulePaint(); }
void Slider::SetEnableAccessibilityEvents(bool enabled) {
if (accessibility_events_enabled_ == enabled)
return;
accessibility_events_enabled_ = enabled;
OnPropertyChanged(&accessibility_events_enabled_, kPropertyEffectsNone);
}
bool Slider::GetIsActive() const {
return is_active_;
}
void Slider::SetIsActive(bool is_active) {
if (is_active == is_active_)
return;
is_active_ = is_active;
OnPropertyChanged(&is_active_, kPropertyEffectsPaint);
} }
float Slider::GetAnimatingValue() const{ float Slider::GetAnimatingValue() const{
...@@ -140,8 +161,9 @@ void Slider::SetValueInternal(float value, SliderChangeReason reason) { ...@@ -140,8 +161,9 @@ void Slider::SetValueInternal(float value, SliderChangeReason reason) {
move_animation_->SetSlideDuration(kSlideValueChangeDurationMs); move_animation_->SetSlideDuration(kSlideValueChangeDurationMs);
move_animation_->Show(); move_animation_->Show();
} }
OnPropertyChanged(&value_, kPropertyEffectsNone);
} else { } else {
SchedulePaint(); OnPropertyChanged(&value_, kPropertyEffectsPaint);
} }
if (accessibility_events_enabled_) { if (accessibility_events_enabled_) {
...@@ -355,6 +377,9 @@ void Slider::OnGestureEvent(ui::GestureEvent* event) { ...@@ -355,6 +377,9 @@ void Slider::OnGestureEvent(ui::GestureEvent* event) {
BEGIN_METADATA(Slider) BEGIN_METADATA(Slider)
METADATA_PARENT_CLASS(View) METADATA_PARENT_CLASS(View)
ADD_PROPERTY_METADATA(Slider, float, Value)
ADD_PROPERTY_METADATA(Slider, bool, EnableAccessibilityEvents)
ADD_PROPERTY_METADATA(Slider, bool, IsActive)
END_METADATA() END_METADATA()
} // namespace views } // namespace views
...@@ -49,15 +49,15 @@ class VIEWS_EXPORT Slider : public View, public gfx::AnimationDelegate { ...@@ -49,15 +49,15 @@ class VIEWS_EXPORT Slider : public View, public gfx::AnimationDelegate {
explicit Slider(SliderListener* listener); explicit Slider(SliderListener* listener);
~Slider() override; ~Slider() override;
float value() const { return value_; } float GetValue() const;
void SetValue(float value); void SetValue(float value);
void set_enable_accessibility_events(bool enabled) { bool GetEnableAccessibilityEvents() const;
accessibility_events_enabled_ = enabled; void SetEnableAccessibilityEvents(bool enabled);
}
// Update UI based on control on/off state. // Gets/Sets IsActive state
void UpdateState(bool control_on); bool GetIsActive() const;
void SetIsActive(bool is_active);
protected: protected:
// Returns the current position of the thumb on the slider. // Returns the current position of the thumb on the slider.
......
...@@ -233,20 +233,20 @@ void SliderTest::ClickAt(int x, int y) { ...@@ -233,20 +233,20 @@ void SliderTest::ClickAt(int x, int y) {
TEST_F(SliderTest, UpdateFromClickHorizontal) { TEST_F(SliderTest, UpdateFromClickHorizontal) {
ClickAt(0, 0); ClickAt(0, 0);
EXPECT_EQ(0.0f, slider()->value()); EXPECT_EQ(0.0f, slider()->GetValue());
ClickAt(max_x(), 0); ClickAt(max_x(), 0);
EXPECT_EQ(1.0f, slider()->value()); EXPECT_EQ(1.0f, slider()->GetValue());
} }
TEST_F(SliderTest, UpdateFromClickRTLHorizontal) { TEST_F(SliderTest, UpdateFromClickRTLHorizontal) {
base::i18n::SetICUDefaultLocale("he"); base::i18n::SetICUDefaultLocale("he");
ClickAt(0, 0); ClickAt(0, 0);
EXPECT_EQ(1.0f, slider()->value()); EXPECT_EQ(1.0f, slider()->GetValue());
ClickAt(max_x(), 0); ClickAt(max_x(), 0);
EXPECT_EQ(0.0f, slider()->value()); EXPECT_EQ(0.0f, slider()->GetValue());
} }
// No touch on desktop Mac. Tracked in http://crbug.com/445520. // No touch on desktop Mac. Tracked in http://crbug.com/445520.
...@@ -257,17 +257,17 @@ TEST_F(SliderTest, SliderValueForTapGesture) { ...@@ -257,17 +257,17 @@ TEST_F(SliderTest, SliderValueForTapGesture) {
// Tap below the minimum. // Tap below the minimum.
slider()->SetValue(0.5); slider()->SetValue(0.5);
event_generator()->GestureTapAt(gfx::Point(0, 0)); event_generator()->GestureTapAt(gfx::Point(0, 0));
EXPECT_FLOAT_EQ(0, slider()->value()); EXPECT_FLOAT_EQ(0, slider()->GetValue());
// Tap above the maximum. // Tap above the maximum.
slider()->SetValue(0.5); slider()->SetValue(0.5);
event_generator()->GestureTapAt(gfx::Point(max_x(), max_y())); event_generator()->GestureTapAt(gfx::Point(max_x(), max_y()));
EXPECT_FLOAT_EQ(1, slider()->value()); EXPECT_FLOAT_EQ(1, slider()->GetValue());
// Tap somwhere in the middle. // Tap somwhere in the middle.
slider()->SetValue(0.5); slider()->SetValue(0.5);
event_generator()->GestureTapAt(gfx::Point(0.75 * max_x(), 0.75 * max_y())); event_generator()->GestureTapAt(gfx::Point(0.75 * max_x(), 0.75 * max_y()));
EXPECT_NEAR(0.75, slider()->value(), 0.03); EXPECT_NEAR(0.75, slider()->GetValue(), 0.03);
} }
// Test the slider location after a scroll gesture. // Test the slider location after a scroll gesture.
...@@ -277,14 +277,14 @@ TEST_F(SliderTest, SliderValueForScrollGesture) { ...@@ -277,14 +277,14 @@ TEST_F(SliderTest, SliderValueForScrollGesture) {
event_generator()->GestureScrollSequence( event_generator()->GestureScrollSequence(
gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(0, 0), gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(0, 0),
base::TimeDelta::FromMilliseconds(10), 5 /* steps */); base::TimeDelta::FromMilliseconds(10), 5 /* steps */);
EXPECT_EQ(0, slider()->value()); EXPECT_EQ(0, slider()->GetValue());
// Scroll above the maximum. // Scroll above the maximum.
slider()->SetValue(0.5); slider()->SetValue(0.5);
event_generator()->GestureScrollSequence( event_generator()->GestureScrollSequence(
gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(max_x(), max_y()), gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(max_x(), max_y()),
base::TimeDelta::FromMilliseconds(10), 5 /* steps */); base::TimeDelta::FromMilliseconds(10), 5 /* steps */);
EXPECT_EQ(1, slider()->value()); EXPECT_EQ(1, slider()->GetValue());
// Scroll somewhere in the middle. // Scroll somewhere in the middle.
slider()->SetValue(0.25); slider()->SetValue(0.25);
...@@ -292,7 +292,7 @@ TEST_F(SliderTest, SliderValueForScrollGesture) { ...@@ -292,7 +292,7 @@ TEST_F(SliderTest, SliderValueForScrollGesture) {
gfx::Point(0.25 * max_x(), 0.25 * max_y()), gfx::Point(0.25 * max_x(), 0.25 * max_y()),
gfx::Point(0.75 * max_x(), 0.75 * max_y()), gfx::Point(0.75 * max_x(), 0.75 * max_y()),
base::TimeDelta::FromMilliseconds(10), 5 /* steps */); base::TimeDelta::FromMilliseconds(10), 5 /* steps */);
EXPECT_NEAR(0.75, slider()->value(), 0.03); EXPECT_NEAR(0.75, slider()->GetValue(), 0.03);
} }
// Test the slider location by adjusting it using keyboard. // Test the slider location by adjusting it using keyboard.
...@@ -301,38 +301,38 @@ TEST_F(SliderTest, SliderValueForKeyboard) { ...@@ -301,38 +301,38 @@ TEST_F(SliderTest, SliderValueForKeyboard) {
slider()->SetValue(value); slider()->SetValue(value);
slider()->RequestFocus(); slider()->RequestFocus();
event_generator()->PressKey(ui::VKEY_RIGHT, 0); event_generator()->PressKey(ui::VKEY_RIGHT, 0);
EXPECT_GT(slider()->value(), value); EXPECT_GT(slider()->GetValue(), value);
slider()->SetValue(value); slider()->SetValue(value);
event_generator()->PressKey(ui::VKEY_LEFT, 0); event_generator()->PressKey(ui::VKEY_LEFT, 0);
EXPECT_LT(slider()->value(), value); EXPECT_LT(slider()->GetValue(), value);
slider()->SetValue(value); slider()->SetValue(value);
event_generator()->PressKey(ui::VKEY_UP, 0); event_generator()->PressKey(ui::VKEY_UP, 0);
EXPECT_GT(slider()->value(), value); EXPECT_GT(slider()->GetValue(), value);
slider()->SetValue(value); slider()->SetValue(value);
event_generator()->PressKey(ui::VKEY_DOWN, 0); event_generator()->PressKey(ui::VKEY_DOWN, 0);
EXPECT_LT(slider()->value(), value); EXPECT_LT(slider()->GetValue(), value);
// RTL reverse left/right but not up/down. // RTL reverse left/right but not up/down.
base::i18n::SetICUDefaultLocale("he"); base::i18n::SetICUDefaultLocale("he");
EXPECT_TRUE(base::i18n::IsRTL()); EXPECT_TRUE(base::i18n::IsRTL());
event_generator()->PressKey(ui::VKEY_RIGHT, 0); event_generator()->PressKey(ui::VKEY_RIGHT, 0);
EXPECT_LT(slider()->value(), value); EXPECT_LT(slider()->GetValue(), value);
slider()->SetValue(value); slider()->SetValue(value);
event_generator()->PressKey(ui::VKEY_LEFT, 0); event_generator()->PressKey(ui::VKEY_LEFT, 0);
EXPECT_GT(slider()->value(), value); EXPECT_GT(slider()->GetValue(), value);
slider()->SetValue(value); slider()->SetValue(value);
event_generator()->PressKey(ui::VKEY_UP, 0); event_generator()->PressKey(ui::VKEY_UP, 0);
EXPECT_GT(slider()->value(), value); EXPECT_GT(slider()->GetValue(), value);
slider()->SetValue(value); slider()->SetValue(value);
event_generator()->PressKey(ui::VKEY_DOWN, 0); event_generator()->PressKey(ui::VKEY_DOWN, 0);
EXPECT_LT(slider()->value(), value); EXPECT_LT(slider()->GetValue(), value);
} }
// Verifies the correct SliderListener events are raised for a tap gesture. // Verifies the correct SliderListener events are raised for a tap gesture.
......
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