OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 | 42 |
43 this._popupArrowElement = document.createElement("div"); | 43 this._popupArrowElement = document.createElement("div"); |
44 this._popupArrowElement.className = "arrow"; | 44 this._popupArrowElement.className = "arrow"; |
45 this.element.appendChild(this._popupArrowElement); | 45 this.element.appendChild(this._popupArrowElement); |
46 | 46 |
47 this._contentDiv = document.createElement("div"); | 47 this._contentDiv = document.createElement("div"); |
48 this._contentDiv.className = "content"; | 48 this._contentDiv.className = "content"; |
49 this.element.appendChild(this._contentDiv); | 49 this.element.appendChild(this._contentDiv); |
50 | 50 |
51 this._popoverHelper = popoverHelper; | 51 this._popoverHelper = popoverHelper; |
| 52 this._hideBound = this.hide.bind(this); |
52 } | 53 } |
53 | 54 |
54 WebInspector.Popover.prototype = { | 55 WebInspector.Popover.prototype = { |
55 /** | 56 /** |
56 * @param {!Element} element | 57 * @param {!Element} element |
57 * @param {!Element|!AnchorBox} anchor | 58 * @param {!Element|!AnchorBox} anchor |
58 * @param {?number=} preferredWidth | 59 * @param {?number=} preferredWidth |
59 * @param {?number=} preferredHeight | 60 * @param {?number=} preferredHeight |
60 * @param {?WebInspector.Popover.Orientation=} arrowDirection | 61 * @param {?WebInspector.Popover.Orientation=} arrowDirection |
61 */ | 62 */ |
(...skipping 30 matching lines...) Expand all Loading... |
92 // This should not happen, but we hide previous popup to be on the safe
side. | 93 // This should not happen, but we hide previous popup to be on the safe
side. |
93 if (WebInspector.Popover._popover) | 94 if (WebInspector.Popover._popover) |
94 WebInspector.Popover._popover.hide(); | 95 WebInspector.Popover._popover.hide(); |
95 WebInspector.Popover._popover = this; | 96 WebInspector.Popover._popover = this; |
96 | 97 |
97 // Temporarily attach in order to measure preferred dimensions. | 98 // Temporarily attach in order to measure preferred dimensions. |
98 var preferredSize = view ? view.measurePreferredSize() : this.contentEle
ment.measurePreferredSize(); | 99 var preferredSize = view ? view.measurePreferredSize() : this.contentEle
ment.measurePreferredSize(); |
99 preferredWidth = preferredWidth || preferredSize.width; | 100 preferredWidth = preferredWidth || preferredSize.width; |
100 preferredHeight = preferredHeight || preferredSize.height; | 101 preferredHeight = preferredHeight || preferredSize.height; |
101 | 102 |
| 103 window.addEventListener("resize", this._hideBound, false); |
102 document.body.appendChild(this._containerElement); | 104 document.body.appendChild(this._containerElement); |
103 WebInspector.View.prototype.show.call(this, this._containerElement); | 105 WebInspector.View.prototype.show.call(this, this._containerElement); |
104 | 106 |
105 if (view) | 107 if (view) |
106 view.show(this._contentDiv); | 108 view.show(this._contentDiv); |
107 else | 109 else |
108 this._contentDiv.appendChild(this.contentElement); | 110 this._contentDiv.appendChild(this.contentElement); |
109 | 111 |
110 this._positionElement(anchor, preferredWidth, preferredHeight, arrowDire
ction); | 112 this._positionElement(anchor, preferredWidth, preferredHeight, arrowDire
ction); |
111 | 113 |
112 if (this._popoverHelper) { | 114 if (this._popoverHelper) { |
113 this._contentDiv.addEventListener("mousemove", this._popoverHelper._
killHidePopoverTimer.bind(this._popoverHelper), true); | 115 this._contentDiv.addEventListener("mousemove", this._popoverHelper._
killHidePopoverTimer.bind(this._popoverHelper), true); |
114 this.element.addEventListener("mouseout", this._popoverHelper._popov
erMouseOut.bind(this._popoverHelper), true); | 116 this.element.addEventListener("mouseout", this._popoverHelper._popov
erMouseOut.bind(this._popoverHelper), true); |
115 } | 117 } |
116 }, | 118 }, |
117 | 119 |
118 hide: function() | 120 hide: function() |
119 { | 121 { |
| 122 window.removeEventListener("resize", this._hideBound, false); |
120 this.detach(); | 123 this.detach(); |
121 this._containerElement.remove(); | 124 this._containerElement.remove(); |
122 delete WebInspector.Popover._popover; | 125 delete WebInspector.Popover._popover; |
123 }, | 126 }, |
124 | 127 |
125 get disposed() | 128 get disposed() |
126 { | 129 { |
127 return this._disposed; | 130 return this._disposed; |
128 }, | 131 }, |
129 | 132 |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 this._resetHoverTimer(); | 392 this._resetHoverTimer(); |
390 } | 393 } |
391 } | 394 } |
392 } | 395 } |
393 | 396 |
394 /** @enum {string} */ | 397 /** @enum {string} */ |
395 WebInspector.Popover.Orientation = { | 398 WebInspector.Popover.Orientation = { |
396 Top: "top", | 399 Top: "top", |
397 Bottom: "bottom" | 400 Bottom: "bottom" |
398 } | 401 } |
OLD | NEW |