1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Copyright 2018 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef ASH_SYSTEM_AUDIO_UNIFIED_VOLUME_SLIDER_CONTROLLER_H_
- #define ASH_SYSTEM_AUDIO_UNIFIED_VOLUME_SLIDER_CONTROLLER_H_
- #include "ash/system/unified/unified_slider_view.h"
- namespace ash {
- // Controller of a slider that can change audio volume.
- class UnifiedVolumeSliderController : public UnifiedSliderListener {
- public:
- class Delegate {
- public:
- Delegate();
- virtual ~Delegate();
- virtual void OnAudioSettingsButtonClicked() = 0;
- base::WeakPtrFactory<Delegate> weak_ptr_factory_{this};
- };
- explicit UnifiedVolumeSliderController(Delegate* delegate);
- UnifiedVolumeSliderController(const UnifiedVolumeSliderController&) = delete;
- UnifiedVolumeSliderController& operator=(
- const UnifiedVolumeSliderController&) = delete;
- ~UnifiedVolumeSliderController() override;
- // UnifiedSliderListener:
- views::View* CreateView() override;
- void SliderValueChanged(views::Slider* sender,
- float value,
- float old_value,
- views::SliderChangeReason reason) override;
- void SliderButtonPressed();
- private:
- Delegate* const delegate_;
- };
- } // namespace ash
- #endif // ASH_SYSTEM_AUDIO_UNIFIED_VOLUME_SLIDER_CONTROLLER_H_
|