public CssRule CreateMedia(CssToken current) { var rule = new CssMediaRule(_parser); var token = NextToken(); CollectTrivia(ref token); FillMediaList(rule.Media, CssTokenType.CurlyBracketOpen, ref token); CollectTrivia(ref token); if (token.Type != CssTokenType.CurlyBracketOpen) { while (token.Type != CssTokenType.Eof) { if (token.Type == CssTokenType.Semicolon) { return(null); } else if (token.Type == CssTokenType.CurlyBracketOpen) { break; } token = NextToken(); } } FillRules(rule); return(rule); }
public CssRule CreateMedia(CssToken current) { var rule = new CssMediaRule(_parser); var start = current.Position; var token = NextToken(); _nodes.Push(rule); CollectTrivia(ref token); FillMediaList(rule.Media, CssTokenType.CurlyBracketOpen, ref token); CollectTrivia(ref token); if (token.Type != CssTokenType.CurlyBracketOpen) { while (token.Type != CssTokenType.EndOfFile) { if (token.Type == CssTokenType.Semicolon) { _nodes.Pop(); return(null); } else if (token.Type == CssTokenType.CurlyBracketOpen) { break; } token = NextToken(); } } var end = FillRules(rule); rule.SourceCode = CreateView(start, end); _nodes.Pop(); return(rule); }
protected virtual CssStyleDeclaration getCSD(bool readOnly) { CssStyleSheet ss = new CssStyleSheet(null, "", "", "", null, CssStyleSheetType.Author); CssRule rule = new CssMediaRule("", ss, false, new string[0], CssStyleSheetType.Author); string cssText = "{length: \n23cm !important;foo: bar;}"; return(new CssStyleDeclaration(ref cssText, rule, readOnly, CssStyleSheetType.Author)); }
/// <summary> /// Wraps a /// <see cref="iText.StyledXmlParser.Css.Media.CssMediaRule"/> /// into the style sheet if the head child element has a media attribute. /// </summary> /// <param name="headChildElement">the head child element</param> /// <param name="styleSheet">the style sheet</param> /// <returns>the css style sheet</returns> private CssStyleSheet WrapStyleSheetInMediaQueryIfNecessary(IElementNode headChildElement, CssStyleSheet styleSheet ) { String mediaAttribute = headChildElement.GetAttribute(AttributeConstants.MEDIA); if (mediaAttribute != null && mediaAttribute.Length > 0) { CssMediaRule mediaRule = new CssMediaRule(mediaAttribute); mediaRule.AddStatementsToBody(styleSheet.GetStatements()); styleSheet = new CssStyleSheet(); styleSheet.AddStatement(mediaRule); } return(styleSheet); }
private CssMediaRule CreateMedia(CssMediaRule rule, CssToken current) { var token = NextToken(); CollectTrivia(ref token); var media = GetArgument(ref token); rule.Media.SetMediaText(media, throwOnError: false); CollectTrivia(ref token); while (token.IsNot(CssTokenType.EndOfFile, CssTokenType.CurlyBracketOpen)) { if (token.Type == CssTokenType.Semicolon) { return(null); } token = NextToken(); } FillRules(rule); return(rule); }
private ICssRule CreateAtRule(ICssStyleSheet sheet, CssToken token) { if (token.Data.Is(RuleNames.Media)) { var rule = new CssMediaRule(sheet); return(CreateMedia(rule, token)); } else if (token.Data.Is(RuleNames.FontFace)) { var rule = new CssFontFaceRule(sheet); return(CreateFontFace(rule, token)); } else if (token.Data.Is(RuleNames.Keyframes)) { var rule = new CssKeyframesRule(sheet); return(CreateKeyframes(rule, token)); } else if (token.Data.Is(RuleNames.Import)) { var rule = new CssImportRule(sheet); return(CreateImport(rule, token)); } else if (token.Data.Is(RuleNames.Charset)) { var rule = new CssCharsetRule(sheet); return(CreateCharset(rule, token)); } else if (token.Data.Is(RuleNames.Namespace)) { var rule = new CssNamespaceRule(sheet); return(CreateNamespace(rule, token)); } else if (token.Data.Is(RuleNames.Page)) { var rule = new CssPageRule(sheet); return(CreatePage(rule, token)); } else if (token.Data.Is(RuleNames.Supports)) { var rule = new CssSupportsRule(sheet); return(CreateSupports(rule, token)); } else if (token.Data.Is(RuleNames.ViewPort)) { var rule = new CssViewportRule(sheet); return(CreateViewport(rule, token)); } else if (token.Data.Is(RuleNames.Document)) { var rule = new CssDocumentRule(sheet); return(CreateDocument(rule, token)); } else if (_options.IsIncludingUnknownRules) { return(CreateUnknownAtRule(sheet, token)); } RaiseErrorOccurred(CssParseError.UnknownAtRule, token.Position); JumpToRuleEnd(ref token); return(null); }