| Index: chrome/browser/resources/file_manager/js/scrollbar.js
|
| diff --git a/chrome/browser/resources/file_manager/js/scrollbar.js b/chrome/browser/resources/file_manager/js/scrollbar.js
|
| deleted file mode 100644
|
| index a81fe8db12f5fad61629a0600a19fddacd15d9e7..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/resources/file_manager/js/scrollbar.js
|
| +++ /dev/null
|
| @@ -1,294 +0,0 @@
|
| -// Copyright (c) 2013 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.
|
| -
|
| -'use strict';
|
| -
|
| -/**
|
| - * Creates a new scroll bar element.
|
| - * @extends {HTMLDivElement}
|
| - * @constructor
|
| - */
|
| -var ScrollBar = cr.ui.define('div');
|
| -
|
| -/**
|
| - * Mode of the scrollbar. As for now, only vertical scrollbars are supported.
|
| - * @type {number}
|
| - */
|
| -ScrollBar.Mode = {
|
| - VERTICAL: 0,
|
| - HORIZONTAL: 1
|
| -};
|
| -
|
| -ScrollBar.prototype = {
|
| - set mode(value) {
|
| - this.mode_ = value;
|
| - if (this.mode_ == ScrollBar.Mode.VERTICAL) {
|
| - this.classList.remove('scrollbar-horizontal');
|
| - this.classList.add('scrollbar-vertical');
|
| - } else {
|
| - this.classList.remove('scrollbar-vertical');
|
| - this.classList.add('scrollbar-horizontal');
|
| - }
|
| - this.redraw_();
|
| - },
|
| - get mode() {
|
| - return this.mode_;
|
| - }
|
| -};
|
| -
|
| -/**
|
| - * Inherits after HTMLDivElement.
|
| - */
|
| -ScrollBar.prototype.__proto__ = HTMLDivElement.prototype;
|
| -
|
| -/**
|
| - * Initializes the DOM structure of the scrollbar.
|
| - */
|
| -ScrollBar.prototype.decorate = function() {
|
| - this.classList.add('scrollbar');
|
| - this.button_ = util.createChild(this, 'scrollbar-button', 'div');
|
| - this.mode = ScrollBar.Mode.VERTICAL;
|
| -
|
| - this.button_.addEventListener('mousedown',
|
| - this.onButtonPressed_.bind(this));
|
| - window.addEventListener('mouseup', this.onMouseUp_.bind(this));
|
| - window.addEventListener('mousemove', this.onMouseMove_.bind(this));
|
| -};
|
| -
|
| -/**
|
| - * Initialize a scrollbar.
|
| - *
|
| - * @param {Element} parent Parent element, must have a relative or absolute
|
| - * positioning.
|
| - * @param {Element=} opt_scrollableArea Element with scrollable contents.
|
| - * If not passed, then call attachToView manually when the scrollable
|
| - * element becomes available.
|
| - */
|
| -ScrollBar.prototype.initialize = function(parent, opt_scrollableArea) {
|
| - parent.appendChild(this);
|
| - if (opt_scrollableArea)
|
| - this.attachToView(opt_scrollableArea);
|
| -};
|
| -
|
| -/**
|
| - * Attaches the scrollbar to a scrollable element and attaches handlers.
|
| - * @param {Element} view Scrollable element.
|
| - */
|
| -ScrollBar.prototype.attachToView = function(view) {
|
| - this.view_ = view;
|
| - this.view_.addEventListener('scroll', this.onScroll_.bind(this));
|
| - this.view_.addEventListener('relayout', this.onRelayout_.bind(this));
|
| - this.domObserver_ = new MutationObserver(this.onDomChanged_.bind(this));
|
| - this.domObserver_.observe(this.view_, {subtree: true, attributes: true});
|
| - this.onRelayout_();
|
| -};
|
| -
|
| -/**
|
| - * Scroll handler.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.onScroll_ = function() {
|
| - this.scrollTop_ = this.view_.scrollTop;
|
| - this.redraw_();
|
| -};
|
| -
|
| -/**
|
| - * Relayout handler.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.onRelayout_ = function() {
|
| - this.scrollHeight_ = this.view_.scrollHeight;
|
| - this.clientHeight_ = this.view_.clientHeight;
|
| - this.offsetTop_ = this.view_.offsetTop;
|
| - this.scrollTop_ = this.view_.scrollTop;
|
| - this.redraw_();
|
| -};
|
| -
|
| -/**
|
| - * Pressing on the scrollbar's button handler.
|
| - *
|
| - * @param {Event} event Pressing event.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.onButtonPressed_ = function(event) {
|
| - this.buttonPressed_ = true;
|
| - this.buttonPressedEvent_ = event;
|
| - this.buttonPressedPosition_ = this.button_.offsetTop - this.view_.offsetTop;
|
| - this.button_.classList.add('pressed');
|
| -
|
| - event.preventDefault();
|
| -};
|
| -
|
| -/**
|
| - * Releasing the button handler. Note, that it may not be called when releasing
|
| - * outside of the window. Therefore this is also called from onMouseMove_.
|
| - *
|
| - * @param {Event} event Mouse event.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.onMouseUp_ = function(event) {
|
| - this.buttonPressed_ = false;
|
| - this.button_.classList.remove('pressed');
|
| -};
|
| -
|
| -/**
|
| - * Mouse move handler. Updates the scroll position.
|
| - *
|
| - * @param {Event} event Mouse event.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.onMouseMove_ = function(event) {
|
| - if (!this.buttonPressed_)
|
| - return;
|
| - if (!event.which) {
|
| - this.onMouseUp_(event);
|
| - return;
|
| - }
|
| - var clientSize = this.getClientHeight();
|
| - var totalSize = this.getTotalHeight();
|
| - // TODO(hirono): Fix the geometric calculation. crbug.com/253779
|
| - var buttonSize = Math.max(50, clientSize / totalSize * clientSize);
|
| - var buttonPosition = this.buttonPressedPosition_ +
|
| - (event.screenY - this.buttonPressedEvent_.screenY);
|
| - // Ensures the scrollbar is in the view.
|
| - buttonPosition =
|
| - Math.max(0, Math.min(buttonPosition, clientSize - buttonSize));
|
| - var scrollPosition;
|
| - if (clientSize > buttonSize) {
|
| - scrollPosition = Math.max(totalSize - clientSize, 0) *
|
| - buttonPosition / (clientSize - buttonSize);
|
| - } else {
|
| - scrollPosition = 0;
|
| - }
|
| -
|
| - this.scrollTop_ = scrollPosition;
|
| - this.view_.scrollTop = scrollPosition;
|
| - this.redraw_();
|
| -};
|
| -
|
| -/**
|
| - * Handles changed in Dom by redrawing the scrollbar. Ignores consecutive calls.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.onDomChanged_ = function() {
|
| - if (this.domChangedTimer_) {
|
| - clearTimeout(this.domChangedTimer_);
|
| - this.domChangedTimer_ = null;
|
| - }
|
| - this.domChangedTimer_ = setTimeout(function() {
|
| - this.onRelayout_();
|
| - this.domChangedTimer_ = null;
|
| - }.bind(this), 50);
|
| -};
|
| -
|
| -/**
|
| - * Redraws the scrollbar.
|
| - * @private
|
| - */
|
| -ScrollBar.prototype.redraw_ = function() {
|
| - if (!this.view_)
|
| - return;
|
| -
|
| - var clientSize = this.getClientHeight();
|
| - var clientTop = this.offsetTop_;
|
| - var scrollPosition = this.scrollTop_;
|
| - var totalSize = this.getTotalHeight();
|
| - var hidden = totalSize <= clientSize;
|
| -
|
| - var buttonSize = Math.max(50, clientSize / totalSize * clientSize);
|
| - var buttonPosition;
|
| - if (clientSize - buttonSize > 0) {
|
| - buttonPosition = scrollPosition / (totalSize - clientSize) *
|
| - (clientSize - buttonSize);
|
| - } else {
|
| - buttonPosition = 0;
|
| - }
|
| - var buttonTop = buttonPosition + clientTop;
|
| -
|
| - var time = Date.now();
|
| - if (this.hidden != hidden ||
|
| - this.lastButtonTop_ != buttonTop ||
|
| - this.lastButtonSize_ != buttonSize) {
|
| - requestAnimationFrame(function() {
|
| - this.hidden = hidden;
|
| - this.button_.style.top = buttonTop + 'px';
|
| - this.button_.style.height = buttonSize + 'px';
|
| - }.bind(this));
|
| - }
|
| -
|
| - this.lastButtonTop_ = buttonTop;
|
| - this.lastButtonSize_ = buttonSize;
|
| -};
|
| -
|
| -/**
|
| - * Returns the viewport height of the view.
|
| - * @return {number} The viewport height of the view in px.
|
| - * @protected
|
| - */
|
| -ScrollBar.prototype.getClientHeight = function() {
|
| - return this.clientHeight_;
|
| -};
|
| -
|
| -/**
|
| - * Returns the total height of the view.
|
| - * @return {number} The total height of the view in px.
|
| - * @protected
|
| - */
|
| -ScrollBar.prototype.getTotalHeight = function() {
|
| - return this.scrollHeight_;
|
| -};
|
| -
|
| -/**
|
| - * Creates a new scroll bar for elements in the main panel.
|
| - * @extends {ScrollBar}
|
| - * @constructor
|
| - */
|
| -var MainPanelScrollBar = cr.ui.define('div');
|
| -
|
| -/**
|
| - * Inherits after ScrollBar.
|
| - */
|
| -MainPanelScrollBar.prototype.__proto__ = ScrollBar.prototype;
|
| -
|
| -/** @override */
|
| -MainPanelScrollBar.prototype.decorate = function() {
|
| - ScrollBar.prototype.decorate.call(this);
|
| -
|
| - /**
|
| - * Margin for the transparent preview panel at the bottom.
|
| - * @type {number}
|
| - * @private
|
| - */
|
| - this.bottomMarginForPanel_ = 0;
|
| -};
|
| -
|
| -/**
|
| - * GReturns the viewport height of the view, considering the preview panel.
|
| - *
|
| - * @return {number} The viewport height of the view in px.
|
| - * @override
|
| - * @protected
|
| - */
|
| -MainPanelScrollBar.prototype.getClientHeight = function() {
|
| - return this.clientHeight_ - this.bottomMarginForPanel_;
|
| -};
|
| -
|
| -/**
|
| - * Returns the total height of the view, considering the preview panel.
|
| - *
|
| - * @return {number} The total height of the view in px.
|
| - * @override
|
| - * @protected
|
| - */
|
| -MainPanelScrollBar.prototype.getTotalHeight = function() {
|
| - return this.scrollHeight_ - this.bottomMarginForPanel_;
|
| -};
|
| -
|
| -/**
|
| - * Sets the bottom margin height of the view for the transparent preview panel.
|
| - * @param {number} margin Margin to be set in px.
|
| - */
|
| -MainPanelScrollBar.prototype.setBottomMarginForPanel = function(margin) {
|
| - this.bottomMarginForPanel_ = margin;
|
| -};
|
|
|