if (typeof(JS_LIB_LOADED) == 'boolean') { const JS_PREFS_LOADED = true; const JS_PREFS_FILE = 'prefs.js'; const JS_PREFS_CID = "@mozilla.org/preferences;1"; const JS_PREFS_I_PREF = "nsIPref"; /*********** PREFS *******************/ function Prefs () { try { // create instance of prefs xpcom object this.prefInst = jslibCreateInstance(JS_PREFS_CID, JS_PREFS_I_PREF); this.prefInst = jslibQI(this.prefInst, "nsIPrefBranch"); } catch (e) { jslibError(e); } // support nsIPref method names this.addMethods(); } Prefs.prototype = { prefInst : null, getPrefType : null, getBoolPref : null, setBoolPref : null, setCharPref : null, getCharPref : null, setIntPref : null, getIntPref : null, ResetPrefs : null, ResetUserPrefs : null, savePrefFile : null, ClearUserPref : null, /*********** GET Type ****************/ // pref type getType : function (aPrefString) { var rv = undefined; try { rv = this.prefInst.GetPrefType(aPrefString) } catch (e) { jslibError(e); } return rv; }, /*********** SET BOOL ****************/ setBool : function (aPrefString, aInBool) { if (!aPrefString) return false; var rv = JS_LIB_OK; try { this.prefInst.SetBoolPref(aPrefString, aInBool) } catch(e) { rv = jslibError(e); } return rv; }, /*********** GET BOOL ****************/ getBool : function (aPrefString) { var rv = false; if (!aPrefString) return rv; try { rv = this.prefInst.GetBoolPref(aPrefString) } catch (e) { } return rv; }, /*********** SET CHAR PREF ***********/ setChar : function (aPrefName, aPrefString) { if (!aPrefName && !aPrefString) return jslibErrorMsg("NS_ERROR_XPC_NOT_ENOUGH_ARGS"); var rv = JS_LIB_OK; try { this.prefInst.SetCharPref(aPrefName, aPrefString) } catch (e) { rv = jslibError(e); } return rv; }, /*********** GET CHAR PREF ***********/ getChar : function (aPrefName) { if (!aPrefName) return jslibErrorMsg("NS_ERROR_XPC_NOT_ENOUGH_ARGS"); var rv = ""; try { rv = this.prefInst.GetCharPref(aPrefName) } catch(e) { } return rv; }, /*********** SET INT PREF ***********/ setInt : function (aPrefName, aInt) { if (!aPrefName && !aInt) return jslibErrorMsg("NS_ERROR_XPC_NOT_ENOUGH_ARGS"); var rv = JS_LIB_OK; try { this.prefInst.SetIntPref(aPrefName, aInt) } catch(e) { rv = jslibError(e); } return rv; }, /*********** GET INT PREF ***********/ getInt : function (aPrefName) { if (!aPrefName) return jslibErrorMsg("NS_ERROR_XPC_NOT_ENOUGH_ARGS"); var rv; try { rv = this.prefInst.GetIntPref(aPrefName) } catch(e) { rv = -jslibRes.NS_ERROR_FAILURE; } return rv; }, /*********** RESET PREF *************/ reset : function () { var rv = JS_LIB_OK; try { this.prefInst.ResetPrefs(); } catch(e) { rv = jslibError(e); } return rv; }, /*********** RESET USER PREF ********/ resetUser : function () { var rv = JS_LIB_OK; try { this.prefInst.ResetUserPrefs(); } catch(e) { rv = jslibError(e); } return rv; }, /*********** SAVE PREF **************/ save : function (aFile) { var file; switch (typeof(aFile)) { case "object": // check object is an nsIFile object if (typeof(aFile.path) == "string") file = aFile; break; case "string": include (jslib_file); // path is a string, make it into an nsIFile file = (new File(aFile)).nsIFile; break; } var rv = JS_LIB_OK; try { this.prefInst.savePrefFile(file); } catch(e) { rv = jslibError(e); } return rv; }, /*********** CLEAR USER PREF ********/ clear : function (aPrefString) { var rv = JS_LIB_OK; try { this.prefInst.ClearUserPref(aPrefString); } catch(e) { rv = jslibError(e); } return rv; }, /*********** GET NSIPREF ********/ get nsIPref () { return this.prefInst; }, /*********** SUPPORT NSIPREF METHODS ********/ addMethods : function () { this.getPrefType = this.getType; this.setBoolPref = this.setBool; this.getBoolPref = this.getBool; this.setCharPref = this.setChar; this.getCharPref = this.getChar; this.setIntPref = this.setInt; this.getIntPref = this.getInt; this.ResetPrefs = this.reset; this.ResetUserPrefs = this.resetUser; this.savePrefFile = this.save; this.ClearUserPref = this.clear; } }; // END CLASS jslibLoadMsg(JS_PREFS_FILE); } else { dump("Load Failure: prefs.js\n"); }