Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Problems.GrammaticalOptimization/SharpVectorCss/Css/CssPropertyProfile.cs @ 13757

Last change on this file since 13757 was 12762, checked in by aballeit, 9 years ago

#2283 GUI updates, Tree-chart, MCTS Version 2 (prune leaves)

File size: 6.0 KB
Line 
1using System;
2using System.Collections.Generic;
3
4namespace SharpVectors.Dom.Css
5{
6    internal sealed class CssProperty
7    {
8        internal bool     IsInherited;
9        internal string   InitialValue;
10        internal CssValue InitialCssValue;
11
12        internal CssProperty(bool isInherited, string initialValue)
13        {
14            this.IsInherited     = isInherited;
15            this.InitialValue    = initialValue;
16            this.InitialCssValue = null;
17        }
18    }
19
20    public sealed class CssPropertyProfile
21    {
22        #region Private Fields
23
24        private static CssPropertyProfile _svgProfile;
25
26        private Dictionary<string, CssProperty> _properties;
27
28        #endregion
29
30        #region Constructors and Destructor
31
32        public CssPropertyProfile()
33        {
34            _properties = new Dictionary<string, CssProperty>();
35        }
36
37        #endregion
38
39        #region Public Properties
40
41        public int Length
42        {
43            get
44            {
45                return _properties.Count;
46            }
47        }
48
49        public static CssPropertyProfile SvgProfile
50        {
51            get
52            {
53                if (_svgProfile == null)
54                {
55                    _svgProfile = new CssPropertyProfile();
56
57                    _svgProfile.InitializeDefaults();
58                }
59
60                return _svgProfile;
61            }
62        }
63
64        #endregion
65
66        #region Public Methods
67
68        public ICollection<string> GetAllPropertyNames()
69        {
70            return _properties.Keys;
71        }
72
73        public string GetInitialValue(string propertyName)
74        {
75            if (_properties.ContainsKey(propertyName))
76            {
77                return _properties[propertyName].InitialValue;
78            }
79            else
80            {
81                return null;
82            }
83        }
84
85        public CssValue GetInitialCssValue(string propertyName)
86        {
87            if (_properties.ContainsKey(propertyName))
88            {
89                CssProperty cssProp = _properties[propertyName];
90                if (cssProp.InitialCssValue == null)
91                {
92                    cssProp.InitialCssValue = CssValue.GetCssValue(cssProp.InitialValue, false);
93                }
94                return cssProp.InitialCssValue;
95            }
96            else
97            {
98                return null;
99            }
100        }
101
102        public bool IsInherited(string propertyName)
103        {
104            if (_properties.ContainsKey(propertyName))
105            {
106                return _properties[propertyName].IsInherited;
107            }
108            else
109            {
110                return true;
111            }
112        }
113
114        public void Add(string propertyName, bool isInherited, string initialValue)
115        {
116            _properties.Add(propertyName, new CssProperty(isInherited, initialValue));
117        }
118
119        #endregion
120
121        #region Private Methods
122
123        private void InitializeDefaults()
124        {
125            Add("alignment-baseline", false, String.Empty);
126            Add("baseline-shift", false, "baseline");
127            Add("clip", false, "auto");
128            Add("clip-path", false, "none");
129            Add("clip-rule", true, "nonzero");
130            Add("color", true, "black");
131            Add("color-interpolation", true, String.Empty);
132            Add("color-interpolation-filters", true, "linearRGB");
133            Add("color-profile", true, "auto");
134            Add("color-rendering", true, "auto");
135            Add("cursor", true, "auto");
136            Add("direction", true, "ltr");
137            Add("display", false, "inline");
138            Add("dominant-baseline", false, "auto");
139            Add("enable-background", false, "accumulate");
140            Add("fill", true, "black");
141            Add("fill-opacity", true, "1");
142            Add("fill-rule", true, "nonzero");
143            Add("filter", false, "none");
144            Add("flood-color", false, "black");
145            Add("flood-opacity", false, "1");
146            Add("font", true, String.Empty);
147            Add("font-family", true, "Arial");
148            Add("font-size", true, "medium");
149            Add("font-size-adjust", true, "none");
150            Add("font-stretch", true, "normal");
151            Add("font-style", true, "normal");
152            Add("font-variant", true, "normal");
153            Add("font-weight", true, "normal");
154            Add("glyph-orientation-horizontal", true, "0deg");
155            Add("glyph-orientation-vertical", true, "auto");
156            Add("image-rendering", true, "auto");
157            Add("kerning", true, "auto");
158            Add("letter-spacing", true, "normal");
159            Add("lighting-color", false, "white");
160            Add("marker", true, "none");
161            Add("marker-end", true, "none");
162            Add("marker-mid", true, "none");
163            Add("marker-start", true, "none");
164            Add("mask", false, "none");
165            Add("opacity", false, "1");
166            Add("overflow", false, "visible");
167            Add("pointer-events", true, "visiblePainted");
168            Add("shape-rendering", true, "auto");
169            Add("stop-color", false, "black");
170            Add("stop-opacity", false, "1");
171            Add("stroke", true, "none");
172            Add("stroke-dasharray", true, "none");
173            Add("stroke-dashoffset", true, "0");
174            Add("stroke-linecap", true, "butt");
175            Add("stroke-linejoin", true, "miter");
176            Add("stroke-miterlimit", true, "4");
177            Add("stroke-opacity", true, "1");
178            Add("stroke-width", true, "1");
179            Add("text-anchor", true, "start");
180            Add("text-decoration", false, "none");
181            Add("text-rendering", true, "auto");
182            Add("unicode-bidi", false, "normal");
183            Add("visibility", true, "visible");
184            Add("word-spacing", true, "normal");
185            Add("writing-mode", true, "lr-tb");
186        }
187
188        #endregion
189    }
190}
Note: See TracBrowser for help on using the repository browser.