CSS::DOM::Interface.3pm

Langue: en

Version: 2010-08-23 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

CSS::DOM::Interface - A list of CSS::DOM's interface members in machine-readable format

VERSION

Version 0.13

SYNOPSIS

   use CSS::DOM::Interface ':all';
 
   # name of DOM interface (CSSStyleRule):
   $CSS::DOM::Interface{"CSS::DOM::Rule::Style"};
   
   # interface it inherits from (CSSRule):
   $CSS::DOM::Interface{CSSStyleRule}{_isa};
   
   # whether this can be used as an array
   $CSS::DOM::Interface{MediaList}{_array}; # true
   # or hash
   $CSS::DOM::Interface{MediaList}{_hash}; # false
   
   
   # Properties and Methods
   
   # list them all
   grep !/^_/, keys %{ $CSS::DOM::Interface{CSSStyleSheet} };
   
   # see whether a given property is supported
   exists $CSS::DOM::Interface{CSSStyleSheet}{foo}; # false
   
   # Is it a method?
   $CSS::DOM::Interface{CSSStyleSheet}{cssRules}   & METHOD; # false
   $CSS::DOM::Interface{CSSStyleSheet}{insertRule} & METHOD; # true
   
   # Does the method return nothing?
   $CSS::DOM::Interface{MediaList}{deleteMedium} & VOID; # true
   
   # Is a property read-only?
   $CSS::DOM::Interface{StyleSheetList}{length} & READONLY; # true
   
   # Data types of properties
   ($CSS::DOM::Interface{CSSStyleSheet}{type}      & TYPE)
                                                     == STR;  # true
   ($CSS::DOM::Interface{CSSStyleSheet}{disabled}  & TYPE)
                                                     == BOOL; # true
   ($CSS::DOM::Interface{CSSStyleSheet}{ownerNode} & TYPE)
                                                     == NUM;  # false
   ($CSS::DOM::Interface{CSSStyleSheet}{href}     & TYPE)
                                                     == OBJ;  # false
   
   # and return types of methods:
   ($CSS::DOM::Interface{MediaList}{item} & TYPE) == STR;  # true
   ($CSS::DOM::Interface{CSSMediaRule}
                           ->{insertRule} & TYPE) == BOOL; # false
   ($CSS::DOM::Interface{CSSStyleDeclaration}
                      ->{getPropertyVaue} & TYPE) == NUM;  # false
   ($CSS::DOM::Interface{CSSStyleDeclaration}
                       ->{removeProperty} & TYPE) == OBJ;  # false
   
   
   # Constants
 
   # list of constant names in the form "CSS::DOM::Node::STYLE_RULE";
   @{ $CSS::DOM::Interface{CSSRule}{_constants} };
 
 

DESCRIPTION

