NAME
CSS::DOM::Interface - A list of CSS::DOM's interface members in machine-readable format
VERSION
Version 0.17
SYNOPSIS
# 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__