| 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 // <include src="../../assert.js"> | 5 // <include src="../../assert.js"> |
| 6 | 6 |
| 7 cr.exportPath('cr.ui'); | 7 cr.exportPath('cr.ui'); |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * Enum for type of hide. Delayed is used when called by clicking on a | 10 * Enum for type of hide. Delayed is used when called by clicking on a |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 MenuButton.prototype = { | 38 MenuButton.prototype = { |
| 39 __proto__: HTMLButtonElement.prototype, | 39 __proto__: HTMLButtonElement.prototype, |
| 40 | 40 |
| 41 /** | 41 /** |
| 42 * Initializes the menu button. | 42 * Initializes the menu button. |
| 43 */ | 43 */ |
| 44 decorate: function() { | 44 decorate: function() { |
| 45 this.addEventListener('mousedown', this); | 45 this.addEventListener('mousedown', this); |
| 46 this.addEventListener('keydown', this); | 46 this.addEventListener('keydown', this); |
| 47 this.addEventListener('dblclick', this); |
| 47 | 48 |
| 48 // Adding the 'custom-appearance' class prevents widgets.css from changing | 49 // Adding the 'custom-appearance' class prevents widgets.css from changing |
| 49 // the appearance of this element. | 50 // the appearance of this element. |
| 50 this.classList.add('custom-appearance'); | 51 this.classList.add('custom-appearance'); |
| 51 this.classList.add('menu-button'); // For styles in menu_button.css. | 52 this.classList.add('menu-button'); // For styles in menu_button.css. |
| 52 | 53 |
| 53 var menu; | 54 var menu; |
| 54 if ((menu = this.getAttribute('menu'))) | 55 if ((menu = this.getAttribute('menu'))) |
| 55 this.menu = menu; | 56 this.menu = menu; |
| 56 | 57 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 this.hideMenu(); | 156 this.hideMenu(); |
| 156 break; | 157 break; |
| 157 case 'contextmenu': | 158 case 'contextmenu': |
| 158 if ((!this.menu || !this.menu.contains(e.target)) && | 159 if ((!this.menu || !this.menu.contains(e.target)) && |
| 159 (!this.hideTimestamp_ || Date.now() - this.hideTimestamp_ > 50)) | 160 (!this.hideTimestamp_ || Date.now() - this.hideTimestamp_ > 50)) |
| 160 this.showMenu(true); | 161 this.showMenu(true); |
| 161 e.preventDefault(); | 162 e.preventDefault(); |
| 162 // Don't allow elements further up in the DOM to show their menus. | 163 // Don't allow elements further up in the DOM to show their menus. |
| 163 e.stopPropagation(); | 164 e.stopPropagation(); |
| 164 break; | 165 break; |
| 166 case 'dblclick': |
| 167 // Don't allow double click events to propagate. |
| 168 e.preventDefault(); |
| 169 e.stopPropagation(); |
| 170 break; |
| 165 } | 171 } |
| 166 }, | 172 }, |
| 167 | 173 |
| 168 /** | 174 /** |
| 169 * Shows the menu. | 175 * Shows the menu. |
| 170 * @param {boolean} shouldSetFocus Whether to set focus on the | 176 * @param {boolean} shouldSetFocus Whether to set focus on the |
| 171 * selected menu item. | 177 * selected menu item. |
| 172 */ | 178 */ |
| 173 showMenu: function(shouldSetFocus) { | 179 showMenu: function(shouldSetFocus) { |
| 174 this.hideMenu(); | 180 this.hideMenu(); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 'drop-down-arrow-hover', ARROW_WIDTH, ARROW_HEIGHT, opt_hoverColor); | 319 'drop-down-arrow-hover', ARROW_WIDTH, ARROW_HEIGHT, opt_hoverColor); |
| 314 createDropDownArrowCanvas( | 320 createDropDownArrowCanvas( |
| 315 'drop-down-arrow-active', ARROW_WIDTH, ARROW_HEIGHT, opt_activeColor); | 321 'drop-down-arrow-active', ARROW_WIDTH, ARROW_HEIGHT, opt_activeColor); |
| 316 }; | 322 }; |
| 317 | 323 |
| 318 // Export | 324 // Export |
| 319 return { | 325 return { |
| 320 MenuButton: MenuButton, | 326 MenuButton: MenuButton, |
| 321 }; | 327 }; |
| 322 }); | 328 }); |
| OLD | NEW |