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

Side by Side Diff: remoting/webapp/app_remoting/js/context_menu_dom.js

Issue 803653004: Update Chromoting to use /third_party/closure_compiler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unused types Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * Provide an alternative location for the application's context menu items 7 * Provide an alternative location for the application's context menu items
8 * on platforms that don't provide it. 8 * on platforms that don't provide it.
9 * 9 *
10 * To mimic the behaviour of an OS-provided context menu, the menu is dismissed 10 * To mimic the behaviour of an OS-provided context menu, the menu is dismissed
(...skipping 23 matching lines...) Expand all
34 /** 34 /**
35 * @type {HTMLElement} 35 * @type {HTMLElement}
36 * @private 36 * @private
37 */ 37 */
38 this.root_ = root; 38 this.root_ = root;
39 /** 39 /**
40 * @type {HTMLElement} 40 * @type {HTMLElement}
41 * @private 41 * @private
42 */ 42 */
43 this.stub_ = /** @type {HTMLElement} */ 43 this.stub_ = /** @type {HTMLElement} */
44 this.root_.querySelector('.context-menu-stub'); 44 (this.root_.querySelector('.context-menu-stub'));
45 /** 45 /**
46 * @type {HTMLElement} 46 * @type {HTMLElement}
47 * @private 47 * @private
48 */ 48 */
49 this.icon_ = /** @type {HTMLElement} */ 49 this.icon_ = /** @type {HTMLElement} */
50 this.root_.querySelector('.context-menu-icon'); 50 (this.root_.querySelector('.context-menu-icon'));
51 /** 51 /**
52 * @type {HTMLElement} 52 * @type {HTMLElement}
53 * @private 53 * @private
54 */ 54 */
55 this.screen_ = /** @type {HTMLElement} */ 55 this.screen_ = /** @type {HTMLElement} */
56 this.root_.querySelector('.context-menu-screen'); 56 (this.root_.querySelector('.context-menu-screen'));
57 /** 57 /**
58 * @type {HTMLElement} 58 * @type {HTMLElement}
59 * @private 59 * @private
60 */ 60 */
61 this.menu_ = /** @type {HTMLElement} */ this.root_.querySelector('ul'); 61 this.menu_ = /** @type {HTMLElement} */ (this.root_.querySelector('ul'));
62 /** 62 /**
63 * @type {number} 63 * @type {number}
64 * @private 64 * @private
65 */ 65 */
66 this.bottom_ = 8; 66 this.bottom_ = 8;
67 /** 67 /**
68 * @type {base.EventSource} 68 * @type {base.EventSource}
69 * @private 69 * @private
70 */ 70 */
71 this.eventSource_ = new base.EventSource(); 71 this.eventSource_ = new base.EventSource();
72 /** 72 /**
73 * @type {string} 73 * @type {string}
74 * @private 74 * @private
75 */ 75 */
76 this.eventName_ = '_click'; 76 this.eventName_ = '_click';
77 /** 77 /**
78 * Since the same element is used to lock the icon open and to drag it, we 78 * Since the same element is used to lock the icon open and to drag it, we
79 * must keep track of drag events so that the corresponding click event can 79 * must keep track of drag events so that the corresponding click event can
80 * be ignored. 80 * be ignored.
81 * 81 *
82 * @type {boolean} 82 * @type {boolean}
83 * @private 83 * @private
84 */ 84 */
85 this.stubDragged_ = false; 85 this.stubDragged_ = false;
86 86
87 /* 87 /**
88 * @private 88 * @private
89 */ 89 */
90 this.dragAndDrop_ = new remoting.DragAndDrop( 90 this.dragAndDrop_ = new remoting.DragAndDrop(
91 this.stub_, this.onDragUpdate_.bind(this)); 91 this.stub_, this.onDragUpdate_.bind(this));
92 92
93 this.eventSource_.defineEvents([this.eventName_]); 93 this.eventSource_.defineEvents([this.eventName_]);
94 this.root_.addEventListener( 94 this.root_.addEventListener(
95 'transitionend', this.onTransitionEnd_.bind(this), false); 95 'transitionend', this.onTransitionEnd_.bind(this), false);
96 this.stub_.addEventListener('click', this.onStubClick_.bind(this), false); 96 this.stub_.addEventListener('click', this.onStubClick_.bind(this), false);
97 this.icon_.addEventListener('click', this.onIconClick_.bind(this), false); 97 this.icon_.addEventListener('click', this.onIconClick_.bind(this), false);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 * @param {string} id 187 * @param {string} id
188 */ 188 */
189 remoting.ContextMenuDom.prototype.remove = function(id) { 189 remoting.ContextMenuDom.prototype.remove = function(id) {
190 var node = this.menu_.querySelector('[data-id="' + id + '"]'); 190 var node = this.menu_.querySelector('[data-id="' + id + '"]');
191 if (node) { 191 if (node) {
192 this.menu_.removeChild(node); 192 this.menu_.removeChild(node);
193 } 193 }
194 }; 194 };
195 195
196 /** 196 /**
197 * @param {function(OnClickData):void} listener 197 * @param {function(OnClickData=):void} listener
198 */ 198 */
199 remoting.ContextMenuDom.prototype.addListener = function(listener) { 199 remoting.ContextMenuDom.prototype.addListener = function(listener) {
200 this.eventSource_.addEventListener(this.eventName_, listener); 200 this.eventSource_.addEventListener(this.eventName_, listener);
201 }; 201 };
202 202
203 /** 203 /**
204 * @param {Event} event 204 * @param {Event} event
205 * @private 205 * @private
206 */ 206 */
207 remoting.ContextMenuDom.prototype.onClick_ = function(event) { 207 remoting.ContextMenuDom.prototype.onClick_ = function(event) {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 this.bottom_ -= deltaY; 319 this.bottom_ -= deltaY;
320 this.root_.style.bottom = this.bottom_ + 'px'; 320 this.root_.style.bottom = this.bottom_ + 'px';
321 // Deferring the window shape update until the DOM update has completed 321 // Deferring the window shape update until the DOM update has completed
322 // helps keep the position of the context menu consistent with the window 322 // helps keep the position of the context menu consistent with the window
323 // shape (though it's still not perfect). 323 // shape (though it's still not perfect).
324 window.requestAnimationFrame( 324 window.requestAnimationFrame(
325 function() { 325 function() {
326 remoting.windowShape.updateClientWindowShape(); 326 remoting.windowShape.updateClientWindowShape();
327 }); 327 });
328 }; 328 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698