OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 lastOpenedTabIds(tabsCount) { | 342 lastOpenedTabIds(tabsCount) { |
343 function tabToTabId(tab) { | 343 function tabToTabId(tab) { |
344 return tab.id; | 344 return tab.id; |
345 } | 345 } |
346 | 346 |
347 return this._tabsHistory.slice(0, tabsCount).map(tabToTabId); | 347 return this._tabsHistory.slice(0, tabsCount).map(tabToTabId); |
348 } | 348 } |
349 | 349 |
350 /** | 350 /** |
351 * @param {string} id | 351 * @param {string} id |
352 * @param {string} iconType | 352 * @param {?UI.Icon} icon |
353 * @param {string=} iconTooltip | |
354 */ | 353 */ |
355 setTabIcon(id, iconType, iconTooltip) { | 354 setTabIcon(id, icon) { |
356 var tab = this._tabsById.get(id); | 355 var tab = this._tabsById.get(id); |
357 if (tab._setIconType(iconType, iconTooltip)) | 356 tab._setIcon(icon); |
358 this._updateTabElements(); | 357 this._updateTabElements(); |
359 } | 358 } |
360 | 359 |
361 /** | 360 /** |
362 * @param {string} id | 361 * @param {string} id |
363 * @param {boolean} enabled | 362 * @param {boolean} enabled |
364 */ | 363 */ |
365 setTabEnabled(id, enabled) { | 364 setTabEnabled(id, enabled) { |
366 var tab = this._tabsById.get(id); | 365 var tab = this._tabsById.get(id); |
367 tab.tabElement.classList.toggle('disabled', !enabled); | 366 tab.tabElement.classList.toggle('disabled', !enabled); |
368 } | 367 } |
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 * @param {string=} tooltip | 854 * @param {string=} tooltip |
856 */ | 855 */ |
857 constructor(tabbedPane, id, title, closeable, view, tooltip) { | 856 constructor(tabbedPane, id, title, closeable, view, tooltip) { |
858 this._closeable = closeable; | 857 this._closeable = closeable; |
859 this._tabbedPane = tabbedPane; | 858 this._tabbedPane = tabbedPane; |
860 this._id = id; | 859 this._id = id; |
861 this._title = title; | 860 this._title = title; |
862 this._tooltip = tooltip; | 861 this._tooltip = tooltip; |
863 this._view = view; | 862 this._view = view; |
864 this._shown = false; | 863 this._shown = false; |
865 /** @type {number} */ this._measuredWidth; | 864 /** @type {number} */ |
866 /** @type {!Element|undefined} */ this._tabElement; | 865 this._measuredWidth; |
| 866 /** @type {!Element|undefined} */ |
| 867 this._tabElement; |
| 868 /** @type {?Element} */ |
| 869 this._iconContainer = null; |
867 } | 870 } |
868 | 871 |
869 /** | 872 /** |
870 * @return {string} | 873 * @return {string} |
871 */ | 874 */ |
872 get id() { | 875 get id() { |
873 return this._id; | 876 return this._id; |
874 } | 877 } |
875 | 878 |
876 /** | 879 /** |
(...skipping 16 matching lines...) Expand all Loading... |
893 } | 896 } |
894 | 897 |
895 /** | 898 /** |
896 * @return {boolean} | 899 * @return {boolean} |
897 */ | 900 */ |
898 isCloseable() { | 901 isCloseable() { |
899 return this._closeable; | 902 return this._closeable; |
900 } | 903 } |
901 | 904 |
902 /** | 905 /** |
903 * @param {string} iconType | 906 * @param {?UI.Icon} icon |
904 * @param {string=} iconTooltip | |
905 * @return {boolean} | |
906 */ | 907 */ |
907 _setIconType(iconType, iconTooltip) { | 908 _setIcon(icon) { |
908 if (iconType === this._iconType && iconTooltip === this._iconTooltip) | 909 this._icon = icon; |
909 return false; | |
910 this._iconType = iconType; | |
911 this._iconTooltip = iconTooltip; | |
912 if (this._tabElement) | 910 if (this._tabElement) |
913 this._createIconElement(this._tabElement, this._titleElement); | 911 this._createIconElement(this._tabElement, this._titleElement, false); |
914 delete this._measuredWidth; | 912 delete this._measuredWidth; |
915 return true; | |
916 } | 913 } |
917 | 914 |
918 /** | 915 /** |
919 * @param {string} className | 916 * @param {string} className |
920 * @param {boolean=} force | 917 * @param {boolean=} force |
921 * @return {boolean} | 918 * @return {boolean} |
922 */ | 919 */ |
923 _toggleClass(className, force) { | 920 _toggleClass(className, force) { |
924 var element = this.tabElement; | 921 var element = this.tabElement; |
925 var hasClass = element.classList.contains(className); | 922 var hasClass = element.classList.contains(className); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
988 /** | 985 /** |
989 * @param {!UI.TabbedPaneTabDelegate} delegate | 986 * @param {!UI.TabbedPaneTabDelegate} delegate |
990 */ | 987 */ |
991 setDelegate(delegate) { | 988 setDelegate(delegate) { |
992 this._delegate = delegate; | 989 this._delegate = delegate; |
993 } | 990 } |
994 | 991 |
995 /** | 992 /** |
996 * @param {!Element} tabElement | 993 * @param {!Element} tabElement |
997 * @param {!Element} titleElement | 994 * @param {!Element} titleElement |
| 995 * @param {boolean} measuring |
998 */ | 996 */ |
999 _createIconElement(tabElement, titleElement) { | 997 _createIconElement(tabElement, titleElement, measuring) { |
1000 if (tabElement.__iconElement) | 998 if (tabElement.__iconElement) { |
1001 tabElement.__iconElement.remove(); | 999 tabElement.__iconElement.remove(); |
1002 if (!this._iconType) | 1000 tabElement.__iconElement = null; |
| 1001 } |
| 1002 if (!this._icon) |
1003 return; | 1003 return; |
1004 | 1004 |
1005 var iconElement = createElementWithClass('label', 'tabbed-pane-header-tab-ic
on', 'dt-icon-label'); | 1005 var iconContainer = createElementWithClass('span', 'tabbed-pane-header-tab-i
con'); |
1006 iconElement.type = this._iconType; | 1006 var iconNode = measuring ? this._icon.cloneNode(true) : this._icon; |
1007 if (this._iconTooltip) | 1007 iconContainer.appendChild(iconNode); |
1008 iconElement.title = this._iconTooltip; | 1008 tabElement.insertBefore(iconContainer, titleElement); |
1009 tabElement.insertBefore(iconElement, titleElement); | 1009 tabElement.__iconElement = iconContainer; |
1010 tabElement.__iconElement = iconElement; | |
1011 } | 1010 } |
1012 | 1011 |
1013 /** | 1012 /** |
1014 * @param {boolean} measuring | 1013 * @param {boolean} measuring |
1015 * @return {!Element} | 1014 * @return {!Element} |
1016 */ | 1015 */ |
1017 _createTabElement(measuring) { | 1016 _createTabElement(measuring) { |
1018 var tabElement = createElementWithClass('div', 'tabbed-pane-header-tab'); | 1017 var tabElement = createElementWithClass('div', 'tabbed-pane-header-tab'); |
1019 tabElement.id = 'tab-' + this._id; | 1018 tabElement.id = 'tab-' + this._id; |
1020 tabElement.tabIndex = -1; | 1019 tabElement.tabIndex = -1; |
1021 tabElement.setAttribute('role', 'tab'); | 1020 tabElement.setAttribute('role', 'tab'); |
1022 tabElement.setAttribute('aria-selected', 'false'); | 1021 tabElement.setAttribute('aria-selected', 'false'); |
1023 tabElement.selectTabForTest = this._tabbedPane.selectTab.bind(this._tabbedPa
ne, this.id, true); | 1022 tabElement.selectTabForTest = this._tabbedPane.selectTab.bind(this._tabbedPa
ne, this.id, true); |
1024 | 1023 |
1025 var titleElement = tabElement.createChild('span', 'tabbed-pane-header-tab-ti
tle'); | 1024 var titleElement = tabElement.createChild('span', 'tabbed-pane-header-tab-ti
tle'); |
1026 titleElement.textContent = this.title; | 1025 titleElement.textContent = this.title; |
1027 titleElement.title = this.tooltip || ''; | 1026 titleElement.title = this.tooltip || ''; |
1028 this._createIconElement(tabElement, titleElement); | 1027 this._createIconElement(tabElement, titleElement, measuring); |
1029 if (!measuring) | 1028 if (!measuring) |
1030 this._titleElement = titleElement; | 1029 this._titleElement = titleElement; |
1031 | 1030 |
1032 if (this._closeable) | 1031 if (this._closeable) |
1033 tabElement.createChild('div', 'tabbed-pane-close-button', 'dt-close-button
').gray = true; | 1032 tabElement.createChild('div', 'tabbed-pane-close-button', 'dt-close-button
').gray = true; |
1034 | 1033 |
1035 if (measuring) { | 1034 if (measuring) { |
1036 tabElement.classList.add('measuring'); | 1035 tabElement.classList.add('measuring'); |
1037 } else { | 1036 } else { |
1038 tabElement.addEventListener('click', this._tabClicked.bind(this), false); | 1037 tabElement.addEventListener('click', this._tabClicked.bind(this), false); |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 * @param {!Array.<string>} ids | 1210 * @param {!Array.<string>} ids |
1212 */ | 1211 */ |
1213 closeTabs(tabbedPane, ids) {}, | 1212 closeTabs(tabbedPane, ids) {}, |
1214 | 1213 |
1215 /** | 1214 /** |
1216 * @param {string} tabId | 1215 * @param {string} tabId |
1217 * @param {!UI.ContextMenu} contextMenu | 1216 * @param {!UI.ContextMenu} contextMenu |
1218 */ | 1217 */ |
1219 onContextMenu(tabId, contextMenu) {} | 1218 onContextMenu(tabId, contextMenu) {} |
1220 }; | 1219 }; |
OLD | NEW |