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

Unified Diff: third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js

Issue 2587293002: DevTools: teach TabbedPane.setTabIcon to accept UI.Icon instances (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js b/third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js
index 258975aa11efcdc4d72ef1df09f8631e4b8ef498..e4b6ebaf3e12758e8d74d8acb49e02b1ddadcbf5 100644
--- a/third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js
@@ -349,13 +349,12 @@ UI.TabbedPane = class extends UI.VBox {
/**
* @param {string} id
- * @param {string} iconType
- * @param {string=} iconTooltip
+ * @param {?UI.Icon} icon
*/
- setTabIcon(id, iconType, iconTooltip) {
+ setTabIcon(id, icon) {
var tab = this._tabsById.get(id);
- if (tab._setIconType(iconType, iconTooltip))
- this._updateTabElements();
+ tab._setIcon(icon);
+ this._updateTabElements();
}
/**
@@ -862,8 +861,12 @@ UI.TabbedPaneTab = class {
this._tooltip = tooltip;
this._view = view;
this._shown = false;
- /** @type {number} */ this._measuredWidth;
- /** @type {!Element|undefined} */ this._tabElement;
+ /** @type {number} */
+ this._measuredWidth;
+ /** @type {!Element|undefined} */
+ this._tabElement;
+ /** @type {?Element} */
+ this._iconContainer = null;
}
/**
@@ -900,19 +903,13 @@ UI.TabbedPaneTab = class {
}
/**
- * @param {string} iconType
- * @param {string=} iconTooltip
- * @return {boolean}
+ * @param {?UI.Icon} icon
*/
- _setIconType(iconType, iconTooltip) {
- if (iconType === this._iconType && iconTooltip === this._iconTooltip)
- return false;
- this._iconType = iconType;
- this._iconTooltip = iconTooltip;
+ _setIcon(icon) {
+ this._icon = icon;
if (this._tabElement)
- this._createIconElement(this._tabElement, this._titleElement);
+ this._createIconElement(this._tabElement, this._titleElement, false);
delete this._measuredWidth;
- return true;
}
/**
@@ -995,19 +992,21 @@ UI.TabbedPaneTab = class {
/**
* @param {!Element} tabElement
* @param {!Element} titleElement
+ * @param {boolean} measuring
*/
- _createIconElement(tabElement, titleElement) {
- if (tabElement.__iconElement)
+ _createIconElement(tabElement, titleElement, measuring) {
+ if (tabElement.__iconElement) {
tabElement.__iconElement.remove();
- if (!this._iconType)
+ tabElement.__iconElement = null;
+ }
+ if (!this._icon)
return;
- var iconElement = createElementWithClass('label', 'tabbed-pane-header-tab-icon', 'dt-icon-label');
- iconElement.type = this._iconType;
- if (this._iconTooltip)
- iconElement.title = this._iconTooltip;
- tabElement.insertBefore(iconElement, titleElement);
- tabElement.__iconElement = iconElement;
+ var iconContainer = createElementWithClass('span', 'tabbed-pane-header-tab-icon');
+ var iconNode = measuring ? this._icon.cloneNode(true) : this._icon;
+ iconContainer.appendChild(iconNode);
+ tabElement.insertBefore(iconContainer, titleElement);
+ tabElement.__iconElement = iconContainer;
}
/**
@@ -1025,7 +1024,7 @@ UI.TabbedPaneTab = class {
var titleElement = tabElement.createChild('span', 'tabbed-pane-header-tab-title');
titleElement.textContent = this.title;
titleElement.title = this.tooltip || '';
- this._createIconElement(tabElement, titleElement);
+ this._createIconElement(tabElement, titleElement, measuring);
if (!measuring)
this._titleElement = titleElement;

Powered by Google App Engine
This is Rietveld 408576698