在JPM

2016-02-01 15 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

自己注意:仍然沒有告訴我如何適應角色... –

相關問題