Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2550)

Unified Diff: chrome/browser/resources/shared/js/cr/ui/repeating_button.js

Issue 11962043: Move webui resources from chrome\browser\resources\shared to ui\webui\resources. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/shared/js/cr/ui/repeating_button.js
===================================================================
--- chrome/browser/resources/shared/js/cr/ui/repeating_button.js (revision 177292)
+++ chrome/browser/resources/shared/js/cr/ui/repeating_button.js (working copy)
@@ -1,183 +0,0 @@
-// 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.
-
-cr.define('cr.ui', function() {
- /**
- * Creates a new button element. The repeating button behaves like a
- * keyboard button, which auto-repeats if held. This button is designed
- * for use with controls such as brightness and volume adjustment buttons.
- * @constructor
- * @extends {HTMLButtonElement}
- */
- var RepeatingButton = cr.ui.define('button');
-
- /**
- * DOM Events that may be fired by the Repeating button.
- */
- RepeatingButton.Event = {
- BUTTON_HELD: 'buttonHeld'
- };
-
- RepeatingButton.prototype = {
- __proto__: HTMLButtonElement.prototype,
-
- /**
- * Delay in milliseconds before the first repeat trigger of the button
- * held action.
- * @type {number}
- * @private
- */
- holdDelayTime_: 500,
-
- /**
- * Delay in milliseconds between triggers of the button held action.
- * @type {number}
- * @private
- */
- holdRepeatIntervalTime_: 50,
-
- /**
- * Callback function when repeated intervals trigger. Initialized when the
- * button is held for an initial delay period and cleared when the button
- * is released.
- * @type {function}
- * @private
- */
- intervalCallback_: undefined,
-
- /**
- * Callback function to arm the repeat timer. Initialized when the button
- * is pressed and cleared when the interval timer is set or the button is
- * released.
- * @type {function}
- * @private
- */
- armRepeaterCallback_: undefined,
-
- /**
- * Initializes the button.
- */
- decorate: function() {
- this.addEventListener('mousedown', this.buttonDown_.bind(this));
- this.addEventListener('mouseup', this.buttonUp_.bind(this));
- this.addEventListener('mouseout', this.buttonUp_.bind(this));
- this.addEventListener('touchstart', this.touchStart_.bind(this));
- this.addEventListener('touchend', this.buttonUp_.bind(this));
- this.addEventListener('touchcancel', this.buttonUp_.bind(this));
- },
-
- /**
- * Called when the user initiates a touch gesture.
- * @param {!Event} e The triggered event.
- * @private
- */
- touchStart_: function(e) {
- // Block system level gestures to prevent double tap to zoom. Also,
- // block following mouse event to prevent double firing of the button
- // held action in the case of a tap. Otherwise, a single tap action in
- // webkit generates the following event sequence: touchstart, touchend,
- // mouseover, mousemove, mousedown, mouseup and click.
- e.preventDefault();
- this.buttonDown_(e);
- },
-
- /**
- * Called when the user presses this button.
- * @param {!Event} e The triggered event.
- * @private
- */
- buttonDown_: function(e) {
- this.clearTimeout_();
- // Trigger the button held action immediately, after an initial delay and
- // then repeated based on a fixed time increment. The time intervals are
- // in agreement with the defaults for the ChromeOS keyboard and virtual
- // keyboard.
- // TODO(kevers): Consider adding a common location for picking up the
- // initial delay and repeat interval.
- this.buttonHeld_();
- var self = this;
- this.armRepeaterCallback_ = function() {
- // In the event of a click/tap operation, this button has already been
- // released by the time this timeout triggers. Test to ensure that the
- // button is still being held (i.e. clearTimeout has not been called).
- if (self.armRepeaterCallback_) {
- self.armRepeaterCallback_ = undefined;
- self.buttonHeld_();
- self.intervalCallback_ = setInterval(self.buttonHeld_.bind(self),
- self.holdRepeatIntervalTime_);
- }
- };
- setTimeout(this.armRepeaterCallback_, this.holdDelayTime_);
- },
-
- /**
- * Called when the user releases this button.
- * @param {!Event} e The triggered event.
- * @private
- */
- buttonUp_: function(e) {
- this.clearTimeout_();
- },
-
- /**
- * Resets the interval callback.
- * @private
- */
- clearTimeout_: function() {
- if (this.armRepeaterCallback_) {
- clearTimeout(this.armRepeaterCallback_);
- this.armRepeaterCallback_ = undefined;
- }
- if (this.intervalCallback_) {
- clearInterval(this.intervalCallback_);
- this.intervalCallback_ = undefined;
- }
- },
-
- /**
- * Dispatches the action associated with keeping this button pressed.
- * @private
- */
- buttonHeld_: function() {
- cr.dispatchSimpleEvent(this, RepeatingButton.Event.BUTTON_HELD);
- },
-
- /**
- * Getter for the initial delay before repeating.
- * @type {number} The delay in milliseconds.
- */
- get repeatDelay() {
- return this.holdDelayTime_;
- },
-
- /**
- * Setter for the initial delay before repeating.
- * @type {number} The delay in milliseconds.
- */
- set repeatDelay(delay) {
- this.holdDelayTime_ = delay;
- },
-
- /**
- * Getter for the repeat interval.
- * @type {number} The repeat interval in milliseconds.
- */
- get repeatInterval() {
- return this.holdRepeatIntervalTime_;
- },
-
- /**
- * Setter for the repeat interval.
- * @type {number} The interval in milliseconds.
- */
- set repeatInterval(delay) {
- this.holdRepeatIntervalTime_ = delay;
- }
- };
-
- return {
- RepeatingButton: RepeatingButton
- };
-});
-

Powered by Google App Engine
This is Rietveld 408576698