allow to place tabbar not in #TabsToolbar

This commit is contained in:
Piro / SHIMODA Hiroshi 2011-01-22 00:01:19 +09:00
parent d4257a7179
commit 6e676a29d6
7 changed files with 50 additions and 48 deletions

View File

@ -13,7 +13,7 @@
http://github.com/piroor/fxaddonlibs/blob/master/tabsDragUtils.js
*/
(function() {
const currentRevision = 7;
const currentRevision = 8;
if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
@ -192,7 +192,7 @@
if (aTabBrowserChild.tabbrowser) // tabs, Firefox 4.0 or later
return aTabBrowserChild.tabbrowser;
if (aTabBrowserChild.id == 'TabsToolbar') // tabs toolbar, Firefox 4.0 or later
if (aTabBrowserChild.localName == 'toolbar') // tabs toolbar, Firefox 4.0 or later
return aTabBrowserChild.getElementsByTagName('tabs')[0].tabbrowser;
var b = aTabBrowserChild.ownerDocument.evaluate(

View File

@ -78,13 +78,13 @@
.tabbrowser-strip[treestyletab-tabbar-autohide="hidden"]+splitter,
.tabbrowser-strip[collapsed="true"] + splitter:not([state="collapsed"]),
.treestyletab-tabbar-toggler,
#TabsToolbar[treestyletab-tabbar-autohide="hidden"] > *,
#TabsToolbar .treestyletab-splitter,
.treestyletab-tabbar-toolbar[treestyletab-tabbar-autohide="hidden"] > *,
.treestyletab-tabbar-toolbar .treestyletab-splitter,
#treestyletab-tabbar-resizer-box,
tabbrowser[treestyletab-tabbar-autohide-mode="1"][tabcontainer]
.tabbrowser-strip[treestyletab-tabbar-placeholder="true"],
.tabbrowser-strip.treestyletab-tabbar-placeholder,
tabbrowser[treestyletab-tabbar-autohide-mode="1"][tabcontainer]
.tabbrowser-strip[treestyletab-tabbar-placeholder="true"]+splitter {
.tabbrowser-strip.treestyletab-tabbar-placeholder+splitter {
visibility: collapse;
}
@ -92,22 +92,22 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][tabcontainer]
.treestyletab-tabbar-toggler,
tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="hidden"]
.treestyletab-tabbar-toggler,
#TabsToolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]
#treestyletab-tabbar-resizer-box,
#TabsToolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]:not([treestyletab-tabbar-fixed="true"])
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]:not([treestyletab-tabbar-fixed="true"])
.treestyletab-splitter {
visibility: visible;
}
/* put resizer under tabs, and raise up tabs */
#TabsToolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]
> *,
.tabs-toolbar-inner-box[treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]:not([treestyletab-tabbar-fixed="true"])
> * {
position: relative;
z-index: 2;
}
#TabsToolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"][treestyletab-tabbar-autohide][treestyletab-tabbar-autohide-state="expanded"]
#treestyletab-tabbar-resizer-box {
position: absolute;
bottom: 0;
@ -159,8 +159,8 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="
.tabbrowser-tabs[treestyletab-mode="vertical"] .tabs-alltabs-button, /* -Firefox 3.6 */
.tabbrowser-tabs[treestyletab-mode="vertical"] .close-button.tabs-closebutton, /* -Firefox 3.6 */
#TabsToolbar[treestyletab-mode="vertical"] > toolbarbutton,
#TabsToolbar[treestyletab-mode="vertical"] > toolbarpaletteitem > toolbarbutton {
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"] > toolbarbutton,
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"] > toolbarpaletteitem > toolbarbutton {
max-width: none !important;
}
@ -169,7 +169,7 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="
.tabbrowser-tabs[treestyletab-mode="vertical"] .tabbrowser-arrowscrollbox > .scrollbutton-down-stack,
.tabbrowser-tabs[treestyletab-mode="vertical"] .tabbrowser-arrowscrollbox > .scrollbutton-down, /* Firefox 3 */
.tabbrowser-tabs[treestyletab-mode="vertical"] .tabs-closebutton-box,
#TabsToolbar[treestyletab-mode="vertical"] .tabs-closebutton,
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"] .tabs-closebutton,
.tabbrowser-tabs[treestyletab-mode="vertical"] .tab-drop-indicator-bar {
visibility: collapse !important;
}
@ -186,7 +186,7 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="
.tabbrowser-tab:not([pinned]) {
max-width: 65000px !important;
}
#TabsToolbar[treestyletab-mode="vertical"]
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"]
.tabbrowser-tab:not([pinned]):not([fadein]) {
opacity: 0.5 !important;
}
@ -195,7 +195,7 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="
max-width: 65250px !important;
min-width: 1px !important;
}
#TabsToolbar[treestyletab-mode="vertical"][treestyletab-animation-enabled="true"]
.treestyletab-tabbar-toolbar[treestyletab-mode="vertical"][treestyletab-animation-enabled="true"]
.tabbrowser-tab:not([pinned]):not([fadein])[treestyletab-removed="true"] {
max-height: 1px !important;
min-height: 1px !important;
@ -208,28 +208,28 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="
max-width: 64000px !important;
}
#TabsToolbar,
#navigator-toolbox[tabsontop="false"] > #TabsToolbar,
#navigator-toolbox[tabsontop="false"] > #TabsToolbar:-moz-lwtheme {
.treestyletab-tabbar-toolbar,
#navigator-toolbox[tabsontop="false"] > .treestyletab-tabbar-toolbar,
#navigator-toolbox[tabsontop="false"] > .treestyletab-tabbar-toolbar:-moz-lwtheme {
-moz-binding: url(treestyletab.xml#tabs-toolbar);
}
#navigator-toolbox[tabsontop="true"] > #TabsToolbar,
#navigator-toolbox[tabsontop="true"] > #TabsToolbar:-moz-lwtheme,
#navigator-toolbox[tabsontop="true"] > .treestyletab-tabbar-toolbar,
#navigator-toolbox[tabsontop="true"] > .treestyletab-tabbar-toolbar:-moz-lwtheme,
#navigator-toolbox
> #nav-bar + #customToolbars + #PersonalToolbar[collapsed="true"] + #TabsToolbar[tabsontop="true"]:last-child,
> #nav-bar + #customToolbars + #PersonalToolbar[collapsed="true"] + .treestyletab-tabbar-toolbar[tabsontop="true"]:last-child,
#navigator-toolbox
> #nav-bar + #customToolbars + #PersonalToolbar[collapsed="true"] + #TabsToolbar[tabsontop="false"]:last-child {
> #nav-bar + #customToolbars + #PersonalToolbar[collapsed="true"] + .treestyletab-tabbar-toolbar[tabsontop="false"]:last-child {
-moz-binding: url(treestyletab.xml#tabs-toolbar-drag);
}
#TabsToolbar:not([treestyletab-tabbar-position="top"]),
#TabsToolbar[treestyletab-tabbar-position="top"]:not([treestyletab-tabbar-fixed="true"]) {
.treestyletab-tabbar-toolbar:not([treestyletab-tabbar-position="top"]),
.treestyletab-tabbar-toolbar[treestyletab-tabbar-position="top"]:not([treestyletab-tabbar-fixed="true"]) {
line-height: 0 !important; /* to avoid an useless space above the tab bar */
position: fixed !important;
-moz-appearance: none !important;
}
#TabsToolbar:not([treestyletab-tabbar-position="top"])
.treestyletab-tabbar-toolbar:not([treestyletab-tabbar-position="top"])
.tabbrowser-tabs,
#TabsToolbar[treestyletab-tabbar-position="top"]:not([treestyletab-tabbar-fixed="true"])
.treestyletab-tabbar-toolbar[treestyletab-tabbar-position="top"]:not([treestyletab-tabbar-fixed="true"])
.tabbrowser-tabs {
overflow: hidden !important;
}
@ -358,7 +358,7 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-tabbar-autohide="
.tabbrowser-strip[treestyletab-tabbar-fixed="true"]+splitter,
.tabbrowser-strip[treestyletab-print-preview="true"],
.tabbrowser-strip[treestyletab-print-preview="true"]+splitter,
#TabsToolbar[treestyletab-print-preview="true"],
.treestyletab-tabbar-toolbar[treestyletab-print-preview="true"],
tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-print-preview="true"]
.treestyletab-tabbar-toggler {
visibility: collapse;
@ -366,9 +366,9 @@ tabbrowser[treestyletab-tabbar-autohide-mode="1"][treestyletab-print-preview="tr
/* stylized window (opened by window.open() with features) */
window[chromehidden~="toolbar"]
.tabbrowser-strip[treestyletab-tabbar-placeholder="true"],
.tabbrowser-strip.treestyletab-tabbar-placeholder,
window[chromehidden~="toolbar"]
.tabbrowser-strip[treestyletab-tabbar-placeholder="true"]+splitter {
.tabbrowser-strip.treestyletab-tabbar-placeholder+splitter {
visibility: collapse;
}

View File

@ -325,6 +325,8 @@ TreeStyleTabBrowser.prototype = {
var b = this.mTabBrowser;
b.tabContainer.treeStyleTab = this;
if (b.tabContainer.parentNode.localName == 'toolbar')
b.tabContainer.parentNode.classList.add(this.kTABBAR_TOOLBAR);
this.tabsHash = {};
this.tabStripPlaceHolder = null;
@ -350,9 +352,8 @@ TreeStyleTabBrowser.prototype = {
if (!placeHolder) {
placeHolder = document.createElement('hbox');
placeHolder.setAttribute('anonid', 'strip');
placeHolder.setAttribute('class', 'tabbrowser-strip');
placeHolder.setAttribute('class', 'tabbrowser-strip '+this.kTABBAR_PLACEHOLDER);
placeHolder.setAttribute('layer', true); // https://bugzilla.mozilla.org/show_bug.cgi?id=590468
placeHolder.setAttribute(this.kTABBAR_PLACEHOLDER, true);
b.mTabBox.insertBefore(placeHolder, toggler.nextSibling);
}
if (placeHolder != this.tabStrip)

View File

@ -6,10 +6,10 @@
.autoScroll
.processAutoScroll(mouseMoveOrDragOverEvent);
license: The MIT License, Copyright (c) 2009-2010 SHIMODA "Piro" Hiroshi
http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/license.txt
license: The MIT License, Copyright (c) 2009-2011 SHIMODA "Piro" Hiroshi
http://github.com/piroor/fxaddonlibs/blob/master/license.txt
original:
http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/autoScroll.js
http://github.com/piroor/fxaddonlibs/blob/master/autoScroll.js
*/
/* To work as a JS Code Module */
@ -18,7 +18,7 @@ if (typeof window == 'undefined' ||
this.EXPORTED_SYMBOLS = ['autoScroll'];
// If namespace.jsm is available, export symbols to the shared namespace.
// See: http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/namespace.jsm
// See: http://github.com/piroor/fxaddonlibs/blob/master/namespace.jsm
try {
let ns = {};
Components.utils.import('resource://treestyletab-modules/lib/namespace.jsm', ns);
@ -30,7 +30,7 @@ if (typeof window == 'undefined' ||
}
(function() {
const currentRevision = 4;
const currentRevision = 5;
if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
@ -123,16 +123,16 @@ if (typeof window == 'undefined' ||
if (aTabBrowserChild.localName == 'tabbrowser') // itself
return aTabBrowserChild;
if (aTabBrowserChild.tabbrowser) // tabs, Firefox 3.7 or later
if (aTabBrowserChild.tabbrowser) // tabs, Firefox 4.0 or later
return aTabBrowserChild.tabbrowser;
if (aTabBrowserChild.id == 'TabsToolbar') // tabs toolbar, Firefox 3.7 or later
if (aTabBrowserChild.localName == 'toolbar') // tabs toolbar, Firefox 4.0 or later
return aTabBrowserChild.getElementsByTagName('tabs')[0].tabbrowser;
var b = aTabBrowserChild.ownerDocument.evaluate(
'ancestor::*[local-name()="tabbrowser"] | '+
'ancestor::*[local-name()="tabs" and @tabbrowser] |'+
'ancestor::*[local-name()="toolbar" and @id="TabsToolbar"]/descendant::*[local-name()="tabs"]',
'ancestor::*[local-name()="toolbar"]/descendant::*[local-name()="tabs"]',
aTabBrowserChild,
null,
Ci.nsIDOMXPathResult.FIRST_ORDERED_NODE_TYPE,

View File

@ -4,7 +4,7 @@
* @version 1
*
* @license
* The MIT License, Copyright (c) 2010 SHIMODA "Piro" Hiroshi
* The MIT License, Copyright (c) 2010-2011 SHIMODA "Piro" Hiroshi
* http://github.com/piroor/fxaddonlibs/blob/master/license.txt
* @url http://github.com/piroor/fxaddonlibs/blob/master/confirmWithTab.js
* @url http://github.com/piroor/fxaddonlibs
@ -34,7 +34,7 @@ if (typeof namespace.Deferred == 'undefined')
var confirmWithTab;
(function() {
const currentRevision = 1;
const currentRevision = 2;
var loadedRevision = 'confirmWithTab' in namespace ?
namespace.confirmWithTab.revision :
@ -118,7 +118,7 @@ var confirmWithTab;
var b = aTabBrowserChild.ownerDocument.evaluate(
'ancestor::*[local-name()="tabbrowser"] | '+
'ancestor::*[local-name()="tabs"][@tabbrowser] |'+
'ancestor::*[local-name()="toolbar"][@id="TabsToolbar"]/descendant::*[local-name()="tabs"]',
'ancestor::*[local-name()="toolbar"]/descendant::*[local-name()="tabs"]',
aTabBrowserChild,
null,
Ci.nsIDOMXPathResult.FIRST_ORDERED_NODE_TYPE,

View File

@ -118,6 +118,7 @@ var TreeStyleTabUtils = {
kSPLITTER : 'treestyletab-splitter',
kTABBAR_TOGGLER : 'treestyletab-tabbar-toggler',
kTABBAR_PLACEHOLDER : 'treestyletab-tabbar-placeholder',
kTABBAR_TOOLBAR : 'treestyletab-tabbar-toolbar',
/* event types, topics */
kEVENT_TYPE_TAB_FOCUS_SWITCHING_KEY_DOWN : 'nsDOMTreeStyleTabFocusSwitchingKeyDown',
@ -1003,7 +1004,7 @@ var TreeStyleTabUtils = {
return this.evaluateXPath(
'ancestor-or-self::*[contains(concat(" ", normalize-space(@class), " "), " tabbrowser-strip ")] | '+
'ancestor-or-self::xul:tabs[@tabbrowser] | ' +
'ancestor-or-self::xul:toolbar[@id="TabsToolbar"]/child::xul:tabs[@tabbrowser]',
'ancestor-or-self::xul:toolbar/child::xul:tabs[@tabbrowser]',
aNode,
Ci.nsIDOMXPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
@ -1082,7 +1083,7 @@ var TreeStyleTabUtils = {
if (aTabBrowserChild.tabbrowser) // tabs, Firefox 4.0 or later
return aTabBrowserChild.tabbrowser;
if (aTabBrowserChild.id == 'TabsToolbar') // tabs toolbar, Firefox 4.0 or later
if (aTabBrowserChild.localName == 'toolbar') // tabs toolbar, Firefox 4.0 or later
return aTabBrowserChild.getElementsByTagName('tabs')[0].tabbrowser;
// tab context menu on Firefox 4.0
@ -1097,7 +1098,7 @@ var TreeStyleTabUtils = {
var b = this.evaluateXPath(
'ancestor::xul:tabbrowser | '+
'ancestor::xul:tabs[@tabbrowser] |'+
'ancestor::xul:toolbar[@id="TabsToolbar"]/descendant::xul:tabs',
'ancestor::xul:toolbar/descendant::xul:tabs',
aTabBrowserChild,
Ci.nsIDOMXPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;

View File

@ -18,19 +18,19 @@
/* vertical tree */
.tabbrowser-strip[treestyletab-style~="square"][treestyletab-tabbar-position="left"]:not([treestyletab-tabbar-transparent="full"]),
#TabsToolbar[treestyletab-style~="square"][treestyletab-tabbar-position="left"]:not([treestyletab-tabbar-transparent="full"]) {
.treestyletab-tabbar-toolbar[treestyletab-style~="square"][treestyletab-tabbar-position="left"]:not([treestyletab-tabbar-transparent="full"]) {
border-right: 1px solid ThreeDShadow !important;
-moz-border-right-colors: none !important;
}
.tabbrowser-strip[treestyletab-style~="square"][treestyletab-tabbar-position="right"]:not([treestyletab-tabbar-transparent="full"]),
#TabsToolbar[treestyletab-style~="square"][treestyletab-tabbar-position="right"]:not([treestyletab-tabbar-transparent="full"]) {
.treestyletab-tabbar-toolbar[treestyletab-style~="square"][treestyletab-tabbar-position="right"]:not([treestyletab-tabbar-transparent="full"]) {
border-left: 1px solid ThreeDShadow !important;
-moz-border-right-colors: none !important;
}
/* splitter for floating & autohide tab bar */
#TabsToolbar .treestyletab-splitter {
.treestyletab-tabbar-toolbar .treestyletab-splitter {
width: 6px;
-moz-appearance: none;
}