1 """CSSRule implements DOM Level 2 CSS CSSRule."""
2 __all__ = ['CSSRule']
3 __docformat__ = 'restructuredtext'
4 __author__ = '$LastChangedBy: cthedot $'
5 __date__ = '$LastChangedDate: 2007-10-19 00:31:34 +0200 (Fr, 19 Okt 2007) $'
6 __version__ = '$LastChangedRevision: 518 $'
7
8 import xml.dom
9 import cssutils
10
12 """
13 Abstract base interface for any type of CSS statement. This includes
14 both rule sets and at-rules. An implementation is expected to preserve
15 all rules specified in a CSS style sheet, even if the rule is not
16 recognized by the parser. Unrecognized rules are represented using the
17 CSSUnknownRule interface.
18
19 Properties
20 ==========
21 cssText: of type DOMString
22 The parsable textual representation of the rule. This reflects the
23 current state of the rule and not its initial value.
24 parentRule: of type CSSRule, readonly
25 If this rule is contained inside another rule (e.g. a style rule
26 inside an @media block), this is the containing rule. If this rule
27 is not nested inside any other rules, this returns None.
28 parentStyleSheet: of type CSSStyleSheet, readonly
29 The style sheet that contains this rule.
30 type: of type unsigned short, readonly
31 The type of the rule, as defined above. The expectation is that
32 binding-specific casting methods can be used to cast down from an
33 instance of the CSSRule interface to the specific derived interface
34 implied by the type.
35
36 cssutils only
37 -------------
38 seq:
39 contains sequence of parts of the rule including comments but
40 excluding @KEYWORD and braces
41 typeString: string
42 A string name of the type of this rule, e.g. 'STYLE_RULE'. Mainly
43 useful for debugging
44 valid:
45 if this rule is valid
46 """
47
48 """
49 CSSRule type constants.
50 An integer indicating which type of rule this is.
51 """
52 COMMENT = -1
53 UNKNOWN_RULE = 0
54 STYLE_RULE = 1
55 CHARSET_RULE = 2
56 IMPORT_RULE = 3
57 MEDIA_RULE = 4
58 FONT_FACE_RULE = 5
59 PAGE_RULE = 6
60 NAMESPACE_RULE = 7
61
62 _typestrings = ['UNKNOWN_RULE', 'STYLE_RULE', 'CHARSET_RULE', 'IMPORT_RULE',
63 'MEDIA_RULE', 'FONT_FACE_RULE', 'PAGE_RULE', 'NAMESPACE_RULE',
64 'COMMENT']
65
66 type = UNKNOWN_RULE
67 """
68 The type of this rule, as defined by a CSSRule type constant.
69 Overwritten in derived classes.
70
71 The expectation is that binding-specific casting methods can be used to
72 cast down from an instance of the CSSRule interface to the specific
73 derived interface implied by the type.
74 (Casting not for this Python implementation I guess...)
75 """
76
78 super(CSSRule, self).__init__()
79 self.parentRule = None
80 self.parentStyleSheet = None
81 self.seq = []
82 self.valid = True
83
84 self._readonly = False
85
86 - def _getCssText(self):
88
89 - def _setCssText(self, cssText):
90 """
91 DOMException on setting
92
93 - SYNTAX_ERR:
94 Raised if the specified CSS string value has a syntax error and
95 is unparsable.
96 - INVALID_MODIFICATION_ERR:
97 Raised if the specified CSS string value represents a different
98 type of rule than the current one.
99 - HIERARCHY_REQUEST_ERR:
100 Raised if the rule cannot be inserted at this point in the
101 style sheet.
102 - NO_MODIFICATION_ALLOWED_ERR: (self)
103 Raised if the rule is readonly.
104 """
105 self._checkReadonly()
106
107 cssText = property(fget=_getCssText, fset=_setCssText,
108 doc="""(DOM) The parsable textual representation of the rule. This
109 reflects the current state of the rule and not its initial value.
110 The initial value is saved, but this may be removed in a future
111 version!
112 MUST BE OVERWRITTEN IN SUBCLASS TO WORK!""")
113
116
117 typeString = property(_getTypeString, doc="Name of this rules type.")
118