X-Git-Url: http://git.euphorik.ch/?p=pompage.git;a=blobdiff_plain;f=doc%2Fwebdeveloper%2Ffeatures%2Fview_style_information.js;fp=doc%2Fwebdeveloper%2Ffeatures%2Fview_style_information.js;h=0000000000000000000000000000000000000000;hp=cc2f6a81e3fd41021fa45e83f41071b96a76fa77;hb=eb7467621891b71883916c90f91bddf4c38d615f;hpb=de6efc861c1f471125cb4d3ab3d0f82572b3d21b diff --git a/doc/webdeveloper/features/view_style_information.js b/doc/webdeveloper/features/view_style_information.js deleted file mode 100644 index cc2f6a8..0000000 --- a/doc/webdeveloper/features/view_style_information.js +++ /dev/null @@ -1,348 +0,0 @@ -var webdeveloper_styleElement = null; - -// Output style information for an element -function webdeveloper_outputStyleInformationForElement(displayInDashboard, styleSheetArray, title) -{ - var bodyElement = null; - var cssElement = null; - var divElement = null; - var generatedDocument = null; - var headElement = null; - var headerElement = null; - var linkElement = null; - var preElement = null; - var spanElement = null; - var stringBundle = document.getElementById("webdeveloper-string-bundle"); - var styleInformationFound = false; - var styleSheet = null; - - // If displaying in the dashboard - if(displayInDashboard) - { - var parent = null; - - generatedDocument = webdeveloper_getDocumentInDashboard(stringBundle.getString("webdeveloper_styleInformation")); - bodyElement = webdeveloper_getDocumentBodyElement(generatedDocument); - headElement = webdeveloper_getDocumentHeadElement(generatedDocument); - - webdeveloper_removeAllChildElements(bodyElement); - webdeveloper_removeAllChildElements(headElement); - } - else - { - generatedDocument = webdeveloper_generateDocument(""); - bodyElement = webdeveloper_getDocumentBodyElement(generatedDocument); - headElement = webdeveloper_getDocumentHeadElement(generatedDocument); - headerElement = generatedDocument.createElement("h1"); - - headerElement.appendChild(generatedDocument.createTextNode(title)); - bodyElement.appendChild(headerElement); - } - - generatedDocument.title = title; - linkElement = generatedDocument.createElement("link"); - - webdeveloper_addGeneratedStyles(generatedDocument); - - linkElement.setAttribute("href", "chrome://webdeveloper/content/stylesheets/generated/view_style_information.css"); - linkElement.setAttribute("rel", "stylesheet"); - linkElement.setAttribute("type", "text/css"); - headElement.appendChild(linkElement); - - // Loop through the style sheets - for(styleSheet in styleSheetArray) - { - cssElement = generatedDocument.createElement("div"); - divElement = generatedDocument.createElement("div"); - headerElement = generatedDocument.createElement("h2"); - linkElement = generatedDocument.createElement("a"); - spanElement = generatedDocument.createElement("span"); - styleInformationFound = true; - - spanElement.setAttribute("class", "expanded pivot"); - headerElement.appendChild(spanElement); - linkElement.setAttribute("href", styleSheet); - linkElement.appendChild(generatedDocument.createTextNode(styleSheet)); - headerElement.appendChild(linkElement); - bodyElement.appendChild(headerElement); - - cssElement.setAttribute("class", "css"); - divElement.setAttribute("class", "output"); - divElement.appendChild(cssElement); - bodyElement.appendChild(divElement); - - cssElement.innerHTML = styleSheetArray[styleSheet]; - } - - // If style information was found - if(styleInformationFound) - { - var scriptElement = generatedDocument.createElement("script"); - - scriptElement.setAttribute("defer", "defer"); - scriptElement.setAttribute("src", "chrome://webdeveloper/content/common/xpath.js"); - scriptElement.setAttribute("type", "text/javascript"); - headElement.appendChild(scriptElement); - - scriptElement = generatedDocument.createElement("script"); - - scriptElement.setAttribute("defer", "defer"); - scriptElement.setAttribute("src", "chrome://webdeveloper/content/generated/output_pivot.js"); - scriptElement.setAttribute("type", "text/javascript"); - headElement.appendChild(scriptElement); - } - else - { - var pElement = generatedDocument.createElement("p"); - - pElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_noStyleInformation"))); - bodyElement.appendChild(pElement); - } -} - -// View style information -function webdeveloper_viewStyleInformation(element) -{ - // If the DOM Inspector is available - if(webdeveloper_isDOMInspectorAvailable()) - { - var checked = true; - var contentWindow = webdeveloper_getContentWindow(); - var documentList = webdeveloper_getDocuments(contentWindow); - var documentLength = documentList.length; - var pageDocument = null; - - // If the element is set - if(element) - { - checked = element.getAttribute("checked"); - } - else - { - var currentDocument = contentWindow.document; - - element = document.getElementById("webdeveloper-view-style-information-menu"); - - // If the view style information element is set - if(currentDocument.getElementById("webdeveloper-view-style-information")) - { - checked = false; - } - - webdeveloper_configureElement(element, "checked", checked); - } - - webdeveloper_configureElement(document.getElementById("webdeveloper-information-text-toolbar"), "hidden", !checked); - - // Loop through the documents - for(var i = 0; i < documentLength; i++) - { - pageDocument = documentList[i]; - - // If viewing style information - if(checked) - { - pageDocument.addEventListener("click", webdeveloper_viewStyleInformationForElement, false); - pageDocument.addEventListener("keypress", webdeveloper_viewStyleInformationKeyPress, false); - pageDocument.addEventListener("mousemove", webdeveloper_viewStyleInformationMouseMove, false); - pageDocument.addEventListener("mouseover", webdeveloper_viewStyleInformationMouseOver, false); - } - else - { - var title = document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_styleInformation"); - - // Try to remove the event listener - try - { - pageDocument.removeEventListener("click", webdeveloper_viewStyleInformationForElement, false); - } - catch(exception) - { - // Do nothing - } - - // Try to remove the event listener - try - { - pageDocument.removeEventListener("keypress", webdeveloper_viewStyleInformationKeyPress, false); - } - catch(exception) - { - // Do nothing - } - - // Try to remove the event listener - try - { - pageDocument.removeEventListener("mousemove", webdeveloper_viewStyleInformationMouseMove, false); - } - catch(exception) - { - // Do nothing - } - - // Try to remove the event listener - try - { - pageDocument.removeEventListener("mouseover", webdeveloper_viewStyleInformationMouseOver, false); - } - catch(exception) - { - // Do nothing - } - - // If view style information is open in the dashboard - if(webdeveloper_isOpenInDashboard(title)) - { - webdeveloper_closeInDashboard(title); - } - - webdeveloper_removeElementOutline(webdeveloper_styleElement); - } - } - - // If not viewing style information - if(!checked) - { - webdeveloper_styleElement = null; - } - - webdeveloper_toggleStyleSheet(element, "chrome://webdeveloper/content/stylesheets/view_style_information.css", "webdeveloper-view-style-information"); - } - else - { - window.openDialog("chrome://webdeveloper/content/message/message.xul", "webdeveloper-message-dialog", "centerscreen,chrome,modal", document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_domInspectorRequired"), "http://chrispederick.com/work/web-developer/documentation/faq/#dom-inspector"); - } -} - -// View style information for an element -function webdeveloper_viewStyleInformationForElement(event) -{ - var eventTarget = event.target; - - // If there is an event target and the click was not a right click - if(eventTarget && event.button != 2) - { - var displayInDashboard = webdeveloper_getBooleanPreference("webdeveloper.style.information.dashboard", true); - var domUtils = Components.classes["@mozilla.org/inspector/dom-utils;1"].getService(Components.interfaces.inIDOMUtils); - var elementRule = null; - var headerElement = null; - var line = null; - var oldURL = getBrowser().currentURI.spec; - var ruleList = domUtils.getCSSStyleRules(eventTarget); - var stringBundle = document.getElementById("webdeveloper-string-bundle"); - var styleRule = null; - var styleRuleLength = null; - var styleRuleList = null; - var styleSheet = null; - var styleSheetArray = new Array(); - var styleSheetHref = null; - var styleText = null; - - // Loop through the element rules - for(var i = 0; i < ruleList.Count(); i++) - { - elementRule = ruleList.GetElementAt(i).QueryInterface(Components.interfaces.nsIDOMCSSStyleRule); - line = domUtils.getRuleLine(elementRule); - - // If there is a parent style sheet - if(elementRule.parentStyleSheet) - { - styleSheet = elementRule.parentStyleSheet; - } - - // If this is a valid style sheet - if(webdeveloper_isValidStyleSheet(styleSheet)) - { - styleRuleList = elementRule.style; - styleRuleLength = styleRuleList.length; - styleSheetHref = styleSheet.href; - styleText = '

