CSSMediaRule.js
 1  //.CommonJS
 2  var CSSOM = {
 3  	CSSRule: require("./CSSRule").CSSRule,
 4  	MediaList: require("./MediaList").MediaList
 5  };
 6  ///CommonJS
 7  
 8  
 9  /**
10   * @constructor
11   * @see http://dev.w3.org/csswg/cssom/#cssmediarule
12   * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule
13   */
14  CSSOM.CSSMediaRule = function CSSMediaRule() {
15  	CSSOM.CSSRule.call(this);
16  	this.media = new CSSOM.MediaList();
17  	this.cssRules = [];
18  };
19  
20  CSSOM.CSSMediaRule.prototype = new CSSOM.CSSRule();
21  CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;
22  CSSOM.CSSMediaRule.prototype.type = 4;
23  //FIXME
24  //CSSOM.CSSMediaRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;
25  //CSSOM.CSSMediaRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;
26  
27  // http://opensource.apple.com/source/WebCore/WebCore-658.28/css/CSSMediaRule.cpp
28  Object.defineProperty(CSSOM.CSSMediaRule.prototype, "cssText", {
29    get: function() {
30      var cssTexts = [];
31      for (var i=0, length=this.cssRules.length; i < length; i++) {
32        cssTexts.push(this.cssRules[i].cssText);
33      }
34      return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}";
35    }
36  });
37  
38  
39  //.CommonJS
40  exports.CSSMediaRule = CSSOM.CSSMediaRule;
41  ///CommonJS