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

Unified Diff: chrome/browser/resources/file_manager/js/scrollbar.js

Issue 39123003: [Files.app] Split the JavaScript files into subdirectories: common, background, and foreground (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed test failure. Created 7 years, 2 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/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;
-};

Powered by Google App Engine
This is Rietveld 408576698