The synopsis should tell you almost everything you need to know. But be warned that "$foo & TYPE" is meaningless when "$foo & METHOD" and "$foo & VOID" are both true. For more gory details, look at the source code. In fact, here it is:
   our @EXPORT_OK = qw/METHOD VOID READONLY BOOL STR NUM OBJ TYPE/;
   our %EXPORT_TAGS = (all => \@EXPORT_OK);
 
   sub METHOD   () {      1 }
   sub VOID     () {   0b10 } # for methods
   sub READONLY () {   0b10 } # for properties
   sub BOOL     () { 0b0000 }
   sub STR      () { 0b0100 }
   sub NUM      () { 0b1000 }
   sub OBJ      () { 0b1100 }
   sub TYPE     () { 0b1100 } # only for use as a mask
 
   %CSS::DOM::Interface = (
         'CSS::DOM' => 'CSSStyleSheet',
         'CSS::DOM::StyleSheetList' => 'StyleSheetList',
         'CSS::DOM::MediaList' => 'MediaList',
         'CSS::DOM::RuleList' => 'CSSRuleList',
         'CSS::DOM::Rule' => 'CSSRule',
         'CSS::DOM::Rule::Style' => 'CSSStyleRule',
         'CSS::DOM::Rule::Media' => 'CSSMediaRule',
         'CSS::DOM::Rule::FontFace' => 'CSSFontFaceRule',
         'CSS::DOM::Rule::Page' => 'CSSPageRule',
         'CSS::DOM::Rule::Import' => 'CSSImportRule',
         'CSS::DOM::Rule::Charset' => 'CSSCharsetRule',
         'CSS::DOM::Style' => 'CSSStyleDeclaration',
         'CSS::DOM::Value' => 'CSSValue',
         'CSS::DOM::Value::Primitive' => 'CSSPrimitiveValue',
         'CSS::DOM::Value::List' => 'CSSValueList',
         'CSS::DOM::Counter' => 'Counter',
          StyleSheetList => {
                 _hash => 0,
                 _array => 1,
                 length => NUM | READONLY,
                 item => METHOD | OBJ,
          },
          MediaList => {
                 _hash => 0,
                 _array => 1,
                 mediaText => STR,
                 length => NUM | READONLY,
                 item => METHOD | STR,
                 deleteMedium => METHOD | VOID,
                 appendMedium => METHOD | VOID,
          },
          CSSRuleList => {
                 _hash => 0,
                 _array => 1,
                 length => NUM | READONLY,
                 item => METHOD | OBJ,
          },
          CSSRule => {
                 _hash => 0,
                 _array => 0,
                 _constants => [qw[
                         CSS::DOM::Rule::UNKNOWN_RULE
                         CSS::DOM::Rule::STYLE_RULE
                         CSS::DOM::Rule::CHARSET_RULE
                         CSS::DOM::Rule::IMPORT_RULE
                         CSS::DOM::Rule::MEDIA_RULE
                         CSS::DOM::Rule::FONT_FACE_RULE
                         CSS::DOM::Rule::PAGE_RULE
                 ]],
                 type => NUM | READONLY,
                 cssText => STR,
                 parentStyleSheet => OBJ | READONLY,
                 parentRule => OBJ | READONLY,
          },
          CSSStyleRule => {
                 _isa => 'CSSRule',
                 _hash => 0,
                 _array => 0,
                 selectorText => STR,
                 style => OBJ | READONLY,
          },
          CSSMediaRule => {
                 _isa => 'CSSRule',
                 _hash => 0,
                 _array => 0,
                 media => OBJ | READONLY,
                 cssRules => OBJ | READONLY,
                 insertRule => METHOD | NUM,
                 deleteRule => METHOD | VOID,
          },
          CSSFontFaceRule => {
                 _isa => 'CSSRule',
                 _hash => 0,
                 _array => 0,
                 style => OBJ | READONLY,
          },
          CSSPageRule => {
                 _isa => 'CSSRule',
                 _hash => 0,
                 _array => 0,
                 selectorText => STR,
                 style => OBJ | READONLY,
          },
          CSSImportRule => {
                 _isa => 'CSSRule',
                 _hash => 0,
                 _array => 0,
                 href => STR | READONLY,
                 media => OBJ | READONLY,
                 styleSheet => OBJ | READONLY,
          },
          CSSCharsetRule => {
                 _isa => 'CSSRule',
                 _hash => 0,
                 _array => 0,
                 encoding => STR,
          },
          CSSStyleDeclaration => {
                 _hash => 0,
                 _array => 1,
                 cssText => STR,
                 getPropertyValue => METHOD | STR,
                 getPropertyCSSValue => METHOD | OBJ,
                 removeProperty => METHOD | STR,
                 getPropertyPriority => METHOD | STR,
                 setProperty => METHOD | VOID,
                 length => NUM | READONLY,
                 item => METHOD | STR,
                 parentRule => OBJ | READONLY,
                 azimuth => STR,
                 background => STR,
                 backgroundAttachment => STR,
                 backgroundColor => STR,
                 backgroundImage => STR,
                 backgroundPosition => STR,
                 backgroundRepeat => STR,
                 border => STR,
                 borderCollapse => STR,
                 borderColor => STR,
                 borderSpacing => STR,
                 borderStyle => STR,
                 borderTop => STR,
                 borderRight => STR,
                 borderBottom => STR,
                 borderLeft => STR,
                 borderTopColor => STR,
                 borderRightColor => STR,
                 borderBottomColor => STR,
                 borderLeftColor => STR,
                 borderTopStyle => STR,
                 borderRightStyle => STR,
                 borderBottomStyle => STR,
                 borderLeftStyle => STR,
                 borderTopWidth => STR,
                 borderRightWidth => STR,
                 borderBottomWidth => STR,
                 borderLeftWidth => STR,
                 borderWidth => STR,
                 bottom => STR,
                 captionSide => STR,
                 clear => STR,
                 clip => STR,
                 color => STR,
                 content => STR,
                 counterIncrement => STR,
                 counterReset => STR,
                 cue => STR,
                 cueAfter => STR,
                 cueBefore => STR,
                 cursor => STR,
                 direction => STR,
                 display => STR,
                 elevation => STR,
                 emptyCells => STR,
                 cssFloat => STR,
                 font => STR,
                 fontFamily => STR,
                 fontSize => STR,
                 fontSizeAdjust => STR,
                 fontStretch => STR,
                 fontStyle => STR,
                 fontVariant => STR,
                 fontWeight => STR,
                 height => STR,
                 left => STR,
                 letterSpacing => STR,
                 lineHeight => STR,
                 listStyle => STR,
                 listStyleImage => STR,
                 listStylePosition => STR,
                 listStyleType => STR,
                 margin => STR,
                 marginTop => STR,
                 marginRight => STR,
                 marginBottom => STR,
                 marginLeft => STR,
                 markerOffset => STR,
                 marks => STR,
                 maxHeight => STR,
                 maxWidth => STR,
                 minHeight => STR,
                 minWidth => STR,
                 opacity => STR,
                 orphans => STR,
                 outline => STR,
                 outlineColor => STR,
                 outlineStyle => STR,
                 outlineWidth => STR,
                 overflow => STR,
                 padding => STR,
                 paddingTop => STR,
                 paddingRight => STR,
                 paddingBottom => STR,
                 paddingLeft => STR,
                 page => STR,
                 pageBreakAfter => STR,
                 pageBreakBefore => STR,
                 pageBreakInside => STR,
                 pause => STR,
                 pauseAfter => STR,
                 pauseBefore => STR,
                 pitch => STR,
                 pitchRange => STR,
                 playDuring => STR,
                 position => STR,
                 quotes => STR,
                 richness => STR,
                 right => STR,
                 size => STR,
                 speak => STR,
                 speakHeader => STR,
                 speakNumeral => STR,
                 speakPunctuation => STR,
                 speechRate => STR,
                 stress => STR,
                 tableLayout => STR,
                 textAlign => STR,
                 textDecoration => STR,
                 textIndent => STR,
                 textShadow => STR,
                 textTransform => STR,
                 top => STR,
                 unicodeBidi => STR,
                 verticalAlign => STR,
                 visibility => STR,
                 voiceFamily => STR,
                 volume => STR,
                 whiteSpace => STR,
                 widows => STR,
                 width => STR,
                 wordSpacing => STR,
                 zIndex => STR,
          },
          CSSValue => {
                 _hash => 0,
                 _array => 0,
                 _constants => [qw[
                         CSS::DOM::Value::CSS_INHERIT
                         CSS::DOM::Value::CSS_PRIMITIVE_VALUE
                         CSS::DOM::Value::CSS_VALUE_LIST
                         CSS::DOM::Value::CSS_CUSTOM
                 ]],
                 cssText => STR,
                 cssValueType => NUM | READONLY,
          },
          CSSPrimitiveValue => {
                 _isa => 'CSSValue',
                 _hash => 0,
                 _array => 0,
                 _constants => [qw[
                         CSS::DOM::Value::Primitive::CSS_UNKNOWN
                         CSS::DOM::Value::Primitive::CSS_NUMBER
                         CSS::DOM::Value::Primitive::CSS_PERCENTAGE
                         CSS::DOM::Value::Primitive::CSS_EMS
                         CSS::DOM::Value::Primitive::CSS_EXS
                         CSS::DOM::Value::Primitive::CSS_PX
                         CSS::DOM::Value::Primitive::CSS_CM
                         CSS::DOM::Value::Primitive::CSS_MM
                         CSS::DOM::Value::Primitive::CSS_IN
                         CSS::DOM::Value::Primitive::CSS_PT
                         CSS::DOM::Value::Primitive::CSS_PC
                         CSS::DOM::Value::Primitive::CSS_DEG
                         CSS::DOM::Value::Primitive::CSS_RAD
                         CSS::DOM::Value::Primitive::CSS_GRAD
                         CSS::DOM::Value::Primitive::CSS_MS
                         CSS::DOM::Value::Primitive::CSS_S
                         CSS::DOM::Value::Primitive::CSS_HZ
                         CSS::DOM::Value::Primitive::CSS_KHZ
                         CSS::DOM::Value::Primitive::CSS_DIMENSION
                         CSS::DOM::Value::Primitive::CSS_STRING
                         CSS::DOM::Value::Primitive::CSS_URI
                         CSS::DOM::Value::Primitive::CSS_IDENT
                         CSS::DOM::Value::Primitive::CSS_ATTR
                         CSS::DOM::Value::Primitive::CSS_COUNTER
                         CSS::DOM::Value::Primitive::CSS_RECT
                         CSS::DOM::Value::Primitive::CSS_RGBCOLOR
                 ]],
                 primitiveType => NUM | READONLY,
                 setFloatValue => METHOD | VOID,
                 getFloatValue => METHOD | NUM,
                 setStringValue => METHOD | VOID,
   #             getStringValue => METHOD | STR,
   #             getCounterValue => METHOD | OBJ,
   #             getRectValue => METHOD | OBJ,
   #             getRGBColorValue => METHOD | OBJ,
                 red => OBJ | READONLY,
                 green => OBJ | READONLY,
                 blue => OBJ | READONLY,
                 alpha => OBJ | READONLY,
                 top => OBJ | READONLY,
                 right => OBJ | READONLY,
                 bottom => OBJ | READONLY,
                 left => OBJ | READONLY,
          },
          CSSValueList => {
                 _isa => 'CSSValue',
                 _hash => 0,
                 _array => 1,
                 length => NUM | READONLY,
                 item => METHOD | OBJ,
          },
   #      Counter => {
   #             _hash => 0,
   #             _array => 0,
   #             identifier => STR | READONLY,
   #             listStyle => STR | READONLY,
   #             separator => STR | READONLY,
   #      },
          CSSStyleSheet => {
                 type => STR | READONLY,
                 _hash => 0,
                 _array => 0,
                 disabled => BOOL,
                 ownerNode => OBJ | READONLY,
                 parentStyleSheet => OBJ | READONLY,
                 href => STR | READONLY,
                 title => STR | READONLY,
                 media => OBJ | READONLY,
                 ownerRule => OBJ | READONLY,
                 cssRules => OBJ | READONLY,
                 insertRule => METHOD | NUM,
                 deleteRule => METHOD | VOID,
          },
   );
 
 

__END__

SEE ALSO

CSS::DOM