NAME

CSS::DOM::Value::Primitive - CSSPrimitiveValue class for CSS::DOM

VERSION

Version 0.17

SYNOPSIS

# ...

DESCRIPTION

This module implements objects that represent CSS primitive property values (as opposed to lists). It implements the DOM CSSPrimitiveValue, Rect, and RGBColor interfaces.

METHODS

If you need the constructor, it's below the object methods. Normally you would get an object via CSS::DOM::Style's getPropertyCSSValue method.

CSSValue Interface

cssText

Returns a string representation of the attribute. Pass an argument to set it.

cssValueType

Returns CSS::DOM::Value::CSS_PRIMITIVE_VALUE.

CSSPrimitiveValue Interface

primitiveType

Returns one of the "CONSTANTS" listed below.

getFloatValue

Returns a number if the value is numeric.

The rest have still to be implemented.

Rect Interface

The four methods top, right, bottom and left each return another value object representing the individual value.

RGBColor Interface

The four methods red, green, blue and alpha each return another value object representing the individual value.

Constructor

You probably don't need to call this, but here it is anyway:

$val = new CSS::DOM::Value::Primitive:: %args;

The hash-style arguments are as follows. Only type and value are required.

type

One of the constants listed below under "CONSTANTS"

value

The data stored inside the value object. The format expected depends on the type. See below.

css

CSS code used for serialisation. This will make reading cssText faster at least until the value is modified.

owner

The style object that owns this value; if this is omitted, then the value is read-only. The value object holds a weak reference to the owner.

property

The name of the CSS property to which this value belongs. cssText uses this to determine how to parse text passed to it. This does not apply to the sub-values of colours, counters and rects, but it does apply to individual elements of a list value.

index

The index of this value within a list value (only applies to elements of a list, of course).

format

This is used by sub-values of colours and rects. It determines how assignment to cssText is handled. This uses the same syntax as the formats in CSS::DOM::PropertyParser.

Here are the formats for the value argument, which depend on the type:

CSS_UNKNOWN

A string of CSS code.

CSS_NUMBER, CSS_PERCENTAGE

A simple scalar containing a number.

Standard Dimensions

Also a simple scalar containing a number.

This applies to CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, CSS_S, CSS_HZ and CSS_KHZ.

CSS_DIMENSION

An array ref: [$number, $unit_text]

CSS_STRING

A simple scalar containing a string (not a CSS string literal; i.e., no quotes or escapes).

CSS_URI

The URL (not a CSS literal)

CSS_IDENT

A string (no escapes)

CSS_ATTR

A string containing the name of the attribute.

CSS_COUNTER

An array ref: [$name, $separator, $style]

$separator and $style may each be undef. If $separator is undef, the object represents a counter(...). Otherwise it represents counters(...).

CSS_RECT

An array ref: [$top, $right, $bottom, $left]

The four elements are either CSSValue objects or array refs of arguments to be passed to the constructor. E.g.:

[
    [type => CSS_PX, value => 20],
    [type => CSS_PERCENTAGE, value => 50],
    [type => CSS_PERCENTAGE, value => 50],
    [type => CSS_PX, value => 50],
]

When these array refs are converted to objects, the format argument is supplied automatically, so you do not need to include it here.

CSS_RGBCOLOR

A string beginning with '#', with no escapes (such as '#fff' or '#c0ffee'), a colour name (like red) or an array ref with three to four elements:

[$r, $g, $b]
[$r, $g, $b, $alpha]

The elements are either CSSValue objects or array refs of argument lists, as with CSS_RECT.

CONSTANTS

The following constants can be imported with use CSS::DOM::Value::Primitive ':all'. They represent the type of primitive value.

CSS_UNKNOWN
CSS_NUMBER
CSS_PERCENTAGE
CSS_EMS
CSS_EXS
CSS_PX
CSS_CM
CSS_MM
CSS_IN
CSS_PT
CSS_PC
CSS_DEG
CSS_RAD
CSS_GRAD
CSS_MS
CSS_S
CSS_HZ
CSS_KHZ
CSS_DIMENSION
CSS_STRING
CSS_URI
CSS_IDENT
CSS_ATTR
CSS_COUNTER
CSS_RECT
CSS_RGBCOLOR

SEE ALSO

CSS::DOM

CSS::DOM::Value

CSS::DOM::Value::List

CSS::DOM::Style