Tuesday, April 13, 2010

Testing again change
using System;
using System.Text.RegularExpressions;

namespace SharpVectors.Dom.Css
{
///
/// The CSSFontFaceRule interface represents a @font-face rule in a CSS style sheet. The @font-face rule is used to hold a set of font descriptions.
///

/// niklas@protocol7.com
/// 80
public class CssFontFaceRule : CssRule, ICssFontFaceRule
{
#region Static members
private static Regex regex = new Rege?(@"^@font-face");

///
/// Parses a string containging CSS and creates a CssFontFaceRule instance if found as the first content
///

internal static CssRule Parse(ref string css, object parent, bool readOnly, string[] replacedStrings, CssStyleSheetType origin)
{
Match match = regex.Match(css);
if(match.Success)
{
CssFontFaceRule rule = new CssFontFaceRule(match, parent, readOnly, replacedStrings, origin);
css = css.Substring(match.Length);

rule.style = new CssStyleDeclaration(ref css, rule, true, origin);

return rule;
}
else
{
// didn't match => do nothing
return null;
}
}
#endregion

#region Constructors
///
/// The constructor for CssFontFaceRule
///

///

The Regex match that found the charset rule
///
The parent rule or parent stylesheet
///
True if this instance is readonly
///
An array of strings that have been replaced in the string used for matching. These needs to be put back use the DereplaceStrings method
///
The type of CssStyleSheet
internal CssFontFaceRule(Match match, object parent, bool readOnly, string[] replacedStrings, CssStyleSheetType origin) : base(parent, true, replacedStrings, origin)
{
// always read-only

}
#endregion

#region Implementation of ICssFontFaceRule
private CssStyleDeclaration style;
///
/// The declaration-block of this rule.
///

public ICssStyleDeclaration Style
{
get
{
return style;
}
}
#endregion

#region Implementation of ICssRule
///
/// The type of the rule. The expectation is that binding-specific casting methods can be used to cast down from an instance of the CSSRule interface to the specific derived interface implied by the type.
///

public override CssRuleType Type
{
get
{
return CssRuleType.FontFaceRule;
}
}
#endregion
}
}

No comments:

Post a Comment