Super Tab Modeによるタブのフォーカス制御を優先

git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@6534 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
piro 2010-03-31 11:15:18 +00:00
parent ab4a1a401a
commit 6364652b44

View File

@ -301,67 +301,6 @@ TreeStyleTabService.overrideExtensionsOnInitBefore = function TSTService_overrid
); );
} }
} }
// Super Tab Mode
// https://addons.mozilla.org/firefox/addon/13288
if ('stmM' in window) {
var observer = {
domain : 'extensions.stm.',
observe : function(aSubject, aTopic, aData)
{
switch (aData)
{
case 'extensions.stm.tabBarMultiRows':
case 'extensions.stm.tabBarPosition':
if (
TreeStyleTabService.getPref('extensions.stm.tabBarMultiRows') &&
TreeStyleTabService.getPref('extensions.stm.tabBarPosition') == 0
) {
TreeStyleTabService.setPref('extensions.stm.tabBarMultiRows.override', false);
}
return;
case 'extensions.stm.newTabBtnPos':
if (TreeStyleTabService.getPref(aData) == 0)
document.documentElement.removeAttribute(TreeStyleTabService.kHIDE_NEWTAB);
else
document.documentElement.setAttribute(TreeStyleTabService.kHIDE_NEWTAB, true);
return;
}
}
};
observer.observe(null, null, 'extensions.stm.tabBarMultiRows');
observer.observe(null, null, 'extensions.stm.newTabBtnPos');
TreeStyleTabService.addPrefListener(observer);
window.addEventListener('unload', function() {
window.removeEventListener('unload', arguments.callee, false);
TreeStyleTabService.removePrefListener(observer);
}, false);
let warnPref = 'extensions.treestyletab.compatibility.STM.warnForNewTabPosition';
if (
this.getPref(warnPref) &&
this.getPref('extensions.stm.newTabPosition') != 0
) {
let checked = { value : false };
if (this.PromptService.confirmEx(
null,
this.treeBundle.getString('compatibility_STM_warning_title'),
this.treeBundle.getString('compatibility_STM_warning_text'),
(this.PromptService.BUTTON_TITLE_IS_STRING * this.PromptService.BUTTON_POS_0) +
(this.PromptService.BUTTON_TITLE_IS_STRING * this.PromptService.BUTTON_POS_1),
this.treeBundle.getString('compatibility_STM_warning_use_TST'),
this.treeBundle.getString('compatibility_STM_warning_use_STM'),
null,
this.treeBundle.getString('compatibility_STM_warning_never'),
checked
) == 0) {
this.setPref('extensions.stm.newTabPosition', 0);
}
if (checked.value)
this.setPref(warnPref, false);
}
}
}; };
TreeStyleTabService.overrideExtensionsOnInitAfter = function TSTService_overrideExtensionsOnInitAfter() { TreeStyleTabService.overrideExtensionsOnInitAfter = function TSTService_overrideExtensionsOnInitAfter() {
@ -1080,6 +1019,71 @@ TreeStyleTabService.overrideExtensionsOnInitAfter = function TSTService_override
); );
} }
// Super Tab Mode
// https://addons.mozilla.org/firefox/addon/13288
if ('stmM' in window) {
var observer = {
domain : 'extensions.stm.',
observe : function(aSubject, aTopic, aData)
{
switch (aData)
{
case 'extensions.stm.tabBarMultiRows':
case 'extensions.stm.tabBarPosition':
if (
TreeStyleTabService.getPref('extensions.stm.tabBarMultiRows') &&
TreeStyleTabService.getPref('extensions.stm.tabBarPosition') == 0
) {
TreeStyleTabService.setPref('extensions.stm.tabBarMultiRows.override', false);
}
return;
case 'extensions.stm.newTabBtnPos':
if (TreeStyleTabService.getPref(aData) == 0)
document.documentElement.removeAttribute(TreeStyleTabService.kHIDE_NEWTAB);
else
document.documentElement.setAttribute(TreeStyleTabService.kHIDE_NEWTAB, true);
return;
}
}
};
observer.observe(null, null, 'extensions.stm.tabBarMultiRows');
observer.observe(null, null, 'extensions.stm.newTabBtnPos');
TreeStyleTabService.addPrefListener(observer);
window.addEventListener('unload', function() {
window.removeEventListener('unload', arguments.callee, false);
TreeStyleTabService.removePrefListener(observer);
}, false);
let warnPref = 'extensions.treestyletab.compatibility.STM.warnForNewTabPosition';
if (
this.getPref(warnPref) &&
this.getPref('extensions.stm.newTabPosition') != 0
) {
let checked = { value : false };
if (this.PromptService.confirmEx(
null,
this.treeBundle.getString('compatibility_STM_warning_title'),
this.treeBundle.getString('compatibility_STM_warning_text'),
(this.PromptService.BUTTON_TITLE_IS_STRING * this.PromptService.BUTTON_POS_0) +
(this.PromptService.BUTTON_TITLE_IS_STRING * this.PromptService.BUTTON_POS_1),
this.treeBundle.getString('compatibility_STM_warning_use_TST'),
this.treeBundle.getString('compatibility_STM_warning_use_STM'),
null,
this.treeBundle.getString('compatibility_STM_warning_never'),
checked
) == 0) {
this.setPref('extensions.stm.newTabPosition', 0);
}
if (checked.value)
this.setPref(warnPref, false);
}
TreeStyleTabService.registerTabFocusAllowance(function(aTabBrowser) {
return aTabBrowser.treeStyleTab.getPref('extensions.stm.focusAfterCloseTab') == 0;
});
}
window.setTimeout(function(aSelf) { window.setTimeout(function(aSelf) {
aSelf.overrideExtensionsDelayed(); aSelf.overrideExtensionsDelayed();