' + elementRule.selectorText + ' (' + stringBundle.getString("webdeveloper_line").toLowerCase() + " " + line + ")

"; - - styleText += "

{

"; - - // Loop through the style rules - for(var j = 0; j < styleRuleLength; j++) - { - styleRule = styleRuleList[j]; - - // If this is a valid style rule - if(webdeveloper_isValidStyleRule(styleRuleList, styleRule)) - { - styleText += '

' + webdeveloper_formatStyleRuleProperty(styleRule) + ': ' + webdeveloper_formatStyleRuleValue(styleRuleList.getPropertyValue(styleRule)) + ";

"; - } - } - - styleText += "

}

"; - - // If this style sheet has rules already stored - if(styleSheetArray[styleSheetHref]) - { - styleSheetArray[styleSheetHref] += styleText; - } - else - { - styleSheetArray[styleSheetHref] = styleText; - } - } - } - - // If displaying in the dashboard - if(displayInDashboard) - { - var title = stringBundle.getString("webdeveloper_styleInformation"); - - // If view style information is already open in the dashboard - if(webdeveloper_isOpenInDashboard(title)) - { - webdeveloper_outputStyleInformationForElement(displayInDashboard, styleSheetArray, stringBundle.getFormattedString("webdeveloper_viewStyleInformationTitle", [oldURL])); - webdeveloper_selectInDashboard(title); - } - else - { - webdeveloper_openInDashboard(title, ""); - - // This sets a small timeout to guarantee the dashboard is open - window.setTimeout(webdeveloper_outputStyleInformationForElement, 500, displayInDashboard, styleSheetArray, stringBundle.getFormattedString("webdeveloper_viewStyleInformationTitle", [oldURL])); - } - } - else - { - var oldTab = getBrowser().selectedTab; - - webdeveloper_outputStyleInformationForElement(displayInDashboard, styleSheetArray, stringBundle.getFormattedString("webdeveloper_viewStyleInformationTitle", [oldURL])); - - // If the open tabs in background preference is set to true - if(webdeveloper_getBooleanPreference("webdeveloper.open.tabs.background", true)) - { - getBrowser().selectedTab = oldTab; - } - } - - event.preventDefault(); - } -} - -// Keypress event for view style information -function webdeveloper_viewStyleInformationKeyPress(event) -{ - webdeveloper_copyElementAncestors(event); -} - -// Move event for view style information -function webdeveloper_viewStyleInformationMouseMove(event) -{ - var outlineElement = webdeveloper_addElementOutline(event, webdeveloper_styleElement); - - // If the outline element is set - if(outlineElement) - { - webdeveloper_styleElement = outlineElement; - } -} - -// Mouseover event for view style information -function webdeveloper_viewStyleInformationMouseOver(event) -{ - webdeveloper_displayElementAncestors(event); -}