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 13 matching lines...) Expand all Loading... |
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 /** | 31 /** |
32 * @constructor | 32 * @constructor |
33 * @extends {WebInspector.Object} | 33 * @extends {WebInspector.Object} |
34 * @param {string} elementType | 34 * @param {!Element} element |
35 */ | 35 */ |
36 WebInspector.StatusBarItem = function(elementType) | 36 WebInspector.StatusBarItem = function(element) |
37 { | 37 { |
38 this.element = createElement(elementType); | 38 this.element = element; |
| 39 this.element.classList.add("status-bar-item"); |
39 this._enabled = true; | 40 this._enabled = true; |
40 this._visible = true; | 41 this._visible = true; |
41 } | 42 } |
42 | 43 |
43 WebInspector.StatusBarItem.prototype = { | 44 WebInspector.StatusBarItem.prototype = { |
44 /** | 45 /** |
45 * @param {boolean} value | 46 * @param {boolean} value |
46 */ | 47 */ |
47 setEnabled: function(value) | 48 setEnabled: function(value) |
48 { | 49 { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 } | 81 } |
81 | 82 |
82 /** | 83 /** |
83 * @constructor | 84 * @constructor |
84 * @extends {WebInspector.StatusBarItem} | 85 * @extends {WebInspector.StatusBarItem} |
85 * @param {!Array.<string>} counters | 86 * @param {!Array.<string>} counters |
86 * @param {string=} className | 87 * @param {string=} className |
87 */ | 88 */ |
88 WebInspector.StatusBarCounter = function(counters, className) | 89 WebInspector.StatusBarCounter = function(counters, className) |
89 { | 90 { |
90 WebInspector.StatusBarItem.call(this, "div"); | 91 WebInspector.StatusBarItem.call(this, createElementWithClass("div", "status-
bar-counter hidden")); |
91 this.element.className = "status-bar-item status-bar-counter hidden"; | |
92 if (className) | 92 if (className) |
93 this.element.classList.add(className); | 93 this.element.classList.add(className); |
94 this.element.addEventListener("click", this._clicked.bind(this), false); | 94 this.element.addEventListener("click", this._clicked.bind(this), false); |
95 /** @type {!Array.<!{element: !Element, counter: string, value: number, titl
e: string}>} */ | 95 /** @type {!Array.<!{element: !Element, counter: string, value: number, titl
e: string}>} */ |
96 this._counters = []; | 96 this._counters = []; |
97 for (var i = 0; i < counters.length; ++i) { | 97 for (var i = 0; i < counters.length; ++i) { |
98 var element = this.element.createChild("span", "status-bar-counter-item"
); | 98 var element = this.element.createChild("span", "status-bar-counter-item"
); |
99 element.createChild("div", counters[i]); | 99 element.createChild("div", counters[i]); |
100 element.createChild("span"); | 100 element.createChild("span"); |
101 this._counters.push({counter: counters[i], element: element, value: 0, t
itle: ""}); | 101 this._counters.push({counter: counters[i], element: element, value: 0, t
itle: ""}); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 } | 158 } |
159 | 159 |
160 /** | 160 /** |
161 * @constructor | 161 * @constructor |
162 * @extends {WebInspector.StatusBarItem} | 162 * @extends {WebInspector.StatusBarItem} |
163 * @param {string} text | 163 * @param {string} text |
164 * @param {string=} className | 164 * @param {string=} className |
165 */ | 165 */ |
166 WebInspector.StatusBarText = function(text, className) | 166 WebInspector.StatusBarText = function(text, className) |
167 { | 167 { |
168 WebInspector.StatusBarItem.call(this, "span"); | 168 WebInspector.StatusBarItem.call(this, createElementWithClass("span", "status
-bar-text")); |
169 this.element.className = "status-bar-item status-bar-text"; | |
170 if (className) | 169 if (className) |
171 this.element.classList.add(className); | 170 this.element.classList.add(className); |
172 this.element.textContent = text; | 171 this.element.textContent = text; |
173 } | 172 } |
174 | 173 |
175 WebInspector.StatusBarText.prototype = { | 174 WebInspector.StatusBarText.prototype = { |
176 /** | 175 /** |
177 * @param {string} text | 176 * @param {string} text |
178 */ | 177 */ |
179 setText: function(text) | 178 setText: function(text) |
180 { | 179 { |
181 this.element.textContent = text; | 180 this.element.textContent = text; |
182 }, | 181 }, |
183 | 182 |
184 __proto__: WebInspector.StatusBarItem.prototype | 183 __proto__: WebInspector.StatusBarItem.prototype |
185 } | 184 } |
186 | 185 |
187 /** | 186 /** |
188 * @constructor | 187 * @constructor |
189 * @extends {WebInspector.StatusBarItem} | 188 * @extends {WebInspector.StatusBarItem} |
190 * @param {string=} placeholder | 189 * @param {string=} placeholder |
191 * @param {number=} width | 190 * @param {number=} width |
192 */ | 191 */ |
193 WebInspector.StatusBarInput = function(placeholder, width) | 192 WebInspector.StatusBarInput = function(placeholder, width) |
194 { | 193 { |
195 WebInspector.StatusBarItem.call(this, "input"); | 194 WebInspector.StatusBarItem.call(this, createElementWithClass("input", "statu
s-bar-item")); |
196 this.element.className = "status-bar-item"; | |
197 this.element.addEventListener("input", this._onChangeCallback.bind(this), fa
lse); | 195 this.element.addEventListener("input", this._onChangeCallback.bind(this), fa
lse); |
198 if (width) | 196 if (width) |
199 this.element.style.width = width + "px"; | 197 this.element.style.width = width + "px"; |
200 if (placeholder) | 198 if (placeholder) |
201 this.element.setAttribute("placeholder", placeholder); | 199 this.element.setAttribute("placeholder", placeholder); |
202 this._value = ""; | 200 this._value = ""; |
203 } | 201 } |
204 | 202 |
205 WebInspector.StatusBarInput.Event = { | 203 WebInspector.StatusBarInput.Event = { |
206 TextChanged: "TextChanged" | 204 TextChanged: "TextChanged" |
(...skipping 27 matching lines...) Expand all Loading... |
234 | 232 |
235 /** | 233 /** |
236 * @constructor | 234 * @constructor |
237 * @extends {WebInspector.StatusBarItem} | 235 * @extends {WebInspector.StatusBarItem} |
238 * @param {string} title | 236 * @param {string} title |
239 * @param {string} className | 237 * @param {string} className |
240 * @param {number=} states | 238 * @param {number=} states |
241 */ | 239 */ |
242 WebInspector.StatusBarButtonBase = function(title, className, states) | 240 WebInspector.StatusBarButtonBase = function(title, className, states) |
243 { | 241 { |
244 WebInspector.StatusBarItem.call(this, "button"); | 242 WebInspector.StatusBarItem.call(this, createElementWithClass("button", class
Name + " status-bar-item")); |
245 this.element.className = className + " status-bar-item"; | |
246 this.element.addEventListener("click", this._clicked.bind(this), false); | 243 this.element.addEventListener("click", this._clicked.bind(this), false); |
247 this._longClickController = new WebInspector.LongClickController(this.elemen
t); | 244 this._longClickController = new WebInspector.LongClickController(this.elemen
t); |
248 this._longClickController.addEventListener(WebInspector.LongClickController.
Events.LongClick, this._onLongClick.bind(this)); | 245 this._longClickController.addEventListener(WebInspector.LongClickController.
Events.LongClick, this._onLongClick.bind(this)); |
249 this._longClickController.addEventListener(WebInspector.LongClickController.
Events.LongPress, this._onLongPress.bind(this)); | 246 this._longClickController.addEventListener(WebInspector.LongClickController.
Events.LongPress, this._onLongPress.bind(this)); |
250 | 247 |
251 this._states = states; | 248 this._states = states; |
252 if (!states) | 249 if (!states) |
253 this._states = 2; | 250 this._states = 2; |
254 | 251 |
255 if (states == 2) | 252 if (states == 2) |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 * @constructor | 472 * @constructor |
476 * @extends {WebInspector.StatusBarButtonBase} | 473 * @extends {WebInspector.StatusBarButtonBase} |
477 * @param {string} title | 474 * @param {string} title |
478 * @param {string} className | 475 * @param {string} className |
479 * @param {number=} states | 476 * @param {number=} states |
480 */ | 477 */ |
481 WebInspector.StatusBarButton = function(title, className, states) | 478 WebInspector.StatusBarButton = function(title, className, states) |
482 { | 479 { |
483 WebInspector.StatusBarButtonBase.call(this, title, className, states); | 480 WebInspector.StatusBarButtonBase.call(this, title, className, states); |
484 | 481 |
485 this.element.createChild("div", "glyph"); | 482 this._glyphElement = this.element.createChild("div", "glyph"); |
486 } | 483 } |
487 | 484 |
488 WebInspector.StatusBarButton.prototype = { | 485 WebInspector.StatusBarButton.prototype = { |
| 486 /** |
| 487 * @param {string} iconURL |
| 488 */ |
| 489 setBackgroundImage: function(iconURL) |
| 490 { |
| 491 this.element.style.backgroundImage = "url(" + iconURL + ")"; |
| 492 this._glyphElement.classList.add("hidden"); |
| 493 }, |
| 494 |
489 __proto__: WebInspector.StatusBarButtonBase.prototype | 495 __proto__: WebInspector.StatusBarButtonBase.prototype |
490 } | 496 } |
491 | 497 |
492 /** | 498 /** |
493 * @constructor | 499 * @constructor |
| 500 * @param {!Element} parentElement |
| 501 */ |
| 502 WebInspector.StatusBar = function(parentElement) |
| 503 { |
| 504 /** @type {!Array.<!WebInspector.StatusBarItem>} */ |
| 505 this._items = []; |
| 506 this.element = parentElement.createChild("div", "status-bar"); |
| 507 } |
| 508 |
| 509 WebInspector.StatusBar.prototype = { |
| 510 /** |
| 511 * @param {boolean} enabled |
| 512 */ |
| 513 setEnabled: function(enabled) |
| 514 { |
| 515 for (var item of this._items) |
| 516 item.setEnabled(enabled); |
| 517 }, |
| 518 |
| 519 /** |
| 520 * @param {!WebInspector.StatusBarItem} item |
| 521 */ |
| 522 appendStatusBarItem: function(item) |
| 523 { |
| 524 this._items.push(item); |
| 525 this.element.appendChild(item.element); |
| 526 }, |
| 527 |
| 528 removeStatusBarItems: function() |
| 529 { |
| 530 this._items = []; |
| 531 this.element.removeChildren(); |
| 532 } |
| 533 } |
| 534 |
| 535 /** |
| 536 * @constructor |
| 537 * @extends {WebInspector.StatusBarItem} |
| 538 */ |
| 539 WebInspector.StatusBarSeparator = function() |
| 540 { |
| 541 WebInspector.StatusBarItem.call(this, createElementWithClass("div", "status-
bar-divider")); |
| 542 } |
| 543 |
| 544 WebInspector.StatusBarSeparator.prototype = { |
| 545 __proto__: WebInspector.StatusBarItem.prototype |
| 546 } |
| 547 |
| 548 /** |
| 549 * @constructor |
494 * @extends {WebInspector.StatusBarButtonBase} | 550 * @extends {WebInspector.StatusBarButtonBase} |
495 * @param {string} title | 551 * @param {string} title |
496 * @param {string} className | 552 * @param {string} className |
497 * @param {string} text | 553 * @param {string} text |
498 * @param {number=} states | 554 * @param {number=} states |
499 */ | 555 */ |
500 WebInspector.StatusBarTextButton = function(title, className, text, states) | 556 WebInspector.StatusBarTextButton = function(title, className, text, states) |
501 { | 557 { |
502 WebInspector.StatusBarButtonBase.call(this, title, className, states); | 558 WebInspector.StatusBarButtonBase.call(this, title, className, states); |
503 | 559 |
(...skipping 20 matching lines...) Expand all Loading... |
524 } | 580 } |
525 | 581 |
526 /** | 582 /** |
527 * @constructor | 583 * @constructor |
528 * @extends {WebInspector.StatusBarItem} | 584 * @extends {WebInspector.StatusBarItem} |
529 * @param {?function(!Event)} changeHandler | 585 * @param {?function(!Event)} changeHandler |
530 * @param {string=} className | 586 * @param {string=} className |
531 */ | 587 */ |
532 WebInspector.StatusBarComboBox = function(changeHandler, className) | 588 WebInspector.StatusBarComboBox = function(changeHandler, className) |
533 { | 589 { |
534 WebInspector.StatusBarItem.call(this, "span"); | 590 WebInspector.StatusBarItem.call(this, createElementWithClass("span", "status
-bar-select-container")); |
535 this.element.className = "status-bar-select-container"; | |
536 | 591 |
537 this._selectElement = this.element.createChild("select", "status-bar-item"); | 592 this._selectElement = this.element.createChild("select", "status-bar-item"); |
538 this.element.createChild("div", "status-bar-select-arrow"); | 593 this.element.createChild("div", "status-bar-select-arrow"); |
539 if (changeHandler) | 594 if (changeHandler) |
540 this._selectElement.addEventListener("change", changeHandler, false); | 595 this._selectElement.addEventListener("change", changeHandler, false); |
541 if (className) | 596 if (className) |
542 this._selectElement.classList.add(className); | 597 this._selectElement.classList.add(className); |
543 } | 598 } |
544 | 599 |
545 WebInspector.StatusBarComboBox.prototype = { | 600 WebInspector.StatusBarComboBox.prototype = { |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
638 { | 693 { |
639 return this._selectElement.selectedIndex; | 694 return this._selectElement.selectedIndex; |
640 }, | 695 }, |
641 | 696 |
642 __proto__: WebInspector.StatusBarItem.prototype | 697 __proto__: WebInspector.StatusBarItem.prototype |
643 } | 698 } |
644 | 699 |
645 /** | 700 /** |
646 * @constructor | 701 * @constructor |
647 * @extends {WebInspector.StatusBarItem} | 702 * @extends {WebInspector.StatusBarItem} |
648 * @param {string} title | 703 * @param {string} text |
| 704 * @param {string=} title |
| 705 * @param {!WebInspector.Setting=} setting |
649 */ | 706 */ |
650 WebInspector.StatusBarCheckbox = function(title) | 707 WebInspector.StatusBarCheckbox = function(text, title, setting) |
651 { | 708 { |
652 WebInspector.StatusBarItem.call(this, "label"); | 709 WebInspector.StatusBarItem.call(this, createElementWithClass("label", "check
box")); |
653 this.element.classList.add("status-bar-item", "checkbox"); | |
654 this.inputElement = this.element.createChild("input"); | 710 this.inputElement = this.element.createChild("input"); |
655 this.inputElement.type = "checkbox"; | 711 this.inputElement.type = "checkbox"; |
656 this.element.createTextChild(title); | 712 this.element.createTextChild(text); |
| 713 if (title) |
| 714 this.element.title = title; |
| 715 if (setting) |
| 716 WebInspector.SettingsUI.bindCheckbox(this.inputElement, setting); |
657 } | 717 } |
658 | 718 |
659 WebInspector.StatusBarCheckbox.prototype = { | 719 WebInspector.StatusBarCheckbox.prototype = { |
660 /** | 720 /** |
661 * @return {boolean} | 721 * @return {boolean} |
662 */ | 722 */ |
663 checked: function() | 723 checked: function() |
664 { | 724 { |
665 return this.inputElement.checked; | 725 return this.inputElement.checked; |
666 }, | 726 }, |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 var options = []; | 815 var options = []; |
756 for (var index = 0; index < this._states.length; index++) { | 816 for (var index = 0; index < this._states.length; index++) { |
757 if (this._states[index] !== this.state() && this._states[index] !==
this._currentState) | 817 if (this._states[index] !== this.state() && this._states[index] !==
this._currentState) |
758 options.push(this._buttons[index]); | 818 options.push(this._buttons[index]); |
759 } | 819 } |
760 return options; | 820 return options; |
761 }, | 821 }, |
762 | 822 |
763 __proto__: WebInspector.StatusBarButton.prototype | 823 __proto__: WebInspector.StatusBarButton.prototype |
764 } | 824 } |
OLD | NEW |