/// <summary> /// Parse the given stylesheet source to CSS blocks dictionary.<br/> /// The CSS blocks are organized into two level buckets of media type and class name.<br/> /// Root media type are found under 'all' bucket.<br/> /// If <paramref name="combineWithDefault"/> is true the parsed css blocks are added to the /// default css data (as defined by W3), merged if class name already exists. If false only the data in the given stylesheet is returned. /// </summary> /// <seealso cref="http://www.w3.org/TR/CSS21/sample.html"/> /// <param name="stylesheet">raw css stylesheet to parse</param> /// <param name="combineWithDefault">true - combine the parsed css data with default css data, false - return only the parsed css data</param> /// <returns>the CSS data with parsed CSS objects (never null)</returns> public static WebDom.CssActiveSheet ParseStyleSheet( string stylesheet, WebDom.CssActiveSheet defaultActiveSheet, bool combineWithDefault) { //TODO: check if can clone CssActiveSheet var cssData = combineWithDefault ? defaultActiveSheet.Clone() : new WebDom.CssActiveSheet(); if (!string.IsNullOrEmpty(stylesheet)) { ParseStyleSheet(cssData, stylesheet); } return cssData; }