Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(372)

Side by Side Diff: Source/devtools/front_end/ui/StatusBarButton.js

Issue 408853002: [DevTools] Make toolbar counters declarative. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 this.element.classList.toggle("hidden", !x); 72 this.element.classList.toggle("hidden", !x);
73 this._visible = x; 73 this._visible = x;
74 }, 74 },
75 75
76 __proto__: WebInspector.Object.prototype 76 __proto__: WebInspector.Object.prototype
77 } 77 }
78 78
79 /** 79 /**
80 * @constructor 80 * @constructor
81 * @extends {WebInspector.StatusBarItem} 81 * @extends {WebInspector.StatusBarItem}
82 * @param {!Array.<string>} counters
83 * @param {string=} className
84 */
85 WebInspector.StatusBarCounter = function(counters, className)
86 {
87 WebInspector.StatusBarItem.call(this, "div");
88 this.element.className = "status-bar-item status-bar-counter hidden";
89 if (className)
90 this.element.classList.add(className);
91 this.element.addEventListener("click", this._clicked.bind(this), false);
92 this._counters = [];
apavlov 2014/07/21 13:34:06 This should be annotated at least with a @typedef
dgozman 2014/07/21 14:24:34 Nice catch. Done.
93 for (var i = 0; i < counters.length; i++) {
apavlov 2014/07/21 13:34:06 ++i for consistency
dgozman 2014/07/21 14:24:34 Done.
94 var element = this.element.createChild("span", "status-bar-counter-item" );
95 element.createChild("div", counters[i]);
96 element.createChild("span");
97 this._counters.push({counter: counters[i], element: element, value: 0, t itle: ""});
98 }
99 this._update();
100 }
101
102 WebInspector.StatusBarCounter.prototype = {
103 /**
104 * @param {string} counter
105 * @param {number} value
106 * @param {string} title
107 */
108 setCounter: function(counter, value, title)
109 {
110 for (var i = 0; i < this._counters.length; ++i) {
111 if (this._counters[i].counter == counter) {
apavlov 2014/07/21 13:34:06 ===
dgozman 2014/07/21 14:24:34 Done.
112 this._counters[i].value = value;
113 this._counters[i].title = title;
114 this._update();
115 return;
116 }
117 }
118 },
119
120 _update: function()
121 {
122 var total = 0;
123 var title = "";
124 for (var i = 0; i < this._counters.length; ++i) {
125 if (!this._counters[i].value) {
apavlov 2014/07/21 13:34:06 this._counters[i].value can be extracted into a va
dgozman 2014/07/21 14:24:34 Done.
126 this._counters[i].element.classList.add("hidden");
127 continue;
128 }
129 this._counters[i].element.style.marginLeft = total ? "6px" : "0";
apavlov 2014/07/21 13:34:06 can we implement this using classes? This seems a
dgozman 2014/07/21 14:24:35 Done.
130 this._counters[i].element.classList.remove("hidden");
131 this._counters[i].element.querySelector("span").textContent = this._ counters[i].value;
132 total += this._counters[i].value;
133 if (this._counters[i].title) {
134 if (title)
135 title += ", ";
136 title += this._counters[i].title;
137 }
138 }
139 this.element.classList.toggle("hidden", !total);
140 this.element.title = title;
141 },
142
143 /**
144 * @param {!Event} event
145 */
146 _clicked: function(event)
147 {
148 this.dispatchEventToListeners("click");
149 },
150
151 __proto__: WebInspector.StatusBarItem.prototype
152 }
153
154 /**
155 * @constructor
156 * @extends {WebInspector.StatusBarItem}
82 * @param {string} text 157 * @param {string} text
83 * @param {string=} className 158 * @param {string=} className
84 */ 159 */
85 WebInspector.StatusBarText = function(text, className) 160 WebInspector.StatusBarText = function(text, className)
86 { 161 {
87 WebInspector.StatusBarItem.call(this, "span"); 162 WebInspector.StatusBarItem.call(this, "span");
88 this.element.className = "status-bar-item status-bar-text"; 163 this.element.className = "status-bar-item status-bar-text";
89 if (className) 164 if (className)
90 this.element.classList.add(className); 165 this.element.classList.add(className);
91 this.element.textContent = text; 166 this.element.textContent = text;
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 } 494 }
420 } 495 }
421 }, 496 },
422 497
423 __proto__: WebInspector.StatusBarItem.prototype 498 __proto__: WebInspector.StatusBarItem.prototype
424 } 499 }
425 500
426 /** 501 /**
427 * @interface 502 * @interface
428 */ 503 */
429 WebInspector.StatusBarButton.Provider = function() 504 WebInspector.StatusBarItem.Provider = function()
430 { 505 {
431 } 506 }
432 507
433 WebInspector.StatusBarButton.Provider.prototype = { 508 WebInspector.StatusBarItem.Provider.prototype = {
434 /** 509 /**
435 * @return {?WebInspector.StatusBarButton} 510 * @return {?WebInspector.StatusBarItem}
436 */ 511 */
437 button: function() {} 512 item: function() {}
438 } 513 }
439 514
440 /** 515 /**
441 * @constructor 516 * @constructor
442 * @extends {WebInspector.StatusBarItem} 517 * @extends {WebInspector.StatusBarItem}
443 * @param {?function(!Event)} changeHandler 518 * @param {?function(!Event)} changeHandler
444 * @param {string=} className 519 * @param {string=} className
445 */ 520 */
446 WebInspector.StatusBarComboBox = function(changeHandler, className) 521 WebInspector.StatusBarComboBox = function(changeHandler, className)
447 { 522 {
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 var options = []; 744 var options = [];
670 for (var index = 0; index < this._states.length; index++) { 745 for (var index = 0; index < this._states.length; index++) {
671 if (this._states[index] !== this.state && this._states[index] !== th is._currentState) 746 if (this._states[index] !== this.state && this._states[index] !== th is._currentState)
672 options.push(this._buttons[index]); 747 options.push(this._buttons[index]);
673 } 748 }
674 return options; 749 return options;
675 }, 750 },
676 751
677 __proto__: WebInspector.StatusBarButton.prototype 752 __proto__: WebInspector.StatusBarButton.prototype
678 } 753 }
OLDNEW
« Source/devtools/front_end/main/Main.js ('K') | « Source/devtools/front_end/settings/module.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698