Logo Search packages:      
Sourcecode: xulrunner version File versions  Download package

nsIStyleRule Class Reference

#include <nsIStyleRule.h>

Inheritance diagram for nsIStyleRule:


List of all members.

Detailed Description

An object implementing |nsIStyleRule| (henceforth, a rule) represents immutable stylistic information that either applies or does not apply to a given element. It belongs to an object or group of objects that implement |nsIStyleSheet| and |nsIStyleRuleProcessor| (henceforth, a sheet).

A rule becomes relevant to the computation of style data when |nsIStyleRuleProcessorRulesMatching| creates a rule node that points to the rule. (A rule node, |nsRuleNode|, is a node in the rule tree, which is a lexicographic tree indexed by rules. The path from the root of the rule tree to the |nsRuleNode| for a given |nsStyleContext| contains exactly the rules that match the element that the style context is for, in priority (weight, origin, specificity) order.)

The computation of style data uses the rule tree, which calls |nsIStyleRuleMapRuleInfoInto| below.

It is worth emphasizing that the data represented by a rule implementation are immutable. When the data need to be changed, a new rule object must be created. Failing to do this will lead to bugs in the handling of dynamic style changes, since the rule tree caches the results of |MapRuleInfoInto|.

|nsIStyleRule| objects are owned by |nsRuleNode| objects (in addition to typically being owned by their sheet), which are in turn garbage collected (with the garbage collection roots being style contexts).

Definition at line 90 of file nsIStyleRule.h.

Public Member Functions

NS_IMETHOD MapRuleInfoInto (nsRuleData *aRuleData)=0
 NS_IMETHOD_ (nsrefcnt) Release(void)=0
 NS_IMETHOD_ (nsrefcnt) AddRef(void)=0
NS_IMETHOD QueryInterface (REFNSIID aIID, void **aInstancePtr)=0

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index