This is just some static backup of the original site, don't expect every link to work!

source: chrome/content/v_identity/vI_statusmenu.js @ bdfae4

lite_0.1multiEditng_0.6ng_0.6_helpng_0.8ng_0.9
Last change on this file since bdfae4 was 4e597d, checked in by rene <rene@…>, 13 years ago

implementation for fcc_switch

  • Property mode set to 100644
File size: 7.8 KB
Line 
1/* ***** BEGIN LICENSE BLOCK *****
2    This program is free software; you can redistribute it and/or modify
3    it under the terms of the GNU General Public License as published by
4    the Free Software Foundation; either version 2 of the License, or
5    (at your option) any later version.
6
7    This program is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10    GNU General Public License for more details.
11
12    You should have received a copy of the GNU General Public License
13    along with this program; if not, write to the Free Software
14    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
15
16    The Original Code is the Virtual Identity Extension.
17
18    The Initial Developer of the Original Code is Rene Ejury.
19    Portions created by the Initial Developer are Copyright (C) 2007
20    the Initial Developer. All Rights Reserved.
21
22    Contributor(s):
23 * ***** END LICENSE BLOCK ***** */
24
25var vI_statusmenu = {
26    prefroot : Components.classes["@mozilla.org/preferences-service;1"]
27        .getService(Components.interfaces.nsIPrefService)
28        .getBranch(null),
29
30    objStatusMenu : null,
31    objSaveBaseIDMenuItem : null,
32    objStorageSaveMenuItem : null,
33    objStatusMenuSeparator : null,
34    objSaveSwitch : null,
35    objFccSwitch : null,
36    objStatusText : null,
37   
38    observe: function(subject, topic, data) {
39        switch (data) {
40            case "extensions.virtualIdentity.fcc_show_switch":
41                vI_statusmenu.objFccSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
42                // no break, continue like with doFcc           
43            case "extensions.virtualIdentity.doFcc":
44                vI_statusmenu.objFccSwitch.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.doFcc"));
45                break;
46            case "extensions.virtualIdentity.storage_show_switch":
47                vI_statusmenu.objSaveSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
48                // no break, continue like with storedefault
49            case "extensions.virtualIdentity.storage_storedefault":
50                vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage_storedefault"));
51                break;
52            case "extensions.virtualIdentity.storage_store_base_id":
53                vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref(data));
54                break;
55            case "extensions.virtualIdentity.storage":
56                if (vI_statusmenu.prefroot.getBoolPref(data)) {
57                    vI_statusmenu.objStorageSaveMenuItem.removeAttribute("hidden");
58                    vI_statusmenu.objSaveBaseIDMenuItem.removeAttribute("hidden");
59                    vI_statusmenu.objStatusMenuSeparator.removeAttribute("hidden");
60                }
61                else {
62                    vI_statusmenu.objStorageSaveMenuItem.setAttribute("hidden", "true");
63                    vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("hidden", "true");
64                    vI_statusmenu.objStatusMenuSeparator.setAttribute("hidden", "true");
65                }
66                break;
67        }
68        vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);
69    },
70   
71    addObserver: function() {
72        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.fcc_show_switch", vI_statusmenu, false);
73        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.doFcc", vI_statusmenu, false);
74        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage", vI_statusmenu, false);
75        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_switch", vI_statusmenu, false);
76        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_storedefault", vI_statusmenu, false);   
77        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_store_base_id", vI_statusmenu, false);   
78    },
79   
80    removeObserver: function() {
81        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.fcc_show_switch", vI_statusmenu);
82        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.doFcc", vI_statusmenu);
83        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage", vI_statusmenu);
84        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_switch", vI_statusmenu);
85        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_storedefault", vI_statusmenu);
86        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_store_base_id", vI_statusmenu);
87    },
88   
89    init : function () {
90        vI_statusmenu.prefroot.QueryInterface(Components.interfaces.nsIPrefBranch2);
91
92        vI_statusmenu.objStatusMenu = document.getElementById("vI-status-menu");
93        vI_statusmenu.objSaveBaseIDMenuItem = document.getElementById("vI_statusMenu_storage_saveBaseID");
94        vI_statusmenu.objStorageSaveMenuItem = document.getElementById("vI_statusMenu_storage_save");
95        vI_statusmenu.objStatusMenuSeparator = document.getElementById("vI_statusMenu_separator");
96        vI_statusmenu.objSaveSwitch = document.getElementById("storage_save");
97        vI_statusmenu.objFccSwitch = document.getElementById("fcc_switch");
98        vI_statusmenu.objStatusText = document.getElementById("statusText");
99        vI_statusmenu.objStatusTooltipLine1 = document.getElementById("vI_statusMenuTooltip_StatusValueLine1");
100        vI_statusmenu.objStatusTooltipLine2 = document.getElementById("vI_statusMenuTooltip_StatusValueLine2");
101
102        vI_statusmenu.addObserver();
103        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.fcc_show_switch");
104        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_switch");
105        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_base_id");
106        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage");
107    },
108   
109    saveBaseIDClicked : function () {
110        vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);
111    },
112
113    __timeout : 5,  // timeout for status messages in seconds
114    __addStatusMessage : function(save) {
115        var messageLine1 = vI.elements.strings.getString("vident.statusText.save." + save + ".line1");
116        var messageLine2 = vI.elements.strings.getString("vident.statusText.save." + save + ".line2");
117        if (!messageLine2) {
118            vI_statusmenu.objStatusText.setAttribute("label", messageLine1);
119            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
120            vI_statusmenu.objStatusTooltipLine2.setAttribute("hidden", "true");
121        }   
122        else {
123            vI_statusmenu.objStatusText.setAttribute("label", messageLine1 + " " + messageLine2);
124            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
125            vI_statusmenu.objStatusTooltipLine2.setAttribute("value", messageLine2);
126            vI_statusmenu.objStatusTooltipLine2.removeAttribute("hidden");
127        }
128        window.setTimeout(vI_statusmenu.__clearStatusMessage, vI_statusmenu.__timeout * 1000);
129    },
130
131    __clearStatusMessage : function() {
132        vI_statusmenu.objStatusText.setAttribute("label", "");
133    },
134
135    menuConstraint : function (elem) {
136        var save = "off";
137        if (vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage") &&
138            elem.getAttribute("checked") == "true") {
139            if (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true")
140                save = "base";
141            else save = "ok";
142        }
143        vI_statusmenu.objStatusMenu.setAttribute("save", save);
144        vI_statusmenu.__addStatusMessage(save);
145    },
146
147    clicked : function (button) {
148        if (button != 0) return; // only react on left mouse button
149        if (!vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) return;
150
151        var curSaveStatus = (vI_statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true");
152        var curSaveBaseIDStatus = (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true");
153        var newSaveStatus = ((!curSaveStatus) || (curSaveStatus && !curSaveBaseIDStatus))
154        var newSaveBaseIDStatus = (!curSaveBaseIDStatus && curSaveStatus)
155        vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", newSaveStatus)
156        vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", newSaveBaseIDStatus)
157
158        var elem = vI_statusmenu.objStorageSaveMenuItem;
159        vI_statusmenu.menuConstraint(elem);
160    }
161}
Note: See TracBrowser for help on using the repository browser.