Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // Helper base class for all help pages and overlays, which controls | 5 // Helper base class for all help pages and overlays, which controls |
| 6 // overlays, focus and scroll. This class is partially based on | 6 // overlays, focus and scroll. This class is partially based on |
| 7 // OptionsPage, but simpler and contains only overlay- and focus- | 7 // OptionsPage, but simpler and contains only overlay- and focus- |
| 8 // handling logic. As in OptionsPage each page can be an overlay itself, | 8 // handling logic. As in OptionsPage each page can be an overlay itself, |
| 9 // but each page contains its own list of registered overlays which can be | 9 // but each page contains its own list of registered overlays which can be |
| 10 // displayed over it. | 10 // displayed over it. |
| 11 // | 11 // |
| 12 // TODO (ygorshenin@): crbug.com/313244. | 12 // TODO (ygorshenin@): crbug.com/313244. |
| 13 cr.define('help', function() { | 13 cr.define('help', function() { |
| 14 /** | |
| 15 * @constructor | |
| 16 * @extends {HTMLDivElement} | |
| 17 */ | |
| 14 function HelpBasePage() { | 18 function HelpBasePage() { |
| 15 } | 19 } |
| 16 | 20 |
| 17 HelpBasePage.prototype = { | 21 HelpBasePage.prototype = { |
| 18 __proto__: HTMLDivElement.prototype, | 22 __proto__: HTMLDivElement.prototype, |
| 19 | 23 |
| 20 /** | 24 /** |
| 21 * name of the page, should be the same as an id of the | 25 * name of the page, should be the same as an id of the |
| 22 * corresponding HTMLDivElement. | 26 * corresponding HTMLDivElement. |
| 23 */ | 27 */ |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 /** | 147 /** |
| 144 * @return {HTMLDivElement} Topmost visible page, or null, if | 148 * @return {HTMLDivElement} Topmost visible page, or null, if |
| 145 * there are no visible pages. | 149 * there are no visible pages. |
| 146 */ | 150 */ |
| 147 getTopmostVisiblePage: function() { | 151 getTopmostVisiblePage: function() { |
| 148 return this.getVisibleOverlay_() || this.getVisibleNonOverlay_(); | 152 return this.getVisibleOverlay_() || this.getVisibleNonOverlay_(); |
| 149 }, | 153 }, |
| 150 | 154 |
| 151 /** | 155 /** |
| 152 * Registers overlay. | 156 * Registers overlay. |
| 153 * @param {HelpBasePage} overlay Overlay that should be registered. | 157 * @param {help.HelpBasePage} overlay Overlay that should be registered. |
| 154 */ | 158 */ |
| 155 registerOverlay: function(overlay) { | 159 registerOverlay: function(overlay) { |
| 156 this.registeredOverlays[overlay.name] = overlay; | 160 this.registeredOverlays[overlay.name] = overlay; |
| 157 overlay.isOverlay = true; | 161 overlay.isOverlay = true; |
| 158 }, | 162 }, |
| 159 | 163 |
| 160 /** | 164 /** |
| 161 * Shows or hides current page. | 165 * Shows or hides current page. |
| 162 * @param {boolean} visible True if current page should be displayed. | 166 * @param {boolean} visible True if current page should be displayed. |
| 163 */ | 167 */ |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 190 return !this.pageDiv.hidden; | 194 return !this.pageDiv.hidden; |
| 191 }, | 195 }, |
| 192 | 196 |
| 193 /** | 197 /** |
| 194 * This method returns overlay container, it should be called only | 198 * This method returns overlay container, it should be called only |
| 195 * on overlays. | 199 * on overlays. |
| 196 * @return {HTMLDivElement} overlay container. | 200 * @return {HTMLDivElement} overlay container. |
| 197 */ | 201 */ |
| 198 get container() { | 202 get container() { |
| 199 assert(this.isOverlay); | 203 assert(this.isOverlay); |
| 200 return this.pageDiv.parentNode; | 204 return /** @type {HTMLDivElement} */(this.pageDiv.parentNode); |
|
Dan Beam
2014/08/05 18:49:27
why don't you make this HTMLElement instead? Div
Vitaly Pavlenko
2014/08/05 23:00:54
Done.
| |
| 201 }, | 205 }, |
| 202 | 206 |
| 203 /** | 207 /** |
| 204 * Shows registered overlay. | 208 * Shows registered overlay. |
| 205 * @param {string} name Name of registered overlay to show. | 209 * @param {string} name Name of registered overlay to show. |
| 206 */ | 210 */ |
| 207 showOverlay: function(name) { | 211 showOverlay: function(name) { |
| 208 var currentPage = this.getTopmostVisiblePage(); | 212 var currentPage = this.getTopmostVisiblePage(); |
| 209 currentPage.storeLastFocusedElement_(); | 213 currentPage.storeLastFocusedElement_(); |
| 210 currentPage.freeze_(true); | 214 currentPage.freeze_(true); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 245 return; | 249 return; |
| 246 } | 250 } |
| 247 }, | 251 }, |
| 248 }; | 252 }; |
| 249 | 253 |
| 250 // Export | 254 // Export |
| 251 return { | 255 return { |
| 252 HelpBasePage: HelpBasePage | 256 HelpBasePage: HelpBasePage |
| 253 }; | 257 }; |
| 254 }); | 258 }); |
| OLD | NEW |