home *** CD-ROM | disk | FTP | other *** search
- // globals
-
- var chromedit_prefs;
- // main string bundle
- var gCeBundle;
-
- const emid="2cf89d59-8610-4053-b207-85c6a128f65d";
-
- function startUp()
- {
- chromedit_prefs = Components.classes["@mozilla.org/preferences-service;1"].
- getService(Components.interfaces.nsIPrefService).
- getBranch("extensions.chromedit.");
- // Set up the string bundle
- gCeBundle = document.getElementById("bundle_ce");
- loadIt('userChrome.css','editChrome', 'path-chrome');
- loadIt('userContent.css','editContent', 'path-content');
- loadIt('user.js','editJs', 'path-js');
- loadIt('prefs.js','editprefs', 'path-prefs');
- checktabbox();
-
- // first time in, move windows icons
- var firstLoad;
- try {
- firstLoad = chromedit_prefs.getBoolPref("firsttimein");
- } catch(ex) {
- firstLoad = true;
- chromedit_prefs.setBoolPref("firsttimein", false);
- }
- if (firstLoad)
- copyIcons();
- }
-
- function loadMe()
- {
- alert(gCeBundle.getString("welcomeMsg"));
- }
-
- function getTextareaText(tNodeID)
- {
- var tat = document.getElementById(tNodeID).value;
- return tat;
- }
-
- function setTextareaText(thetext,tNodeID)
- {
- document.getElementById(tNodeID).value= thetext;
- }
-
- function getChromeDir(fileName)
- {
- var p;
- var NSIFILE = Components.interfaces.nsIFile;
- var dirLocator = Components.classes["@mozilla.org/file/directory_service;1"]
- .getService(Components.interfaces.nsIProperties);
- var p = dirLocator.get("UChrm", NSIFILE).path;
- if ( ! /css$/i.test(fileName))
- p = dirLocator.get("ProfD", NSIFILE).path;
- return p;
- }
-
- function getExtDefaultsPath()
- {
- var p;
- var NSIFILE = Components.interfaces.nsIFile;
- var dirLocator = Components.classes["@mozilla.org/file/directory_service;1"]
- .getService(Components.interfaces.nsIProperties);
- var p = dirLocator.get("ProfD", NSIFILE).path;
- var dirLocal = Components.classes["@mozilla.org/file/local;1"]
- .createInstance(Components.interfaces.nsILocalFile);
- dirLocal.initWithPath(p);
- dirLocal.append("extensions");
- dirLocal.append("{"+emid+"}");
- dirLocal.append("defaults");
- if (dirLocal.exists() && dirLocal.isDirectory()) { // Fx and Tb
- return dirLocal.path;
- }
- else { // seamonkey
- p = dirLocator.get("ProfDefNoLoc", NSIFILE).path;
- dirLocal.initWithPath(p);
- dirLocal.append("chrome");
- if (dirLocal.exists() && dirLocal.isDirectory())
- return dirLocal.path;
- }
- return null;
- }
-
- function getIconsDefaultPath()
- {
- var p;
- var NSIFILE = Components.interfaces.nsIFile;
- var dirLocator = Components.classes["@mozilla.org/file/directory_service;1"]
- .getService(Components.interfaces.nsIProperties);
- var p = dirLocator.get("AChrom", NSIFILE).path;
- var dirLocal = Components.classes["@mozilla.org/file/local;1"]
- .createInstance(Components.interfaces.nsILocalFile);
- dirLocal.initWithPath(p);
- dirLocal.append("icons");
- dirLocal.append("default");
- return dirLocal.path;
- }
-
- function loadIt(fileName,targetNodeID,label)
- {
- var chromeDir = getChromeDir(fileName);
- var fName = fileName;
-
- var fileLocal = Components.classes["@mozilla.org/file/local;1"]
- .createInstance(Components.interfaces.nsILocalFile);
- fileLocal.initWithPath(chromeDir);
- fileLocal.append(fName);
-
- document.getElementById(label).value = fileLocal.path;
-
- var is = Components.classes["@mozilla.org/network/file-input-stream;1"]
- .createInstance( Components.interfaces.nsIFileInputStream );
- var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
- .createInstance( Components.interfaces.nsIScriptableInputStream );
-
- if (fileLocal.exists()) {
- is.init( fileLocal,0x01, 00004, null);
- sis.init( is );
- var stuff = sis.read( sis.available() );
- setTextareaText(stuff,targetNodeID);
- }
- else if (/css$/i.test(fName) ) { // && ! f.exists()
-
- fName = fName.replace('.css', '-example.css');
-
- fileLocal.initWithPath(chromeDir);
- fileLocal.append(fName);
-
- if (fileLocal.exists()) {
- is.init( fileLocal,0x01, 00004, null);
- sis.init( is );
- var stuff = sis.read( sis.available() );
- setTextareaText(stuff,targetNodeID);
- }
- else {
- var extDefaultsDir = getExtDefaultsPath();
- fileLocal.initWithPath(extDefaultsDir);
- fileLocal.append(fName);
- if (fileLocal.exists()) {
- is.init( fileLocal,0x01, 00004, null);
- sis.init( is );
- var stuff = sis.read( sis.available() );
- setTextareaText(stuff,targetNodeID);
- }
- }
-
- }
- else {setTextareaText(gCeBundle.getString("noUserJS"), targetNodeID)}
-
- }
-
- function saveIfChanged()
- {
-
- if ( ! document.getElementById('save-chrome').hasAttribute('disabled') )
- saveIt('userChrome.css','editChrome');
-
- if ( ! document.getElementById('save-content').hasAttribute('disabled') )
- saveIt('userContent.css','editContent');
-
- if ( ! document.getElementById('save-js').hasAttribute('disabled') )
- saveIt('user.js','editJs');
-
- }
-
- function saveIt(fileName,targetNodeID,button)
- {
- var data = getTextareaText(targetNodeID);
-
- var chromeDir = getChromeDir(fileName);
- var fName = fileName;
-
- try {
- var fileLocal = Components.classes["@mozilla.org/file/local;1"]
- .createInstance(Components.interfaces.nsILocalFile);
- fileLocal.initWithPath(chromeDir);
- fileLocal.append(fName);
- var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
- .createInstance( Components.interfaces.nsIFileOutputStream );
- outputStream.init( fileLocal, 0x04 | 0x08 | 0x20, 420, 0 );
- var result = outputStream.write( data, data.length );
- outputStream.close();
- document.getElementById(button).setAttribute("disabled", "true");
- }
- catch (ex) {
-
- alert(gCeBundle.getString("notSaved"));
- }
- }
-
- function checktabbox() {
- var flibble;
- try {
- flibble = chromedit_prefs.getBoolPref("openintab");
- } catch(ex) {
- flibble = false;
- }
- document.getElementById('chromeditab').checked = flibble;
- }
-
- function updateChromeditPref(pref)
- {
- if ( document.getElementById(pref).checked == true )
- {
- dump('chromedit :: use Tab\n');
- chromedit_prefs.setBoolPref("openintab", true);
- }
- else
- {
- dump('chromedit :: open Window\n');
- chromedit_prefs.setBoolPref("openintab", false);
- }
- }
-
- function copyIcons()
- {
- var iconFiles = ["ce-main.ico", "ce-main.xpm"];
- var iconsDefaultsDir = getIconsDefaultPath();
- var extDefaultsDir = getExtDefaultsPath();
-
- var iconFile = Components.classes["@mozilla.org/file/local;1"]
- .createInstance(Components.interfaces.nsILocalFile);
- for (i=0;i<iconFiles.length;i++) {
- iconFile.initWithPath(iconsDefaultsDir);
- iconFile.append(iconFiles[i]);
- if (iconFile && !iconFile.exists()) {
- // move it
- var theIconFile = Components.classes["@mozilla.org/file/local;1"]
- .createInstance(Components.interfaces.nsILocalFile);
- theIconFile.initWithPath(extDefaultsDir);
- theIconFile.append(iconFiles[i]);
- theIconFile.copyTo(iconFile.parent, iconFile.leafName);
- }
- }
- }
-