#region Copyright and License // // Fizzler - CSS Selector Engine for Microsoft .NET Framework // Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. // // This library is free software; you can redistribute it and/or modify it under // the terms of the GNU Lesser General Public License as published by the Free // Software Foundation; either version 3 of the License, or (at your option) // any later version. // // This library is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more // details. // // You should have received a copy of the GNU Lesser General Public License // along with this library; if not, write to the Free Software Foundation, Inc., // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // #endregion namespace Fizzler { /// /// Represent an implementation that is responsible for generating /// an implementation for a selector. /// public interface ISelectorGenerator { /// /// Delimits the initialization of a generation. /// void OnInit(); /// /// Delimits the closing/conclusion of a generation. /// void OnClose(); /// /// Delimits a selector generation in a group of selectors. /// void OnSelector(); // // Selectors // /// /// Generates a type selector, /// which represents an instance of the element type in the document tree. /// void Type(NamespacePrefix prefix, string name); /// /// Generates a universal selector, /// any single element in the document tree in any namespace /// (including those without a namespace) if no default namespace /// has been specified for selectors. /// void Universal(NamespacePrefix prefix); /// /// Generates a ID selector, /// which represents an element instance that has an identifier that /// matches the identifier in the ID selector. /// void Id(string id); /// /// Generates a class selector, /// which is an alternative when /// representing the class attribute. /// void Class(string clazz); // // Attribute selectors // /// /// Generates an attribute selector /// that represents an element with the given attribute /// whatever the values of the attribute. /// void AttributeExists(NamespacePrefix prefix, string name); /// /// Generates an attribute selector /// that represents an element with the given attribute /// and whose value is exactly . /// void AttributeExact(NamespacePrefix prefix, string name, string value); /// /// Generates an attribute selector /// that represents an element with the given attribute /// and whose value is a whitespace-separated list of words, one of /// which is exactly . /// void AttributeIncludes(NamespacePrefix prefix, string name, string value); /// /// Generates an attribute selector /// that represents an element with the given attribute , /// its value either being exactly or beginning /// with immediately followed by "-" (U+002D). /// void AttributeDashMatch(NamespacePrefix prefix, string name, string value); /// /// Generates an attribute selector /// that represents an element with the attribute /// whose value begins with the prefix . /// void AttributePrefixMatch(NamespacePrefix prefix, string name, string value); /// /// Generates an attribute selector /// that represents an element with the attribute /// whose value ends with the suffix . /// void AttributeSuffixMatch(NamespacePrefix prefix, string name, string value); /// /// Generates an attribute selector /// that represents an element with the attribute /// whose value contains at least one instance of the substring . /// void AttributeSubstring(NamespacePrefix prefix, string name, string value); // // Pseudo-class selectors // /// /// Generates a pseudo-class selector, /// which represents an element that is the first child of some other element. /// void FirstChild(); /// /// Generates a pseudo-class selector, /// which represents an element that is the last child of some other element. /// void LastChild(); /// /// Generates a pseudo-class selector, /// which represents an element that is the N-th child of some other element. /// void NthChild(int a, int b); /// /// Generates a pseudo-class selector, /// which represents an element that has a parent element and whose parent /// element has no other element children. /// void OnlyChild(); /// /// Generates a pseudo-class selector, /// which represents an element that has no children at all. /// void Empty(); // // Combinators // /// /// Generates a combinator, /// which represents a childhood relationship between two elements. /// void Child(); /// /// Generates a combinator, /// which represents a relationship between two elements where one element is an /// arbitrary descendant of some ancestor element. /// void Descendant(); /// /// Generates a combinator, /// which represents elements that share the same parent in the document tree and /// where the first element immediately precedes the second element. /// void Adjacent(); /// /// Generates a combinator, /// which separates two sequences of simple selectors. The elements represented /// by the two sequences share the same parent in the document tree and the /// element represented by the first sequence precedes (not necessarily /// immediately) the element represented by the second one. /// void GeneralSibling(); /// /// Generates a pseudo-class selector, /// which represents an element that is the N-th child from bottom up of some other element. /// void NthLastChild(int a, int b); } }