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 // This file exists to share common overlay behaviors. | 5 // This file exists to share common overlay behaviors. |
6 | 6 |
7 cr.define('cr.ui.overlay', function() { | 7 cr.define('cr.ui.overlay', function() { |
8 | 8 |
9 /** | 9 /** |
10 * Gets the top, visible overlay. It makes the assumption that if multiple | 10 * Gets the top, visible overlay. It makes the assumption that if multiple |
(...skipping 27 matching lines...) Expand all Loading... |
38 document.addEventListener('keydown', function(e) { | 38 document.addEventListener('keydown', function(e) { |
39 if (e.keyCode == 27) { // Escape | 39 if (e.keyCode == 27) { // Escape |
40 var overlay = getTopOverlay(); | 40 var overlay = getTopOverlay(); |
41 if (!overlay) | 41 if (!overlay) |
42 return; | 42 return; |
43 | 43 |
44 cr.dispatchSimpleEvent(overlay, 'cancelOverlay'); | 44 cr.dispatchSimpleEvent(overlay, 'cancelOverlay'); |
45 } | 45 } |
46 }); | 46 }); |
47 | 47 |
48 window.addEventListener('resize', function() { | 48 window.addEventListener('resize', setMaxHeightAllPages); |
49 var overlay = getTopOverlay(); | |
50 var page = overlay ? overlay.querySelector('.page:not([hidden])') : null; | |
51 if (!page) | |
52 return; | |
53 | 49 |
54 page.style.maxHeight = Math.min(0.9 * window.innerHeight, 640) + 'px'; | 50 setMaxHeightAllPages(); |
55 }); | |
56 } | 51 } |
57 | 52 |
58 /** | 53 /** |
| 54 * Sets the max-height of all pages in all overlays, based on the window |
| 55 * height. |
| 56 */ |
| 57 function setMaxHeightAllPages() { |
| 58 var pages = document.querySelectorAll('.overlay .page'); |
| 59 |
| 60 var maxHeight = Math.min(0.9 * window.innerHeight, 640) + 'px'; |
| 61 for (var i = 0; i < pages.length; i++) |
| 62 pages[i].style.maxHeight = maxHeight; |
| 63 } |
| 64 |
| 65 /** |
59 * Adds behavioral hooks for the given overlay. | 66 * Adds behavioral hooks for the given overlay. |
60 * @param {HTMLElement} overlay The .overlay. | 67 * @param {HTMLElement} overlay The .overlay. |
61 */ | 68 */ |
62 function setupOverlay(overlay) { | 69 function setupOverlay(overlay) { |
63 // Close the overlay on clicking any of the pages' close buttons. | 70 // Close the overlay on clicking any of the pages' close buttons. |
64 var closeButtons = overlay.querySelectorAll('.page > .close-button'); | 71 var closeButtons = overlay.querySelectorAll('.page > .close-button'); |
65 for (var i = 0; i < closeButtons.length; i++) { | 72 for (var i = 0; i < closeButtons.length; i++) { |
66 closeButtons[i].addEventListener('click', function(e) { | 73 closeButtons[i].addEventListener('click', function(e) { |
67 cr.dispatchSimpleEvent(overlay, 'cancelOverlay'); | 74 cr.dispatchSimpleEvent(overlay, 'cancelOverlay'); |
68 }); | 75 }); |
(...skipping 28 matching lines...) Expand all Loading... |
97 } | 104 } |
98 | 105 |
99 return { | 106 return { |
100 globalInitialization: globalInitialization, | 107 globalInitialization: globalInitialization, |
101 setupOverlay: setupOverlay, | 108 setupOverlay: setupOverlay, |
102 }; | 109 }; |
103 }); | 110 }); |
104 | 111 |
105 document.addEventListener('DOMContentLoaded', | 112 document.addEventListener('DOMContentLoaded', |
106 cr.ui.overlay.globalInitialization); | 113 cr.ui.overlay.globalInitialization); |
OLD | NEW |