Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
attributes.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2#ifndef SEEN_ATTRIBUTES_H
3#define SEEN_ATTRIBUTES_H
4
8/*
9 * Author:
10 * Lauris Kaplinski <lauris@kaplinski.com>
11 *
12 * Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
13 * Copyright (C) 2002 Lauris Kaplinski
14 *
15 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
16 */
17#include <glibmm/value.h>
18#include <vector>
19
20/*
21 * Do not change order of attributes and properties. Attribute and
22 * order in an SVG file is (optionally) determined by the order here.
23 * This makes comparing different versions of a drawing easier using
24 * line-by-line comparison. Also, inorder for proper parsing, some
25 * properties must be before others (e.g. 'font' before 'font-family').
26 */
27enum class SPAttr {
28 INVALID,
29 /* SPObject */
30 ID,
31 STYLE,
34 /* SPRoot Put these near top as the apply to the entire SVG */
35 VERSION,
37 WIDTH,
38 HEIGHT,
39 VIEWBOX,
41 ONLOAD,
43 /* SPItem */
54 /* SPAnchor */
62 TARGET,
63 /* SPGroup */
66 /* SPNamedView */
101 // INKSCAPE_SNAP_GLOBAL,
102 // INKSCAPE_SNAP_DISTRIBUTION,
103 // INKSCAPE_SNAP_ALIGNMENT,
104 // INKSCAPE_SNAP_ALIGNMENT_SELF,
105 // INKSCAPE_SNAP_PERP,
106 // INKSCAPE_SNAP_TANG,
107 // INKSCAPE_SNAP_BBOX,
108 // INKSCAPE_SNAP_NODE,
109 // INKSCAPE_SNAP_OTHERS,
110 // INKSCAPE_SNAP_FROM_GUIDE,
111 // INKSCAPE_SNAP_ROTATION_CENTER,
112 // INKSCAPE_SNAP_GRID,
113 // INKSCAPE_SNAP_GUIDE,
114 // INKSCAPE_SNAP_NODE_SMOOTH,
115 // INKSCAPE_SNAP_LINE_MIDPOINT,
116 // INKSCAPE_SNAP_OBJECT_MIDPOINT,
117 // INKSCAPE_SNAP_TEXT_BASELINE,
118 // INKSCAPE_SNAP_BBOX_EDGE_MIDPOINT,
119 // INKSCAPE_SNAP_BBOX_MIDPOINT,
120 // INKSCAPE_SNAP_PATH_INTERSECTION,
121 // INKSCAPE_SNAP_PATH,
122 // INKSCAPE_SNAP_PATH_CLIP,
123 // INKSCAPE_SNAP_PATH_MASK,
124 // INKSCAPE_SNAP_NODE_CUSP,
125 // INKSCAPE_SNAP_BBOX_EDGE,
126 // INKSCAPE_SNAP_BBOX_CORNER,
127 // INKSCAPE_SNAP_PAGE_BORDER,
131 UNITS,
132 /* ColorProfile */
133 LOCAL,
134 NAME,
136 /* SPGuide */
138 POSITION,
141 /* SPPage */
145 /* SPGrid */
146 ORIGINX,
147 ORIGINY,
148 SPACINGX,
149 SPACINGY,
150 ANGLE_X,
151 ANGLE_Z,
152 GAP_X,
153 GAP_Y,
154 MARGIN_X,
155 MARGIN_Y,
156 VISIBLE,
157 ENABLED,
159 EMPCOLOR,
161 DOTTED,
163 /* SPImage, SPRect, etc. */
164 X,
165 Y,
166 SVG_DPI,
167 /* SPPath */
168 // D, Promoted to property in SVG 2
177 /* SPRect */
178 RX,
179 RY,
180 /* Box3D */
182 INKSCAPE_BOX3D_CORNER0, // "upper left front" corner (as a point in 3-space)
183 INKSCAPE_BOX3D_CORNER7, // "lower right rear" corner (as a point in 3-space)
184 /* Box3DSide */
186 /* Persp3D */
192 /* SPEllipse */
193 R,
194 CX,
195 CY,
204 /* SPStar */
213 /* SPSpiral */
219 /* SPOffset */
224 /* SPLine */
225 X1,
226 Y1,
227 X2,
228 Y2,
229 /* SPPolyline */
230 POINTS,
231 /* SPTSpan */
232 DX,
233 DY,
234 ROTATE,
238 /* SPText */
240 /* SPTextPath */
242 SIDE,
243 /* SPStop */
244 OFFSET,
245 /* SPFilter */
248 FILTERRES,
249 /* Filter primitives common */
250 IN_,
251 RESULT,
252 /*feBlend*/
253 MODE,
254 IN2,
255 /*feColorMatrix*/
256 TYPE,
257 VALUES,
258 /*feComponentTransfer*/
259 //TYPE,
261 SLOPE,
262 INTERCEPT,
263 AMPLITUDE,
264 EXPONENT,
265 //OFFSET,
266 /*feComposite*/
267 OPERATOR,
268 K1,
269 K2,
270 K3,
271 K4,
272 //IN2,
273 /*feConvolveMatrix*/
274 ORDER,
276 DIVISOR,
277 BIAS,
278 TARGETX,
279 TARGETY,
280 EDGEMODE,
283 /*feDiffuseLighting*/
286 //KERNELUNITLENGTH,
287 /*feDisplacementMap*/
288 SCALE,
291 //IN2,
292 /*feDistantLight*/
293 AZIMUTH,
294 ELEVATION,
295 /*fePointLight*/
296 Z,
297 /*feSpotLight*/
298 POINTSATX,
299 POINTSATY,
300 POINTSATZ,
302 /* SPGaussianBlur */
304 /*feImage*/
305 /*feMerge*/
306 /*feMorphology*/
307 //OPERATOR,
308 RADIUS,
309 /*feOffset*/
310 //DX,
311 //DY,
312 /*feSpecularLighting*/
313 //SURFACESCALE,
316 /*feTile*/
317 /*feTurbulence*/
320 SEED,
322 //TYPE,
323 /* SPGradient */
329 /* SPRadialGradient */
330 FX,
331 FY,
332 FR,
333 /* SPMeshPatch */
334 TENSOR,
335 //TYPE,
336 /* SPPattern */
340 /* SPHatch */
344 PITCH,
345 /* SPClipPath */
347 /* SPMask */
348 MASKUNITS,
350 /* SPMarker */
352 REFX,
353 REFY,
356 ORIENT,
357 /* SPStyleElem */
358 //TYPE,
359 /* Animations */
362 BEGIN,
363 DUR,
364 END,
365 MIN,
366 MAX,
367 RESTART,
369 REPEATDUR,
370
371 /* Interpolating animations */
372 CALCMODE,
373 //VALUES,
374 KEYTIMES,
376 FROM,
377 TO,
378 BY,
379 ADDITIVE,
381
382 /* SVGFonts */
383 /* SPFont */
390
391 UNICODE,
393 //ORIENTATION,
395 LANG,
396
397 /*<hkern> and <vkern>*/
398 U1,
399 G1,
400 U2,
401 G2,
402 K,
403
404 /*<font-face>*/
405// FONT_FAMILY,
406// FONT_STYLE,
407// FONT_VARIANT,
408// FONT_WEIGHT,
409// FONT_STRETCH,
410// FONT_SIZE,
413 PANOSE_1,
414 STEMV,
415 STEMH,
416 //SLOPE,
418 X_HEIGHT,
420 ASCENT,
421 DESCENT,
422 WIDTHS,
423 BBOX,
427 HANGING,
431 V_HANGING,
438
439 /* XML */
440 XML_SPACE,
441 XML_LANG,
442
443 /* typeset */
452
453 /* CSS & SVG Properties KEEP ORDER!
454 * If first or last property changed, macro at top must be changed!
455 */
456
457 /* SVG 2 Attributes promoted to properties */
458 D,
459
460 /* Paint */
461 COLOR,
462 OPACITY,
463 FILL,
465 FILL_RULE,
466 STROKE,
475 MARKER,
479 PAINT_ORDER, /* SVG2 */
483
484 /* CSS Blending/Compositing */
486 ISOLATION,
487
488 /* Misc. Display */
489 DISPLAY,
490 OVERFLOW_,
492
493 /* Clip/Mask */
494 CLIP,
495 CLIP_PATH,
496 CLIP_RULE,
497 MASK,
498
499 /* Font: Order is important! */
500 FONT,
502 INKSCAPE_FONT_SPEC, // Remove me
503 FONT_SIZE,
509
510 /* Font Variants CSS 3 */
518
519 /* Variable Fonts (CSS Fonts Module Level 4) */
521
522 /* Text Layout */
529
530 /* Text (CSS3) */
531 DIRECTION,
540 KERNING,
543
544 /* SVG 2 Text Wrapping */
550
551 /* Text Decoration */
552 TEXT_DECORATION, // CSS 2/CSS3-Shorthand
558
559 /* Filter */
561 FILTER,
566
567 /* Gradient */
570 STOP_PATH,
571
572 /* Rendering */
580
581 /* Interactivity */
583 CURSOR,
584
585 /* Conditional */
589
590 /* LivePathEffect */
592
593 // canvas blackout color
597 // Inkscape-specific mode: clip content rendering to pages' boundaries
602
603 // sentinel
605};
606
612
616SPAttr sp_attribute_lookup(gchar const *key);
617
621gchar const *sp_attribute_name(SPAttr id);
622
627std::vector<Glib::ustring> sp_attribute_name_list(bool css_only = false);
628
629#endif
630
631
632/*
633 Local Variables:
634 mode:c++
635 c-file-style:"stroustrup"
636 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
637 indent-tabs-mode:nil
638 fill-column:99
639 End:
640*/
641// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
gchar const * sp_attribute_name(SPAttr id)
Get attribute name by id.
SPAttr
Definition attributes.h:27
@ XLINK_SHOW
@ TEXT_DECORATION_LINE
@ PAGE_BLEED
@ V_MATHEMATICAL
@ INKSCAPE_WINDOW_X
@ KERNELMATRIX
@ INKSCAPE_DOCUMENT_UNITS
@ INKSCAPE_WINDOW_Y
@ WHITE_SPACE
@ INKSCAPE_DESK_COLOR
@ FONT_VARIANT_NUMERIC
@ INKSCAPE_FONT_SPEC
@ CLIPPATHUNITS
@ REQUIRED_FEATURES
@ INKSCAPE_RANDOMIZED
@ FLOOD_COLOR
@ TEXT_ALIGN
@ PRIMITIVEUNITS
@ TEXT_ORIENTATION
@ REPEATCOUNT
@ INKSCAPE_GROUPMODE
@ INKSCAPE_PERSP3D_ORIGIN
@ TABLEVALUES
@ BORDERCOLOR
@ LENGTHADJUST
@ VERT_ADV_Y
@ UNITS_PER_EM
@ FIT_MARGIN_LEFT
@ SODIPODI_R2
@ UNDERLINE_POSITION
@ INKSCAPE_CONNECTOR_SPACING
@ TEXTLENGTH
@ FILTERUNITS
@ INKSCAPE_BOX3D_CORNER7
@ CONNECTOR_TYPE
@ INKSCAPE_ORIGINAL
@ STRIKETHROUGH_POSITION
@ LAYOUT_OPTIONS
@ RENDERING_INTENT
@ TEXT_INCOLUMN
@ STARTOFFSET
@ INKSCAPE_PERSP3D_VP_X
@ SODIPODI_CY
@ TEXT_ANCHOR
@ INKSCAPE_PAGEOPACITY
@ ACCENT_HEIGHT
@ INKSCAPE_PERSP3D_VP_Z
@ GUIDEHICOLOR
@ SODIPODI_END
@ HORIZ_ORIGIN_X
@ INKSCAPE_ANTIALIAS_RENDERING
@ SODIPODI_OPEN
@ FILL_OPACITY
@ INKSCAPE_BOX3D_PERSPECTIVE_ID
@ STROKE_OPACITY
@ INKSCAPE_HIGHLIGHT_COLOR
@ ALIGNMENTTOLERANCE
@ OBJECTTOLERANCE
@ STITCHTILES
@ ALPHABETIC
@ XLINK_ARCROLE
@ SODIPODI_LINESPACING
@ INKSCAPE_SWATCH
@ COLOR_PROFILE
@ FONT_VARIANT
@ LINE_HEIGHT
@ XLINK_ACTUATE
@ OVERLINE_THICKNESS
@ DIFFUSECONSTANT
@ SODIPODI_REVOLUTION
@ GLYPH_NAME
@ HATCHTRANSFORM
@ ARABIC_FORM
@ INKSCAPE_DESK_CHECKERBOARD
@ TEXT_EXCLUDE
@ TEXT_DECORATION_FILL
@ PAGE_SIZE_NAME
@ GUIDEOPACITY
@ MIX_BLEND_MODE
@ SYSTEM_LANGUAGE
@ XCHANNELSELECTOR
@ SHOWPAGESHADOW
@ FONT_VARIANT_EAST_ASIAN
@ COLOR_RENDERING
@ INKSCAPE_CY
@ BORDEROPACITY
@ TRANSFORM_CENTER_X
@ GUIDETOLERANCE
@ PATH_EFFECT
@ FIT_MARGIN_BOTTOM
@ LETTER_SPACING
@ PATTERNUNITS
@ INKSCAPE_PATH_EFFECT
@ SODIPODI_SIDES
@ SHAPE_MARGIN
@ INKSCAPE_ORIGINAL_D
@ GRADIENTUNITS
@ FONT_SIZE_ADJUST
@ MAJOR_LINE_INTERVAL
@ INKSCAPE_LOCKGUIDES
@ SODIPODI_TYPE
@ INKSCAPE_WINDOW_HEIGHT
@ INKSCAPE_RADIUS
@ SODIPODI_ARG1
@ XLINK_HREF
@ CONNECTION_START
@ SODIPODI_ORIGINAL
@ CONNECTOR_CURVATURE
@ INKSCAPE_VERSION
@ STROKE_LINECAP
@ INKSCAPE_HREF
@ STRIKETHROUGH_THICKNESS
@ ORIENTATION
@ INKSCAPE_PERSP3D
@ CONNECTION_POINTS
@ GLYPH_ORIENTATION_VERTICAL
@ VERT_ORIGIN_Y
@ PAINT_ORDER
@ SHOWGUIDES
@ INKSCAPE_PINNED
@ SHAPE_RENDERING
@ SOLID_OPACITY
@ POINTER_EVENTS
@ FONT_STRETCH
@ TEXT_INDENT
@ MARKER_START
@ INKSCAPE_LABEL
@ INKSCAPE_BOX3D_CORNER0
@ STROKE_WIDTH
@ FIT_MARGIN_RIGHT
@ SODIPODI_ARG2
@ PRESERVEASPECTRATIO
@ INKSCAPE_EXPANDED
@ SPREADMETHOD
@ STROKE_LINEJOIN
@ SODIPODI_CX
@ ATTRIBUTETYPE
@ HORIZ_ORIGIN_Y
@ STOP_COLOR
@ SODIPODI_START
@ STDDEVIATION
@ DISTRIBUTIONTOLERANCE
@ SPAttr_SIZE
@ MARKER_MID
@ INKSCAPE_SPRAY_ORIGIN
@ TEXT_INBOX
@ WRITING_MODE
@ INKSCAPE_DESK_OPACITY
@ INKSCAPE_PERSP3D_VP_Y
@ SODIPODI_RADIUS
@ VERT_ORIGIN_X
@ TEXT_DECORATION_COLOR
@ MARKERHEIGHT
@ STOP_OPACITY
@ INKSCAPE_FLATSIDED
@ SODIPODI_EXPANSION
@ INKSCAPE_ZOOM
@ SHAPE_PADDING
@ VECTOR_EFFECT
@ FONT_FAMILY
@ ALIGNMENT_BASELINE
@ INKSCAPE_BOX3D_SIDE_TYPE
@ MARKER_END
@ SPECULARCONSTANT
@ FLOOD_OPACITY
@ IDEOGRAPHIC
@ UNDERLINE_THICKNESS
@ SODIPODI_ROLE
@ TEXT_DECORATION_STROKE
@ YCHANNELSELECTOR
@ FONT_VARIANT_ALTERNATES
@ ENABLE_BACKGROUND
@ HATCHCONTENTUNITS
@ TEXT_ONPATH
@ SNAP_TO_VISIBLE_ONLY
@ INKSCAPE_COLLECT
@ HORIZ_ADV_X
@ SODIPODI_ARC_TYPE
@ LIMITINGCONEANGLE
@ COLOR_INTERPOLATION
@ SURFACESCALE
@ SODIPODI_DOCNAME
@ SODIPODI_T0
@ V_IDEOGRAPHIC
@ XLINK_TITLE
@ XLINK_ROLE
@ FONT_STYLE
@ KERNELUNITLENGTH
@ TEXT_PANGOMARKUP
@ MASKCONTENTUNITS
@ INKSCAPE_CLIP_TO_PAGE_RENDERING
@ FONT_VARIANT_POSITION
@ MARKERUNITS
@ INKSCAPE_COLOR
@ SPECULAREXPONENT
@ SHOWBORDER
@ PRESERVEALPHA
@ SODIPODI_INSENSITIVE
@ GLYPH_ORIENTATION_HORIZONTAL
@ STROKE_DASHOFFSET
@ STROKE_EXTENSIONS
@ XLINK_TYPE
@ FONT_WEIGHT
@ CAP_HEIGHT
@ ACCUMULATE
@ VISIBILITY
@ TEXT_DECORATION_STYLE
@ GRIDTOLERANCE
@ BORDERLAYER
@ AUTO_REGION
@ INKSCAPE_CX
@ INVALID
Must have value 0.
@ CONNECTION_START_POINT
@ TEXT_RENDERING
@ STROKE_MITERLIMIT
@ INKSCAPE_LOCKED
@ SODIPODI_R1
@ UNICODE_RANGE
@ CONNECTION_END_POINT
@ UNICODE_BIDI
@ INLINE_SIZE
@ SHAPE_INSIDE
@ GRADIENTTRANSFORM
@ WORD_SPACING
@ TEXT_TRANSFORM
@ COLOR_INTERPOLATION_FILTERS
@ V_ALPHABETIC
@ CONNECTION_END
@ INKSCAPE_WINDOW_MAXIMIZED
@ HATCHUNITS
@ INKSCAPE_Y_AXIS_DOWN
@ SODIPODI_RX
@ SODIPODI_ARGUMENT
@ BASELINE_SHIFT
@ KEYSPLINES
@ FONT_FEATURE_SETTINGS
@ MATHEMATICAL
@ INKSCAPE_ROTATION
@ MARKERWIDTH
@ PATTERNCONTENTUNITS
@ PAGE_MARGIN
@ LIGHTING_COLOR
@ IMAGE_RENDERING
@ FIT_MARGIN_TOP
@ BASEFREQUENCY
@ DOMINANT_BASELINE
@ FONT_VARIANT_LIGATURES
@ INKSCAPE_WINDOW_WIDTH
@ NUMOCTAVES
@ INKSCAPE_ROUNDED
@ TEXT_NOMARKUP
@ EMPOPACITY
@ CONNECTOR_AVOID
@ SHAPE_SUBTRACT
@ FONT_VARIATION_SETTINGS
@ STROKE_DASHARRAY
@ PAGELABELSTYLE
@ GUIDECOLOR
@ INKSCAPE_PAGESHADOW
@ FONT_VARIANT_CAPS
@ TEXT_DECORATION
@ SOLID_COLOR
@ GUIDEHIOPACITY
@ REQUIRED_EXTENSIONS
@ OVERLINE_POSITION
@ PATTERNTRANSFORM
@ TRANSFORM_CENTER_Y
@ INKSCAPE_ORIGIN_CORRECTION
@ TEXT_INSHAPE
@ ATTRIBUTENAME
@ SODIPODI_RY
@ INKSCAPE_CURRENT_LAYER
SPAttr sp_attribute_lookup(gchar const *key)
Get attribute id by name.
bool SP_ATTRIBUTE_IS_CSS(SPAttr k)
True iff k is a property in SVG, i.e.
std::vector< Glib::ustring > sp_attribute_name_list(bool css_only=false)
Get sorted attribute name list.
static cairo_user_data_key_t key