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 24 matching lines...) Expand all Loading... |
35 WebInspector.TabbedPane = function() | 35 WebInspector.TabbedPane = function() |
36 { | 36 { |
37 WebInspector.VBox.call(this, true); | 37 WebInspector.VBox.call(this, true); |
38 this.registerRequiredCSS("ui/tabbedPane.css"); | 38 this.registerRequiredCSS("ui/tabbedPane.css"); |
39 this.element.classList.add("tabbed-pane"); | 39 this.element.classList.add("tabbed-pane"); |
40 this.contentElement.classList.add("tabbed-pane-shadow"); | 40 this.contentElement.classList.add("tabbed-pane-shadow"); |
41 this.contentElement.tabIndex = -1; | 41 this.contentElement.tabIndex = -1; |
42 this._headerElement = this.contentElement.createChild("div", "tabbed-pane-he
ader toolbar-colors"); | 42 this._headerElement = this.contentElement.createChild("div", "tabbed-pane-he
ader toolbar-colors"); |
43 this._headerElement.createChild("content").select = ".tabbed-pane-header-bef
ore"; | 43 this._headerElement.createChild("content").select = ".tabbed-pane-header-bef
ore"; |
44 this._headerContentsElement = this._headerElement.createChild("div", "tabbed
-pane-header-contents"); | 44 this._headerContentsElement = this._headerElement.createChild("div", "tabbed
-pane-header-contents"); |
45 this._tabSlider = this._headerContentsElement.createChild("div", "tabbed-pan
e-tab-slider"); | 45 this._tabSlider = createElementWithClass("div", "tabbed-pane-tab-slider"); |
46 this._headerElement.createChild("content").select = ".tabbed-pane-header-aft
er"; | 46 this._headerElement.createChild("content").select = ".tabbed-pane-header-aft
er"; |
47 this._tabsElement = this._headerContentsElement.createChild("div", "tabbed-p
ane-header-tabs"); | 47 this._tabsElement = this._headerContentsElement.createChild("div", "tabbed-p
ane-header-tabs"); |
48 this._contentElement = this.contentElement.createChild("div", "tabbed-pane-c
ontent"); | 48 this._contentElement = this.contentElement.createChild("div", "tabbed-pane-c
ontent"); |
49 this._contentElement.createChild("content"); | 49 this._contentElement.createChild("content"); |
50 /** @type {!Array.<!WebInspector.TabbedPaneTab>} */ | 50 /** @type {!Array.<!WebInspector.TabbedPaneTab>} */ |
51 this._tabs = []; | 51 this._tabs = []; |
52 /** @type {!Array.<!WebInspector.TabbedPaneTab>} */ | 52 /** @type {!Array.<!WebInspector.TabbedPaneTab>} */ |
53 this._tabsHistory = []; | 53 this._tabsHistory = []; |
54 /** @type {!Object.<string, !WebInspector.TabbedPaneTab>} */ | 54 /** @type {!Object.<string, !WebInspector.TabbedPaneTab>} */ |
55 this._tabsById = {}; | 55 this._tabsById = {}; |
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 */ | 733 */ |
734 _showTab: function(tab) | 734 _showTab: function(tab) |
735 { | 735 { |
736 tab.tabElement.classList.add("selected"); | 736 tab.tabElement.classList.add("selected"); |
737 tab.view.show(this.element); | 737 tab.view.show(this.element); |
738 this._updateTabSlider(); | 738 this._updateTabSlider(); |
739 }, | 739 }, |
740 | 740 |
741 _updateTabSlider: function() | 741 _updateTabSlider: function() |
742 { | 742 { |
743 if (!this._currentTab) | 743 if (!this._currentTab || !this._sliderEnabled) |
744 return; | |
745 if (!this._sliderEnabled) | |
746 return; | 744 return; |
747 var left = 0; | 745 var left = 0; |
748 for (var i = 0; i < this._tabs.length && this._currentTab !== this._tabs
[i] && this._tabs[i]._shown; i++) | 746 for (var i = 0; i < this._tabs.length && this._currentTab !== this._tabs
[i] && this._tabs[i]._shown; i++) |
749 left += this._tabs[i]._measuredWidth; | 747 left += this._tabs[i]._measuredWidth; |
750 var sliderWidth = this._currentTab._shown ? this._currentTab._measuredWi
dth : this._dropDownButton.offsetWidth; | 748 var sliderWidth = this._currentTab._shown ? this._currentTab._measuredWi
dth : this._dropDownButton.offsetWidth; |
751 this._tabSlider.style.transform = "translateX(" + left + "px) scaleY(0.7
5)"; | 749 this._tabSlider.style.transform = "translateX(" + left + "px) scaleY(0.7
5)"; |
752 this._tabSlider.style.width = sliderWidth + "px"; | 750 this._tabSlider.style.width = sliderWidth + "px"; |
| 751 |
| 752 if (this._tabSlider.parentElement !== this._headerContentsElement) |
| 753 this._headerContentsElement.appendChild(this._tabSlider); |
753 }, | 754 }, |
754 | 755 |
755 /** | 756 /** |
756 * @param {!WebInspector.TabbedPaneTab} tab | 757 * @param {!WebInspector.TabbedPaneTab} tab |
757 */ | 758 */ |
758 _hideTab: function(tab) | 759 _hideTab: function(tab) |
759 { | 760 { |
760 tab.tabElement.classList.remove("selected"); | 761 tab.tabElement.classList.remove("selected"); |
761 tab.view.detach(); | 762 tab.view.detach(); |
762 }, | 763 }, |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1169 this._tabElement.style.setProperty("left", "0px"); | 1170 this._tabElement.style.setProperty("left", "0px"); |
1170 return; | 1171 return; |
1171 } | 1172 } |
1172 if (!this._tabElement.nextSibling && event.pageX - this._dragStartX > 0)
{ | 1173 if (!this._tabElement.nextSibling && event.pageX - this._dragStartX > 0)
{ |
1173 this._tabElement.style.setProperty("left", "0px"); | 1174 this._tabElement.style.setProperty("left", "0px"); |
1174 return; | 1175 return; |
1175 } | 1176 } |
1176 | 1177 |
1177 this._tabElement.classList.add("dragging"); | 1178 this._tabElement.classList.add("dragging"); |
1178 this._tabElement.style.setProperty("left", (event.pageX - this._dragStar
tX) + "px"); | 1179 this._tabElement.style.setProperty("left", (event.pageX - this._dragStar
tX) + "px"); |
1179 this._tabbedPane._updateTabSlider(); | 1180 this._tabbedPane._tabSlider.remove(); |
1180 }, | 1181 }, |
1181 | 1182 |
1182 /** | 1183 /** |
1183 * @param {!Event} event | 1184 * @param {!Event} event |
1184 */ | 1185 */ |
1185 _endTabDragging: function(event) | 1186 _endTabDragging: function(event) |
1186 { | 1187 { |
1187 this._tabElement.classList.remove("dragging"); | 1188 this._tabElement.classList.remove("dragging"); |
1188 this._tabElement.style.removeProperty("left"); | 1189 this._tabElement.style.removeProperty("left"); |
1189 delete this._dragStartX; | 1190 delete this._dragStartX; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 { | 1308 { |
1308 var view = /** @type {!WebInspector.Widget} */ (object); | 1309 var view = /** @type {!WebInspector.Widget} */ (object); |
1309 delete this._promiseForId[id]; | 1310 delete this._promiseForId[id]; |
1310 this._views.set(id, view); | 1311 this._views.set(id, view); |
1311 if (this._viewCallback && view) | 1312 if (this._viewCallback && view) |
1312 this._viewCallback(id, view); | 1313 this._viewCallback(id, view); |
1313 return view; | 1314 return view; |
1314 } | 1315 } |
1315 } | 1316 } |
1316 } | 1317 } |
OLD | NEW |