在JPM

2016-02-01 19 views
1

中使用操作系统和颜色主题特定图标作为切换按钮在Firefox中,根据主题和操作系统,图标是不同的。例如:在JPM

在Linux上: Linux
在Windows 10: Windows http://www.saranitus.com/wp-content/images/firefox/firefox-40-with-windows-10.png
轻量级主题: Personas http://i68.tinypic.com/smgeau.png

通知图标如何在Windows 10和暗白色的上一个角色(很明显)。

事情是,my addon添加一个新的按钮(准确地说是一个togglebutton)到Firefox菜单,现在只有一个静态图标。
我知道在JPM(或CFX,几乎相同的东西)上创建了一个插件来实现这种行为,但我不记得是哪一个,我也不记得如何。
如何根据操作系统和主题使图标更改?

回答

0

找到它。这是Mozilla的Addon Compatiblity Reporter。

添加到您的启动代码:

var {Cc, Ci, Cu} = require("chrome"); 

if (Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 10.0") > -1) { 
    var icontype = "Modern"; 
} 
else if (Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.3") > -1 || Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.2") > -1) { 
    var icontype = "Metro"; 
} 
else if (Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.1") > -1 || Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.0") > -1) { 
    var icontype = "Aero"; 
} 
else if (Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Mac OS X") > -1) { 
    var icontype = "Aqua"; 
} 
else { 
    var icontype = "Linux"; 

}

,然后宣告你的图标时,只需键入:

icon: { 
    "16": "./" + icontype + "_16.png", 
    "32": "./" + icontype + "_32.png" 
}, 

所以,当你创建一个图标为Mac OS X,将其放置为data/Aqua_16.png,它应该可以工作。

+0

自己注意:仍然没有告诉我如何适应角色... –

相关问题