diff options
| author | MenTaLguY <mental@rydia.net> | 2006-01-16 02:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-01-16 02:36:01 +0000 |
| commit | 179fa413b047bede6e32109e2ce82437c5fb8d34 (patch) | |
| tree | a5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/dom/prop-svg.cpp | |
| download | inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip | |
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/dom/prop-svg.cpp')
| -rwxr-xr-x | src/dom/prop-svg.cpp | 735 |
1 files changed, 735 insertions, 0 deletions
diff --git a/src/dom/prop-svg.cpp b/src/dom/prop-svg.cpp new file mode 100755 index 000000000..bde6d1993 --- /dev/null +++ b/src/dom/prop-svg.cpp @@ -0,0 +1,735 @@ +/** + * Phoebe DOM Implementation. + * + * This is a C++ approximation of the W3C DOM model, which follows + * fairly closely the specifications in the various .idl files, copies of + * which are provided for reference. Most important is this one: + * + * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html + * + * Authors: + * Bob Jamison + * + * Copyright (C) 2005 Bob Jamison + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include <stdio.h> + + + +struct SvgProp_def +{ + char *name; + char *values; + char *defaultValue; + char *appliesTo; + bool inherited; + char *percentages; + char *mediaGroups; + bool animatable; +}; + +typedef struct SvgProp_def SvgProp; + +static SvgProp svgProps[] = +{ + +{ +"alignment-baseline", +"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | inherit", +"see property description", +"'tspan', 'tref', 'altGlyph', 'textPath' elements", +false, +"", +"visual", +true +}, + +{ +"baseline-shift", +"baseline | sub | super | <percentage> | <length> | inherit", +"baseline", +"tspan', 'tref', 'altGlyph', 'textPath' elements", +false, +"refers to the 'line-height' of the 'text' element, which in the case of SVG is defined to be equal to the 'font-size", +"visual", +"yes (non-additive, 'set' and 'animate' elements only)" +}, + +{ +"clip", +"<shape> | auto | inherit", +"auto", +"elements which establish a new viewport, 'pattern' elements and 'marker' elements", +false, +"", +"visual", +true +}, + +{ +"clip-path", +"<uri> | none | inherit", +"none", +"container elements and graphics elements", +false, +"", +"visual", +true +}, + +{ +"clip-rule", +"nonzero | evenodd | inherit", +"nonzero", +"graphics elements within a 'clipPath' element", +true, +"", +"visual", +true +}, + +{ +"color", +"<color> | inherit", +"depends on user agent", +"elements to which properties 'fill', 'stroke', 'stop-color', 'flood-color', 'lighting-color' apply", +true, +"", +"visual", +true +}, + +{ +"color-interpolation", +"auto | sRGB | linearRGB | inherit", +"sRGB", +"container elements, graphics elements and 'animateColor", +true, +"", +"visual", +true +}, + +{ +"color-interpolation-filters", +"auto | sRGB | linearRGB | inherit", +"linearRGB", +"filter primitives", +true, +"", +"visual", +true +}, + +{ +"color-profile", +"auto | sRGB | <name> | <uri> | inherit", +"auto", +"'image' elements that refer to raster images", +true, +"", +"visual", +true +}, + +{ +"color-rendering", +"auto | optimizeSpeed | optimizeQuality | inherit", +"auto", +"container elements, graphics elements and 'animateColor", +true, +"", +"visual", +true +}, + +{ +"cursor", +"[ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize| text | wait | help ] ] | inherit", +"auto", +"container elements and graphics elements", +true, +"", +"visual, interactive", +true +}, + +{ +"direction", +"ltr | rtl | inherit", +"ltr", +"text content elements", +true, +"", +"visual", +false +}, + +{ +"display", +"inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit", +"inline", +"'svg', 'g', 'switch', 'a', 'foreignObject', graphics elements (including the 'text' element) and text sub-elements (i.e., 'tspan', 'tref', 'altGlyph', 'textPath')", +false, +"", +"all", +true +}, + +{ +"dominant-baseline", +"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge | inherit", +"auto", +"text content elements", +false, +"", +"visual", +true +}, + +{ +"enable-background", +"accumulate | new [ <x> <y> <width> <height> ] | inherit", +"accumulate", +"container elements", +false, +"", +"visual", +false +}, + +{ +"fill", +"<paint> (See Specifying paint)", +"black", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"fill-opacity", +"<opacity-value> | inherit", +"1", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"fill-rule", +"nonzero | evenodd | inherit", +"nonzero", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"filter", +"<uri> | none | inherit", +"none", +"container elements and graphics elements", +false, +"", +"visual", +true +}, + +{ +"flood-color", +"currentColor | <color> [icc-color(<name>[,<icccolorvalue>]*)] | inherit", +"black", +"'feFlood' elements", +false, +"", +"visual", +true +}, + +{ +"flood-opacity", +"<opacity-value> | inherit", +"1", +"'feFlood' elements", +false, +"", +"visual", +true +}, + +{ +"font", +"[ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit", +"see individual properties", +"text content elements", +true, +"allowed on 'font-size' and 'line-height' ('line-height' same as 'font-size' in SVG)", +"visual", +"yes (non-additive, 'set' and 'animate' elements only)" +}, + +{ +"font-family", +"[[ <family-name> | <generic-family> ],]* [ <family-name> | <generic-family>] | inherit", +"depends on user agent", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"font-size", +"<absolute-size> | <relative-size> | <length> | <percentage> | inherit", +"medium", +"text content elements", +"yes, the computed value is inherited", +"refer to parent element's font size", +"visual", +true +}, + +{ +"font-size-adjust", +"<number> | none | inherit", +"none", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"font-stretch", +"normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit", +"normal", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"font-style", +"normal | italic | oblique | inherit", +"normal", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"font-variant", +"normal | small-caps | inherit", +"normal", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"font-weight", +"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit", +"normal", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"glyph-orientation-horizontal", +"<angle> | inherit", +"0deg", +"text content elements", +true, +"", +"visual", +false +}, + +{ +"glyph-orientation-vertical", +"auto | <angle> | inherit", +"auto", +"text content elements", +true, +"", +"visual", +false +}, + +{ +"image-rendering", +"auto | optimizeSpeed | optimizeQuality | inherit", +"auto", +"images", +true, +"", +"visual", +true +}, + +{ +"kerning", +"auto | <length> | inherit", +"auto", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"letter-spacing", +"normal | <length> | inherit", +"normal", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"lighting-color", +"currentColor | <color> [icc-color(<name>[,<icccolorvalue>]*)] | inherit", +"white", +"feDiffuseLighting' and 'feSpecularLighting' elements", +false, +"", +"visual", +true +}, + +{ +"marker", +"see individual properties", +"see individual properties", +"path', 'line', 'polyline' and 'polygon' elements", +true, +"", +"visual", +true +}, + +{ +"marker-end' 'marker-mid' 'marker-start", +"none | inherit | <uri>", +"none", +"path', 'line', 'polyline' and 'polygon' elements", +true, +"", +"visual", +true +}, + +{ +"mask", +"<uri> | none | inherit", +"none", +"container elements and graphics elements", +false, +"", +"visual", +true +}, + +{ +"opacity", +"<opacity-value> | inherit", +"1", +"container elements and graphics elements", +false, +"", +"visual", +true +}, + +{ +"overflow", +"visible | hidden | scroll | auto | inherit", +"see prose", +"elements which establish a new viewport, 'pattern' elements and 'marker' elements", +false, +"", +"visual", +true +}, + +{ +"pointer-events", +"visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none | inherit", +"visiblePainted", +"graphics elements", +true, +"", +"visual", +true +}, + +{ +"shape-rendering", +"auto | optimizeSpeed | crispEdges | geometricPrecision | inherit", +"auto", +"shapes", +true, +"", +"visual", +true +}, + +{ +"stop-color", +"currentColor | <color> [icc-color(<name>[,<icccolorvalue>]*)] | inherit", +"black", +"stop' elements", +false, +"", +"visual", +true +}, + +{ +"stop-opacity", +"<opacity-value> | inherit", +"1", +"stop' elements", +false, +"", +"visual", +true +}, + +{ +"stroke", +"<paint> (See Specifying paint)", +"none", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"stroke-dasharray", +"none | <dasharray> | inherit", +"none", +"shapes and text content elements", +true, +"", +"visual", +"" +}, + +{ +"stroke-dashoffset", +"<length> | inherit", +"0", +"shapes and text content elements", +true, +"see prose", +"visual", +true +}, + +{ +"stroke-linecap", +"butt | round | square | inherit", +"butt", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"stroke-linejoin", +"miter | round | bevel | inherit", +"miter", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"stroke-miterlimit", +"<miterlimit> | inherit", +"4", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"stroke-opacity", +"<opacity-value> | inherit", +"1", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"stroke-width", +"<length> | inherit", +"1", +"shapes and text content elements", +true, +"", +"visual", +true +}, + +{ +"text-anchor", +"start | middle | end | inherit", +"start", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"text-decoration", +"none | [ underline || overline || line-through || blink ] | inherit", +"none", +"text content elements", +"no (see prose)", +"", +"visual", +true +}, + +{ +"text-rendering", +"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit", +"auto", +"'text' elements", +true, +"", +"visual", +true +}, + +{ +"unicode-bidi", +"normal | embed | bidi-override | inherit", +"normal", +"text content elements", +false, +"", +"visual", +false +}, + +{ +"visibility", +"visible | hidden | collapse | inherit", +"visible", +"graphics elements (including the 'text' element) and text sub-elements (i.e., 'tspan', 'tref', 'altGlyph', 'textPath' and 'a')", +true, +"", +"visual", +true +}, + +{ +"word-spacing", +"normal | <length> | inherit", +"normal", +"text content elements", +true, +"", +"visual", +true +}, + +{ +"writing-mode", +"lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit", +"lr-tb", +"'text' elements", +true, +"", +"visual", +false +}, + +{ +NULL, +NULL, +NULL, +NULL, +false, +NULL, +NULL, +false +} + +}; + + +bool printTable() +{ + for (SvgProp *prop=svgProps; prop->name ; prop++) + { + printf("#### Prop: %s ####\n", prop->name); + printf("values : %s\n", prop->values); + printf("defaultValue: %s\n", prop->defaultValue); + printf("appliesTo : %s\n", prop->appliesTo); + printf("inherited : %s\n", ( prop->inherited ? "true" : "false" )); + printf("percentages : %s\n", prop->percentages); + printf("groups : %s\n", prop->mediaGroups); + printf("animatable : %s\n", ( prop->animatable ? "true" : "false" )); + printf("\n"); + } + return true; +} + + +int main(int argc, char **argv) +{ + printTable(); + return 0; +} |
