aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
-rw-r--r--Crow/Default.style16
-rw-r--r--Crow/Images/crow0.svg16
-rw-r--r--Crow/Templates/CheckBox2.template2
-rw-r--r--Crow/Templates/ColorPicker.template21
-rw-r--r--Crow/Templates/ColorSlider.template10
-rw-r--r--Crow/Templates/ScrollBar.template2
-rw-r--r--Crow/src/Fill/Picture.cs20
-rw-r--r--Crow/src/IML/Instantiator.cs35
-rw-r--r--Crow/src/Interface.cs10
-rw-r--r--Crow/src/Text/TextChange.cs7
-rw-r--r--Crow/src/Widgets/ColorGauge.cs137
-rw-r--r--Crow/src/Widgets/ColorPicker.cs72
-rw-r--r--Crow/src/Widgets/ColorSlider.cs259
-rw-r--r--Crow/src/Widgets/Gauge.cs4
-rw-r--r--Crow/src/Widgets/GroupBase.cs15
-rw-r--r--Crow/src/Widgets/Slider.cs14
-rw-r--r--Crow/src/Widgets/TemplatedGroup.cs5
-rw-r--r--Crow/src/Widgets/Widget.cs7
-rw-r--r--Crow/src/Widgets/XmlIgnoreAttribute.cs34
-rw-r--r--Crow/src/styling/Style.cs19
-rw-r--r--Directory.Build.props2
-rw-r--r--Drawing2D/Drawing2D.csproj1
-rw-r--r--Drawing2D/src/IMLAttributes.cs (renamed from Crow/src/IML/IMLAttributes.cs)4
-rw-r--r--Drawing2D/src/Style.cs28
-rw-r--r--Samples/common/src/SampleBase.cs29
-rw-r--r--Samples/common/ui/Interfaces/Divers/colorPicker.crow2
-rw-r--r--Samples/common/ui/Interfaces/Divers/colorSlider.crow75
-rw-r--r--Samples/common/ui/Interfaces/Divers/colorSlider2.crow78
-rw-r--r--Samples/common/ui/Interfaces/Divers/colorSlider3.crow47
-rw-r--r--Samples/common/ui/Interfaces/Divers/colorSlider4.crow13
-rw-r--r--Samples/common/ui/Interfaces/Divers/image.crow2
-rw-r--r--Samples/common/ui/Interfaces/Divers/observableList.crow3
-rw-r--r--Samples/common/ui/Interfaces/Divers/testShape.crow9
-rw-r--r--Samples/common/ui/Interfaces/Divers/testSlider.crow3
-rw-r--r--Samples/common/ui/Interfaces/Experimental/table.crow10
-rw-r--r--Samples/common/ui/Interfaces/TemplatedControl/testScrollbar2.crow20
36 files changed, 640 insertions, 391 deletions
diff --git a/Crow/Default.style b/Crow/Default.style
index 473f4070..34fb5899 100644
--- a/Crow/Default.style
+++ b/Crow/Default.style
@@ -280,12 +280,17 @@ ArrowBut {
Foreground="Grey";
Background="Transparent";
- MouseEnter="{Foreground=${ControlHighlight}}";
+ MouseEnter="{Foreground=WhiteSmoke}";
MouseLeave="{Foreground=Grey}";
- Margin="2";
+ Margin="1";
KeepProportions="true";
}
+ScrollBarCursor {
+ Background="Grey";
+ MouseEnter="{Background=WhiteSmoke}";
+ MouseLeave="{Background=Grey}";
+}
ScrollBar {
Orientation = "Vertical";
@@ -318,12 +323,15 @@ labColor {
}
labColorV {
Margin="1";
- Width="Fit";
+ Width="50";
+ TextAlignment="Right";
}
ColorSlider {
Focusable="true";
- Height="12";
+ Height="36";
Margin="0";
+ Maximum="255";
+ Decimals="0";
}
ColorPicker {
Height="Fit";
diff --git a/Crow/Images/crow0.svg b/Crow/Images/crow0.svg
index c6211302..94f5cfc6 100644
--- a/Crow/Images/crow0.svg
+++ b/Crow/Images/crow0.svg
@@ -9,22 +9,8 @@
width="51.116982"
version="1.1"
id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
<path
id="path2818"
d="m 36.232985,35.977162 c -0.02345,-0.0094 -0.04263,-0.04436 -0.04263,-0.07772 0,-0.03337 -0.04543,-0.117846 -0.100965,-0.187724 -0.05553,-0.06987 -0.10986,-0.152552 -0.120738,-0.183728 -0.04888,-0.140096 -0.547064,-0.441575 -0.740404,-0.448061 -0.01333,-6.73e-4 -0.0417,0.06441 -0.06301,0.144127 -0.0213,0.07971 -0.05448,0.164118 -0.0737,0.187567 -0.06807,0.08303 -0.2351,0.04596 -0.448164,-0.09947 -0.114492,-0.07815 -0.231452,-0.140793 -0.259915,-0.139198 -0.103032,0.0057 -0.22753,-0.0647 -0.284401,-0.160973 -0.105659,-0.178872 -0.451937,-0.41031 -0.613884,-0.41031 -0.11287,0 -0.378547,-0.121442 -0.488394,-0.223239 -0.06283,-0.05824 -0.129597,-0.08369 -0.219515,-0.08369 -0.191898,0 -0.291236,-0.05025 -0.332315,-0.168082 -0.02007,-0.05761 -0.05795,-0.104746 -0.08415,-0.104746 -0.02621,0 -0.07371,-0.02879 -0.105549,-0.06398 -0.03185,-0.03519 -0.108169,-0.07213 -0.169604,-0.08211 -0.219849,-0.03568 -0.937873,-0.414299 -0.993727,-0.524009 -0.01875,-0.03685 -0.103161,-0.143806 -0.187567,-0.237705 -0.189643,-0.210956 -0.537045,-0.371869 -0.741262,-0.343338 -0.710425,0.09925 -0.737631,0.100685 -1.030367,0.05449 -0.337983,-0.05334 -0.630446,-0.05889 -1.115893,-0.02117 -0.331487,0.02576 -0.347801,0.02387 -0.368967,-0.04283 -0.01219,-0.03838 0.0026,-0.154623 0.03266,-0.258318 0.03015,-0.103694 0.04455,-0.205124 0.03202,-0.225402 -0.04471,-0.07234 -0.314032,-0.0065 -0.532991,0.130268 -0.165667,0.103489 -0.230973,0.169125 -0.288563,0.290041 -0.07126,0.149603 -0.19268,0.232754 -0.339892,0.232754 -0.09327,0 -0.01149,-0.448641 0.108895,-0.597398 0.0301,-0.03719 0.045,-0.04843 0.03312,-0.02499 -0.01262,0.02492 3.4e-5,0.04263 0.03051,0.04263 0.03229,0 0.04463,-0.01945 0.03247,-0.05115 -0.0108,-0.02813 -0.0027,-0.05115 0.01813,-0.05115 0.02077,0 0.03776,-0.02034 0.03776,-0.04521 0,-0.05853 0.151433,-0.201223 0.181571,-0.171088 0.01268,0.01268 0.02305,0.003 0.02305,-0.02158 0,-0.05501 0.190827,-0.241992 0.218611,-0.214209 0.01107,0.01107 0.02012,0.0013 0.02012,-0.02169 0,-0.02299 0.01358,-0.03341 0.03018,-0.02314 0.0166,0.01026 0.07415,0.0046 0.127887,-0.01261 0.05374,-0.01721 0.185946,-0.03746 0.293797,-0.04502 0.154262,-0.01082 0.196092,-0.0032 0.196092,0.03533 0,0.03062 0.02017,0.04134 0.05362,0.02851 0.02949,-0.01132 0.08321,-0.0048 0.119365,0.01461 0.04469,0.02391 0.06573,0.02399 0.06573,0 0,-0.0546 0.166343,-0.02716 0.19016,0.03136 0.01696,0.04168 0.02726,0.03685 0.05065,-0.02383 0.03017,-0.0782 0.05209,-0.07969 0.33327,-0.02256 0.04625,0.0094 0.07104,0.0023 0.05918,-0.01685 -0.01918,-0.03103 0.105189,-0.09308 0.158609,-0.07913 0.01351,0.0035 0.0409,-0.02412 0.06088,-0.06145 0.01998,-0.03733 0.06279,-0.06787 0.09513,-0.06787 0.03235,0 0.07872,-0.0319 0.103074,-0.07089 0.03874,-0.06204 0.03597,-0.07306 -0.02225,-0.08828 -0.04068,-0.01065 -0.07465,-0.05808 -0.08746,-0.122132 -0.01151,-0.0576 -0.03098,-0.0947 -0.04325,-0.08243 -0.02243,0.02243 -0.09396,-0.07925 -0.134223,-0.190818 -0.01192,-0.03303 -0.05709,-0.06895 -0.100386,-0.07981 -0.0433,-0.01087 -0.08702,-0.04139 -0.09717,-0.06783 -0.01015,-0.02644 -0.03811,-0.04866 -0.06215,-0.04937 -0.02403,-6.72e-4 -0.09734,-0.06977 -0.162897,-0.153463 -0.06556,-0.08369 -0.141017,-0.152171 -0.167679,-0.152171 -0.02665,0 -0.03909,-0.0094 -0.02762,-0.02084 0.02949,-0.02949 -0.161533,-0.183774 -0.227545,-0.183774 -0.03567,0 -0.05475,-0.02971 -0.05475,-0.08526 0,-0.04689 -0.01667,-0.08526 -0.03705,-0.08526 -0.02039,0 -0.132932,-0.09206 -0.250118,-0.204591 -0.117184,-0.112527 -0.225744,-0.193097 -0.241239,-0.179042 -0.0155,0.01404 -0.01813,0.008 -0.0059,-0.01351 0.02148,-0.0376 -0.06692,-0.09775 -0.12476,-0.08487 -0.01546,0.0034 -0.01943,-0.0078 -0.0088,-0.02496 0.01062,-0.01717 -0.02277,-0.05853 -0.0742,-0.09191 -0.05142,-0.03337 -0.113546,-0.08877 -0.138053,-0.123093 -0.02451,-0.03432 -0.06672,-0.0624 -0.09378,-0.0624 -0.02707,0 -0.04922,-0.01355 -0.04922,-0.03012 0,-0.0438 -0.778285,-0.624964 -0.930964,-0.695162 -0.0729,-0.03352 -0.164401,-0.05081 -0.209278,-0.03955 -0.05655,0.01418 -0.102151,-0.0031 -0.15683,-0.05944 -0.0424,-0.0437 -0.06447,-0.05739 -0.04905,-0.03043 0.01542,0.02698 -0.03574,-0.0023 -0.113694,-0.06486 -0.140423,-0.112848 -0.199258,-0.210672 -0.162485,-0.270173 0.01048,-0.01696 -0.0034,-0.03946 -0.03092,-0.05001 -0.03157,-0.0121 -0.04839,-0.06147 -0.04566,-0.133995 0.0046,-0.123415 -0.115972,-0.333547 -0.242202,-0.421962 -0.03969,-0.0278 -0.06324,-0.06494 -0.05237,-0.08255 0.01089,-0.01761 -0.0042,-0.04121 -0.03354,-0.05247 -0.02932,-0.01125 -0.05331,-0.04833 -0.05331,-0.0824 0,-0.03407 -0.03837,-0.107533 -0.08526,-0.163263 -0.07704,-0.09156 -0.08519,-0.130424 -0.08459,-0.403332 0.0011,-0.467434 0.102818,-0.951299 0.346875,-1.649081 0.133708,-0.382291 0.234679,-0.776483 0.280602,-1.095504 0.01999,-0.138863 0.01188,-0.170521 -0.06808,-0.265547 -0.09126,-0.108463 -0.277674,-0.207699 -0.390138,-0.207699 -0.03326,0 -0.167911,-0.04572 -0.299229,-0.101598 -0.334854,-0.142493 -0.698295,-0.199641 -1.524701,-0.239741 -0.393891,-0.01911 -0.856189,-0.05756 -1.027322,-0.08543 -0.171134,-0.02796 -0.404168,-0.05076 -0.517855,-0.05076 -0.113686,0 -0.249901,-0.01718 -0.302703,-0.03821 -0.0528,-0.02101 -0.22913,-0.0397 -0.391836,-0.04152 -0.16271,-0.0018 -0.288412,-0.01532 -0.27934,-0.03 0.0091,-0.01468 -0.01127,-0.02647 -0.0452,-0.02621 -0.03393,2.24e-4 -0.315468,-0.0481 -0.625641,-0.107494 l -0.563945,-0.107977 -0.33979,0.10758 c -0.186882,0.05917 -0.349511,0.107539 -0.361388,0.107494 -0.04086,-1.36e-4 -0.05638,-0.13324 -0.01741,-0.149221 0.02145,-0.0088 -0.0023,-0.01721 -0.05276,-0.01869 -0.05047,-0.0015 -0.100161,0.01089 -0.110412,0.02747 -0.03208,0.05191 -0.458126,0.118498 -0.505769,0.07904 -0.02811,-0.02328 -0.09385,-0.0242 -0.195783,-0.0028 -0.08441,0.01777 -0.280073,0.0495 -0.434816,0.07054 -0.154743,0.02104 -0.281352,0.05283 -0.281352,0.07068 0,0.01786 -0.02302,0.02362 -0.05115,0.01281 -0.02814,-0.0108 -0.05123,-0.0086 -0.05131,0.0049 0,0.01348 -0.05615,0.02741 -0.124603,0.03097 -0.06845,0.0036 -0.1336,0.01891 -0.144786,0.0341 -0.02606,0.03542 -0.139983,0.04146 -0.796184,0.04221 -0.297591,4.49e-4 -0.537126,0.01439 -0.537126,0.0315 0,0.01698 -0.134282,0.03143 -0.298403,0.0321 -0.369505,0.0015 -0.539084,0.01992 -0.844055,0.09164 -0.131298,0.03088 -0.373004,0.06513 -0.537126,0.0761 -0.164122,0.01097 -0.298404,0.03207 -0.298404,0.04687 0,0.01481 -0.05371,0.0182 -0.119361,0.0076 -0.08039,-0.01304 -0.119361,-0.0061 -0.119361,0.02122 0,0.02232 -0.01443,0.03166 -0.03208,0.02075 -0.03408,-0.02106 -0.587009,0.111706 -0.615884,0.147893 -0.0094,0.01176 -0.04775,0.02527 -0.08526,0.03003 -0.319552,0.04061 -0.388045,0.05571 -0.371812,0.08197 0.01026,0.01661 -0.02466,0.02725 -0.07759,0.02367 -0.107275,-0.0073 -0.331986,0.114563 -0.292219,0.15843 0.014,0.01544 0.0067,0.01729 -0.01626,0.0041 -0.03986,-0.0229 -0.410541,0.170723 -0.776766,0.405746 -0.09378,0.06018 -0.400713,0.229852 -0.682064,0.377042 -0.8431486,0.441091 -1.5106691,0.786933 -1.9438848,1.00712 -0.331279,0.168378 -0.7656083,0.411685 -1.2106655,0.678201 -0.1208071,0.07234 -0.7235464,0.348753 -1.0060453,0.461358 -0.1688108,0.06729 -0.3529682,0.143067 -0.4092389,0.168389 -0.3782305,0.170213 -0.4488005,0.204855 -0.4944967,0.24276 -0.1118065,0.09275 -0.7795227,0.48269 -0.974639,0.569184 -0.1140235,0.05055 -0.3212008,0.108223 -0.4603938,0.12817 -0.2794774,0.04005 -0.6793677,0.03386 -0.6793677,-0.01051 0,-0.01562 -0.014897,-0.01916 -0.033103,-0.0079 -0.018206,0.01125 -0.04289,-0.01852 -0.054852,-0.0662 -0.011962,-0.04766 -0.028767,-0.08665 -0.037344,-0.08665 -0.027842,0 -0.1640932,0.0777 -0.1816285,0.103583 -0.024028,0.03546 -0.2704515,0.135139 -0.3340901,0.135139 -0.040327,0 -0.033244,-0.02142 0.029742,-0.08996 l 0.082677,-0.08996 -0.1534646,0.02493 c -0.084405,0.01371 -0.2762361,0.02752 -0.4262904,0.0307 -0.1617809,0.0034 -0.3133657,0.02625 -0.3724277,0.0561 -0.076685,0.03876 -0.1028397,0.04063 -0.113677,0.0081 -0.00774,-0.02322 -0.050258,-0.04223 -0.09448,-0.04223 -0.044221,0 -0.090781,-0.0168 -0.1034652,-0.03732 -0.012684,-0.02052 -0.05963,-0.03032 -0.1043224,-0.02178 -0.044694,0.0085 -0.0812605,0.0028 -0.0812605,-0.01277 0,-0.01557 -0.0226251,-0.01963 -0.0502787,-0.009 -0.0276536,0.01062 -0.0747891,-0.0052 -0.10474605,-0.03517 -0.0299569,-0.02996 -0.0836695,-0.05446 -0.11936206,-0.05446 -0.0755134,0 -0.16300798,-0.155442 -0.14396948,-0.255775 0.0216458,-0.114071 0.0858903,-0.269677 0.13551736,-0.328235 0.0258287,-0.03048 0.0424846,-0.07582 0.0370134,-0.100762 -0.005471,-0.02494 0.0126179,-0.04604 0.0401989,-0.04689 0.0275816,-8.75e-4 0.0695576,-0.03992 0.0932812,-0.08681 0.0237239,-0.04689 0.0433594,-0.07187 0.0436366,-0.05551 2.7333e-4,0.01638 0.0233532,0.0108 0.0512819,-0.01239 0.0279281,-0.02318 0.0409047,-0.05812 0.0288344,-0.07765 -0.0120695,-0.01954 -0.00597,-0.02563 0.013563,-0.01355 0.03826,0.02364 0.1334119,-0.06902 0.102556,-0.09987 -0.010234,-0.01023 -0.081291,0.01337 -0.15790503,0.05246 -0.19132318,0.0976 -0.53029094,0.131726 -0.60948002,0.06135 -0.040574,-0.03605 -0.10602968,-0.04828 -0.20760549,-0.03876 L 0,26.723956 0.13129745,26.603285 c 0.20194096,-0.185598 1.15569925,-0.834706 1.22646285,-0.834706 0.017944,0 1.0011722,-0.593762 1.1596288,-0.700289 l 0.1062908,-0.07146 -0.097498,-0.04316 c -0.075194,-0.03329 -0.09082,-0.05618 -0.068306,-0.100101 0.016056,-0.03132 0.038207,-0.148677 0.049225,-0.2608 0.013936,-0.141813 0.038705,-0.216631 0.081377,-0.245814 0.1348325,-0.09221 0.317117,-0.268214 0.317117,-0.306188 0,-0.04333 -0.2144179,0.01817 -0.8473768,0.243035 -0.1940842,0.06895 -0.3609084,0.117337 -0.3707213,0.107524 -0.030038,-0.03004 0.1889381,-0.28351 0.3932649,-0.455219 0.1064018,-0.08942 0.2148835,-0.182797 0.2410706,-0.207519 0.134978,-0.127412 0.6824316,-0.46318 1.0116807,-0.620491 0.2054297,-0.09815 0.4118743,-0.205241 0.4587663,-0.237974 0.046892,-0.03274 0.2270451,-0.133333 0.40034,-0.223546 0.1732947,-0.09022 0.3093674,-0.169742 0.3023838,-0.176726 -0.00698,-0.007 -0.1087422,0.01965 -0.226129,0.0592 -0.1501313,0.05057 -0.2241353,0.06119 -0.249524,0.0358 -0.025388,-0.02539 -0.024637,-0.03609 0.00253,-0.03609 0.021244,0 0.048451,-0.03096 0.060459,-0.06879 0.019185,-0.06045 0.1680893,-0.221549 0.4635947,-0.501568 0.048755,-0.0462 0.1428871,-0.117089 0.2091823,-0.157532 0.2161395,-0.131856 0.3951126,-0.257621 0.4169899,-0.29302 0.022754,-0.03682 1.0610754,-0.562441 1.1881729,-0.601483 0.04125,-0.01267 0.1911105,-0.08059 0.3330257,-0.150923 0.1419153,-0.07034 0.2933966,-0.139111 0.3366242,-0.152832 0.043226,-0.01372 0.1463559,-0.07271 0.2291753,-0.131083 0.1199707,-0.08456 0.1625792,-0.09864 0.2096072,-0.06927 0.047284,0.02953 0.1538875,-0.0087 0.5358933,-0.192258 0.2622766,-0.126017 0.5689448,-0.264972 0.6814862,-0.308789 0.1125401,-0.04382 0.2249981,-0.09985 0.2499076,-0.124513 0.081951,-0.08115 0.1773194,-0.116582 0.3449729,-0.128175 0.1131113,-0.0078 0.1886589,-0.03475 0.2391522,-0.08524 0.040595,-0.0406 0.1438461,-0.118225 0.2294472,-0.172512 0.1733184,-0.109916 0.2284002,-0.176259 0.2623733,-0.316014 0.01334,-0.05486 0.06939,-0.123095 0.132975,-0.161862 0.06158,-0.03755 0.08742,-0.0685 0.05876,-0.07038 -0.08661,-0.0057 0.555593,-0.16351 0.673539,-0.16552 0.06836,-0.0011 0.110835,-0.01922 0.110835,-0.0471 0,-0.02486 0.03789,-0.08081 0.08421,-0.124319 0.09656,-0.09071 0.08465,-0.1374 -0.03506,-0.1374 -0.139172,0 -0.09502,-0.04884 0.164003,-0.181411 0.306614,-0.156928 0.449342,-0.161093 0.841624,-0.02456 0.28366,0.09873 0.288206,0.09917 0.345032,0.03364 0.03167,-0.03652 0.06838,-0.06639 0.08158,-0.06639 0.02544,0 0.444123,-0.288445 0.530711,-0.36562 0.02814,-0.02508 0.1816,-0.14031 0.341033,-0.256071 0.159432,-0.115763 0.427996,-0.311618 0.596806,-0.435234 0.324997,-0.237988 0.519973,-0.363211 0.852581,-0.547569 0.112541,-0.06238 0.272663,-0.181743 0.355823,-0.265252 l 0.151204,-0.151834 -0.279091,0.01616 c -0.295876,0.01713 -0.322422,0.0016 -0.24494,-0.143172 0.05332,-0.09963 0.736112,-0.634181 1.100461,-0.86154 0.05926,-0.03698 0.08714,-0.07645 0.07227,-0.102311 -0.01332,-0.02315 -0.01159,-0.03067 0.0038,-0.01669 0.01542,0.01398 0.07543,-0.01065 0.133354,-0.05471 0.219267,-0.166827 1.171023,-0.727058 1.367134,-0.804733 0.258942,-0.102562 0.861798,-0.404573 0.886111,-0.443911 0.0101,-0.01634 0.121786,-0.06366 0.248193,-0.105146 0.287589,-0.09439 0.30873,-0.106826 0.229061,-0.134772 -0.06732,-0.02362 -0.07326,-0.02127 0.880461,-0.347551 0.239998,-0.08211 0.429331,-0.156371 0.420748,-0.165033 -0.0086,-0.0087 0.03161,-0.01751 0.08933,-0.01966 0.05771,-0.0022 0.121598,-0.02517 0.141958,-0.05115 0.02171,-0.0277 0.120634,-0.05234 0.239187,-0.05957 0.210669,-0.01285 0.602989,-0.173276 0.928324,-0.379597 0.08567,-0.05433 0.264945,-0.123611 0.398397,-0.153965 0.133453,-0.03035 0.2584,-0.06637 0.277662,-0.08004 0.01927,-0.01367 0.09641,-0.04558 0.171433,-0.07092 0.07503,-0.02534 0.173013,-0.07458 0.217746,-0.109424 0.04473,-0.03484 0.09298,-0.06335 0.107228,-0.06335 0.01425,0 0.07348,-0.04445 0.131636,-0.09877 0.113963,-0.106457 0.351444,-0.240935 0.463279,-0.26234 0.038,-0.0073 0.08445,-0.03321 0.10321,-0.05764 0.01875,-0.02443 0.09498,-0.08983 0.169391,-0.145337 0.194156,-0.144837 0.214536,-0.162058 0.478569,-0.404414 0.251516,-0.230862 0.606848,-0.516232 1.227718,-0.98599 0.344093,-0.2603468 0.589539,-0.4332454 1.258562,-0.886573 0.133088,-0.09018 0.449157,-0.2640469 0.702374,-0.3863728 0.253216,-0.1223245 0.529451,-0.2557186 0.613857,-0.2964302 0.08441,-0.04071 0.158614,-0.085626 0.16491,-0.099811 0.0063,-0.014184 0.02548,-0.017112 0.04263,-0.00653 0.01716,0.010605 0.0312,0.00558 0.0312,-0.011156 0,-0.016741 0.02005,-0.030435 0.04455,-0.030435 0.0245,0 0.158784,-0.058252 0.298402,-0.129445 0.139619,-0.071195 0.430335,-0.1978034 0.646038,-0.2813523 0.215704,-0.083549 0.491939,-0.1954213 0.613858,-0.2486049 0.121921,-0.053185 0.306077,-0.1321049 0.40924,-0.1753788 0.103162,-0.043273 0.29828,-0.1359289 0.433601,-0.2058975 0.135324,-0.069969 0.361685,-0.1753594 0.503025,-0.2342005 0.141344,-0.058844 0.256987,-0.118339 0.256987,-0.1322199 0,-0.013882 0.01945,-0.02524 0.04319,-0.02524 0.02377,0 0.303834,-0.1227275 0.622385,-0.2727296 0.318551,-0.1500017 0.675102,-0.3078947 0.792333,-0.3508747 0.117228,-0.042978 0.213145,-0.092292 0.213145,-0.1095837 0,-0.017291 0.01918,-0.027759 0.04263,-0.02326 0.06969,0.013374 0.594379,-0.1884232 0.639435,-0.2459351 0.0094,-0.011971 0.04007,-0.021527 0.06821,-0.021238 0.121558,0.00127 0.660662,-0.1945862 0.918837,-0.3337747 0.241294,-0.1300895 0.587545,-0.3830342 0.701059,-0.5121391 0.01875,-0.021333 0.06131,-0.048999 0.09456,-0.061479 0.03325,-0.012481 0.07001,-0.047591 0.08169,-0.078024 0.02692,-0.070138 0.174568,-0.219039 0.217202,-0.219039 0.01774,0 0.05143,-0.030691 0.07486,-0.068207 0.02342,-0.037513 0.06448,-0.068206 0.09123,-0.068206 0.02675,0 0.03887,-0.00976 0.02696,-0.021682 -0.01192,-0.011924 0.05783,-0.09633 0.155007,-0.1875678 0.09718,-0.091238 0.161929,-0.1668596 0.143886,-0.168049 -0.01803,-0.00118 0.0028,-0.016405 0.04612,-0.033815 0.04747,-0.019039 0.06915,-0.047456 0.05441,-0.071314 -0.01348,-0.021822 -0.0098,-0.030553 0.0083,-0.019409 0.01801,0.011138 0.09144,-0.040204 0.163151,-0.1140923 0.0717,-0.073888 0.117738,-0.1343421 0.10229,-0.1343421 -0.01546,0 0.02072,-0.036015 0.08038,-0.080032 0.05967,-0.044017 0.09718,-0.091336 0.08336,-0.105152 -0.01383,-0.013815 -0.0095,-0.020006 0.0097,-0.013752 0.04939,0.01615 0.223702,-0.1274928 0.194271,-0.1600887 -0.01342,-0.014875 -0.0072,-0.017247 0.01376,-0.00527 0.06096,0.034779 0.607999,-0.4589859 0.563584,-0.5087016 -0.0121,-0.013544 -0.0039,-0.014234 0.01831,-0.00155 0.02248,0.012885 0.06394,-0.010665 0.09378,-0.053276 0.02942,-0.042001 0.05349,-0.064232 0.05349,-0.049403 0,0.035425 0.155483,-0.078134 0.314002,-0.2293306 0.06954,-0.066327 0.191209,-0.1634486 0.270384,-0.2158258 l 0.143933,-0.095226 -0.09461,-0.017052 c -0.09208,-0.016595 -0.08962,-0.020213 0.09234,-0.1351948 0.102836,-0.064979 0.180276,-0.1355869 0.172099,-0.1569075 -0.0082,-0.021322 0.03576,-0.063723 0.09766,-0.094226 l 0.112534,-0.055461 -0.110835,-7.738e-4 c -0.121681,-8.545e-4 -0.148951,-0.052289 -0.04518,-0.085223 0.03611,-0.011461 0.177308,-0.1287936 0.313783,-0.260741 0.136473,-0.1319475 0.294923,-0.2638643 0.352116,-0.2931487 0.05718,-0.029285 0.112307,-0.066044 0.122484,-0.081687 0.01017,-0.015643 0.08691,-0.0653452 0.170517,-0.1104495 0.08361,-0.0451035 0.148684,-0.0976873 0.144617,-0.11685267 -0.0041,-0.0191645 0.0331,-0.0450046 0.08257,-0.0574227 0.04948,-0.0124174 0.127764,-0.0523182 0.173974,-0.0886698 0.04622,-0.0363507 0.110775,-0.0660921 0.143466,-0.0660921 0.08441,0 0.311151,-0.09789 0.391757,-0.16912543 0.07224,-0.0638419 0.511584,-0.24011339 0.598463,-0.24011339 0.02826,0 0.08528,-0.0237481 0.126716,-0.0527741 0.137291,-0.09616158 0.661132,-0.14352007 1.525634,-0.1379271367 0.792642,0.005129127 0.827085,0.008206607 1.091305,0.0975625367 0.150053,0.050747 0.291903,0.09246343 0.315215,0.09270283 0.09396,9.6895e-4 0.976611,0.42511458 1.100071,0.52862744 0.02811,0.02359 0.159498,0.0947176 0.291932,0.15806233 0.235834,0.11281152 0.25372,0.12719829 0.25372,0.20412699 0,0.023291 0.03271,0.029587 0.08526,0.016402 0.05003,-0.012556 0.08526,-0.00673 0.08526,0.014086 0,0.019516 0.04219,0.054229 0.09378,0.077137 0.05158,0.022909 0.123537,0.06862 0.159895,0.1015785 0.03637,0.032959 0.08624,0.059926 0.110835,0.059926 0.02459,0 0.04471,0.012883 0.04471,0.028629 0,0.037801 0.156041,0.1077839 0.240323,0.1077839 0.03664,0 0.0666,0.015347 0.0666,0.034103 0,0.050098 0.102113,0.041678 0.103394,-0.00853 4.52e-4,-0.025512 0.01972,-0.01804 0.04753,0.018611 0.03352,0.044207 0.07116,0.055035 0.135327,0.038932 0.05776,-0.014496 0.08889,-0.00837 0.08889,0.017504 0,0.021897 0.01498,0.030556 0.0333,0.019242 0.0461,-0.028494 0.444224,0.057046 0.423279,0.090944 -0.0093,0.015101 0.01841,0.027008 0.06163,0.02646 0.09589,-0.00121 0.512136,0.096881 0.42817,0.100902 -0.03285,0.00157 -0.05968,0.016565 -0.05968,0.033318 0,0.03259 0.410853,0.1157062 0.437957,0.0886 0.0089,-0.00889 0.03294,-0.00257 0.0534,0.014024 0.06789,0.055028 0.736829,0.2457834 0.776319,0.2213777 0.02148,-0.013281 0.02951,-0.00894 0.01796,0.00974 -0.01146,0.018537 0.130919,0.1054296 0.316393,0.1930939 0.185473,0.087664 0.472547,0.2615323 0.637942,0.3863739 0.1654,0.1248417 0.319902,0.2270363 0.343352,0.2270984 0.02346,6.81e-5 0.03547,0.00725 0.02675,0.015975 -0.0087,0.00872 0.03686,0.077444 0.101278,0.1527108 0.06442,0.075267 0.110018,0.148369 0.101315,0.162449 -0.0087,0.014079 0.0071,0.034399 0.03515,0.045154 0.02802,0.010755 0.0512,8.546e-4 0.05148,-0.022004 4.51e-4,-0.032265 0.0064,-0.032371 0.02662,-4.693e-4 0.01435,0.022595 0.02243,0.1068802 0.01796,0.1872996 -0.0057,0.1024476 0.0013,0.1309839 0.024,0.09533 0.02653,-0.041988 0.03272,-0.038959 0.03537,0.017319 0.0018,0.037513 0.01096,0.049024 0.0204,0.025578 0.0094,-0.023446 0.02802,-0.042629 0.04119,-0.042629 0.03781,0 0.03799,0.1327189 0,0.1560674 -0.02003,0.012395 -0.01119,0.037667 0.0217,0.061689 0.03979,0.029097 0.04904,0.067036 0.03244,0.1331389 -0.01277,0.050846 -0.03781,0.092447 -0.05563,0.092447 -0.01783,0 -0.02058,-0.019183 -0.0061,-0.042629 0.01444,-0.023446 -0.01394,-0.016324 -0.06312,0.015829 -0.08648,0.056549 -0.219373,0.09752 -0.342779,0.1056776 -0.0328,0.00217 -0.05968,0.015832 -0.05968,0.030358 0,0.014528 -0.03452,0.026195 -0.07673,0.025926 -0.04219,-2.688e-4 -0.12277,0.00591 -0.17904,0.013737 -0.971882,0.1351175 -1.779858,0.2316536 -2.0803,0.2485518 -0.206324,0.011606 -0.393648,0.035672 -0.416267,0.053482 -0.02261,0.017814 -0.05578,0.023341 -0.07366,0.012286 -0.05845,-0.036117 -0.137867,0.016695 -0.115393,0.076729 0.01854,0.049502 0.01385,0.050803 -0.03628,0.010053 -0.03979,-0.032383 -0.05754,-0.034549 -0.05754,-0.00703 0,0.021875 -0.01918,0.037283 -0.04264,0.034238 -0.113695,-0.014764 -0.168405,0.00487 -0.149657,0.0537 0.02179,0.056803 -0.03027,0.070789 -0.06349,0.017051 -0.01159,-0.018757 -0.0547,-0.032889 -0.0958,-0.031409 -0.04111,0.00149 -0.0564,0.010143 -0.03402,0.019253 0.02238,0.00911 0.03199,0.039256 0.02134,0.066986 -0.01674,0.043659 -0.02757,0.043 -0.0805,-0.00493 -0.04614,-0.041755 -0.07725,-0.046733 -0.126687,-0.020273 -0.03605,0.019289 -0.100448,0.02594 -0.143132,0.014777 -0.06857,-0.017931 -0.07496,-0.010784 -0.05491,0.061432 0.02026,0.072941 0.01773,0.075587 -0.02355,0.024614 -0.043,-0.053101 -0.05392,-0.052267 -0.155229,0.011876 -0.05993,0.037942 -0.108954,0.096734 -0.108954,0.1306499 0,0.044877 -0.01859,0.056808 -0.0682,0.04383 -0.0459,-0.012002 -0.06821,-0.00104 -0.06821,0.033502 0,0.031463 -0.04526,0.059826 -0.11689,0.073265 -0.0945,0.017728 -0.121158,0.041367 -0.139184,0.1234405 -0.02175,0.099065 -0.131379,0.1912377 -0.208964,0.1757021 -0.0213,-0.00429 -0.04769,0.015535 -0.05861,0.044002 -0.01092,0.028466 -0.0342,0.051758 -0.05175,0.051758 -0.03502,0 -0.139325,0.089285 -0.496709,0.4251098 -0.130107,0.1222664 -0.264395,0.2311337 -0.298403,0.241927 -0.03401,0.010793 -0.0623,0.045447 -0.06289,0.077007 -6.73e-4,0.031562 -0.0658,0.1065697 -0.144939,0.1666874 -0.270923,0.2058155 -0.531097,0.4853767 -0.510157,0.5481845 0.0076,0.022891 -0.0026,0.041625 -0.02258,0.041625 -0.02005,0 -0.05384,0.069059 -0.0751,0.1534642 -0.02126,0.084405 -0.05168,0.153465 -0.06763,0.153465 -0.01593,0 -0.02014,0.023019 -0.0093,0.051153 0.0108,0.028133 0.0056,0.051153 -0.01149,0.051153 -0.01712,0 -0.03115,0.034533 -0.03119,0.076733 0,0.1328989 -0.05393,0.4006339 -0.07758,0.3860182 -0.02005,-0.012388 -0.02725,0.1344432 -0.04256,0.8672752 -0.002,0.1031621 -0.01694,0.1959073 -0.03288,0.2061001 -0.03087,0.019749 -0.0581,0.1355871 -0.06226,0.2648322 -0.0013,0.043314 -0.0177,0.069369 -0.03625,0.057909 -0.01933,-0.011951 -0.02505,0.00175 -0.0134,0.03209 0.01118,0.029109 0.0038,0.052929 -0.01638,0.052929 -0.02017,0 -0.02725,0.024567 -0.01573,0.054598 0.01151,0.030024 0.004,0.065088 -0.01676,0.077907 -0.02074,0.012818 -0.04479,0.099111 -0.05345,0.1917602 -0.0087,0.092648 -0.03066,0.1734248 -0.0489,0.1795037 -0.01824,0.00606 -0.02536,0.040824 -0.01584,0.077209 0.01077,0.041208 -0.0034,0.074092 -0.03753,0.087197 -0.03015,0.01157 -0.04634,0.03478 -0.03596,0.05157 0.01038,0.0168 0.005,0.03053 -0.01205,0.03053 -0.017,0 -0.03228,0.04742 -0.03393,0.105393 -0.0051,0.179718 -0.117438,0.644115 -0.15081,0.623489 -0.01741,-0.01076 -0.02813,0.0011 -0.02381,0.02649 0.0043,0.02533 -0.0024,0.08442 -0.01478,0.131309 -0.01244,0.04689 -0.02923,0.154317 -0.03733,0.238722 -0.03648,0.380211 -0.166541,0.813049 -0.262056,0.87208 -0.01658,0.01025 -0.03014,0.06376 -0.03014,0.118927 0,0.05516 -0.01494,0.100297 -0.03323,0.100297 -0.04322,0 -0.145532,0.197792 -0.122006,0.23586 0.01,0.01608 -0.0048,0.04821 -0.0327,0.07138 -0.02793,0.02318 -0.05078,0.06201 -0.05078,0.08628 0,0.02428 -0.01521,0.04926 -0.03381,0.05551 -0.01859,0.0063 -0.03965,0.06171 -0.0468,0.123232 -0.0071,0.06153 -0.03801,0.139504 -0.06858,0.173284 -0.03057,0.03378 -0.04532,0.07168 -0.03278,0.08423 0.01255,0.01254 0.0024,0.02281 -0.02266,0.02281 -0.02501,0 -0.03585,0.0096 -0.0241,0.02137 0.0306,0.0306 -0.07344,0.220798 -0.170284,0.311282 -0.04526,0.04228 -0.07383,0.09055 -0.06351,0.107262 0.01033,0.01671 -0.0042,0.03918 -0.03219,0.04993 -0.02803,0.01075 -0.05096,0.05164 -0.05096,0.09084 0,0.03921 -0.01459,0.06228 -0.03239,0.05127 -0.03561,-0.022 -0.113081,0.09788 -0.08282,0.128147 0.01035,0.01034 -0.02074,0.04474 -0.06911,0.07642 -0.04835,0.03169 -0.08004,0.07036 -0.0704,0.08595 0.01898,0.03069 -0.114371,0.168819 -0.162961,0.168819 -0.01633,0 -0.02025,0.01524 -0.0088,0.03387 0.01151,0.01863 -0.03329,0.0897 -0.09956,0.157928 -0.06627,0.06823 -0.110938,0.139503 -0.09927,0.158378 0.01168,0.01887 -0.01552,0.06424 -0.06042,0.100806 -0.0449,0.03656 -0.05862,0.05631 -0.03048,0.04387 0.02814,-0.01243 0.01662,0.0079 -0.02558,0.04514 -0.0422,0.03726 -0.07673,0.08078 -0.07673,0.09671 0,0.01593 -0.03129,0.0485 -0.06953,0.07238 -0.03825,0.02388 -0.06135,0.05666 -0.05135,0.07284 0.01,0.01618 -0.0057,0.03859 -0.03494,0.0498 -0.02921,0.01121 -0.04333,0.03622 -0.03137,0.05557 0.01196,0.01935 0.0028,0.03097 -0.02039,0.02582 -0.02317,-0.0052 -0.05348,0.02899 -0.06734,0.07589 -0.01387,0.04689 -0.02673,0.07265 -0.0286,0.05724 -0.0047,-0.0388 -0.105707,0.06596 -0.105707,0.109636 0,0.01944 -0.03113,0.05199 -0.06916,0.07235 -0.03805,0.02035 -0.06111,0.05004 -0.05127,0.06597 0.0099,0.01593 -0.03193,0.07271 -0.09283,0.126176 -0.0609,0.05347 -0.118399,0.112566 -0.127777,0.131323 -0.0094,0.01876 -0.0255,0.03129 -0.03584,0.02784 -0.01033,-0.0034 -0.03831,0.02502 -0.0622,0.06325 -0.03566,0.0571 -0.03535,0.06485 0.0018,0.0434 0.05754,-0.03329 -0.100394,0.1488 -0.202424,0.233387 -0.04238,0.03514 -0.06834,0.078 -0.05767,0.09525 0.01067,0.01725 -0.0028,0.03137 -0.02973,0.03137 -0.05121,0 -0.198718,0.175689 -0.238939,0.28459 -0.01279,0.0346 -0.05386,0.07092 -0.09128,0.08071 -0.03742,0.0098 -0.06803,0.03258 -0.06803,0.05064 0,0.01807 -0.09548,0.127541 -0.212171,0.243271 -0.116693,0.115729 -0.208771,0.221926 -0.204617,0.235994 0.0042,0.01407 -0.0136,0.02558 -0.03946,0.02558 -0.0419,0 -0.36223,0.342153 -0.36223,0.386912 0,0.01812 -0.168333,0.207786 -0.434598,0.489667 -0.0797,0.08438 -0.134927,0.169585 -0.122716,0.189342 0.01221,0.01976 0.0063,0.02606 -0.01324,0.01401 -0.01949,-0.01205 -0.148957,0.09803 -0.287676,0.244627 -0.138717,0.146595 -0.276317,0.280693 -0.305775,0.297993 -0.113761,0.06682 -0.575254,0.510672 -0.575254,0.553274 0,0.0247 -0.01457,0.0359 -0.03239,0.0249 -0.01781,-0.01102 -0.04944,0.01184 -0.07028,0.05078 -0.02084,0.03893 -0.07624,0.08538 -0.123127,0.103201 -0.04688,0.01782 -0.07681,0.04604 -0.06651,0.06271 0.01031,0.01667 0,0.04609 -0.02352,0.06537 -0.04179,0.03468 -0.06108,0.04086 -0.127513,0.04086 -0.01875,0 -0.03027,0.01782 -0.02558,0.03961 0.0047,0.02178 -0.02216,0.04864 -0.05968,0.05968 -0.09596,0.02823 -0.460392,0.278998 -0.460392,0.316789 0,0.01721 -0.01255,0.02353 -0.02789,0.01405 -0.01535,-0.0095 -0.06906,0.02093 -0.119362,0.06757 -0.05031,0.04665 -0.09193,0.07268 -0.09251,0.05785 -6.72e-4,-0.01482 -0.01667,-6.8e-5 -0.0358,0.03272 -0.01911,0.03282 -0.06469,0.05968 -0.101275,0.05968 -0.03659,0 -0.09465,0.02686 -0.129032,0.05968 -0.03439,0.03282 -0.08427,0.06436 -0.110835,0.07008 -0.02657,0.0057 -0.06461,0.03156 -0.08453,0.05742 -0.01992,0.02586 -0.07746,0.05738 -0.127885,0.07003 -0.05042,0.01265 -0.09168,0.03925 -0.09168,0.0591 0,0.01985 -0.0097,0.02636 -0.02162,0.01447 -0.04327,-0.04327 -0.532043,0.244878 -0.72163,0.425432 -0.107024,0.101924 -0.294339,0.269485 -0.416257,0.372357 -0.351072,0.296226 -0.477445,0.419441 -0.477445,0.465526 0,0.02358 -0.01248,0.03903 -0.02774,0.03434 -0.03696,-0.01136 -0.401163,0.357536 -0.389174,0.394188 0.0052,0.01575 -0.0044,0.02012 -0.0213,0.0097 -0.01687,-0.01042 -0.120842,0.08723 -0.231043,0.217028 -0.110194,0.129794 -0.21571,0.237324 -0.234468,0.238955 -0.01875,0.0015 -0.139775,0.102333 -0.268924,0.223779 -0.129156,0.121446 -0.242179,0.220809 -0.251161,0.220809 -0.02537,0 -0.405851,0.275683 -0.572008,0.414454 -0.08205,0.06852 -0.314931,0.239897 -0.51753,0.380842 -0.387603,0.269655 -0.569368,0.44102 -0.766137,0.7223 -0.153643,0.219636 -0.36955,0.618807 -0.36955,0.683236 0,0.02749 -0.01176,0.04998 -0.02616,0.04998 -0.03167,0 -0.156417,0.321733 -0.224782,0.579755 -0.02733,0.103161 -0.05974,0.38707 -0.07201,0.63091 -0.01228,0.243838 -0.0367,0.457921 -0.0543,0.47574 -0.01759,0.01781 -0.03199,0.148686 -0.03199,0.290814 0,0.176685 -0.01649,0.281962 -0.05214,0.332861 -0.06265,0.08945 -0.03628,0.229636 0.05526,0.293757 0.03494,0.02447 0.273134,0.242804 0.529317,0.485172 0.256175,0.242373 0.479046,0.445791 0.495268,0.452042 0.01622,0.0063 0.02949,0.03311 0.02949,0.05968 0,0.02657 0.01297,0.04831 0.02881,0.04831 0.01584,0 0.103231,0.07579 0.194197,0.168432 0.09096,0.09264 0.17544,0.16222 0.187725,0.154627 0.01228,-0.0076 0.05524,0.02404 0.09546,0.07029 0.04022,0.04625 0.08856,0.0841 0.107445,0.0841 0.01889,0 0.03433,0.02302 0.03433,0.05115 0,0.02814 0.02393,0.05115 0.05316,0.05115 0.02924,0 0.04403,0.01481 0.03285,0.03288 -0.01118,0.01808 0.0378,0.07056 0.108823,0.116611 0.146636,0.09507 0.410528,0.327953 0.371622,0.327953 -0.01411,0 -0.0027,0.02302 0.02548,0.05115 0.02813,0.02814 0.07527,0.05115 0.104743,0.05115 0.02948,0 0.04976,0.01918 0.04506,0.04263 -0.0047,0.02344 0.01067,0.03879 0.0341,0.0341 0.02345,-0.0047 0.03879,0.01066 0.0341,0.0341 -0.0047,0.02344 0.01067,0.03879 0.03411,0.0341 0.02345,-0.0047 0.04263,0.0068 0.04263,0.02558 0,0.01875 0.01151,0.03167 0.02558,0.02869 0.01407,-0.003 0.05372,0.0068 0.08812,0.0218 0.04921,0.02142 0.05285,0.03336 0.01705,0.05605 -0.03107,0.0197 -0.01515,0.029 0.05031,0.02936 0.05269,4.48e-4 0.08814,0.01291 0.07878,0.02806 -0.0094,0.01515 0.01658,0.05262 0.05767,0.08326 0.211981,0.158129 0.321478,0.232868 0.398667,0.272128 0.115603,0.05878 0.204537,0.136366 0.205017,0.178823 6.73e-4,0.01926 0.06544,0.06496 0.144938,0.101519 0.141447,0.06505 0.340091,0.238163 0.308982,0.269278 -0.02718,0.02718 0.06833,0.153699 0.127777,0.169241 0.06948,0.01817 0.188265,0.276674 0.320871,0.69827 0.08404,0.267179 0.118475,0.330863 0.220688,0.408197 0.06662,0.0504 0.147197,0.124217 0.17907,0.164057 0.09286,0.116054 0.407185,0.314295 0.561941,0.354407 0.212211,0.05501 0.317944,0.197997 0.317944,0.42998 0,0.177064 0.0046,0.186422 0.114315,0.232258 0.06286,0.02626 0.181802,0.05857 0.2643,0.07179 0.08249,0.01322 0.264143,0.05332 0.403658,0.08911 0.139516,0.0358 0.327111,0.06508 0.416878,0.06508 0.191088,0 0.623427,0.160645 0.804959,0.299105 0.06647,0.0507 0.148841,0.153773 0.183033,0.229045 0.08345,0.183693 0.08156,0.232392 -0.0079,0.203999 -0.0628,-0.01994 -0.06843,-0.01289 -0.04589,0.05738 0.06069,0.189278 0.08178,0.333911 0.08254,0.566071 l 8.75e-4,0.247251 -0.10231,0 c -0.141004,0 -0.224605,-0.0965 -0.270173,-0.311862 -0.02207,-0.104268 -0.09225,-0.260923 -0.163567,-0.365089 -0.119313,-0.174261 -0.130354,-0.181565 -0.24619,-0.162767 -0.149842,0.02432 -0.206755,0.09784 -0.206755,0.267096 l 0,0.130514 -0.144938,-0.0091 c -0.128781,-0.0081 -0.143506,-0.0015 -0.132061,0.05907 0.02757,0.146015 0.01951,0.403542 -0.01289,0.41185 -0.01875,0.0048 -0.05329,0.0011 -0.07673,-0.0083 z m -4.19369,-3.988246 c 0.03255,-0.03255 -0.11857,-0.219098 -0.220265,-0.271924 -0.05026,-0.0261 -0.100619,-0.07448 -0.111934,-0.107508 -0.01132,-0.03303 -0.08846,-0.113161 -0.171444,-0.178065 -0.08298,-0.06491 -0.144604,-0.124279 -0.136937,-0.131946 0.01826,-0.01826 -0.252842,-0.244541 -0.292968,-0.244541 -0.01698,0 -0.03088,-0.02302 -0.03088,-0.05116 0,-0.02813 -0.01918,-0.04732 -0.04263,-0.04263 -0.02345,0.0047 -0.03879,-0.01067 -0.03411,-0.0341 0.0047,-0.02344 -0.0145,-0.04263 -0.04263,-0.04263 -0.02814,0 -0.05115,-0.02165 -0.05115,-0.04811 0,-0.02646 -0.09552,-0.13005 -0.212251,-0.230198 -0.116736,-0.100146 -0.253339,-0.224289 -0.30356,-0.27587 -0.05022,-0.05158 -0.09883,-0.09379 -0.108026,-0.09379 -0.0092,0 -0.09926,-0.08057 -0.200152,-0.17904 -0.186476,-0.182007 -0.359788,-0.332507 -0.382912,-0.332507 -0.007,0 -0.08682,-0.06799 -0.177335,-0.151102 -0.09051,-0.08311 -0.17673,-0.143589 -0.191592,-0.1344 -0.01486,0.0092 -0.02702,0.0024 -0.02702,-0.01528 0,-0.04201 -0.511787,-0.42675 -0.567681,-0.42675 -0.02375,0 -0.03553,-0.01237 -0.02619,-0.02747 0.02194,-0.03549 -0.281469,-0.225376 -0.403641,-0.252609 -0.05158,-0.01149 -0.09378,-0.03557 -0.09378,-0.05349 0,-0.019 -0.02956,-0.01678 -0.07091,0.0054 -0.06793,0.03636 -0.064,0.04498 0.09378,0.205769 0.09058,0.0923 0.183871,0.167842 0.207322,0.167869 0.02344,2.7e-5 0.04263,0.01302 0.04263,0.02885 0,0.01584 0.117144,0.14245 0.26033,0.281352 0.143178,0.138902 0.292804,0.289504 0.332507,0.334665 0.125042,0.142265 0.487691,0.495555 0.560957,0.546484 0.03864,0.02686 0.06096,0.06523 0.04957,0.08526 -0.01138,0.02003 -0.0087,0.02557 0.0061,0.0123 0.0147,-0.01326 0.07471,0.01169 0.133356,0.05543 0.05864,0.04375 0.165259,0.106726 0.236917,0.139967 0.0936,0.04341 0.117608,0.06848 0.08526,0.08899 -0.03381,0.02144 -0.02966,0.02869 0.01667,0.02908 0.03393,4.48e-4 0.05331,0.01409 0.04306,0.03066 -0.01667,0.02698 0.14951,0.115529 0.236282,0.125904 0.01875,0.0023 0.05419,0.0064 0.07875,0.0093 0.02455,0.0029 0.03515,0.02054 0.02356,0.0393 -0.01161,0.01875 0.0036,0.0341 0.0339,0.0341 0.03023,0 0.111436,0.03837 0.180445,0.08526 0.06901,0.04689 0.10272,0.08549 0.07492,0.08578 -0.04424,6.72e-4 -0.04417,0.0046 6.73e-4,0.03333 0.02814,0.01803 0.0764,0.02496 0.107242,0.01537 0.05882,-0.01828 0.141637,0.04693 0.20138,0.15856 0.01945,0.03632 0.09688,0.104889 0.17209,0.152367 0.10982,0.06933 0.132322,0.100292 0.114247,0.157236 -0.01432,0.04508 -0.0096,0.06294 0.01288,0.04903 0.01947,-0.01203 0.04436,-0.0074 0.05532,0.01035 0.01095,0.01772 -0.01483,0.0389 -0.05733,0.04706 -0.06684,0.01286 -0.06461,0.01548 0.01656,0.01949 0.07775,0.0038 0.09378,0.02023 0.09378,0.09574 0,0.149781 0.08859,0.215831 0.289483,0.215831 0.09713,0 0.186006,-0.0094 0.197504,-0.02091 z m -3.916702,-3.351519 c 0.01031,-0.01667 -0.03866,-0.07277 -0.108823,-0.124668 -0.162544,-0.12024 -0.245198,-0.220673 -0.246159,-0.299097 -0.0011,-0.08664 -0.139045,-0.398508 -0.176318,-0.398508 -0.01692,0 -0.04534,-0.03837 -0.06316,-0.08526 -0.01784,-0.04689 -0.04766,-0.08526 -0.06629,-0.08526 -0.01864,0 -0.02504,-0.02302 -0.01425,-0.05115 0.0108,-0.02813 0.0057,-0.05115 -0.01129,-0.05115 -0.04968,0 -0.120395,0.399496 -0.08306,0.469258 0.01779,0.03321 0.143661,0.159902 0.279747,0.281536 0.13608,0.121632 0.279425,0.254059 0.318537,0.294281 0.07702,0.0792 0.141411,0.09803 0.17108,0.05003 z m -0.771004,-2.50443 c -0.0043,-0.02202 0.0183,-0.08917 0.05025,-0.149197 0.03194,-0.06003 0.05808,-0.149179 0.05808,-0.198109 0,-0.05436 0.01416,-0.08021 0.0364,-0.06647 0.03025,0.01869 0.09496,-0.116002 0.0709,-0.147575 -0.004,-0.0054 0.01613,-0.03331 0.04495,-0.06211 0.02881,-0.02881 0.05237,-0.08874 0.05237,-0.133183 0,-0.04445 0.01414,-0.08955 0.03142,-0.100225 0.01728,-0.01069 0.05839,-0.09215 0.09136,-0.181054 0.03297,-0.08891 0.08744,-0.201739 0.12104,-0.250748 0.0336,-0.04901 0.05132,-0.09889 0.03937,-0.110837 -0.01194,-0.01194 -0.0038,-0.02173 0.01806,-0.02173 0.02189,0 0.03955,-0.02686 0.03927,-0.05968 -6.73e-4,-0.05155 -0.0055,-0.05271 -0.03706,-0.0085 -0.03005,0.04207 -0.03367,0.03904 -0.02039,-0.01705 0.0089,-0.03751 0.02822,-0.09773 0.04298,-0.13381 0.02151,-0.05253 0.01548,-0.06124 -0.03023,-0.0437 -0.07092,0.02721 -0.07416,-0.02222 -0.0059,-0.09045 0.02814,-0.02813 0.05065,-0.07911 0.05002,-0.113272 -8.75e-4,-0.05383 -0.01019,-0.05124 -0.06906,0.01945 -0.03736,0.04486 -0.07781,0.07168 -0.08988,0.0596 -0.01208,-0.01207 -0.05363,0.0049 -0.09234,0.0378 -0.06688,0.05679 -0.06809,0.05679 -0.02417,0 0.02827,-0.0365 0.03201,-0.05968 0.0096,-0.05968 -0.02012,0 -0.04886,0.01918 -0.06386,0.04263 -0.01501,0.02344 -0.057,0.06565 -0.09334,0.09379 -0.06006,0.0465 -0.06403,0.04573 -0.0437,-0.0085 0.0123,-0.03282 0.0081,-0.05969 -0.0093,-0.05969 -0.01746,0 -0.04841,0.06522 -0.06882,0.144939 -0.02042,0.07972 -0.04562,0.167959 -0.05602,0.196096 -0.04849,0.131129 -0.111834,0.499144 -0.09503,0.552109 0.01033,0.03255 0.0018,0.09092 -0.01898,0.129723 -0.04485,0.08379 -0.0079,0.827525 0.03967,0.798134 0.01662,-0.01026 0.02669,-0.0367 0.02239,-0.05873 z m 0.415265,-1.487433 c 0,-0.01986 0.01535,-0.03611 0.0341,-0.03611 0.01875,0 0.03411,0.0068 0.03411,0.01503 0,0.0083 -0.01535,0.02453 -0.03411,0.03611 -0.01875,0.01158 -0.0341,0.0048 -0.0341,-0.01503 z m 0.06821,-0.102309 c 0,-0.01985 0.01535,-0.03611 0.0341,-0.03611 0.01875,0 0.0341,0.0068 0.0341,0.01503 0,0.0083 -0.01535,0.02452 -0.0341,0.03611 -0.01875,0.01158 -0.0341,0.0048 -0.0341,-0.01503 z M 50.350048,2.911456 c -0.04024,-0.04024 -0.0851,-0.060404 -0.09969,-0.044811 -0.01458,0.015594 -0.0073,0.035235 0.01633,0.043647 0.02355,0.00841 0.03614,0.026146 0.02793,0.039407 -0.0082,0.013261 0.01737,0.026543 0.05685,0.029515 l 0.07175,0.0054 -0.07316,-0.073163 z M 28.551232,31.653751 c 0,-0.0083 0.01534,-0.02453 0.0341,-0.03611 0.01875,-0.01158 0.0341,-0.0048 0.0341,0.01503 0,0.01987 -0.01534,0.03611 -0.0341,0.03611 -0.01875,0 -0.0341,-0.0067 -0.0341,-0.01503 z M 47.469354,1.6014697 c 0.0231,-0.00934 0.06912,-0.00991 0.102307,-0.00127 0.03317,0.00865 0.01431,0.016289 -0.04196,0.016985 -0.05627,6.93e-4 -0.08342,-0.00638 -0.06032,-0.015721 z"
- style="fill:#000000" />
+ style="fill:#dddddd" />
</svg>
diff --git a/Crow/Templates/CheckBox2.template b/Crow/Templates/CheckBox2.template
index 68afd0bf..4f692335 100644
--- a/Crow/Templates/CheckBox2.template
+++ b/Crow/Templates/CheckBox2.template
@@ -1,4 +1,4 @@
-<Label Font="{./Font}" Text="{./Caption}" CornerRadius="{./CornerRadius}" Width="Stretched"
+<Label Font="{./Font}" Text="{./Caption}" CornerRadius="{./CornerRadius}" Width="Stretched" Focusable="{./Focusable}"
Margin="3"
Background="{./Background}"
Foreground="{./Foreground}"
diff --git a/Crow/Templates/ColorPicker.template b/Crow/Templates/ColorPicker.template
index 8289ce3f..19e70b9d 100644
--- a/Crow/Templates/ColorPicker.template
+++ b/Crow/Templates/ColorPicker.template
@@ -5,38 +5,31 @@
<Widget Width="30" Height="16" Background="{./CurrentColor}"/>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="R:"/>
- <ColorSlider Name="cs" Component="Red" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Red" CurrentColor="{./CurrentColor}" Value="{²./Red}"/>
</HorizontalStack>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="G:"/>
- <ColorSlider Name="cs" Component="Green" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Green" CurrentColor="{./CurrentColor}" Value="{²./Green}"/>
</HorizontalStack>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="B:"/>
- <ColorSlider Name="cs" Component="Blue" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Blue" CurrentColor="{./CurrentColor}" Value="{²./Blue}"/>
</HorizontalStack>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="A:"/>
- <ColorSlider Name="cs" Component="Alpha" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Alpha" CurrentColor="{./CurrentColor}" Value="{²./Alpha}"/>
</HorizontalStack>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="H:"/>
- <ColorSlider Name="cs" Component="Hue" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Hue" CurrentColor="{./CurrentColor}" Value="{²./Hue}"/>
</HorizontalStack>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="S:"/>
- <ColorSlider Name="cs" Component="Saturation" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Saturation" CurrentColor="{./CurrentColor}" Value="{²./Saturation}"/>
</HorizontalStack>
<HorizontalStack Height="Fit">
<Label Style="labColor" Text="V:"/>
- <ColorSlider Name="cs" Component="Value" CurrentColor="{²./CurrentColor}"/>
- <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <ColorSlider Name="cs" Component="Value" CurrentColor="{./CurrentColor}" Value="{²./Value}"/>
</HorizontalStack>
</VerticalStack>
</Border>
diff --git a/Crow/Templates/ColorSlider.template b/Crow/Templates/ColorSlider.template
new file mode 100644
index 00000000..2d05e7d6
--- /dev/null
+++ b/Crow/Templates/ColorSlider.template
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<Group Background="{./Background}" >
+ <ColorGauge Component="{./Component}" CurrentColor="{./CurrentColor}" Orientation="{./Orientation}" Margin="10" Height="Stretched" CornerRadius="10"/>
+ <Border Name="Cursor" Foreground="White" CornerRadius="15" BorderWidth="2">
+ <Group Fit="true">
+ <Label Left="2" Top="2" Text="{./Value}" Foreground="Black" Font="mono bold, 10"/>
+ <Label Text="{./Value}" Foreground="WhiteSmoke" Font="mono bold, 10"/>
+ </Group>
+ </Border>
+</Group> \ No newline at end of file
diff --git a/Crow/Templates/ScrollBar.template b/Crow/Templates/ScrollBar.template
index 02685f41..e75d573a 100644
--- a/Crow/Templates/ScrollBar.template
+++ b/Crow/Templates/ScrollBar.template
@@ -4,7 +4,7 @@
<Shape Style="ArrowBut" MouseDown="./OnDecrease"
Height="10" Size="10,10" Path="M 4.5,0.5 L 9.5,9.5 L 0.5,9.5 Z F"/>
<Container Margin="1">
- <Widget Name="Cursor" Background="Grey" CornerRadius="{./CornerRadius}"/>
+ <Widget Style="ScrollBarCursor" Name="Cursor" CornerRadius="{./CornerRadius}"/>
</Container>
<Shape Style="ArrowBut" MouseDown="./OnIncrease"
Height="10" Size="10,10" Path="M 0.5,0.5 L 9.5,0.5 L 4.5,9.5 Z F"/>
diff --git a/Crow/src/Fill/Picture.cs b/Crow/src/Fill/Picture.cs
index a2c67613..b0cf29fb 100644
--- a/Crow/src/Fill/Picture.cs
+++ b/Crow/src/Fill/Picture.cs
@@ -10,6 +10,7 @@ using System.Collections.Generic;
using Drawing2D;
using System.Globalization;
using Crow.DebugLogger;
+using System.Diagnostics;
namespace Crow
{
@@ -68,9 +69,15 @@ namespace Crow
}
#endregion
- void init(Interface iFace, ref Rectangle rect, out float widthRatio, out float heightRatio) {
- if (!IsLoaded)
- load (iFace);
+ bool init(Interface iFace, ref Rectangle rect, out float widthRatio, out float heightRatio) {
+ if (!IsLoaded) {
+ try {
+ load (iFace);
+ } catch (Exception e) {
+ Debug.WriteLine($"Picture loading failed ({this.Path}): {e.Message}");
+ }
+ }
+
widthRatio = 1f;
heightRatio = 1f;
@@ -85,6 +92,7 @@ namespace Crow
widthRatio = heightRatio;
}
}
+ return IsLoaded;
}
/// <summary>
@@ -98,7 +106,8 @@ namespace Crow
{
DbgLogger.AddEventWithMsg(DbgEvtType.Ressources, $"{Path}[Picture.Paint:]");
- init(iFace, ref bounds, out float widthRatio, out float heightRatio);
+ if (!init(iFace, ref bounds, out float widthRatio, out float heightRatio))
+ return;
gr.SaveTransformations ();
@@ -114,7 +123,8 @@ namespace Crow
{
DbgLogger.AddEventWithMsg(DbgEvtType.Ressources, $"{Path} [Picture.SetAsSource]");
- init(iFace, ref bounds, out float widthRatio, out float heightRatio);
+ if (!init(iFace, ref bounds, out float widthRatio, out float heightRatio))
+ return;
using (ISurface tmp = iFace.Backend.CreateSurface (bounds.Width, bounds.Height)) {
using (IContext gr = iFace.Backend.CreateContext (tmp)) {
diff --git a/Crow/src/IML/Instantiator.cs b/Crow/src/IML/Instantiator.cs
index 69159830..40f6e580 100644
--- a/Crow/src/IML/Instantiator.cs
+++ b/Crow/src/IML/Instantiator.cs
@@ -1608,41 +1608,6 @@ namespace Crow.IML {
orig.ValueChanged += tmp;
}
#endregion
-
- /// <summary>
- /// search for graphic object type in crow assembly, if not found,
- /// search for type independently of namespace in all the loaded assemblies
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <returns>the corresponding type object</returns>
- /// <param name="typeName">graphic object type name without its namespace</param>
- public static Type GetWidgetTypeFromName (string typeName){
- if (knownGOTypes.ContainsKey (typeName))
- return knownGOTypes [typeName];
- Type t = Type.GetType ("Crow." + typeName);
- if (t != null) {
- knownGOTypes.Add (typeName, t);
- return t;
- }
-
- foreach (Type expT in Assembly.GetEntryAssembly ().GetExportedTypes ()) {
- if (expT.Name != typeName)
- continue;
- knownGOTypes.Add (typeName, expT);
- return expT;
- }
-
- foreach (Assembly a in Interface.crowAssemblies) {
- foreach (Type expT in a.GetExportedTypes ()) {
- if (expT.Name != typeName)
- continue;
- knownGOTypes.Add (typeName, expT);
- return expT;
- }
- }
- return null;
- }
}
}
diff --git a/Crow/src/Interface.cs b/Crow/src/Interface.cs
index e865739e..a10ef1db 100644
--- a/Crow/src/Interface.cs
+++ b/Crow/src/Interface.cs
@@ -675,6 +675,7 @@ namespace Crow
public long TotalWidgetCreated => Widget.TotalWidgetCreated;
public long TotalWidgetDisposed => Widget.TotalWidgetDisposed;
public long TotalWidgetActive => Widget.TotalWidgetCreated - Widget.TotalWidgetDisposed;
+ public long TotalWidgetPainted => Widget.TotalWidgetPainted;
public long TotalWidgetInGraphicTree {
get {
lock(UpdateMutex) {
@@ -685,6 +686,7 @@ namespace Crow
}
}
}
+ public long CanceledChildPaintCount => GroupBase.CanceledChildPaintCount;
#endif
#region DragAndDrop
@@ -1858,9 +1860,17 @@ namespace Crow
<Label Text='{TotalWidgetActive}' TextAlignment='Right'/>
</HorizontalStack>
<HorizontalStack Height='Fit'>
+ <Label Text='TotalWidgetPainted:' Width='50%'/>
+ <Label Text='{TotalWidgetPainted}' TextAlignment='Right'/>
+ </HorizontalStack>
+ <HorizontalStack Height='Fit'>
<Label Text='TotalWidgetInGraphicTree:' Width='50%'/>
<Label Text='{TotalWidgetInGraphicTree}' TextAlignment='Right'/>
</HorizontalStack>
+ <HorizontalStack Height='Fit'>
+ <Label Text='Total Canceled Child Paint in Groups:' Width='50%'/>
+ <Label Text='{CanceledChildPaintCount}' TextAlignment='Right'/>
+ </HorizontalStack>
</VerticalStack>
</Window>
").DataSource = this;
diff --git a/Crow/src/Text/TextChange.cs b/Crow/src/Text/TextChange.cs
index 68f4d2c3..6533a9b4 100644
--- a/Crow/src/Text/TextChange.cs
+++ b/Crow/src/Text/TextChange.cs
@@ -18,7 +18,12 @@ namespace Crow.Text
public int CharDiff => string.IsNullOrEmpty (ChangedText) ? - Length : ChangedText.Length - Length;
public bool IsEmpty => string.IsNullOrEmpty (ChangedText) && Length == 0;
- public TextChange (int position, int length, string changedText) {
+ public bool HasNewText => !string.IsNullOrEmpty (ChangedText);
+
+ public bool HasNoEffect(ReadOnlySpan<char> src)
+ => src.Slice(Start, Length).Equals(ChangedText, StringComparison.Ordinal);
+
+ public TextChange (int position, int length, string changedText = null) {
Start = position;
Length = length;
ChangedText = changedText;
diff --git a/Crow/src/Widgets/ColorGauge.cs b/Crow/src/Widgets/ColorGauge.cs
new file mode 100644
index 00000000..759e1cec
--- /dev/null
+++ b/Crow/src/Widgets/ColorGauge.cs
@@ -0,0 +1,137 @@
+// Copyright (c) 2013-2025 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
+
+using System;
+using System.ComponentModel;
+
+
+using Drawing2D;
+
+namespace Crow {
+ public class ColorGauge : Widget
+ {
+ #region CTOR
+ protected ColorGauge () {}
+ public ColorGauge (Interface iface, string style = null) : base (iface, style) { }
+ #endregion
+
+ ColorComponent component;
+ Color currentColor = Colors.Black;
+ protected Orientation orientation;
+ protected bool inverted;
+
+
+ [DefaultValue (ColorComponent.Value)]
+ public ColorComponent Component {
+ get => component;
+ set {
+ if (component == value)
+ return;
+ component = value;
+ NotifyValueChangedAuto (component);
+ RegisterForRedraw ();
+ }
+ }
+ public Color CurrentColor {
+ get => currentColor;
+ set {
+ if (currentColor == value)
+ return;
+
+ currentColor = value;
+
+ NotifyValueChangedAuto (currentColor);
+ RegisterForRedraw ();
+ }
+ }
+ [DefaultValue (Orientation.Horizontal)]
+ public virtual Orientation Orientation {
+ get => orientation;
+ set {
+ if (orientation == value)
+ return;
+ orientation = value;
+ NotifyValueChangedAuto (orientation);
+ RegisterForLayouting (LayoutingType.Sizing | LayoutingType.ArrangeChildren);
+ }
+ }
+ /// <summary>
+ /// if true, horizontal gauge will align drawing right, and vertical on bottom.
+ /// </summary>
+ public bool Inverted {
+ get => inverted;
+ set {
+ if (inverted == value)
+ return;
+ inverted = value;
+ NotifyValueChangedAuto (inverted);
+ RegisterForRedraw ();
+ }
+ }
+ protected override void onDraw (IContext gr) {
+ DbgLogger.StartEvent (DbgEvtType.GODraw, this);
+
+ //base.onDraw (gr);
+
+ Rectangle cb = ClientRectangle;
+ Rectangle r = cb;
+
+ /*if (orientation == Orientation.Horizontal) {
+ r.Width = (int)(cb.Width / Maximum * Value);
+ if (inverted)
+ r.Left = cb.Right - r.Width;
+ } else {
+ r.Height = (int)(cb.Height / Maximum * Value);
+ if (inverted)
+ r.Top = cb.Bottom - r.Height;
+ }*/
+ Gradient grad = new Gradient (
+ Orientation == Orientation.Vertical ? GradientType.Vertical : GradientType.Horizontal);
+ Color c = currentColor;
+
+ switch (component) {
+ case ColorComponent.Red:
+ grad.Stops.Add (new Gradient.ColorStop (0, new Color (0, c.G, c.B, c.A)));
+ grad.Stops.Add (new Gradient.ColorStop (1, new Color (255, c.G, c.B, c.A)));
+ break;
+ case ColorComponent.Green:
+ grad.Stops.Add (new Gradient.ColorStop (0, new Color (c.R, 0, c.B, c.A)));
+ grad.Stops.Add (new Gradient.ColorStop (1, new Color (c.R, 255, c.B, c.A)));
+ break;
+ case ColorComponent.Blue:
+ grad.Stops.Add (new Gradient.ColorStop (0, new Color (c.R, c.G, 0, c.A)));
+ grad.Stops.Add (new Gradient.ColorStop (1, new Color (c.R, c.G, 255, c.A)));
+ break;
+ case ColorComponent.Alpha:
+ grad.Stops.Add (new Gradient.ColorStop (0, new Color (c.R, c.G, c.B, 0)));
+ grad.Stops.Add (new Gradient.ColorStop (1, new Color (c.R, c.G, c.B, 255)));
+ break;
+ case ColorComponent.Hue:
+ grad.Stops.Add (new Gradient.ColorStop (0, new Color (1.0, 0, 0, 1)));
+ grad.Stops.Add (new Gradient.ColorStop (0.167, new Color (1.0, 1, 0, 1)));
+ grad.Stops.Add (new Gradient.ColorStop (0.333, new Color (0.0, 1, 0, 1)));
+ grad.Stops.Add (new Gradient.ColorStop (0.5, new Color (0.0, 1, 1, 1)));
+ grad.Stops.Add (new Gradient.ColorStop (0.667, new Color (0.0, 0, 1, 1)));
+ grad.Stops.Add (new Gradient.ColorStop (0.833, new Color (1.0, 0, 1, 1)));
+ grad.Stops.Add (new Gradient.ColorStop (1, new Color (1.0, 0, 0, 1)));
+ break;
+ case ColorComponent.Saturation:
+ grad.Stops.Add (new Gradient.ColorStop (0, Color.FromHSV (c.Hue, c.Value, 0, c.A)));
+ grad.Stops.Add (new Gradient.ColorStop (1, Color.FromHSV (c.Hue, c.Value, 0xff, c.A)));
+ break;
+ case ColorComponent.Value:
+ grad.Stops.Add (new Gradient.ColorStop (0, Color.FromHSV (c.Hue, 0, c.Saturation, c.A)));
+ grad.Stops.Add (new Gradient.ColorStop (1, Color.FromHSV (c.Hue, 0xff, c.Saturation, c.A)));
+ break;
+ }
+
+ grad.SetAsSource (IFace, gr, r);
+ CairoHelpers.CairoRectangle (gr, r, CornerRadius);
+ gr.Fill ();
+
+ DbgLogger.EndEvent (DbgEvtType.GODraw);
+ }
+ }
+}
+
diff --git a/Crow/src/Widgets/ColorPicker.cs b/Crow/src/Widgets/ColorPicker.cs
index 3b31ea43..7b250be5 100644
--- a/Crow/src/Widgets/ColorPicker.cs
+++ b/Crow/src/Widgets/ColorPicker.cs
@@ -29,11 +29,81 @@ namespace Crow
set {
if (currentColor.Equals(value))
return;
+ //Color prev = currentColor;
currentColor = value;
NotifyValueChangedAuto (currentColor);
- NotifyValueChanged ("CurrentColor2", Color.FromHSV (currentColor.Hue, currentColor.Value, currentColor.Saturation, currentColor.A));
+
}
}
+ public int Red {
+ get => (int)currentColor.R;
+ set {
+ if ((uint)value == currentColor.R)
+ return;
+ CurrentColor = new Color((uint)value, currentColor.G, currentColor.B, currentColor.A);
+ NotifyValueChangedAuto(currentColor.R);
+ }
+ }
+ public int Green {
+ get => (int)currentColor.G;
+ set {
+ if ((uint)value == currentColor.G)
+ return;
+ CurrentColor = new Color(currentColor.R, (uint)value, currentColor.B, currentColor.A);
+ NotifyValueChangedAuto(currentColor.G);
+ }
+ }
+ public int Blue {
+ get => (int)currentColor.B;
+ set {
+ if ((uint)value == currentColor.B)
+ return;
+ CurrentColor = new Color(currentColor.R, currentColor.G, (uint)value, currentColor.A);
+ NotifyValueChangedAuto(currentColor.B);
+ }
+ }
+ public int Alpha {
+ get => (int)currentColor.A;
+ set {
+ if ((uint)value == currentColor.A)
+ return;
+ CurrentColor = new Color(currentColor.R, currentColor.G, currentColor.B, (uint)value);
+ NotifyValueChangedAuto(currentColor.A);
+ }
+ }
+ public int Hue {
+ get => (int)currentColor.B;
+ set {
+ if ((uint)value == currentColor.Hue)
+ return;
+ Color c = Color.FromHSV ((uint)value, currentColor.Value, currentColor.Saturation, currentColor.A);
+ for (int i = 0; i < 2; i++) {
+ c = Color.FromHSV ((uint)value, c.Value, c.Saturation, c.A);
+ }
+ CurrentColor = Color.FromHSV ((uint)value, c.Value, c.Saturation, c.A);
+ NotifyValueChangedAuto(currentColor.Hue);
+ }
+ }
+ public int Saturation {
+ get => (int)currentColor.B;
+ set {
+ if ((uint)value == currentColor.Saturation)
+ return;
+ CurrentColor = Color.FromHSV (currentColor.Hue, currentColor.Value, (uint)value, currentColor.A);
+ NotifyValueChangedAuto(currentColor.Saturation);
+ }
+ }
+ public int Value {
+ get => (int)currentColor.B;
+ set {
+ if ((uint)value == currentColor.Value)
+ return;
+ CurrentColor = Color.FromHSV (currentColor.Hue, (uint)value, currentColor.Saturation, currentColor.A);
+ NotifyValueChangedAuto(currentColor.Value);
+ }
+ }
+
+
public IList<Colors> AvailableColors => //Enum.GetValues (typeof (Color)).ToList<Color> ();// Colors. ColorDic.Values.OrderBy (c => c.Hue).ToList ();
EnumsNET.Enums.GetValues<Colors> ().ToList<Colors> ();
diff --git a/Crow/src/Widgets/ColorSlider.cs b/Crow/src/Widgets/ColorSlider.cs
index 61bb951d..d01d2d7d 100644
--- a/Crow/src/Widgets/ColorSlider.cs
+++ b/Crow/src/Widgets/ColorSlider.cs
@@ -15,53 +15,16 @@ namespace Crow
/// Color component slider with background gradient ranging from 0 to 1 for this component value.
/// </summary>
[DesignIgnore]
- public class ColorSlider : Widget
+ public class ColorSlider : Slider
{
#region CTOR
protected ColorSlider() {}
public ColorSlider (Interface iface, string style = null) : base (iface, style) { }
#endregion
- protected Point mousePos;//store local mouse pos sync with currentValue
- Orientation orientation;
- CursorType cursorType = CursorType.Pentagone;
- ColorComponent component;
Color currentColor = Colors.Black;
- int currentValue = -1;//force notify for property less binding 'CurrentValue'
+ ColorComponent component;
- [DefaultValue (Orientation.Horizontal)]
- public Orientation Orientation {
- get => orientation;
- set {
- if (orientation == value)
- return;
- orientation = value;
- NotifyValueChangedAuto (orientation);
- RegisterForGraphicUpdate ();
- }
- }
- [DefaultValue (CursorType.Pentagone)]
- public CursorType CursorType {
- get => cursorType;
- set {
- if (cursorType == value)
- return;
- cursorType = value;
- NotifyValueChangedAuto (cursorType);
- RegisterForRedraw ();
- }
- }
- [DefaultValue (ColorComponent.Value)]
- public ColorComponent Component {
- get => component;
- set {
- if (component == value)
- return;
- component = value;
- NotifyValueChangedAuto (component);
- RegisterForRedraw ();
- }
- }
public Color CurrentColor {
get => currentColor;
set {
@@ -70,223 +33,45 @@ namespace Crow
currentColor = value;
- NotifyValueChangedAuto (currentColor);
- RegisterForRedraw ();
-
switch (component) {
case ColorComponent.Red:
- if (currentValue == currentColor.R)
- return;
- currentValue = (int)currentColor.R;
+ Value = currentColor.R;
break;
case ColorComponent.Green:
- if (currentValue == currentColor.G)
- return;
- currentValue = (int)currentColor.G;
+ Value = currentColor.G;
break;
case ColorComponent.Blue:
- if (currentValue == currentColor.B)
- return;
- currentValue = (int)currentColor.B;
+ Value = currentColor.B;
break;
case ColorComponent.Alpha:
- if (currentValue == currentColor.A)
- return;
- currentValue = (int)currentColor.A;
+ Value = currentColor.A;
break;
case ColorComponent.Hue:
- if (currentValue == currentColor.Hue)
- return;
- currentValue = (int)currentColor.Hue;
+ Value = currentColor.Hue;
break;
case ColorComponent.Saturation:
- if (currentValue == currentColor.Saturation)
- return;
- currentValue = (int)currentColor.Saturation;
+ Value = currentColor.Saturation;
break;
case ColorComponent.Value:
- if (currentValue == currentColor.Value)
- return;
- currentValue = (int)currentColor.Value;
+ Value = currentColor.Value;
break;
- }
-
- NotifyValueChanged ("CurrentValue", $"{currentValue:000}");
-
- if (Orientation == Orientation.Horizontal)
- mousePos.X = (int)Math.Floor ((double)currentValue * ClientRectangle.Width / 255.0);
- else
- mousePos.Y = (int)Math.Floor ((double)currentValue * ClientRectangle.Height / 255.0);
- }
- }
- public override void onMouseMove (object sender, MouseMoveEventArgs e)
- {
- if (IFace.IsDown(MouseButton.Left)) {
- updateMouseLocalPos (e.Position);
- e.Handled = true;
- }
- base.onMouseMove (sender, e);
- }
- public override void onMouseDown (object sender, MouseButtonEventArgs e)
- {
+ }
- if (e.Button == MouseButton.Left) {
- updateMouseLocalPos (e.Position);
- e.Handled = true;
- }
- base.onMouseDown (sender, e);
- }
-
- protected override void onDraw (IContext gr) {
- DbgLogger.StartEvent (DbgEvtType.GODraw, this);
-
- base.onDraw (gr);
-
- RectangleD r = ClientRectangle;
- r.Height -= 4;
- r.Y += 2;
-
- Gradient grad = new Gradient (
- Orientation == Orientation.Vertical ? GradientType.Vertical : GradientType.Horizontal);
- Color c = currentColor;
-
- switch (component) {
- case ColorComponent.Red:
- grad.Stops.Add (new Gradient.ColorStop (0, new Color (0, c.G, c.B, c.A)));
- grad.Stops.Add (new Gradient.ColorStop (1, new Color (255, c.G, c.B, c.A)));
- break;
- case ColorComponent.Green:
- grad.Stops.Add (new Gradient.ColorStop (0, new Color (c.R, 0, c.B, c.A)));
- grad.Stops.Add (new Gradient.ColorStop (1, new Color (c.R, 255, c.B, c.A)));
- break;
- case ColorComponent.Blue:
- grad.Stops.Add (new Gradient.ColorStop (0, new Color (c.R, c.G, 0, c.A)));
- grad.Stops.Add (new Gradient.ColorStop (1, new Color (c.R, c.G, 255, c.A)));
- break;
- case ColorComponent.Alpha:
- grad.Stops.Add (new Gradient.ColorStop (0, new Color (c.R, c.G, c.B, 0)));
- grad.Stops.Add (new Gradient.ColorStop (1, new Color (c.R, c.G, c.B, 255)));
- break;
- case ColorComponent.Hue:
- grad.Stops.Add (new Gradient.ColorStop (0, new Color (1.0, 0, 0, 1)));
- grad.Stops.Add (new Gradient.ColorStop (0.167, new Color (1.0, 1, 0, 1)));
- grad.Stops.Add (new Gradient.ColorStop (0.333, new Color (0.0, 1, 0, 1)));
- grad.Stops.Add (new Gradient.ColorStop (0.5, new Color (0.0, 1, 1, 1)));
- grad.Stops.Add (new Gradient.ColorStop (0.667, new Color (0.0, 0, 1, 1)));
- grad.Stops.Add (new Gradient.ColorStop (0.833, new Color (1.0, 0, 1, 1)));
- grad.Stops.Add (new Gradient.ColorStop (1, new Color (1.0, 0, 0, 1)));
- break;
- case ColorComponent.Saturation:
- grad.Stops.Add (new Gradient.ColorStop (0, Color.FromHSV (c.Hue, c.Value, 0, c.A)));
- grad.Stops.Add (new Gradient.ColorStop (1, Color.FromHSV (c.Hue, c.Value, 0xff, c.A)));
- break;
- case ColorComponent.Value:
- grad.Stops.Add (new Gradient.ColorStop (0, Color.FromHSV (c.Hue, 0, c.Saturation, c.A)));
- grad.Stops.Add (new Gradient.ColorStop (1, Color.FromHSV (c.Hue, 0xff, c.Saturation, c.A)));
- break;
- }
-
- grad.SetAsSource (IFace, gr, r);
- CairoHelpers.CairoRectangle (gr, r, CornerRadius);
- gr.Fill ();
-
- r = ClientRectangle;
-
- switch (cursorType) {
- case CursorType.Rectangle:
- if (Orientation == Orientation.Horizontal) {
- r.Width = 5;
- r.X = mousePos.X - 2.5;
- } else {
- r.Height = 5;
- r.Y = mousePos.Y - 2.5;
- }
- CairoHelpers.CairoRectangle (gr, r, 1);
- break;
- case CursorType.Circle:
- if (Orientation == Orientation.Horizontal)
- gr.Arc (mousePos.X, r.Center.Y, 3.5, 0, Math.PI * 2.0);
- else
- gr.Arc (r.Center.X, mousePos.Y, 3.5, 0, Math.PI * 2.0);
- break;
- case CursorType.Pentagone:
- if (Orientation == Orientation.Horizontal) {
- r.Width = 5;
- r.X = mousePos.X - 2.5;
- double y = r.CenterD.Y - r.Height * 0.2;
- gr.MoveTo (mousePos.X, y);
- y += r.Height * 0.15;
- gr.LineTo (r.Right, y);
- gr.LineTo (r.Right, r.Bottom - 0.5);
- gr.LineTo (r.Left, r.Bottom - 0.5);
- gr.LineTo (r.Left, y);
- gr.ClosePath ();
- } else {
- }
- break;
+ NotifyValueChangedAuto (currentColor);
+ RegisterForRedraw ();
}
-
- gr.SetSource (Colors.Black);
- gr.LineWidth = 2.0;
- gr.StrokePreserve ();
- gr.SetSource (Colors.White);
- gr.LineWidth = 1.0;
- gr.Stroke ();
-
- DbgLogger.EndEvent (DbgEvtType.GODraw);
- }
- public override void OnLayoutChanges (LayoutingType layoutType) {
- base.OnLayoutChanges (layoutType);
-
- if (Orientation == Orientation.Horizontal) {
- if (layoutType == LayoutingType.Width)
- mousePos.X = (int)Math.Floor (currentValue / 255.0 * ClientRectangle.Width);
- } else if (layoutType == LayoutingType.Height)
- mousePos.Y = (int)Math.Floor (currentValue / 255.0 * ClientRectangle.Height);
}
-
- protected virtual void updateMouseLocalPos(Point mPos){
- Rectangle r = ScreenCoordinates (Slot);
- Rectangle cb = ClientRectangle;
- mousePos = mPos - r.Position;
-
- mousePos.X = Math.Max(cb.X, mousePos.X);
- mousePos.X = Math.Min(cb.Right, mousePos.X);
- mousePos.Y = Math.Max(cb.Y, mousePos.Y);
- mousePos.Y = Math.Min(cb.Bottom, mousePos.Y);
-
- if (Orientation == Orientation.Horizontal)
- currentValue = (int)((double)mousePos.X / ClientRectangle.Width * 0xff);
- else
- currentValue = (int)((double)mousePos.Y / ClientRectangle.Height * 0xff);
-
- NotifyValueChanged ("CurrentValue", $"{currentValue:000}");
-
- Color c = currentColor;
- switch (component) {
- case ColorComponent.Red:
- CurrentColor = new Color((uint)currentValue, c.G, c.B, c.A);
- break;
- case ColorComponent.Green:
- CurrentColor = new Color (c.R, (uint)currentValue, c.B, c.A);
- break;
- case ColorComponent.Blue:
- CurrentColor = new Color (c.R, c.G, (uint)currentValue, c.A);
- break;
- case ColorComponent.Alpha:
- CurrentColor = new Color (c.R, c.G, c.B, (uint)currentValue);
- break;
- case ColorComponent.Hue:
- CurrentColor = Color.FromHSV ((uint)currentValue, c.Value, c.Saturation, c.A);
- break;
- case ColorComponent.Saturation:
- CurrentColor = Color.FromHSV (c.Hue, c.Value, (uint)currentValue, c.A);
- break;
- case ColorComponent.Value:
- CurrentColor = Color.FromHSV (c.Hue, (uint)currentValue, c.Saturation, c.A);
- break;
+ [DefaultValue (ColorComponent.Value)]
+ public ColorComponent Component {
+ get => component;
+ set {
+ if (component == value)
+ return;
+ component = value;
+ NotifyValueChangedAuto (component);
+ RegisterForRedraw ();
}
- }
+ }
}
}
diff --git a/Crow/src/Widgets/Gauge.cs b/Crow/src/Widgets/Gauge.cs
index 8cab26c1..4df23304 100644
--- a/Crow/src/Widgets/Gauge.cs
+++ b/Crow/src/Widgets/Gauge.cs
@@ -18,8 +18,8 @@ namespace Crow {
#region protected fields
protected double actualValue, minValue, maxValue;
- Orientation orientation;
- bool inverted;
+ protected Orientation orientation;
+ protected bool inverted;
#endregion
#region public properties
diff --git a/Crow/src/Widgets/GroupBase.cs b/Crow/src/Widgets/GroupBase.cs
index 3a3e72c9..65fe860f 100644
--- a/Crow/src/Widgets/GroupBase.cs
+++ b/Crow/src/Widgets/GroupBase.cs
@@ -15,6 +15,9 @@ namespace Crow
{
public abstract class GroupBase : Widget
{
+ #if DEBUG_STATS
+ public static long CanceledChildPaintCount = 0;
+ #endif
#if DESIGN_MODE
public override bool FindByDesignID(string designID, out Widget go){
go = null;
@@ -236,8 +239,16 @@ namespace Crow
childrenRWLock.EnterReadLock ();
try
{
- for (int i = 0; i < Children.Count; i++)
- Children[i].Paint (gr);
+ Rectangle cb = ClientRectangle;
+ for (int i = 0; i < Children.Count; i++) {
+ if (cb.Intersect(Children[i].ContextCoordinates(Children[i].ClientRectangle)))
+ Children[i].Paint (gr);
+#if DEBUG_STATS
+ else
+ CanceledChildPaintCount++;
+#endif
+ }
+
} catch (Exception e) {
Console.WriteLine($"Erreur group {this} paint: {e.Message}");
Console.WriteLine(e.StackTrace);
diff --git a/Crow/src/Widgets/Slider.cs b/Crow/src/Widgets/Slider.cs
index dbd7e58d..96dcaa86 100644
--- a/Crow/src/Widgets/Slider.cs
+++ b/Crow/src/Widgets/Slider.cs
@@ -148,15 +148,15 @@ namespace Crow
if (_orientation == Orientation.Horizontal) {
unity = (r.Width - cursorSize) / (Maximum - Minimum);
if (inverted)
- cursor.Left = r.Right - cursorSize - (int)((Value - Minimum) * unity);
+ cursor.Left = r.Width - cursorSize - (int)((Value - Minimum) * unity);
else
- cursor.Left = r.Left + (int)((Value - Minimum) * unity);
+ cursor.Left = (int)((Value - Minimum) * unity);
} else {
unity = (r.Height - cursorSize) / (Maximum - Minimum);
if (inverted)
- cursor.Top = r.Bottom - cursorSize - (int)((Value - Minimum) * unity);
+ cursor.Top = r.Height - cursorSize - (int)((Value - Minimum) * unity);
else
- cursor.Top = r.Top + (int)((Value - Minimum) * unity);
+ cursor.Top = (int)((Value - Minimum) * unity);
}
}
Point mouseDownInit;
@@ -231,18 +231,20 @@ namespace Crow
/// </summary>
/// <param name="sender">event sender</param>
/// <param name="e">event argument</param>
- public void OnDecrease (object sender, EventArgs e)
+ public void OnDecrease (object sender, MouseEventArgs e)
{
Value -= SmallIncrement;
+ e.Handled = true;
}
/// <summary>
/// Handler to increase current value by `SmallIncrement`
/// </summary>
/// <param name="sender">event sender</param>
/// <param name="e">event argument</param>
- public void OnIncrease (object sender, EventArgs e)
+ public void OnIncrease (object sender, MouseEventArgs e)
{
Value += SmallIncrement;
+ e.Handled = true;
}
protected override void Dispose(bool disposing)
diff --git a/Crow/src/Widgets/TemplatedGroup.cs b/Crow/src/Widgets/TemplatedGroup.cs
index d9706969..4cbace6e 100644
--- a/Crow/src/Widgets/TemplatedGroup.cs
+++ b/Crow/src/Widgets/TemplatedGroup.cs
@@ -289,12 +289,17 @@ namespace Crow {
void Ol_ListRemove (object sender, ListChangedEventArg e)
{
cancelLoadingThread ();
+
+ if (selectedItemContainer == itemsContainer.Children[e.Index])
+ SelectedItem = null;
+
if (this.isPaged) {
int p = e.Index / itemPerPage;
int i = e.Index % itemPerPage;
(itemsContainer.Children [p] as Group).DeleteChild (i);
} else
itemsContainer.DeleteChild (e.Index);
+
}
void Ol_ListAdd (object sender, ListChangedEventArg e)
diff --git a/Crow/src/Widgets/Widget.cs b/Crow/src/Widgets/Widget.cs
index bebb57a3..5e47dd6b 100644
--- a/Crow/src/Widgets/Widget.cs
+++ b/Crow/src/Widgets/Widget.cs
@@ -41,6 +41,7 @@ namespace Crow
#if DEBUG_STATS
public static long TotalWidgetCreated;
public static long TotalWidgetDisposed;
+ public static long TotalWidgetPainted;
public virtual long ChildCount => 0;
#endif
#if DESIGN_MODE
@@ -450,7 +451,8 @@ namespace Crow
return
Parent.ScreenCoordinates(r) + Parent.getSlot().Position + Parent.ClientRectangle.Position;
} catch (Exception ex) {
- Debug.WriteLine (ex);
+ Debug.WriteLine (ex.Message);
+ Debug.WriteLine (ex.StackTrace);
return default(Rectangle);
}
}
@@ -2043,6 +2045,9 @@ namespace Crow
LastPaintedSlot = Slot;
//}
Painted.Raise (this, null);
+#if DEBUG_STATS
+ TotalWidgetPainted++;
+#endif
DbgLogger.EndEvent (DbgEvtType.GOPaint);
return true;
diff --git a/Crow/src/Widgets/XmlIgnoreAttribute.cs b/Crow/src/Widgets/XmlIgnoreAttribute.cs
deleted file mode 100644
index 29e5bf6e..00000000
--- a/Crow/src/Widgets/XmlIgnoreAttribute.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Expandable.cs
-//
-// Author:
-// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-
-namespace Crow
-{
- public class XmlIgnoreAttribute : Attribute
- {
- }
-} \ No newline at end of file
diff --git a/Crow/src/styling/Style.cs b/Crow/src/styling/Style.cs
index 6694dfa8..0067d10d 100644
--- a/Crow/src/styling/Style.cs
+++ b/Crow/src/styling/Style.cs
@@ -1,4 +1,4 @@
-// Copyright (c) 2013-2020 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2013-2025 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
@@ -7,23 +7,6 @@ using System.Collections.Generic;
namespace Crow
{
- public struct FileLocation {
- public string FilePath;
- public int Line;
- public int Column;
- public int Length;
-
- public FileLocation(string filePath, int line, int column, int length = 0){
- FilePath = filePath;
- Line = line;
- Column = column;
- Length = length;
- }
- public override string ToString ()
- {
- return string.Format ("{0} ({1},{2})", FilePath, Line, Column);
- }
- }
public class Style : Dictionary<string, string>
{
#if DESIGN_MODE
diff --git a/Directory.Build.props b/Directory.Build.props
index e1bd3e46..f3f829df 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -15,7 +15,7 @@
<!-- Compile with logging enabled, this will slow down apps, use this only
for debugging purpose-->
- <CrowDebugLogEnabled>true</CrowDebugLogEnabled>
+ <CrowDebugLogEnabled>false</CrowDebugLogEnabled>
<!-- Collect several statistics on widgets-->
<CrowDebugStatsEnabled>false</CrowDebugStatsEnabled>
diff --git a/Drawing2D/Drawing2D.csproj b/Drawing2D/Drawing2D.csproj
index 72123f26..d1c3f10f 100644
--- a/Drawing2D/Drawing2D.csproj
+++ b/Drawing2D/Drawing2D.csproj
@@ -10,6 +10,7 @@
<Title>Drawing 2D Library</Title>
<Description>
2d shapes and drawing interfaces used in C.R.O.W and Vke.net.
+ Contains also most used crow basic object for sharing across load contexts.
</Description>
<License>MIT</License>
<Authors>Jean-Philippe Bruyère</Authors>
diff --git a/Crow/src/IML/IMLAttributes.cs b/Drawing2D/src/IMLAttributes.cs
index b983d1a6..9a6d7dfb 100644
--- a/Crow/src/IML/IMLAttributes.cs
+++ b/Drawing2D/src/IMLAttributes.cs
@@ -6,6 +6,10 @@ using System;
namespace Crow
{
+ public class XmlIgnoreAttribute : Attribute
+ {
+ }
+
public class DesignIgnore : Attribute
{
}
diff --git a/Drawing2D/src/Style.cs b/Drawing2D/src/Style.cs
new file mode 100644
index 00000000..3feab7c6
--- /dev/null
+++ b/Drawing2D/src/Style.cs
@@ -0,0 +1,28 @@
+// Copyright (c) 2013-2025 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
+
+using System;
+using System.Collections.Generic;
+
+namespace Crow
+{
+ public struct FileLocation {
+ public string FilePath;
+ public int Line;
+ public int Column;
+ public int Length;
+
+ public FileLocation(string filePath, int line, int column, int length = 0){
+ FilePath = filePath;
+ Line = line;
+ Column = column;
+ Length = length;
+ }
+ public override string ToString ()
+ {
+ return string.Format ("{0} ({1},{2})", FilePath, Line, Column);
+ }
+ }
+}
+
diff --git a/Samples/common/src/SampleBase.cs b/Samples/common/src/SampleBase.cs
index 93526308..0aac7873 100644
--- a/Samples/common/src/SampleBase.cs
+++ b/Samples/common/src/SampleBase.cs
@@ -86,6 +86,10 @@ namespace Samples
if (!string.IsNullOrEmpty(selItem))
ObservableTestList.Remove(lb.SelectedItem as string);
},null, true);
+ CMDObsListRemove2 = new ActionCommand ("Remove2",
+ () => {
+ ObservableTestList.Remove(observableTestListSelectedItem);
+ },null, false);
}
DeviceEventType deviceEventTypeEnum;
public DeviceEventType DeviceEventTypeEnum {
@@ -332,7 +336,7 @@ namespace Samples
}
}
- public ActionCommand CMDObsListAdd,CMDObsListRemove;
+ public ActionCommand CMDObsListAdd,CMDObsListRemove,CMDObsListRemove2;
string obsListNewItem = "new item";
public string ObsListNewItem {
get => obsListNewItem;
@@ -345,8 +349,17 @@ namespace Samples
}
}
public ObservableList<string> ObservableTestList = new ObservableList<string>(new string[]{"string1", "string2"});
-
-
+ string observableTestListSelectedItem = null;
+ public string ObservableTestListSelectedItem {
+ get => observableTestListSelectedItem;
+ set {
+ if (value == observableTestListSelectedItem)
+ return;
+ observableTestListSelectedItem = value;
+ NotifyValueChanged(ObservableTestListSelectedItem);
+ CMDObsListRemove2.CanExecute = !string.IsNullOrEmpty(observableTestListSelectedItem);
+ }
+ }
IList<Colors> testList = (IList<Colors>)EnumsNET.Enums.GetValues<Colors>().ToList();//.ColorDic.Values//.OrderBy(c=>c.Hue)
//.ThenBy(c=>c.Value).ThenBy(c=>c.Saturation)
//.ToList ();
@@ -475,6 +488,16 @@ namespace Samples
}
}
+ public Fill TestColor {
+ get => Configuration.Global.Get<Color> (nameof(AllWidgetBackground));
+ set {
+ if (value == AllWidgetBackground)
+ return;
+ Configuration.Global.Set (nameof(AllWidgetBackground), value);
+ NotifyValueChanged (value);
+ }
+ }
+
diff --git a/Samples/common/ui/Interfaces/Divers/colorPicker.crow b/Samples/common/ui/Interfaces/Divers/colorPicker.crow
index dc4a6abe..c1912be6 100644
--- a/Samples/common/ui/Interfaces/Divers/colorPicker.crow
+++ b/Samples/common/ui/Interfaces/Divers/colorPicker.crow
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<VerticalStack>
- <ColorPicker CurrentColor="{²../go.Background}" Name="colorPicker" Background="DimGrey" Width="250" />
+ <ColorPicker CurrentColor="{²../go.Background}" Name="colorPicker" Background="DimGrey" Width="400" />
<Widget Name="go" Width="100" Height="60" Background="DarkBlue"/>
<Widget Width="100" Height="60" Background="{../colorPicker.CurrentColor}"/>
<Label Text="{../colorPicker.CurrentColor}"/>
diff --git a/Samples/common/ui/Interfaces/Divers/colorSlider.crow b/Samples/common/ui/Interfaces/Divers/colorSlider.crow
new file mode 100644
index 00000000..012fd2dd
--- /dev/null
+++ b/Samples/common/ui/Interfaces/Divers/colorSlider.crow
@@ -0,0 +1,75 @@
+<VerticalStack Margin="50" Spacing="20" Background="DimGrey">
+ <HorizontalStack Height="Fit" Width="400" Spacing="5" Margin="5" Background="Jet">
+ <Label Style="labColor" Text="G:"/>
+ <ColorSlider Name="cs" Component="Red" CurrentColor="Green" CursorType="Circle" ClipToClientRect="false" Background="Black" Margin="5" Height="20" />
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ <Container Width="100" Height="100" Background="Red" Margin="5">
+ <Widget Width="20" Height="20" Background="Blue" HorizontalAlignment="Left" VerticalAlignment="Top"/>
+ </Container>
+ </HorizontalStack>
+ <Label Text="{../slider1.Value}"/>
+ <Widget Width="380" Height="5" Background="Blue"/>
+ <Slider Name="slider1" Orientation="Horizontal" Width="400" Height="30" Background="Jet" Foreground="LightGrey" Margin="0" Inverted="false">
+ <Template>
+ <Container Background="{./Background}" CornerRadius="{./CornerRadius}" Margin="10">
+ <Widget Name="Cursor" Background="{./Foreground}" CornerRadius="{./CornerRadius}" />
+ </Container>
+ </Template>
+ </Slider>
+ <Slider Background="RoyalBlue" Height="50" Width="400" CursorSize="50" Inverted="{../../inverted.IsChecked}">
+ <Template>
+ <Group Background="DarkGrey" >
+ <ColorGauge Height="50%" Background="Onyx" Value="{./Value}" Maximum="{./Maximum}" Minimum="{Minimum}" Orientation="{./Orientation}"
+ Inverted="{./Inverted}"/>
+ <Container Name="Cursor" Background="White" >
+ <Label Text="{./Value}" Foreground="Black"/>
+ </Container>
+ </Group>
+ </Template>
+ </Slider>
+ <ColorPicker>
+ <Template>
+ <Border Background="{./Background}" Foreground="{./Foreground}" Width="Stretched"
+ CornerRadius="{./CornerRadius}" BorderWidth="1">
+ <VerticalStack Margin="2">
+ <Widget Width="30" Height="16" Background="{./CurrentColor}"/>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="R:"/>
+ <ColorSlider Name="cs" Component="Red" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="G:"/>
+ <ColorSlider Name="cs" Component="Green" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="B:"/>
+ <ColorSlider Name="cs" Component="Blue" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="A:"/>
+ <ColorSlider Name="cs" Component="Alpha" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="H:"/>
+ <ColorSlider Name="cs" Component="Hue" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="S:"/>
+ <ColorSlider Name="cs" Component="Saturation" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="V:"/>
+ <ColorSlider Name="cs" Component="Value" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ </VerticalStack>
+ </Border>
+ </Template>
+ </ColorPicker>
+</VerticalStack> \ No newline at end of file
diff --git a/Samples/common/ui/Interfaces/Divers/colorSlider2.crow b/Samples/common/ui/Interfaces/Divers/colorSlider2.crow
new file mode 100644
index 00000000..111ce06f
--- /dev/null
+++ b/Samples/common/ui/Interfaces/Divers/colorSlider2.crow
@@ -0,0 +1,78 @@
+<VerticalStack Margin="50" Spacing="20" Background="DimGrey">
+ <Label Text="{../slider1.Value}"/>
+ <Slider Background="Onyx" Height="30" Width="400" >
+ <Template>
+ <Group Background="{./Background}">
+ <ColorGauge Component="Red" Height="Stretched" Value="{./Value}" Maximum="{./Maximum}" Minimum="{Minimum}" Orientation="{./Orientation}" Margin="11"
+ Inverted="{./Inverted}"/>
+ <Border Name="Cursor" Foreground="White" CornerRadius="7" BorderWidth="2">
+ <Label Text="{./Value}" Foreground="WhiteSmoke"/>
+ </Border>
+ </Group>
+ </Template>
+ </Slider>
+ <Slider Background="Onyx" Height="30" Width="400" CursorSize="20" >
+ <Template>
+ <Group Background="{./Background}" ClipToClientRect="false">
+ <ColorGauge Component="Red" Height="Stretched" Value="{./Value}" Maximum="{./Maximum}" Minimum="{Minimum}" Orientation="{./Orientation}" Margin="10" ClipToClientRect="false"
+ Inverted="{./Inverted}"/>
+ <Shape Height="Stretched" Name="Cursor" Size="30,30" Path="M 0,30 L 15,0 L 30,30 Z G" StrokeWidth="1" ClipToClientRect="false" Scaled="false" />
+ </Group>
+ </Template>
+ </Slider>
+ <ColorPicker>
+ <Template>
+ <Border Background="{./Background}" Foreground="{./Foreground}" Width="Stretched"
+ CornerRadius="{./CornerRadius}" BorderWidth="1">
+ <VerticalStack Margin="2">
+ <Widget Width="50" Height="30" CornerRadius="10" Background="{./CurrentColor}"/>
+ <Slider Background="Onyx" Height="Fit" Width="Stretched" Foreground="{²./CurrentColor}" Maximum="255" Value="{².cg.Value}">
+ <Template>
+ <Group Background="{./Background}">
+ <ColorGauge Name="cg" Component="Red" Height="Stretched" Value="{²./Value}" Maximum="{./Maximum}" Minimum="{Minimum}" Orientation="{./Orientation}" Margin="0" CurrentColor="{²./Foreground}"/>
+ <Border Name="Cursor" Foreground="White" CornerRadius="7" BorderWidth="2">
+ <Label Text="{./Value}" Foreground="WhiteSmoke"/>
+ </Border>
+ </Group>
+ </Template>
+ </Slider>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="R:"/>
+ <ColorSlider Name="cs" Component="Red" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="G:"/>
+ <ColorSlider Name="cs" Component="Green" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="B:"/>
+ <ColorSlider Name="cs" Component="Blue" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="A:"/>
+ <ColorSlider Name="cs" Component="Alpha" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="H:"/>
+ <ColorSlider Name="cs" Component="Hue" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="S:"/>
+ <ColorSlider Name="cs" Component="Saturation" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="V:"/>
+ <ColorSlider Name="cs" Component="Value" CurrentColor="{²./CurrentColor}"/>
+ <Label Style="labColorV" Text="{../cs.CurrentValue}" />
+ </HorizontalStack>
+ </VerticalStack>
+ </Border>
+ </Template>
+ </ColorPicker>
+</VerticalStack> \ No newline at end of file
diff --git a/Samples/common/ui/Interfaces/Divers/colorSlider3.crow b/Samples/common/ui/Interfaces/Divers/colorSlider3.crow
new file mode 100644
index 00000000..4236b929
--- /dev/null
+++ b/Samples/common/ui/Interfaces/Divers/colorSlider3.crow
@@ -0,0 +1,47 @@
+<VerticalStack Margin="50" Spacing="20" Background="Black">
+ <ColorPicker>
+ <Template>
+<Border Background="{./Background}" Foreground="{./Foreground}" Width="Stretched"
+ CornerRadius="{./CornerRadius}" BorderWidth="1">
+ <VerticalStack Margin="2">
+ <Widget Width="30" Height="16" Background="{./CurrentColor}"/>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="R:"/>
+ <ColorSlider Name="cs" Component="Red" CurrentColor="{./CurrentColor}" Value="{²./Red}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="G:"/>
+ <ColorSlider Name="cs" Component="Green" CurrentColor="{./CurrentColor}" Value="{²./Green}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="B:"/>
+ <ColorSlider Name="cs" Component="Blue" CurrentColor="{./CurrentColor}" Value="{²./Blue}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="A:"/>
+ <ColorSlider Name="cs" Component="Alpha" CurrentColor="{./CurrentColor}" Value="{²./Alpha}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="H:"/>
+ <ColorSlider Name="cs" Component="Hue" CurrentColor="{./CurrentColor}" Value="{²./Hue}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="S:"/>
+ <ColorSlider Name="cs" Component="Saturation" CurrentColor="{./CurrentColor}" Value="{²./Saturation}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Style="labColor" Text="V:"/>
+ <ColorSlider Name="cs" Component="Value" CurrentColor="{./CurrentColor}" Value="{²./Value}"/>
+ <Label Style="labColorV" Text="{../cs.Value}" />
+ </HorizontalStack>
+ </VerticalStack>
+</Border>
+ </Template>
+ </ColorPicker>
+</VerticalStack> \ No newline at end of file
diff --git a/Samples/common/ui/Interfaces/Divers/colorSlider4.crow b/Samples/common/ui/Interfaces/Divers/colorSlider4.crow
new file mode 100644
index 00000000..95463636
--- /dev/null
+++ b/Samples/common/ui/Interfaces/Divers/colorSlider4.crow
@@ -0,0 +1,13 @@
+<ColorSlider Width="400" Component="Red" Background="Grey" Height="34" CursorSize="24" >
+<Template>
+ <Group Background="{./Background}" >
+ <ColorGauge Component="{./Component}" CurrentColor="{./CurrentColor}" Orientation="{./Orientation}" Margin="10" Height="Stretched" CornerRadius="10"/>
+ <Border Name="Cursor" Foreground="White" CornerRadius="15" BorderWidth="2">
+ <Group Fit="true">
+ <Label Left="2" Top="2" Text="{./Value}" Foreground="Black" Font="mono bold, 10"/>
+ <Label Text="{./Value}" Foreground="WhiteSmoke" Font="mono bold, 10"/>
+ </Group>
+ </Border>
+ </Group>
+</Template>
+</ColorSlider> \ No newline at end of file
diff --git a/Samples/common/ui/Interfaces/Divers/image.crow b/Samples/common/ui/Interfaces/Divers/image.crow
new file mode 100644
index 00000000..829507ac
--- /dev/null
+++ b/Samples/common/ui/Interfaces/Divers/image.crow
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<Image Path="#Crow.Icons.file.svg" Width="16" Height="16"/>
diff --git a/Samples/common/ui/Interfaces/Divers/observableList.crow b/Samples/common/ui/Interfaces/Divers/observableList.crow
index 9caa0b43..6d568820 100644
--- a/Samples/common/ui/Interfaces/Divers/observableList.crow
+++ b/Samples/common/ui/Interfaces/Divers/observableList.crow
@@ -4,8 +4,9 @@
<HorizontalStack Height="Fit">
<Button Command="{CMDObsListAdd}" />
<Button Command="{CMDObsListRemove}" IsEnabled="{../lb.SelectionIsEmpty}" />
+ <Button Command="{CMDObsListRemove2}"/>
</HorizontalStack>
- <ListBox Name="lb" Data="{ObservableTestList}" >
+ <ListBox Name="lb" Data="{ObservableTestList}" SelectedItem="{²ObservableTestListSelectedItem}" >
<Template>
<Border Style="ControlBorder" MinimumSize="10,10" Background="{./Background}" CornerRadius="{./CornerRadius}">
<Scroller Name="scroller1" >
diff --git a/Samples/common/ui/Interfaces/Divers/testShape.crow b/Samples/common/ui/Interfaces/Divers/testShape.crow
index 14af0f21..14df5bfc 100644
--- a/Samples/common/ui/Interfaces/Divers/testShape.crow
+++ b/Samples/common/ui/Interfaces/Divers/testShape.crow
@@ -1,5 +1,10 @@
<?xml version="1.0"?>
<VerticalStack>
- <TextBox Text="{²../shape.Path}"/>
- <Shape Margin="0" Width="400" Height="400" Name="shape" Foreground="Blue" Background="DimGrey" Size="100,100" Path="M 5.5,0.5 L 10.5,10.5 L 0.5,10.5 Z G"/>
+ <TextBox Text="{²../shape.Path}"/>
+ <Container Background="Navy" Height="100" Width="100">
+ <Shape Height="20" Width="10" Name="shape" Foreground="White" Size="11,11" Path="M 5.5,1.5 L 9.5,3.5 L 9.5,9.5 L 1.5,9.5 L 1.5,3.5 Z G" Scaled="true" KeepProportions="false" StrokeWidth="2"/>
+ </Container>
+ <Container Background="Navy" Height="100" Width="100">
+ <Shape Height="Fit" Width="Fit" Foreground="White" Size="11,11" Path="{²../../shape.Path}" Scaled="false" KeepProportions="false" StrokeWidth="2"/>
+ </Container>
</VerticalStack> \ No newline at end of file
diff --git a/Samples/common/ui/Interfaces/Divers/testSlider.crow b/Samples/common/ui/Interfaces/Divers/testSlider.crow
index d7050000..8b6e57af 100644
--- a/Samples/common/ui/Interfaces/Divers/testSlider.crow
+++ b/Samples/common/ui/Interfaces/Divers/testSlider.crow
@@ -1,6 +1,5 @@
<?xml version="1.0"?>
<HorizontalStack Margin="50">
- <CheckBox Name="inverted" Background="DarkSlateGrey" Caption="Inverted" Width="Fit" Foreground="Black"/>
<VerticalStack Spacing="10" Width="50%">
<Slider Background="DarkGrey" Height="20" Width="Stretched" Inverted="{../../inverted.IsChecked}"/>
@@ -31,6 +30,8 @@
<Slider ClipToClientRect='false' Background="DarkGrey" CursorSize="50" Height="12" CornerRadius="5" Inverted="{../../inverted.IsChecked}" />
<Slider ClipToClientRect='false' CacheEnabled='false' Background="Transparent" CursorSize="20" Height="12" Width="Stretched" Inverted="{../../inverted.IsChecked}" />
+
+ <CheckBox Name="inverted" Background="DarkSlateGrey" Caption="Inverted" Width="Fit" Foreground="Black"/>
</VerticalStack>
<HorizontalStack Spacing="10" >
diff --git a/Samples/common/ui/Interfaces/Experimental/table.crow b/Samples/common/ui/Interfaces/Experimental/table.crow
index 53222664..c1e8f483 100644
--- a/Samples/common/ui/Interfaces/Experimental/table.crow
+++ b/Samples/common/ui/Interfaces/Experimental/table.crow
@@ -1,11 +1,11 @@
<Table Columns="test,Fit;test,Fit;test,Stretched;test,Fit" Margin="10"
- ColumnSpacing="5" Spacing="5"
+ ColumnSpacing="15" Spacing="5" Height="Fit"
Foreground="Grey"
- RowsMargin="0"
- BorderLineWidth="0"
- VerticalLineWidth="1"
+ RowsMargin="5"
+ BorderLineWidth="1"
+ VerticalLineWidth="2"
HorizontalLineWidth="1"
- Background="DarkGrey" >
+ Background="Jet" >
<TableRow Height="Fit" >
<Label Text="firstlkjdqsfmlkjqsl" Background="1,0,0,0.5" HorizontalAlignment="Left" Height="Stretched"/>
<Label Text="second" Background="0,1,0,0.5" Height="Stretched"/>
diff --git a/Samples/common/ui/Interfaces/TemplatedControl/testScrollbar2.crow b/Samples/common/ui/Interfaces/TemplatedControl/testScrollbar2.crow
new file mode 100644
index 00000000..6a7a7c91
--- /dev/null
+++ b/Samples/common/ui/Interfaces/TemplatedControl/testScrollbar2.crow
@@ -0,0 +1,20 @@
+<HorizontalStack>
+ <Container Width="50%">
+ <Label Text="{../../sb.Value}" />
+ </Container>
+ <ScrollBar Name="sb" Maximum="200" CursorRatio="0.3" Width="16" LargeIncrement="20" SmallIncrement="1">
+ <Template>
+ <Border BorderWidth="1" Foreground="{./Foreground}" Background="{./Background}">
+ <GenericStack Orientation="{./Orientation}" Spacing="0">
+ <Shape Style="ArrowBut" MouseDown="./OnDecrease" Height="{./Width}" Margin="0"
+ Size="10,10" Path="M 4.5,0.5 L 9.5,9.5 L 0.5,9.5 Z F"/>
+ <Container Margin="1">
+ <Widget Style="ScrollBarCursor" Name="Cursor" CornerRadius="{./CornerRadius}"/>
+ </Container>
+ <Shape Style="ArrowBut" MouseDown="./OnIncrease" Height="{./Width}" Margin="0"
+ Size="10,10" Path="M 0.5,0.5 L 9.5,0.5 L 4.5,9.5 Z F"/>
+ </GenericStack>
+ </Border>
+ </Template>
+ </ScrollBar>
+</HorizontalStack> \ No newline at end of file