// Copyright (c) 2011 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. #include "ui/views/repeat_controller.h" #include namespace views { /////////////////////////////////////////////////////////////////////////////// // RepeatController, public: RepeatController::RepeatController(base::RepeatingClosure callback, const base::TickClock* tick_clock) : timer_(tick_clock), callback_(std::move(callback)) {} RepeatController::~RepeatController() = default; void RepeatController::Start() { // The first timer is slightly longer than subsequent repeats. timer_.Start(FROM_HERE, kInitialWait, this, &RepeatController::Run); } void RepeatController::Stop() { timer_.Stop(); } /////////////////////////////////////////////////////////////////////////////// // RepeatController, private: // static constexpr base::TimeDelta RepeatController::kInitialWait; // static constexpr base::TimeDelta RepeatController::kRepeatingWait; void RepeatController::Run() { timer_.Start(FROM_HERE, kRepeatingWait, this, &RepeatController::Run); callback_.Run(); } } // namespace views