X-Git-Url: http://git.euphorik.ch/?p=pompage.git;a=blobdiff_plain;f=doc%2Fwebdeveloper%2Fcommon%2Fpreferences.js;fp=doc%2Fwebdeveloper%2Fcommon%2Fpreferences.js;h=95efbd556e0d1a2dc3e7369902aed036b008c7cd;hp=0000000000000000000000000000000000000000;hb=c3b0deb3d8c9f439739c79806e915c29bc1d4b84;hpb=cff6539539a79e014f6ac8df46716cafce2c8472 diff --git a/doc/webdeveloper/common/preferences.js b/doc/webdeveloper/common/preferences.js new file mode 100644 index 0000000..95efbd5 --- /dev/null +++ b/doc/webdeveloper/common/preferences.js @@ -0,0 +1,183 @@ +var webdeveloper_preferencesService = null; + +// Deletes a preference +function webdeveloper_deletePreference(preference) +{ + // If the preference is set + if(preference) + { + // If a user preference is set + if(webdeveloper_isPreferenceSet(preference)) + { + webdeveloper_getPreferencesService().clearUserPref(preference); + } + } +} + +// Deletes a preference branch +function webdeveloper_deletePreferenceBranch(branch) +{ + // If the branch is set + if(branch) + { + webdeveloper_getPreferencesService().deleteBranch(branch); + } +} + +// Gets a boolean preference, returning false if the preference is not set +function webdeveloper_getBooleanPreference(preference, userPreference) +{ + // If the preference is set + if(preference) + { + // If not a user preference or a user preference is set + if(!userPreference || webdeveloper_isPreferenceSet(preference)) + { + try + { + return webdeveloper_getPreferencesService().getBoolPref(preference); + } + catch(exception) + { + // Do nothing + } + } + } + + return false; +} + +// Gets an integer preference, returning 0 if the preference is not set +function webdeveloper_getIntegerPreference(preference, userPreference) +{ + // If the preference is set + if(preference) + { + // If not a user preference or a user preference is set + if(!userPreference || webdeveloper_isPreferenceSet(preference)) + { + try + { + return webdeveloper_getPreferencesService().getIntPref(preference); + } + catch(exception) + { + // Do nothing + } + } + } + + return 0; +} + +// Gets the preferences service +function webdeveloper_getPreferencesService() +{ + // If the preferences service is not set + if(!webdeveloper_preferencesService) + { + webdeveloper_preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(""); + } + + return webdeveloper_preferencesService; +} + +// Gets a string preference, returning null if the preference is not set +function webdeveloper_getStringPreference(preference, userPreference) +{ + // If the preference is set + if(preference) + { + // If not a user preference or a user preference is set + if(!userPreference || webdeveloper_isPreferenceSet(preference)) + { + try + { + return webdeveloper_getPreferencesService().getComplexValue(preference, Components.interfaces.nsISupportsString).data.trim(); + } + catch(exception) + { + // Do nothing + } + } + } + + return null; +} + +// Is a preference set +function webdeveloper_isPreferenceSet(preference) +{ + // If the preference is set + if(preference) + { + return webdeveloper_getPreferencesService().prefHasUserValue(preference); + } + + return false; +} + +// Sets a boolean preference +function webdeveloper_setBooleanPreference(preference, value) +{ + // If the preference is set + if(preference) + { + webdeveloper_getPreferencesService().setBoolPref(preference, value); + } +} + +// Sets a boolean preference if it is not already set +function webdeveloper_setBooleanPreferenceIfNotSet(preference, value) +{ + // If the preference is not set + if(!webdeveloper_isPreferenceSet(preference)) + { + webdeveloper_getPreferencesService().setBoolPref(preference, value); + } +} + +// Sets an integer preference +function webdeveloper_setIntegerPreference(preference, value) +{ + // If the preference is set + if(preference) + { + webdeveloper_getPreferencesService().setIntPref(preference, value); + } +} + +// Sets an integer preference if it is not already set +function webdeveloper_setIntegerPreferenceIfNotSet(preference, value) +{ + // If the preference is not set + if(!webdeveloper_isPreferenceSet(preference)) + { + webdeveloper_setIntegerPreference(preference, value); + } +} + +// Sets a string preference +function webdeveloper_setStringPreference(preference, value) +{ + // If the preference is set + if(preference) + { + var supportsStringInterface = Components.interfaces.nsISupportsString; + var string = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsStringInterface); + + string.data = value; + + webdeveloper_getPreferencesService().setComplexValue(preference, supportsStringInterface, string); + } +} + +// Sets a string preference if it is not already set +function webdeveloper_setStringPreferenceIfNotSet(preference, value) +{ + // If the preference is not set + if(!webdeveloper_isPreferenceSet(preference)) + { + webdeveloper_setStringPreference(preference, value); + } +} \ No newline at end of file