The value
of a property is a union which can store an unsigned integer,
a real number, a string or a pointer. The type of the property determines which
of the possibilities is used. The subtype provides a more subtle differentiation
of property values within the data type – it defines the semantics and allowed values
for the property, which is used mainly by the GUI.
Currently, VRR supports these property types and subtypes:
PT_UNS
PTU_BOOLEAN
– a logical value, zero or one.
PTU_FONT
– a font ID. See Property font.
PTU_CONIC_TYPE_0P
PTU_CONIC_TYPE_1P
PTU_CONIC_TYPE_2P
PTU_CONIC_TYPE_3P
– values of the “conic” property for elliptic arcs
with zero, one, two or three points on the perimeter. See Property conic.
PTU_CAP_STYLE
– the line cap style, one of PSC_BUTT
,
PSC_ROUND
, PSC_PROJECTING
.
PTU_ALIGNMENT_X
PTU_ALIGNMENT_Y
– alignment values for a text and TeX-text object.
See Texts.
PTU_ARROW_FRONT
PTU_ARROW_BACK
PTU_ARROW_ALIGN
– arrow appearance values. See Arrow.
PTU_COLOR
– a RGBA color coded into one 32-bit number.
PTU_UNSPECIFIED
– any other unsigned integer value.
PT_REAL
PTR_COORDINATE
– a coordinate in millimeters.
PTR_ANGLE_PI
– an angle in radians of value within .
PTR_ANGLE_2PI
– an angle in radians of value within .
PTR_ANGLE_4PI
– an angle in radians of value within .
PTR_NON_NEGATIVE
– any non-negative real number.
PTR_REFERENCE
– a number within .
PTR_UNSPECIFIED
– any other real number.
PT_STRING
is stored in our string
data structure.
PTS_LARGE_TEXT
– a large text. This is used mainly for source texts of
text or TeX-text objects.
PTS_FILE_NAME
PTS_UNSPECIFIED
PT_POINTER
is used internally for various data which do not fit into
the standard property value.
PTP_TRANSFORM
– a transformation matrix.
PTP_TEX_PROCESS
– data for storing TeX output.
PTP_UNSPECIFIED
An object cannot contain two or more property entries with the same key identifier. If you try to set a property with the same key, type and subtype as those of an existing one, the original property is rewritten. If the key is the same but the type or subtype does not match, the attempt causes a transaction fail.