summaryrefslogtreecommitdiffstats
path: root/src/attributes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/attributes.h')
-rw-r--r--src/attributes.h101
1 files changed, 54 insertions, 47 deletions
diff --git a/src/attributes.h b/src/attributes.h
index e82db5f2a..ff426e8cf 100644
--- a/src/attributes.h
+++ b/src/attributes.h
@@ -24,6 +24,13 @@ unsigned char const *sp_attribute_name(unsigned int id);
*/
#define SP_ATTRIBUTE_IS_CSS(k) (((k) >= SP_PROP_INKSCAPE_FONT_SPEC) && ((k) <= SP_PROP_TEXT_RENDERING))
+/*
+ * Do not change order of attributes and properties. Attribute and
+ * order in an SVG file is (optionally) determined by the order here.
+ * This makes comparing different versions of a drawing easier using
+ * line-by-line comparison. Also, inorder for proper parsing, some
+ * properites must be before others (e.g. 'font' before 'font-family').
+ */
enum SPAttributeEnum {
SP_ATTR_INVALID, ///< Must have value 0.
/* SPObject */
@@ -420,14 +427,49 @@ enum SPAttributeEnum {
SP_ATTR_TEXT_EXCLUDE,
SP_ATTR_LAYOUT_OPTIONS,
- /* CSS & SVG Properties */
+ /* CSS & SVG Properties KEEP ORDER */
- /* Custom full font name because Font stuff below is inadequate REMOVE ME */
- SP_PROP_INKSCAPE_FONT_SPEC,
+ /* Paint */
+ SP_PROP_COLOR,
+ SP_PROP_OPACITY,
+ SP_PROP_FILL,
+ SP_PROP_FILL_OPACITY,
+ SP_PROP_FILL_RULE,
+ SP_PROP_STROKE,
+ SP_PROP_STROKE_OPACITY,
+ SP_PROP_STROKE_WIDTH,
+ SP_PROP_STROKE_LINECAP,
+ SP_PROP_STROKE_LINEJOIN,
+ SP_PROP_STROKE_MITERLIMIT,
+ SP_PROP_STROKE_DASHARRAY,
+ SP_PROP_STROKE_DASHOFFSET,
+ SP_PROP_MARKER,
+ SP_PROP_MARKER_END,
+ SP_PROP_MARKER_MID,
+ SP_PROP_MARKER_START,
+ SP_PROP_PAINT_ORDER, /* SVG2 */
+ SP_PROP_SOLID_COLOR,
+ SP_PROP_SOLID_OPACITY,
+
+ /* CSS Blending/Compositing */
+ SP_PROP_MIX_BLEND_MODE,
+ SP_PROP_ISOLATION,
+
+ /* Misc. Display */
+ SP_PROP_DISPLAY,
+ SP_PROP_OVERFLOW,
+ SP_PROP_VISIBILITY,
- /* Font */
+ /* Clip/Mask */
+ SP_PROP_CLIP,
+ SP_PROP_CLIP_PATH,
+ SP_PROP_CLIP_RULE,
+ SP_PROP_MASK,
+
+ /* Font: Order is important! */
SP_PROP_FONT,
SP_PROP_FONT_FAMILY,
+ SP_PROP_INKSCAPE_FONT_SPEC, // Remove me
SP_PROP_FONT_SIZE,
SP_PROP_FONT_SIZE_ADJUST,
SP_PROP_FONT_STRETCH,
@@ -447,12 +489,12 @@ enum SPAttributeEnum {
/* Text Layout */
SP_PROP_TEXT_INDENT,
SP_PROP_TEXT_ALIGN,
-
SP_PROP_LINE_HEIGHT,
SP_PROP_LETTER_SPACING,
SP_PROP_WORD_SPACING,
SP_PROP_TEXT_TRANSFORM,
+ /* Text (CSS3) */
SP_PROP_DIRECTION,
SP_PROP_WRITING_MODE,
SP_PROP_TEXT_ORIENTATION,
@@ -472,32 +514,14 @@ enum SPAttributeEnum {
SP_PROP_SHAPE_PADDING,
SP_PROP_SHAPE_MARGIN,
- /* Text Decoration CSS 2/CSS 3 Shorthand */
- SP_PROP_TEXT_DECORATION,
- /* Text Decoration CSS 3/SVG 2 */
+ /* Text Decoration */
+ SP_PROP_TEXT_DECORATION, // CSS 2/CSS3-Shorthand
SP_PROP_TEXT_DECORATION_LINE,
SP_PROP_TEXT_DECORATION_STYLE,
SP_PROP_TEXT_DECORATION_COLOR,
SP_PROP_TEXT_DECORATION_FILL,
SP_PROP_TEXT_DECORATION_STROKE,
- /* Misc */
- SP_PROP_CLIP,
- SP_PROP_COLOR,
- SP_PROP_CURSOR,
- SP_PROP_DISPLAY,
- SP_PROP_OVERFLOW,
- SP_PROP_VISIBILITY,
- SP_PROP_MIX_BLEND_MODE,
- SP_PROP_ISOLATION,
-
- /* SVG */
- /* Clip/Mask */
- SP_PROP_CLIP_PATH,
- SP_PROP_CLIP_RULE,
- SP_PROP_MASK,
- SP_PROP_OPACITY,
-
/* Filter */
SP_PROP_ENABLE_BACKGROUND,
SP_PROP_FILTER,
@@ -510,36 +534,19 @@ enum SPAttributeEnum {
SP_PROP_STOP_OPACITY,
SP_PROP_STOP_PATH,
- /* Interactivity */
- SP_PROP_POINTER_EVENTS,
-
- /* Paint */
+ /* Rendering */
SP_PROP_COLOR_INTERPOLATION,
SP_PROP_COLOR_INTERPOLATION_FILTERS,
SP_PROP_COLOR_PROFILE,
SP_PROP_COLOR_RENDERING,
- SP_PROP_FILL,
- SP_PROP_FILL_OPACITY,
- SP_PROP_FILL_RULE,
SP_PROP_IMAGE_RENDERING,
- SP_PROP_MARKER,
- SP_PROP_MARKER_END,
- SP_PROP_MARKER_MID,
- SP_PROP_MARKER_START,
- SP_PROP_PAINT_ORDER, /* SVG2 */
SP_PROP_SHAPE_RENDERING,
- SP_PROP_SOLID_COLOR,
- SP_PROP_SOLID_OPACITY,
- SP_PROP_STROKE,
- SP_PROP_STROKE_DASHARRAY,
- SP_PROP_STROKE_DASHOFFSET,
- SP_PROP_STROKE_LINECAP,
- SP_PROP_STROKE_LINEJOIN,
- SP_PROP_STROKE_MITERLIMIT,
- SP_PROP_STROKE_OPACITY,
- SP_PROP_STROKE_WIDTH,
SP_PROP_TEXT_RENDERING,
+ /* Interactivity */
+ SP_PROP_POINTER_EVENTS,
+ SP_PROP_CURSOR,
+
/* Conditional */
SP_PROP_SYSTEM_LANGUAGE,
SP_PROP_REQUIRED_FEATURES,