OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 * Class representing the client tool-bar. | 7 * Class representing the client tool-bar. |
8 */ | 8 */ |
9 | 9 |
10 'use strict'; | 10 'use strict'; |
(...skipping 24 matching lines...) Expand all Loading... |
35 /** | 35 /** |
36 * @type {number} The left edge of the tool-bar stub, updated on resize. | 36 * @type {number} The left edge of the tool-bar stub, updated on resize. |
37 * @private | 37 * @private |
38 */ | 38 */ |
39 this.stubLeft_ = 0; | 39 this.stubLeft_ = 0; |
40 /** | 40 /** |
41 * @type {number} The right edge of the tool-bar stub, updated on resize. | 41 * @type {number} The right edge of the tool-bar stub, updated on resize. |
42 * @private | 42 * @private |
43 */ | 43 */ |
44 this.stubRight_ = 0; | 44 this.stubRight_ = 0; |
| 45 |
45 /** | 46 /** |
46 * @type {remoting.OptionsMenu} | 47 * @type {remoting.MenuButton} |
47 * @private | 48 * @private |
48 */ | 49 */ |
49 this.optionsMenu_ = new remoting.OptionsMenu( | 50 this.screenOptionsMenu_ = new remoting.MenuButton( |
50 document.getElementById('send-ctrl-alt-del'), | 51 document.getElementById('screen-options-menu'), |
51 document.getElementById('send-print-screen'), | 52 this.onShowOptionsMenu_.bind(this)); |
52 document.getElementById('screen-resize-to-client'), | 53 /** |
53 document.getElementById('screen-shrink-to-fit'), | 54 * @type {remoting.MenuButton} |
54 document.getElementById('new-connection'), | 55 * @private |
55 document.getElementById('toggle-full-screen'), | 56 */ |
56 null); | 57 this.sendKeysMenu_ = new remoting.MenuButton( |
| 58 document.getElementById('send-keys-menu') |
| 59 ); |
| 60 |
57 | 61 |
58 window.addEventListener('mousemove', remoting.Toolbar.onMouseMove, false); | 62 window.addEventListener('mousemove', remoting.Toolbar.onMouseMove, false); |
59 window.addEventListener('resize', this.center.bind(this), false); | 63 window.addEventListener('resize', this.center.bind(this), false); |
60 | 64 |
61 registerEventListener('toolbar-disconnect', 'click', remoting.disconnect); | 65 registerEventListener('toolbar-disconnect', 'click', remoting.disconnect); |
62 registerEventListener('toolbar-stub', 'click', | 66 registerEventListener('toolbar-stub', 'click', |
63 function() { remoting.toolbar.toggle(); }); | 67 function() { remoting.toolbar.toggle(); }); |
64 | 68 |
65 // Prevent the preview canceling if the user is interacting with the tool-bar. | 69 // Prevent the preview canceling if the user is interacting with the tool-bar. |
66 /** @type {remoting.Toolbar} */ | 70 /** @type {remoting.Toolbar} */ |
67 var that = this; | 71 var that = this; |
68 var stopTimer = function() { | 72 var stopTimer = function() { |
69 if (that.timerId_) { | 73 if (that.timerId_) { |
70 window.clearTimeout(that.timerId_); | 74 window.clearTimeout(that.timerId_); |
71 that.timerId_ = null; | 75 that.timerId_ = null; |
72 } | 76 } |
73 } | 77 } |
74 this.toolbar_.addEventListener('mousemove', stopTimer, false); | 78 this.toolbar_.addEventListener('mousemove', stopTimer, false); |
75 }; | 79 }; |
76 | 80 |
| 81 |
| 82 /** |
| 83 * @return {remoting.OptionsMenu} |
| 84 */ |
| 85 remoting.Toolbar.prototype.createOptionsMenu = function() { |
| 86 return new remoting.OptionsMenu( |
| 87 document.getElementById('send-ctrl-alt-del'), |
| 88 document.getElementById('send-print-screen'), |
| 89 document.getElementById('screen-resize-to-client'), |
| 90 document.getElementById('screen-shrink-to-fit'), |
| 91 document.getElementById('new-connection'), |
| 92 document.getElementById('toggle-full-screen'), |
| 93 null); |
| 94 }; |
| 95 |
77 /** | 96 /** |
78 * Preview the tool-bar functionality by showing it for 3s. | 97 * Preview the tool-bar functionality by showing it for 3s. |
79 * @return {void} Nothing. | 98 * @return {void} Nothing. |
80 */ | 99 */ |
81 remoting.Toolbar.prototype.preview = function() { | 100 remoting.Toolbar.prototype.preview = function() { |
82 this.toolbar_.classList.add(remoting.Toolbar.VISIBLE_CLASS_); | 101 this.toolbar_.classList.add(remoting.Toolbar.VISIBLE_CLASS_); |
83 if (this.timerId_) { | 102 if (this.timerId_) { |
84 window.clearTimeout(this.timerId_); | 103 window.clearTimeout(this.timerId_); |
85 this.timerId_ = null; | 104 this.timerId_ = null; |
86 } | 105 } |
(...skipping 19 matching lines...) Expand all Loading... |
106 */ | 125 */ |
107 remoting.Toolbar.prototype.toggle = function() { | 126 remoting.Toolbar.prototype.toggle = function() { |
108 this.toolbar_.classList.toggle(remoting.Toolbar.VISIBLE_CLASS_); | 127 this.toolbar_.classList.toggle(remoting.Toolbar.VISIBLE_CLASS_); |
109 }; | 128 }; |
110 | 129 |
111 /** | 130 /** |
112 * @param {remoting.ClientSession} clientSession The active session, or null if | 131 * @param {remoting.ClientSession} clientSession The active session, or null if |
113 * there is no connection. | 132 * there is no connection. |
114 */ | 133 */ |
115 remoting.Toolbar.prototype.setClientSession = function(clientSession) { | 134 remoting.Toolbar.prototype.setClientSession = function(clientSession) { |
116 this.optionsMenu_.setClientSession(clientSession); | |
117 var connectedTo = document.getElementById('connected-to'); | 135 var connectedTo = document.getElementById('connected-to'); |
118 connectedTo.innerText = | 136 connectedTo.innerText = |
119 clientSession ? clientSession.getHostDisplayName() : ""; | 137 clientSession ? clientSession.getHostDisplayName() : ""; |
120 }; | 138 }; |
121 | 139 |
122 /** | 140 /** |
123 * Test the specified co-ordinate to see if it is close enough to the stub | 141 * Test the specified co-ordinate to see if it is close enough to the stub |
124 * to activate it. | 142 * to activate it. |
125 * | 143 * |
126 * @param {number} x The x co-ordinate. | 144 * @param {number} x The x co-ordinate. |
(...skipping 24 matching lines...) Expand all Loading... |
151 toolbarStub.classList.add(remoting.Toolbar.STUB_EXTENDED_CLASS_); | 169 toolbarStub.classList.add(remoting.Toolbar.STUB_EXTENDED_CLASS_); |
152 } else { | 170 } else { |
153 toolbarStub.classList.remove(remoting.Toolbar.STUB_EXTENDED_CLASS_); | 171 toolbarStub.classList.remove(remoting.Toolbar.STUB_EXTENDED_CLASS_); |
154 } | 172 } |
155 } else { | 173 } else { |
156 document.removeEventListener('mousemove', | 174 document.removeEventListener('mousemove', |
157 remoting.Toolbar.onMouseMove, false); | 175 remoting.Toolbar.onMouseMove, false); |
158 } | 176 } |
159 }; | 177 }; |
160 | 178 |
| 179 /** |
| 180 * Updates the options menu to reflect the current scale-to-fit and full-screen |
| 181 * settings. |
| 182 * @return {void} Nothing. |
| 183 * @private |
| 184 */ |
| 185 remoting.Toolbar.prototype.onShowOptionsMenu_ = function() { |
| 186 remoting.optionsMenu.onShow(); |
| 187 }; |
| 188 |
161 /** @type {remoting.Toolbar} */ | 189 /** @type {remoting.Toolbar} */ |
162 remoting.toolbar = null; | 190 remoting.toolbar = null; |
163 | 191 |
164 /** @private */ | 192 /** @private */ |
165 remoting.Toolbar.STUB_EXTENDED_CLASS_ = 'toolbar-stub-extended'; | 193 remoting.Toolbar.STUB_EXTENDED_CLASS_ = 'toolbar-stub-extended'; |
166 /** @private */ | 194 /** @private */ |
167 remoting.Toolbar.VISIBLE_CLASS_ = 'toolbar-visible'; | 195 remoting.Toolbar.VISIBLE_CLASS_ = 'toolbar-visible'; |
OLD | NEW |