blob: d4d3b6e707f7bbbb43a7763adc24f9dd2de1171a [file] [log] [blame]
/*
* weinre is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) 2010, 2011 IBM Corporation
*/
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
class CSSStore
this.__styleMap = {}
this.__nextId = 0
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
static
var Properties = []
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
static method addCSSProperties(properties)
Properties = properties
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getStyle(styleId)
return this.__styleMap[styleId]
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getStyleId(style)
if (style.__weinre_id) {
return style.__weinre_id
}
style.__weinre_id = this._nextId()
this.__styleMap[style.__weinre_id] = style
return style.__weinre_id
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getInlineStyle(node)
return this.buildObjectForStyle(node.style, true)
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getComputedStyle(node)
if (!node) return {}
if (node.nodeType != Node.ELEMENT_NODE) return {}
return this.buildObjectForStyle(window.getComputedStyle(node), false)
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getMatchedCSSRules(node)
var result = []
return result
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getStyleAttributes(node)
var result = {}
return result
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method getPseudoElements(node)
var result = []
return result
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method buildObjectForStyle(style, bind)
var result = {
width: null,
height: null,
properties: []
}
if (!style) return result
if (bind) {
var styleId = this.getStyleId(style)
result.id = styleId
/*
CSSStyleSheet* parentStyleSheet = InspectorCSSStore::getParentStyleSheet(style);
if (parentStyleSheet)
result->setNumber("parentStyleSheetId", cssStore()->bindStyleSheet(parentStyleSheet));
DisabledStyleDeclaration* disabledStyle = cssStore()->disabledStyleForId(styleId, false);
if (disabledStyle)
result->setArray("disabled", buildArrayForDisabledStyleProperties(disabledStyle));
*/
}
result.width = style.getPropertyValue("width")
result.height = style.getPropertyValue("height")
this.populateObjectWithStyleProperties(style, result)
return result
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method populateObjectWithStyleProperties(style, result)
var properties = []
var shorthandValues = {}
if (style) {
var foundShorthands = {}
for (var i=0; i < style.length; i++) {
var property = {}
var name = style.item(i)
property.name = name
property.priority = style.getPropertyPriority(name)
property.implicit = false // style.isPropertyImplicit(name)
// String shorthand = style->getPropertyShorthand(name);
property.shorthand = ""
/*
if (!shorthand.isEmpty() && !foundShorthands.contains(shorthand)) {
foundShorthands.add(shorthand);
shorthandValues->setString(shorthand, shorthandValue(style, shorthand));
}
*/
property.value = style.getPropertyValue(name)
properties.push(property);
}
}
result.properties = properties
result.shorthandValues = shorthandValues
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
method _nextId
return "" + (++this.__nextId)