]> O.S.I.I.S - jp/crow.git/commitdiff
TreeView 15/head
authorjpbruyere <jp.bruyere@hotmail.com>
Fri, 5 Aug 2016 16:32:18 +0000 (18:32 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Fri, 5 Aug 2016 16:32:18 +0000 (18:32 +0200)
template access with './', update all templates
binding path begining with '/' starts at current level

27 files changed:
Crow.csproj
Images/Icons/file.svg [new file with mode: 0644]
Images/Icons/folder.svg [new file with mode: 0644]
Templates/ArrowButTemplate.crow
Templates/Button.crow
Templates/CheckBox.goml
Templates/Expandable.goml
Templates/GroupBox.goml
Templates/ListBox.goml
Templates/MessageBox.goml
Templates/Popper.goml
Templates/RadioButton.goml
Templates/ScrollBar.goml
Templates/ScrollingListBox.goml
Templates/Spinner.goml
Templates/TreeItem.crow [deleted file]
Templates/TreeView.crow
Templates/Window.goml
Tests/Interfaces/Unsorted/testTreeView.crow
src/CompilerServices/Bindings.cs
src/GraphicObjects/Expandable.cs
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/Label.cs
src/GraphicObjects/ListBox.cs
src/GraphicObjects/TemplatedControl.cs
src/GraphicObjects/TreeView.cs
src/Interface.cs

index 611ad9189ed5447652af1997b9c74086d737c660..3f6f6b2d2c9e71d50ea70b0fa8c74a76738dd333 100644 (file)
     <EmbeddedResource Include="Images\crow0.svg" />
     <EmbeddedResource Include="Templates\TreeView.crow" />
     <EmbeddedResource Include="Templates\TabItem.crow" />
-    <EmbeddedResource Include="Templates\TreeItem.crow" />
     <EmbeddedResource Include="Templates\Dummy.goml" />
     <EmbeddedResource Include="Images\Icons\crow.png" />
     <EmbeddedResource Include="Images\Icons\crow.svg" />
     <EmbeddedResource Include="Default.style" />
+    <EmbeddedResource Include="Images\Icons\folder.svg" />
+    <EmbeddedResource Include="Images\Icons\file.svg" />
   </ItemGroup>
   <ItemGroup>
     <None Include="README.md" />
diff --git a/Images/Icons/file.svg b/Images/Icons/file.svg
new file mode 100644 (file)
index 0000000..a31c367
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="128" height="128" id="svg2606" sodipodi:version="0.32" inkscape:version="0.48.0 r9654" version="1.0" sodipodi:docname="mime2.svgz" inkscape:output_extension="org.inkscape.output.svgz.inkscape" inkscape:export-filename="/home/pinheiro/pics/oxygen-icons/scalable/mimetypes/mime2.png" inkscape:export-xdpi="360" inkscape:export-ydpi="360">
+  <defs id="defs2608">
+    <linearGradient inkscape:collect="always" id="linearGradient3913">
+      <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop3915"/>
+      <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" id="stop3917"/>
+    </linearGradient>
+    <linearGradient id="linearGradient3897">
+      <stop style="stop-color:#fcfcfc;stop-opacity:1" offset="0" id="stop3899"/>
+      <stop id="stop3901" offset="0.52275378" style="stop-color:#f8f8f8;stop-opacity:1"/>
+      <stop style="stop-color:#f0efef;stop-opacity:1;" offset="0.72337759" id="stop3903"/>
+      <stop style="stop-color:#e3e1e1;stop-opacity:1;" offset="0.89024991" id="stop3905"/>
+      <stop style="stop-color:#cecbcb;stop-opacity:1" offset="1" id="stop3907"/>
+    </linearGradient>
+    <linearGradient id="linearGradient6131">
+      <stop id="stop6133" offset="0" style="stop-color:#fcfcfc;stop-opacity:1"/>
+      <stop style="stop-color:#f8f8f8;stop-opacity:1" offset="0.52275378" id="stop6135"/>
+      <stop id="stop6141" offset="0.77457333" style="stop-color:#f0efef;stop-opacity:1;"/>
+      <stop id="stop6139" offset="0.90122044" style="stop-color:#e3e1e1;stop-opacity:1;"/>
+      <stop id="stop6137" offset="1" style="stop-color:#cecbcb;stop-opacity:1"/>
+    </linearGradient>
+    <linearGradient inkscape:collect="always" id="linearGradient5982">
+      <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" id="stop5984"/>
+      <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" id="stop5986"/>
+    </linearGradient>
+    <linearGradient id="linearGradient4518">
+      <stop style="stop-color:#eeecec;stop-opacity:1" offset="0" id="stop4520"/>
+      <stop id="stop5969" offset="0.40000001" style="stop-color:#f4f4f4;stop-opacity:1"/>
+      <stop style="stop-color:#f6f5f5;stop-opacity:1" offset="1" id="stop4522"/>
+    </linearGradient>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient4518" id="linearGradient4524" x1="72" y1="0" x2="72" y2="116.40091" gradientUnits="userSpaceOnUse"/>
+    <radialGradient inkscape:collect="always" xlink:href="#linearGradient5982" id="radialGradient5988" cx="64" cy="64.004021" fx="63.793392" fy="47.274845" r="47.5" gradientTransform="matrix(1.6842105,-0.08429519,0.06886339,1.3758846,-48.197002,-18.663233)" gradientUnits="userSpaceOnUse"/>
+    <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6093">
+      <path inkscape:connector-curvature="0" sodipodi:nodetypes="cccssccc" id="path6095" d="M 17.000001,8 17,120 l 57.5,0 c 1.675283,0 3.914297,-0.56468 7,-3.6 8.870045,-8.72523 20.24047,-19.851805 27.49904,-27.175957 C 111.4396,86.761431 112,84.752873 112,82.5 L 112,8 z" style="fill:#ffffff;fill-opacity:1"/>
+    </clipPath>
+    <filter inkscape:collect="always" id="filter6118" x="-0.1126375" width="1.225275" y="-0.12064722" height="1.2412944">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="2.3860572" id="feGaussianBlur6120"/>
+    </filter>
+    <filter inkscape:collect="always" id="filter6171" x="-0.47870938" width="1.9574188" y="-0.51275067" height="2.0255013">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="10.140743" id="feGaussianBlur6173"/>
+    </filter>
+    <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3889">
+      <path sodipodi:nodetypes="cscscssc" inkscape:connector-curvature="0" id="path3891" d="m 112,82.502986 c 0,4.465301 -2.79749,6.409952 -5.27972,8.093625 -5.10854,3.46508 -14.939114,3.32536 -20.720284,3.40638 -0.081,5.781159 0.16586,15.504599 -3.29922,20.613139 -1.68367,2.48224 -5.29051,5.38687 -8.20078,5.38687 2.31803,0 4.74284,-1.33476 7.58402,-4.08481 9.14197,-8.84873 17.36714,-16.13535 25.673154,-25.297529 C 109.67612,88.503916 112,86.97878 112,82.502986 z" style="fill:url(#linearGradient3893);fill-opacity:1;stroke:none"/>
+    </clipPath>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient6131" id="linearGradient3893" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0119858,0,0,1.0119858,-0.89554075,-0.9871566)" x1="86.73793" y1="93.621468" x2="95.460213" y2="102.34375"/>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient3897" id="linearGradient3895" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0119858,0,0,1.0119858,-0.89554075,-0.9871566)" x1="86.73793" y1="93.621468" x2="95.18235" y2="102.06589"/>
+    <filter inkscape:collect="always" id="filter3909">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="0.43040059" id="feGaussianBlur3911"/>
+    </filter>
+    <radialGradient inkscape:collect="always" xlink:href="#linearGradient3913" id="radialGradient3919" cx="90.75" cy="110.25299" fx="90.75" fy="110.25299" r="18.750002" gradientTransform="matrix(1.3067347,0,0,1.3067347,-27.83617,-33.818441)" gradientUnits="userSpaceOnUse"/>
+    <filter inkscape:collect="always" id="filter3826">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="1.036" id="feGaussianBlur3828"/>
+    </filter>
+    <filter inkscape:collect="always" id="filter3834">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="1.50075" id="feGaussianBlur3836"/>
+    </filter>
+  </defs>
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2.8284271" inkscape:cx="36.031425" inkscape:cy="70.491779" inkscape:document-units="px" inkscape:current-layer="layer1" width="128px" height="128px" showgrid="false" inkscape:grid-points="true" showguides="true" inkscape:guide-bbox="true" inkscape:window-width="1487" inkscape:window-height="789" inkscape:window-x="317" inkscape:window-y="144" inkscape:snap-global="false" inkscape:window-maximized="0">
+    <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="2" visible="true" enabled="true" snapvisiblegridlinesonly="true"/>
+    <sodipodi:guide orientation="1,0" position="-68,29.325902" id="guide4564"/>
+    <sodipodi:guide orientation="1,0" position="-51.972348,130.81475" id="guide3859"/>
+  </sodipodi:namedview>
+  <metadata id="metadata2611">
+    <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/>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1">
+    <path style="opacity:0.26237623999999998;fill:#000000;fill-opacity:1;filter:url(#filter3834)" d="m 17,8.5 0,112 58.1875,0 c 2.115556,0 4.528919,-1.77169 7,-4.25 0.71234,-0.71442 1.440746,-1.39395 2.15625,-2.09375 0.415612,-0.40649 0.832187,-0.81443 1.25,-1.21875 7.773958,-7.40962 14.98341,-14.022603 22.21875,-22 0.42065,-0.420645 0.81207,-0.811101 1.15625,-1.1875 1.46444,-1.497657 2.76158,-2.837804 2.99375,-5.8625 L 112,83.15625 112,8.5 z" id="path5990" inkscape:connector-curvature="0" sodipodi:nodetypes="ccsssccccccc"/>
+    <path sodipodi:nodetypes="cccssccc" id="path3722" d="M 17.000001,8 17,120.2 l 57.746418,0 c 4.168166,0 7.728581,-4.85625 20.853582,-17.1 7.48636,-6.9837 10.43958,-10.889428 13.15009,-13.599933 C 110.49334,87.756815 112,86.462557 112,82.3 L 112,8 z" style="fill:#000000;fill-opacity:0.70053478000000002;filter:url(#filter3826)" inkscape:connector-curvature="0"/>
+    <path style="fill:#ffffff;fill-opacity:1" d="M 17.000001,8 17,120 l 57.5,0 c 1.675283,0 3.914297,-0.56468 7,-3.6 8.870045,-8.72523 20.24047,-19.851805 27.49904,-27.175957 C 111.4396,86.761431 112,84.752873 112,82.5 L 112,8 z" id="path34" sodipodi:nodetypes="cccssccc" inkscape:connector-curvature="0"/>
+    <path style="fill:url(#linearGradient4524);fill-opacity:1" d="M 18.5,9 C 18.160156,9 18,9.2346178 18,9.5 l 0,107.96875 c 0,0.82158 0.679323,1.5 1.5,1.5 l 53.6875,0 c 0.05307,0 0.810384,0.0234 1.5,0.0313 1.777664,-0.0401 3.131974,-0.75374 4.356035,-1.59328 1.051866,-0.29103 20.649835,-19.619593 29.770955,-28.809238 1.36239,-1.372621 2.18546,-3.948169 2.18546,-4.895612 L 111,9.5 C 111,9.1772826 110.83678,9 110.5,9 z" id="path3967" inkscape:connector-curvature="0" sodipodi:nodetypes="ccsssccscccc"/>
+    <path clip-path="url(#clipPath6093)" style="opacity:0.27722772;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter6171)" d="m 114.4,82.502986 c 0,4.465301 -4.99749,6.609952 -7.47972,8.293625 -5.10854,3.46508 -14.739114,3.52536 -20.520284,3.60638 -0.081,5.781159 -0.03414,15.304599 -3.49922,20.413139 -1.68367,2.48224 -5.79051,8.68687 -8.70078,8.68687 -2.091359,1.5337 3.488204,8.21101 6.734971,5.31989 9.501888,-8.46107 35.131683,-30.022704 43.350823,-39.262889 2.04044,-2.29392 -4.90514,-9.844666 -9.88579,-7.057015 z" id="path6153" inkscape:connector-curvature="0" sodipodi:nodetypes="cscscssc"/>
+    <path style="fill:#000000" d="" id="path2197"/>
+    <g style="display:none" id="Frame_copy" display="none" transform="translate(1042.0419,-279.83386)">
+      <g style="display:inline" display="inline" id="g3978">
+        <image style="opacity:0.75" width="571" height="571" xlink:href="data:image/png;base64,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" id="image3980"/>
+        <g id="g3982">
+          <circle sodipodi:ry="275.909" sodipodi:rx="275.909" sodipodi:cy="278.93399" sodipodi:cx="279.51501" cx="279.51501" cy="278.93399" r="275.909" id="circle3984" d="m 555.42401,278.93399 c 0,152.38033 -123.52866,275.909 -275.909,275.909 -152.38033,0 -275.9089919,-123.52867 -275.9089919,-275.909 0,-152.38033 123.5286619,-275.9089961 275.9089919,-275.9089961 152.38034,0 275.909,123.5286661 275.909,275.9089961 z"/>
+        </g>
+      </g>
+      <g style="display:inline" id="Frame_copy_1_" display="inline"/>
+    </g>
+    <g style="display:none" id="Frame_copy_2" display="none" transform="translate(1042.0419,-279.83386)">
+      <circle style="fill:#ffffff;display:inline" sodipodi:ry="275.909" sodipodi:rx="275.909" sodipodi:cy="278.93399" sodipodi:cx="279.51501" display="inline" cx="279.51501" cy="278.93399" r="275.909" id="circle3988" d="m 555.42401,278.93399 c 0,152.38033 -123.52866,275.909 -275.909,275.909 -152.38033,0 -275.9089919,-123.52867 -275.9089919,-275.909 0,-152.38033 123.5286619,-275.9089961 275.9089919,-275.9089961 152.38034,0 275.909,123.5286661 275.909,275.9089961 z"/>
+      <g style="display:inline" id="Frame_copy_2_1_" display="inline"/>
+    </g>
+    <g id="Foreground_Grid_1_" transform="matrix(0.333692,0,0,0.333692,-610.81394,-151.23635)"/>
+    <g id="layer4" inkscape:label="box" style="display:inline" transform="matrix(0.6433923,0,0,0.6433923,563.19164,120.38376)"/>
+    <g id="layer5" inkscape:label="zip_app" style="display:inline" transform="matrix(0.6433923,0,0,0.6433923,563.19164,120.38376)"/>
+    <rect style="opacity:0.57786889;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="rect1327" width="0.64339232" height="0" x="563.78369" y="130.76021"/>
+    <path sodipodi:nodetypes="ccssscccccc" inkscape:connector-curvature="0" id="path5980" d="M 18.5,9 C 18.160156,9 18,9.2346178 18,9.5 l 0,107.96875 c 0,0.82158 0.679323,1.49953 1.5,1.5 L 74,119 c 0.05307,3e-5 3.273884,-0.008 3.9635,5e-5 6.540972,-4.50361 22.6373,-21.953284 31.58253,-30.955094 1.47685,-1.656484 0.4576,-0.370067 1.45391,-1.607456 L 111,9.5 C 111,9.1772826 110.83678,9 110.5,9 z" style="opacity:0.84653476;fill:url(#radialGradient5988);fill-opacity:1"/>
+    <path sodipodi:nodetypes="cscscssc" inkscape:connector-curvature="0" id="path6081" d="m 113.9,82.502986 c 0,4.465301 -4.49749,6.609952 -6.97972,8.293625 -5.10854,3.46508 -14.739114,3.52536 -20.520284,3.60638 -0.081,5.781159 0.76586,15.304599 -2.69922,20.413139 -1.68367,2.48224 -5.79051,7.98687 -8.70078,7.98687 -2.091359,1.5337 3.488204,11.21101 6.734971,8.31989 9.501888,-8.46107 45.998943,-30.20138 54.218083,-39.441569 2.04044,-2.29392 -17.0724,-11.965986 -22.05305,-9.178335 z" style="opacity:0.40099009;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter6118)" clip-path="url(#clipPath6093)"/>
+    <path style="fill:url(#linearGradient3895);fill-opacity:1;stroke:none" d="m 112,82.502986 c 0,4.465301 -2.79749,6.409952 -5.27972,8.093625 -5.10854,3.46508 -14.939114,3.32536 -20.720284,3.40638 -0.081,5.781159 0.16586,15.504599 -3.29922,20.613139 -1.68367,2.48224 -5.29051,5.38687 -8.20078,5.38687 2.31803,0 4.74284,-1.33476 7.58402,-4.08481 9.14197,-8.84873 17.36714,-16.13535 25.673154,-25.297529 C 109.67612,88.503916 112,86.97878 112,82.502986 z" id="path6011" inkscape:connector-curvature="0" sodipodi:nodetypes="cscscssc"/>
+    <path style="fill:#ffffff;fill-opacity:1;stroke:none" d="m 112.01875,83.2125 c -0.31643,3.899106 -3.52291,5.902807 -5.85,7.48125 C 101.06021,94.15883 90.83117,93.01898 85.05,93.1 c -0.081,5.781159 0.85258,16.31646 -2.6125,21.425 -1.473211,2.17196 -4.099456,4.6601 -6.7625,5.25 1.980459,-0.3623 3.884931,-1.66139 6.26875,-3.96875 0.339117,-0.38853 0.574297,-0.67895 1.10625,-1.5 3.46508,-5.10854 2.8315,-14.51259 2.9125,-20.29375 5.78117,-0.08102 15.81021,0.25883 20.91875,-3.20625 0.46542,-0.315689 1.59399,-1.187744 2.00625,-1.6 1.53629,-1.536293 2.90171,-2.613421 3.13125,-5.99375 z M 75.675,119.775 c -0.157658,0.0349 -0.313437,0.0414 -0.46875,0.0625 0.156991,-0.0169 0.310443,-0.0335 0.46875,-0.0625 z" id="path6122" inkscape:connector-curvature="0" sodipodi:nodetypes="cscsccccsscccc"/>
+    <path style="fill:none;stroke:url(#radialGradient3919);stroke-width:1.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3909)" d="M 117.31456,81.861283 72.639105,125.34835" id="path3873" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" clip-path="url(#clipPath3889)"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/Images/Icons/folder.svg b/Images/Icons/folder.svg
new file mode 100644 (file)
index 0000000..beac8a1
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+       <!ENTITY ns_svg "http://www.w3.org/2000/svg">
+       <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" viewBox="0 0 128 128" style="overflow:visible;enable-background:new 0 0 128 128;" xml:space="preserve">
+<linearGradient id="XMLID_14_" gradientUnits="userSpaceOnUse" x1="53.9155" y1="91.1152" x2="55.8202" y2="110.6698">
+       <stop offset="0" style="stop-color:#999999"/>
+       <stop offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<path style="opacity:0.2;fill:url(#XMLID_14_);" d="M0,96.969C0,101.766,4.52,104,6.5,104h98.342  c3.922-0.238,4.158-3.357,4.158-7.104v0.109C109,93.197,0,96.969,0,96.969z"/>
+<linearGradient id="XMLID_15_" gradientUnits="userSpaceOnUse" x1="56.8511" y1="91.5078" x2="58.8261" y2="111.7843">
+       <stop offset="0" style="stop-color:#999999"/>
+       <stop offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<path style="opacity:0.2;fill:url(#XMLID_15_);" d="M0,97.969C0,102.078,3.266,105,6.5,105h101.553  c3.922-0.238,7.114-0.754,7.114-4.5L115,98.005C115,94.296,0,95.861,0,97.969z"/>
+<linearGradient id="XMLID_16_" gradientUnits="userSpaceOnUse" x1="57.9409" y1="89.6006" x2="60.2324" y2="113.1264">
+       <stop offset="0" style="stop-color:#999999"/>
+       <stop offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<path style="opacity:0.2;fill:url(#XMLID_16_);" d="M110.053,97.824L0,95.969v3C0,104.609,4.52,106,6.5,106h103.167  c1.729-0.104,3.551-0.264,5.05-0.729c1.903-0.591,3.283-1.675,3.283-3.771C118,101.5,116.206,97.824,110.053,97.824z"/>
+<linearGradient id="XMLID_17_" gradientUnits="userSpaceOnUse" x1="47.3115" y1="10.7583" x2="58.863" y2="110.2979">
+       <stop offset="0" style="stop-color:#999999"/>
+       <stop offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<path style="opacity:0.75;fill:url(#XMLID_17_);" d="M6.946,16.1C3.116,16.1,0,19.209,0,23.031v73.038C0,99.891,3.116,103,6.946,103  h93.108c3.83,0,6.945-3.109,6.945-6.931V32.097c0-3.822-3.115-6.931-6.945-6.931H62.729c-2.793,0-6.33-1.492-8.801-3.713  c0,0-1.035-0.928-1.035-0.928c-2.114-1.899-5.372-4.425-9.246-4.425H6.946z"/>
+<linearGradient id="XMLID_18_" gradientUnits="userSpaceOnUse" x1="35.979" y1="15.0229" x2="68.9291" y2="107.2834">
+       <stop offset="0" style="stop-color:#FFFFFF"/>
+       <stop offset="0.2191" style="stop-color:#F4F4F4"/>
+       <stop offset="0.6013" style="stop-color:#D8D8D8"/>
+       <stop offset="1" style="stop-color:#B3B3B3"/>
+</linearGradient>
+<path style="fill:url(#XMLID_18_);" d="M106,96.069c0,3.263-2.676,5.931-5.945,5.931H6.946C3.676,102,1,99.332,1,96.069V23.031  C1,19.769,3.676,17.1,6.946,17.1h36.701c3.271,0,6.149,1.987,8.578,4.169l1.034,0.928c2.429,2.182,6.2,3.969,9.47,3.969h37.326  c3.27,0,5.945,2.668,5.945,5.931V96.069z"/>
+<path style="fill:#FFFFFF;" d="M100.055,26.167H62.729c-3.27,0-7.041-1.787-9.47-3.969l-1.034-0.928  c-2.428-2.182-5.307-4.169-8.578-4.169H6.946C3.676,17.1,1,19.769,1,23.031v1C1,20.769,3.676,18.1,6.946,18.1h36.701  c3.271,0,6.149,1.987,8.578,4.169l1.034,0.928c2.429,2.182,6.2,3.969,9.47,3.969h37.326c3.27,0,5.945,2.668,5.945,5.931v-1  C106,28.835,103.324,26.167,100.055,26.167z"/>
+<linearGradient id="XMLID_19_" gradientUnits="userSpaceOnUse" x1="49.9219" y1="23.2446" x2="58.3703" y2="104.0195">
+       <stop offset="0" style="stop-color:#D9D9D9"/>
+       <stop offset="0.3749" style="stop-color:#CECECE"/>
+       <stop offset="1" style="stop-color:#B3B3B3"/>
+</linearGradient>
+<path style="fill:url(#XMLID_19_);" d="M3.344,99.816c0,0,0.984,0.168,1.615-0.284C5.625,99.054,6,97.695,6,95.896V54.132  c0-3.808,3.117-6.905,6.947-6.905h37.308c2.996,0,6.582-2.007,8.807-3.997l1.033-0.924c3.164-2.831,6.188-4.207,9.247-4.207H106  v-0.6H68.342c-3.059,0-6.083,1.376-9.247,4.207l-1.033,0.924c-2.225,1.989-5.811,3.997-8.807,3.997H11.947  C8.117,46.627,5,49.725,5,53.533v41.763c0.062,2.017-0.495,3.878-1.167,4.351C3.701,99.739,3.344,99.816,3.344,99.816z"/>
+<linearGradient id="XMLID_20_" gradientUnits="userSpaceOnUse" x1="54.9907" y1="39.2622" x2="63.2101" y2="110.0893">
+       <stop offset="0" style="stop-color:#999999"/>
+       <stop offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<path style="opacity:0.75;fill:url(#XMLID_20_);" d="M69.342,38.1c-3.059,0-6.083,1.376-9.247,4.207l-1.033,0.924  c-2.225,1.989-5.811,3.996-8.807,3.996H12.947C9.117,47.227,6,50.325,6,54.132v41.763c0,1.847-0.37,3.165-1.015,3.619  C4.607,99.78,3.94,99.97,3.171,99.78c-0.762-0.188-1.067-0.562-1.563-1.022c-0.241,0.421,0.332,2.104,0.705,2.414  c0.219,0.183,2.062,1.719,4.344,1.719L109.053,103c3.923-0.238,6.947-3.358,6.947-7.104V45.005c0-3.807-3.116-6.905-6.947-6.905  H69.342z"/>
+<radialGradient id="XMLID_21_" cx="79.6152" cy="116.7344" r="88.0417" gradientUnits="userSpaceOnUse">
+       <stop offset="0" style="stop-color:#FFDD70"/>
+       <stop offset="0.4225" style="stop-color:#FFAB43"/>
+       <stop offset="0.8022" style="stop-color:#FF841F"/>
+       <stop offset="1" style="stop-color:#FF7512"/>
+</radialGradient>
+<path style="fill:url(#XMLID_21_);" d="M7,95.896c0,3.417-1.516,5.839-4.047,4.558c0,0,1.859,1.547,3.547,1.547s102.553,0,102.553,0  c3.271-0.2,5.947-2.857,5.947-6.104V45.005c0-3.248-2.676-5.905-5.947-5.905H69.342c-3.271,0-6.151,1.779-8.58,3.952l-1.033,0.924  c-2.43,2.172-6.202,4.251-9.474,4.251H12.947C9.676,48.227,7,50.884,7,54.132V95.896z"/>
+<radialGradient id="XMLID_22_" cx="126.5" cy="130.1982" r="82.3742" gradientUnits="userSpaceOnUse">
+       <stop offset="0" style="stop-color:#F2D26A"/>
+       <stop offset="0.2621" style="stop-color:#F6B650"/>
+       <stop offset="0.7541" style="stop-color:#FC8723"/>
+       <stop offset="1" style="stop-color:#FF7512"/>
+</radialGradient>
+<path style="fill:url(#XMLID_22_);" d="M109.053,39.1H106V102c2.578,0,3.053,0,3.053,0c3.271-0.2,5.947-2.857,5.947-6.104V45.005  C115,41.757,112.324,39.1,109.053,39.1z"/>
+<linearGradient id="XMLID_23_" gradientUnits="userSpaceOnUse" x1="132.5059" y1="35.3008" x2="40.7597" y2="115.4526">
+       <stop offset="0" style="stop-color:#FFDD70"/>
+       <stop offset="0.3826" style="stop-color:#FFB047"/>
+       <stop offset="0.791" style="stop-color:#FF8521"/>
+       <stop offset="1" style="stop-color:#FF7512"/>
+</linearGradient>
+<path style="fill:url(#XMLID_23_);" d="M109.053,100c0,0-100.947-0.52-102.553,0c-0.324,0.104-0.608,0.189-0.866,0.26  c-0.623,0.479-1.739,0.85-2.638,0.19C3.479,100.83,5.083,102,6.5,102c1.688,0,102.553,0,102.553,0  c3.271-0.2,5.947-2.857,5.947-6.104v-1C115,98.143,112.324,99.8,109.053,100z"/>
+<radialGradient id="XMLID_24_" cx="87.5469" cy="108.1338" r="112.4545" gradientUnits="userSpaceOnUse">
+       <stop offset="0" style="stop-color:#FFF3CC"/>
+       <stop offset="0.1912" style="stop-color:#FFDBAA"/>
+       <stop offset="0.5738" style="stop-color:#FFB06C"/>
+       <stop offset="0.854" style="stop-color:#FF9445"/>
+       <stop offset="1" style="stop-color:#FF8A36"/>
+</radialGradient>
+<path style="fill:url(#XMLID_24_);" d="M58.636,69.891C86.75,66.5,115,65.75,115,65.75V45.005c0-3.248-2.676-5.905-5.947-5.905  H69.342c-3.271,0-6.151,1.779-8.58,3.952l-1.033,0.924c-2.43,2.172-6.202,4.251-9.474,4.251H12.947C9.676,48.227,7,50.884,7,54.132  V84.75C7,84.75,30.521,73.281,58.636,69.891z"/>
+<linearGradient id="XMLID_25_" gradientUnits="userSpaceOnUse" x1="59.6372" y1="28.6401" x2="65.5115" y2="120.5861">
+       <stop offset="0" style="stop-color:#EBDBA6"/>
+       <stop offset="1" style="stop-color:#FF7512"/>
+</linearGradient>
+<path style="fill:url(#XMLID_25_);" d="M109.053,39.1H69.342c-3.271,0-6.151,1.779-8.58,3.952l-1.033,0.924  c-2.43,2.172-6.202,4.251-9.474,4.251H12.947C9.676,48.227,7,50.884,7,54.132v1c0-3.248,2.676-5.905,5.947-5.905h37.308  c3.271,0,7.044-2.079,9.474-4.251l1.033-0.924c2.429-2.173,5.309-3.952,8.58-3.952h39.711c3.271,0,5.947,2.657,5.947,5.905v-1  C115,41.757,112.324,39.1,109.053,39.1z"/>
+<linearGradient id="XMLID_26_" gradientUnits="userSpaceOnUse" x1="103.9541" y1="11.4053" x2="108.0303" y2="106.0095">
+       <stop offset="0" style="stop-color:#999999"/>
+       <stop offset="1" style="stop-color:#4D4D4D"/>
+</linearGradient>
+<rect x="106" y="39" style="opacity:0.15;fill:url(#XMLID_26_);" width="1" height="63"/>
+<path style="fill:#F3AF61;" d="M42,24c0,1.1-0.9,2-2,2H9c-1.1,0-2-0.9-2-2v-2c0-1.1,0.9-2,2-2h31c1.1,0,2,0.9,2,2V24z"/>
+<path style="fill:#CCCCCC;" d="M8.5,42C7.672,42,7,42.672,7,43.5S7.672,45,8.5,45s1.5-0.672,1.5-1.5S9.328,42,8.5,42z M17.5,42  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S18.328,42,17.5,42z M26.5,42c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S27.328,42,26.5,42z M35.5,42c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S36.328,42,35.5,42z M44.5,42c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S45.328,42,44.5,42z M53.5,42  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S54.328,42,53.5,42z"/>
+<path style="opacity:0.07;fill:#802600;" d="M8.5,51C7.672,51,7,51.672,7,52.5S7.672,54,8.5,54s1.5-0.672,1.5-1.5S9.328,51,8.5,51z   M17.5,51c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S18.328,51,17.5,51z M26.5,51c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S27.328,51,26.5,51z M35.5,51c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S36.328,51,35.5,51z M44.5,51c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S45.328,51,44.5,51z M53.5,51  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S54.328,51,53.5,51z M62.5,51c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S63.328,51,62.5,51z M71.5,51c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S72.328,51,71.5,51z M80.5,51c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S81.328,51,80.5,51z M89.5,51  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S90.328,51,89.5,51z M98.5,51c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S99.328,51,98.5,51z M62.5,42c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S63.328,42,62.5,42z M71.5,42c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S72.328,42,71.5,42z M80.5,42  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S81.328,42,80.5,42z M89.5,42c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S90.328,42,89.5,42z M98.5,45c0.828,0,1.5-0.672,1.5-1.5S99.328,42,98.5,42S97,42.672,97,43.5  S97.672,45,98.5,45z M8.5,60C7.672,60,7,60.672,7,61.5S7.672,63,8.5,63s1.5-0.672,1.5-1.5S9.328,60,8.5,60z M17.5,60  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S18.328,60,17.5,60z M26.5,60c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S27.328,60,26.5,60z M35.5,60c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S36.328,60,35.5,60z M44.5,60c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S45.328,60,44.5,60z M53.5,60  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S54.328,60,53.5,60z M62.5,60c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S63.328,60,62.5,60z M71.5,60c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S72.328,60,71.5,60z M80.5,60c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S81.328,60,80.5,60z M89.5,60  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S90.328,60,89.5,60z M98.5,60c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S99.328,60,98.5,60z M8.5,69C7.672,69,7,69.672,7,70.5S7.672,72,8.5,72s1.5-0.672,1.5-1.5  S9.328,69,8.5,69z M17.5,69c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S18.328,69,17.5,69z M26.5,69  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S27.328,69,26.5,69z M35.5,69c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S36.328,69,35.5,69z M44.5,69c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S45.328,69,44.5,69z M53.5,69c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S54.328,69,53.5,69z M62.5,69  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S63.328,69,62.5,69z M71.5,69c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S72.328,69,71.5,69z M80.5,69c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S81.328,69,80.5,69z M89.5,69c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S90.328,69,89.5,69z M98.5,69  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S99.328,69,98.5,69z M8.5,78C7.672,78,7,78.672,7,79.5  S7.672,81,8.5,81s1.5-0.672,1.5-1.5S9.328,78,8.5,78z M17.5,78c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S18.328,78,17.5,78z M26.5,78c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S27.328,78,26.5,78z M35.5,78  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S36.328,78,35.5,78z M44.5,78c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S45.328,78,44.5,78z M53.5,78c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S54.328,78,53.5,78z M62.5,78c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S63.328,78,62.5,78z M71.5,78  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S72.328,78,71.5,78z M80.5,78c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S81.328,78,80.5,78z M89.5,78c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S90.328,78,89.5,78z M98.5,78c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S99.328,78,98.5,78z M8.5,87  C7.672,87,7,87.672,7,88.5S7.672,90,8.5,90s1.5-0.672,1.5-1.5S9.328,87,8.5,87z M17.5,87c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S18.328,87,17.5,87z M26.5,87c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S27.328,87,26.5,87z M35.5,87c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S36.328,87,35.5,87z M44.5,87  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S45.328,87,44.5,87z M53.5,87c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S54.328,87,53.5,87z M62.5,87c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S63.328,87,62.5,87z M71.5,87c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S72.328,87,71.5,87z M80.5,87  c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S81.328,87,80.5,87z M89.5,87c-0.828,0-1.5,0.672-1.5,1.5  s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S90.328,87,89.5,87z M98.5,87c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5  S99.328,87,98.5,87z"/>
+</svg>
\ No newline at end of file
index fe0e122c7bb5d5dd3aad82f11533a2043b0d698c..817c00d19fafa5afb03680f977126d7c2eec8b36 100755 (executable)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <Border Name="Content"
        Background="vgradient|0:White|0.1:LightGray|0.9:LightGray|1:Black" Foreground="DarkGray" 
-       Height="{../HeightPolicy}" Width="{../WidthPolicy}"
+       Height="{./HeightPolicy}" Width="{./WidthPolicy}"
        MouseEnter="{Foreground=White}"
        MouseLeave="{Foreground=DarkGray}"
        MouseDown="{Background=vgradient|0:Black|0.1:LightGray|0.9:LightGray|1:White}"
index 8919f7dccf9106424c5c145963d2099e13583178..f7c376c789da975c5d27092cfac6f6df71ea7711 100755 (executable)
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
-<Border Background="{../Background}" MinimumSize="50,20" Height="{../HeightPolicy}" Width="{../WidthPolicy}"
+<Border Background="{./Background}" MinimumSize="50,20" Height="{./HeightPolicy}" Width="{./WidthPolicy}"
                Foreground="Transparent" CornerRadius="{../CornerRadius}" BorderWidth="1" 
        MouseEnter="{Foreground=vgradient|0:White|0.2:Gray|0.9:Gray|1:Black;caption.Foreground=White}"
        MouseLeave="{Foreground=Transparent;caption.Foreground=LightGray}"
        MouseDown="{Foreground=vgradient|0:Black|0.05:Gray|0.85:Gray|1:White}"
        MouseUp="{Foreground=vgradient|0:White|0.2:Gray|0.9:Gray|1:Black}"                  
        >
-<!--   <Image Height="0" Width="0" Margin="0" Path="{../../Image}" SvgSub="{../../SvgSub}"/>-->
-       <Label Font="{../../Font}" Name="caption" Margin="5" Foreground="LightGray" Text="{../../Caption}"/>
+<!--   <Image Height="0" Width="0" Margin="0" Path="{./Image}" SvgSub="{./SvgSub}"/>-->
+       <Label Font="{./Font}" Name="caption" Margin="5" Foreground="LightGray" Text="{./Caption}"/>
 </Border>
\ No newline at end of file
index ea566d0e01a7b1e61c45dcedeca2f9793b50293d..818e10c1ef7ffef49dd950f4bc2ddc216802c3e8 100755 (executable)
@@ -1,6 +1,6 @@
 ï»¿<?xml version="1.0"?>
-<HorizontalStack Margin="1" Spacing="1" Height="{../HeightPolicy}" Width="{../WidthPolicy}">
+<HorizontalStack Background="{./Background}" Margin="1" Spacing="1" Height="{./HeightPolicy}" Width="{./WidthPolicy}">
        <Image Margin="2" Width="14"  Height="14" Path="#Crow.Images.Icons.checkbox.svg"
-               SvgSub="{../../IsChecked}"/>
-       <Label Font="{../../Font}" Text="{../../Caption}" Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"/>
+               SvgSub="{./IsChecked}"/>
+       <Label Font="{./Font}" Text="{./Caption}" Height="{./HeightPolicy}" Width="{./WidthPolicy}"/>
 </HorizontalStack>
\ No newline at end of file
index 0174aa6da8247e66e24cece96bacb827965ac462..b544fd07f4c3a0673ee319b80e7b5102f16b7d58 100755 (executable)
@@ -1,15 +1,15 @@
 ï»¿<?xml version="1.0"?>
-<Border BorderWidth="1" Foreground="LightGray" Height="{../HeightPolicy}" Width="{../WidthPolicy}" 
-               MouseClick="../onMouseClick">
-       <VerticalStack Height="{../../HeightPolicy}" Width="{../../WidthPolicy}">
-               <HorizontalStack Spacing="1" Height="-1" Width="{../../../WidthPolicy}">
+<Border BorderWidth="1" Foreground="{./Foreground}" Background="{./Background}"
+               Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+       <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+               <HorizontalStack Spacing="1" Height="-1" Width="{./WidthPolicy}">
                        <Image Margin="2" Width="12" Height="12"
-                               Visible="{../../../../HasContent}"
-                               Path="{../../../../Image}" 
-                               SvgSub="{../../../../IsExpanded}"/>
-                       <Label Text="{../../../../Caption}" Width="{../../../../WidthPolicy}"/>
+                               Visible="{./HasContent}"
+                               Path="{./Image}" 
+                               SvgSub="{./IsExpanded}"/>
+                       <Label Text="{./Caption}" Width="{./WidthPolicy}"/>
                </HorizontalStack>
                <Container Name="Content" Visible="false"
-                       Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}"/>
+                       Height="{./HeightPolicy}" Width="{./WidthPolicy}"/>
        </VerticalStack>
 </Border>
\ No newline at end of file
index d3a16613450e6653efe699e711bf70d7c3053c16..a373a29c2e958751e8f6495eb03f56b60cda3d25 100755 (executable)
@@ -1,10 +1,12 @@
 <?xml version="1.0"?>
-<Group Height="{../HeightPolicy}" Width="{../WidthPolicy}">
-       <Border CornerRadius="5" BorderWidth="1" Margin="6" Foreground="{../../Foreground}"
-               Height="{../../HeightPolicy}" Width="{../../WidthPolicy}">
-               <Container Name="Content" Margin="10" MinimumSize="70,10"
-                               Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}"/>
-       </Border>
-       <Label Text="{../../Caption}" VerticalAlignment="Top" Left="15"
-               Background="Clear" Margin="1"/>
-</Group>
\ No newline at end of file
+<Container Background="{./Background}" Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+       <Group Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+               <Border CornerRadius="5" BorderWidth="1" Margin="6" Foreground="{./Foreground}"
+                       Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+                       <Container Name="Content" Margin="10" MinimumSize="70,10"
+                                       Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}"/>
+               </Border>
+               <Label Text="{./Caption}" VerticalAlignment="Top" Left="15"
+                       Background="Clear" Margin="1"/>
+       </Group>
+</Container>
\ No newline at end of file
index 7ea306a9ced0ea3fb0dd55a0c53f4077d02d7f12..c56ec0d05ae0a3b8894dc72bf0248a3d8e7d6f89 100755 (executable)
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
-<Border BorderWidth="1" Margin="1" MinimumSize="10,10" Height="{../HeightPolicy}" Width="{../WidthPolicy}" >
+<Border BorderWidth="1" Margin="1" MinimumSize="10,10" Height="{./HeightPolicy}" Width="{./WidthPolicy}" >
        <Scroller  Name="scroller1" Margin="1" VerticalScrolling="true"
-               Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"
-               ValueChanged="../../_scroller_ValueChanged">
-               <VerticalStack LayoutChanged="../../../_list_LayoutChanged"
-                       Height="Fit" Width="{../../../WidthPolicy}" Name="List" Margin="0" VerticalAlignment="Top"/>
+               Height="{./HeightPolicy}" Width="{./WidthPolicy}"
+               ValueChanged="./_scroller_ValueChanged">
+               <VerticalStack LayoutChanged="./_list_LayoutChanged"
+                       Height="Fit" Width="{./WidthPolicy}" Name="List" Margin="0" VerticalAlignment="Top"/>
        </Scroller>
 </Border>
\ No newline at end of file
index dd63a10b76bc55e32ad9c1bacefcb74255334172..4489ee6b2df7d5800304c4b6910c213b14cc5160 100644 (file)
@@ -1,33 +1,33 @@
 <?xml version="1.0"?>
-<Border Height="{../HeightPolicy}" Width="{../WidthPolicy}" BorderWidth="1" Foreground="White" CornerRadius="10"
-                               MouseEnter="../onBorderMouseEnter"
-                               MouseLeave="../onBorderMouseLeave">
-       <VerticalStack Height="{../../HeightPolicy}" Width="{../../WidthPolicy}" Background="0.4,0.4,0.4,0.4">
-               <Border BorderWidth="1" Foreground="White" Width="{../../../WidthPolicy}" Height="-1" 
+<Border Height="{./HeightPolicy}" Width="{./WidthPolicy}" BorderWidth="1" Foreground="White" CornerRadius="10"
+                               MouseEnter="./onBorderMouseEnter"
+                               MouseLeave="./onBorderMouseLeave">
+       <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}" Background="0.4,0.4,0.4,0.4">
+               <Border BorderWidth="1" Foreground="White" Width="{./WidthPolicy}" Height="-1" 
                                Background="0.1,0.5,1,0,0.5">
-                       <HorizontalStack Name="hs" Margin="1" Spacing="1" Width="{../../../../WidthPolicy}" Height="-1" >
+                       <HorizontalStack Name="hs" Margin="1" Spacing="1" Width="{./WidthPolicy}" Height="Fit" >
                                <GraphicObject Width="5" Height="5"/>
-                               <Image Margin="1" Width="12" Height="12" Path="{../../../../../Icon}"/>
-                               <Label Foreground="White" Width="{../../../../../WidthPolicy}" Margin="1" TextAlignment="Center" Text="{../../../../../Title}" />
+                               <Image Margin="1" Width="12" Height="12" Path="{./Icon}"/>
+                               <Label Foreground="White" Width="{./WidthPolicy}" Margin="1" TextAlignment="Center" Text="{./Title}" />
                                <Border CornerRadius="6" BorderWidth="1" Foreground="Transparent"  Height="12" Width="12"
                                        MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
                                        <Image Focusable="true" Name="Image" Margin="0" Width="0" Height="0" Path="#Crow.Images.Icons.exit2.svg"
-                                                MouseClick="../../../../../../butQuitPress"/>
+                                                MouseClick="./butQuitPress"/>
                                </Border>
                                <GraphicObject Width="5" Height="5"/>
                        </HorizontalStack>
                </Border>
-               <HorizontalStack Spacing="3" Margin="3" Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}">
+               <HorizontalStack Spacing="3" Margin="3" Height="{./HeightPolicy}" Width="{./WidthPolicy}">
                        <Image Name="Image" Width="24" Height="24"
                                Path="#Crow.Images.Icons.iconInfo.svg" />
-                       <Label Font="serif, 12" Height="{../../../../HeightPolicy}" Width="{../../../../WidthPolicy}" Text="{../../../../Message}"
+                       <Label Font="serif, 12" Height="{./HeightPolicy}" Width="{./WidthPolicy}" Text="{./Message}"
                                TextAlignment="Left"
                                Multiline="true" WordWrap="true"/>              
                </HorizontalStack>
-               <HorizontalStack Height="-1" Width="{../../../WidthPolicy}" Margin="3">
+               <HorizontalStack Height="-1" Width="{./WidthPolicy}" Margin="3">
                        <GraphicObject Height="5"/>
-                       <Button Caption="Ok" MouseClick="../../../../onOkButtonClick" Background="Gray"/>
-                       <Button Caption="Cancel" MouseClick="../../../../onCancelButtonClick" Background="Gray"/>
+                       <Button Caption="Ok" MouseClick="./onOkButtonClick" Background="Gray"/>
+                       <Button Caption="Cancel" MouseClick="./onCancelButtonClick" Background="Gray"/>
                </HorizontalStack>
        </VerticalStack>
 </Border>
index 52a4f9e173d8bf2148a26fa71d9593abafec4f00..731646f1213b88396b0a2410f6cd74c1d774a24e 100755 (executable)
@@ -1,7 +1,7 @@
 ï»¿<?xml version="1.0"?>
-<Border BorderWidth="1" Foreground="LightGray" Height="-1" Width="{../WidthPolicy}">
-       <HorizontalStack Spacing="1" Height="-1"  Width="{../../WidthPolicy}">
-               <Image Margin="2" Width="12" Height="12" Path="{../../../Image}" SvgSub="{../../../IsPopped}"/>
-               <Label Text="{../../../Caption}"  Width="{../../../WidthPolicy}"/>
+<Border Background="{./Background}" BorderWidth="1" Foreground="{./Foreground}" Height="Fit" Width="{./WidthPolicy}">
+       <HorizontalStack Spacing="1" Height="-1"  Width="{./WidthPolicy}">
+               <Image Margin="2" Width="12" Height="12" Path="{./Image}" SvgSub="{./IsPopped}"/>
+               <Label Text="{./Caption}"  Width="{./WidthPolicy}"/>
        </HorizontalStack>
 </Border>
\ No newline at end of file
index 98f19c7de1a42a9490a218437bed236195adae78..d8a7babccc2d814ed08c8e785b5bee75d0c53eb9 100755 (executable)
@@ -1,6 +1,6 @@
 ï»¿<?xml version="1.0"?>
-<HorizontalStack Spacing="1" Height="{../HeightPolicy}" Width="{../WidthPolicy}">
+<HorizontalStack Background="{./Background}" Spacing="1" Height="{./HeightPolicy}" Width="{./WidthPolicy}">
        <Image Margin="2" Width="14" Height="14" Path="#Crow.Images.Icons.radiobutton.svg"
-               SvgSub="{../../IsChecked}"/>
-       <Label Text="{../../Caption}" Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"/>
+               SvgSub="{./IsChecked}"/>
+       <Label Text="{./Caption}" Height="{./HeightPolicy}" Width="{./WidthPolicy}"/>
 </HorizontalStack>
\ No newline at end of file
index 1310443d4f6d50a4a1766b22b05a82b53edd70d8..4164c30d11952173b16f2c17a1487a74d8d79f20 100755 (executable)
@@ -1,21 +1,21 @@
 <?xml version="1.0"?>
-<Border BorderWidth="1" Foreground="LightGray" Width="{../WidthPolicy}" Height="{../HeightPolicy}">
-       <GenericStack Orientation="{../../Orientation}" Spacing="0"
-               Width="{../../WidthPolicy}" Height="{../../HeightPolicy}">
-               <Button MouseRepeat="true" Width="12" Height="12" MouseClick="../../../onScrollBack"
+<Border BorderWidth="1" Foreground="LightGray" Width="{./WidthPolicy}" Height="{./HeightPolicy}">
+       <GenericStack Orientation="{./Orientation}" Spacing="0"
+               Width="{./WidthPolicy}" Height="{./HeightPolicy}">
+               <Button MouseRepeat="true" Width="12" Height="12" MouseClick="./onScrollBack"
                        Template="#Crow.Templates.ArrowButTemplate.crow">
                        <Image Margin="1" Path="#Crow.Images.Icons.updown.svg" SvgSub="up"/>
                </Button>
                <Slider Name="Slider"
-                       Orientation="{../../../Orientation}"
-                       Value="{../../../Value}"
-                       Maximum="{../../../Maximum}"
-                       LargeIncrement="{../../../LargeIncrement}"
-                       SmallIncrement="{../../../SmallIncrement}"
+                       Orientation="{./Orientation}"
+                       Value="{./Value}"
+                       Maximum="{./Maximum}"
+                       LargeIncrement="{./LargeIncrement}"
+                       SmallIncrement="{./SmallIncrement}"
                        Background="hgradient|0:DimGray|0.1:Gray|0.95:Gray|1:White"
-                       Width="{../../../WidthPolicy}" Height="{../../../HeightPolicy}"
-                       ValueChanged="../../../onSliderValueChange"/>
-               <Button MouseRepeat="true" Width="12" Height="12" MouseClick="../../../onScrollForth"
+                       Width="{./WidthPolicy}" Height="{./HeightPolicy}"
+                       ValueChanged="./onSliderValueChange"/>
+               <Button MouseRepeat="true" Width="12" Height="12" MouseClick="./onScrollForth"
                        Template="#Crow.Templates.ArrowButTemplate.crow">
                        <Image Margin="1" Path="#Crow.Images.Icons.updown.svg" SvgSub="down"/>
                </Button>
index 5d9a572d59db31cf8a9122448d475617911b4b03..0822da7cafee387785c68f68f526752dd326072a 100644 (file)
@@ -1,15 +1,15 @@
 <?xml version="1.0"?>
-<Border BorderWidth="1" Height="{../HeightPolicy}" Width="{../WidthPolicy}">
-       <HorizontalStack Margin="1" Height="{../../HeightPolicy}" Width="{../../WidthPolicy}" >
-               <Scroller Name="scroller1" Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}" 
+<Border BorderWidth="1" Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+       <HorizontalStack Margin="1" Height="{./HeightPolicy}" Width="{./WidthPolicy}" >
+               <Scroller Name="scroller1" Height="{./HeightPolicy}" Width="{./WidthPolicy}" 
                                Margin="2" VerticalScrolling="true" ScrollY="{../scrollbar1.Value}"
-                               ValueChanged="../../../_scroller_ValueChanged">
-                       <VerticalStack Width="{../../../../WidthPolicy}" Height="-1" MinimumSize="10,10"
+                               ValueChanged="./_scroller_ValueChanged">
+                       <VerticalStack Width="{./WidthPolicy}" Height="-1" MinimumSize="10,10"
                                Name="List" Margin="0" VerticalAlignment="Top"
-                               LayoutChanged="../../../../_list_LayoutChanged"/>
+                               LayoutChanged="./_list_LayoutChanged"/>
                </Scroller>
                <ScrollBar Name="scrollbar1" Value="{../scroller1.ScrollY}" 
                        Maximum="{../scroller1.MaximumScroll}" Orientation="Vertical" 
-                       Width="14" Height="{../../../HeightPolicy}" />
+                       Width="14" Height="{./HeightPolicy}" />
        </HorizontalStack>
 </Border>
\ No newline at end of file
index 0669b22880374e456573eaecf3ad42651d3e709e..b63a7d26167ad7352ef65553e7b69a58884e9fad 100755 (executable)
@@ -1,16 +1,17 @@
 <?xml version="1.0"?>
-<HorizontalStack MinimumSize="40,10" Name="hstack" Margin="0" Spacing="0" Height="{../HeightPolicy}" Width="{../WidthPolicy}">
-       <Border BorderWidth="1" Height="{../../HeightPolicy}" Width="80%"  Background="White" 
+<HorizontalStack MinimumSize="40,10" Name="hstack" Margin="0" Spacing="0"
+               Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+       <Border BorderWidth="1" Height="{./HeightPolicy}" Width="80%"  Background="White" 
                Foreground="DimGray" Margin="0">
-               <Label Foreground="DimGray" Height="{../../../HeightPolicy}" Width="Stretched"
-                       Text="{../../../Value}" TextAlignment="Right" Margin="0"/>
+               <Label Foreground="DimGray" Height="{./HeightPolicy}" Width="Stretched"
+                       Text="{./Value}" TextAlignment="Right" Margin="0"/>
        </Border>
        <VerticalStack MinimumSize="8;10" Width="20%" Height="Stretched" Spacing="0" Margin="0" Background="Red">
-               <Button MouseRepeat="true" Width="Stretched" Height="50%" Margin="0" MouseClick="../../../onUp"
+               <Button MouseRepeat="true" Width="Stretched" Height="50%" Margin="0" MouseClick="./onUp"
                        Template="#Crow.Templates.ArrowButTemplate.crow">
                        <Image Path="#Crow.Images.Icons.updown.svg" SvgSub="up" Margin="0"/>
                </Button>                               
-               <Button MouseRepeat="true" Width="Stretched" Height="50%" Margin="0" MouseClick="../../../onDown" 
+               <Button MouseRepeat="true" Width="Stretched" Height="50%" Margin="0" MouseClick="./onDown" 
                        Template="#Crow.Templates.ArrowButTemplate.crow">
                        <Image Path="#Crow.Images.Icons.updown.svg" SvgSub="down" Margin="0"/>
                </Button>
diff --git a/Templates/TreeItem.crow b/Templates/TreeItem.crow
deleted file mode 100644 (file)
index 9762009..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>\r
-<!--<Container Fit="true" Margin="0" Focusable="true" Background="Gray"\r
-               MouseEnter="{Background=SteelBlue}"\r
-               MouseLeave="{Background=Gray}">\r
-       <Label Text="{}"/>\r
-</Container>-->\r
-<Expandable Caption="{}">\r
-       <Template>\r
-               <Border BorderWidth="1" Foreground="LightGray" Height="{../HeightPolicy}" Width="{../WidthPolicy}" \r
-                       MouseClick="../onMouseClick">\r
-                       <VerticalStack Height="{../../HeightPolicy}" Width="{../../WidthPolicy}">\r
-                               <HorizontalStack Spacing="1" Height="Fit" Width="{../../../WidthPolicy}">
-                                       <Image Margin="2" Width="12" Height="12" Path="{../../../../Image}" SvgSub="{../../../../SvgSub}"/>\r
-                                       <Label Text="{../../../../Caption}" Width="{../../../../WidthPolicy}"/>\r
-                               </HorizontalStack>\r
-                               <Container Name="Content" Visible="false" Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}"/>\r
-                       </VerticalStack>\r
-               </Border>\r
-       </Template>\r
-</Expandable>\r
-<!--           <VerticalStack\r
-                       Height="{../HeightPolicy}" Width="{../WidthPolicy}"\r
-                       MouseClick="../onMouseClick">\r
-                       <HorizontalStack Spacing="1" Height="Fit" Width="{../../WidthPolicy}">
-                               <Image Margin="2" Width="12" Height="12" Path="{../../../Image}" SvgSub="{../../../SvgSub}"/>\r
-                               <Label Text="{../../../Caption}" Width="{../../../WidthPolicy}"/>\r
-                       </HorizontalStack>\r
-                       <ListBox Name="Content" Visible="false"\r
-                               Height="Fit" Width="{../../WidthPolicy}"/>
-               </VerticalStack>-->\r
-\r
index 5bad322dfc33ddb9622b5eeda2eac6cdcca74ef4..db6533e374a21246fe3bf1217f2a3c74c7c5c04b 100644 (file)
@@ -1,9 +1,10 @@
-<Border BorderWidth="1" Margin="1" MinimumSize="10,10" Height="{../HeightPolicy}" Width="{../WidthPolicy}" >
+<Border BorderWidth="1" Margin="1" MinimumSize="10,10"
+       Background="{./Background}" Height="{./HeightPolicy}" Width="{./WidthPolicy}" >
        <Scroller  Name="scroller1" Margin="1" VerticalScrolling="true"
-               Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"
-               ValueChanged="../../_scroller_ValueChanged">
-               <VerticalStack LayoutChanged="../../../_list_LayoutChanged"
-                       Height="Fit" Width="{../../../WidthPolicy}" Name="List" Margin="0" VerticalAlignment="Top"/>
+               Height="{./HeightPolicy}" Width="{./WidthPolicy}"
+               ValueChanged="./_scroller_ValueChanged">
+               <VerticalStack LayoutChanged="./_list_LayoutChanged"
+                       Height="Fit" Width="{./WidthPolicy}" Name="List" Margin="0" VerticalAlignment="Top"/>
        </Scroller>
 </Border>
 
index 42bc29766bbf683d9975164560158e0ca63cf634..3a252cab7d1c352ff08c935266da20c9ebe47b95 100755 (executable)
@@ -1,23 +1,22 @@
 <?xml version="1.0"?>
-<Border BorderWidth="1" Foreground="White" CornerRadius="20" Height="{../HeightPolicy}" Width="{../WidthPolicy}"
-                               MouseEnter="../onBorderMouseEnter"
-                               MouseLeave="../onBorderMouseLeave">
-       <VerticalStack Height="{../../HeightPolicy}" Width="{../../WidthPolicy}">
-               <Border Name="TitleBar" BorderWidth="1" Foreground="White" Width="{../../../WidthPolicy}" Height="Fit"
+<Border BorderWidth="1" Foreground="White" CornerRadius="20" Height="{./HeightPolicy}" Width="{./WidthPolicy}"
+                               MouseEnter="./onBorderMouseEnter"
+                               MouseLeave="./onBorderMouseLeave">
+       <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+               <Border Name="TitleBar" BorderWidth="1" Foreground="White" Width="{./WidthPolicy}" Height="Fit"
                                Background="vgradient|0:0.4,0.6,0.0,0.5|1:0.0,0.8,0.8,0.9">
-                       <HorizontalStack Name="hs" Margin="1" Spacing="1" Width="{../../../../WidthPolicy}" Height="Fit" 
-                               >
+                       <HorizontalStack Name="hs" Margin="1" Spacing="1" Width="{./WidthPolicy}" Height="Fit">
                                <GraphicObject Width="5"/>
-                               <Image Margin="1" Width="12" Height="12" Path="{../../../../../Icon}"/>
-                               <Label Foreground="White" Width="{../../../../../WidthPolicy}" Margin="1" TextAlignment="Center" Text="{../../../../../Title}" />
+                               <Image Margin="1" Width="12" Height="12" Path="{./Icon}"/>
+                               <Label Foreground="White" Width="{./WidthPolicy}" Margin="1" TextAlignment="Center" Text="{./Title}" />
                                <Border CornerRadius="6" BorderWidth="1" Foreground="Transparent"  Height="12" Width="12"
                                        MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
                                        <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Images.Icons.exit2.svg"
-                                                MouseClick="../../../../../../butQuitPress"/>
+                                                MouseClick="./butQuitPress"/>
                                </Border>
                                <GraphicObject Width="5"/>
                        </HorizontalStack>
                </Border>
-               <Container Name="Content" MinimumSize="50,50" Height="{../../../HeightPolicy}" Width="{../../../WidthPolicy}" Background="0.5,0.5,0.5,0.5"/>
+               <Container Name="Content" MinimumSize="50,50" Height="{./HeightPolicy}" Width="{./WidthPolicy}" Background="0.5,0.5,0.5,0.5"/>
        </VerticalStack>
 </Border>
\ No newline at end of file
index ca5ae138c7d673d1d411059598c236fef00b0d15..5873e619e699f275d5578c1d8064f4dd694ccc6e 100755 (executable)
@@ -1,28 +1,43 @@
 ï»¿<?xml version="1.0"?>
-<TreeView Height="90%" Width="90%" Data="{CurDirectory}">
-       <ItemTemplate DataType="System.IO.FileInfo">
-               <Label Text="{Name}" Width="Stretched"/>
-       </ItemTemplate>
-       <ItemTemplate DataType="System.IO.DirectoryInfo" Data="GetFileSystemInfos">             
-               <Expandable Caption="{Name}" >
-                       <Template>
-                               <VerticalStack Height="{../HeightPolicy}" Width="{../WidthPolicy}">
-                                       <HorizontalStack Spacing="1" Height="Fit" Width="{../../WidthPolicy}">
-                                               <Image Margin="2" Width="12" Height="12"
-                                                       Visible="{../../../HasContent}"
-                                                       Path="{../../../Image}" 
-                                                       SvgSub="{../../../IsExpanded}"/>
-                                               <Label Text="{../../../Caption}" Width="{../../../WidthPolicy}"/>
-                                       </HorizontalStack>
-                                       <Container Name="Content" Visible="false"
-                                                       Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"/>
-                               </VerticalStack>
-                       </Template>
-                       <HorizontalStack Height="Fit" Width="{../WidthPolicy}">
-                               <GraphicObject Width="12" Height="10"/>
-                               <ListBox Name="List" Height="Fit" Width="{../../WidthPolicy}"
-                                       Template="#Tests.Interfaces.treeList.crow" />
+<HorizontalStack>
+       <TreeView IsRoot="true" Name="treeView" Height="100%" Width="40%" Data="{CurDirectory}" Background="DimGray">
+               <ItemTemplate DataType="System.IO.FileInfo">
+                       <HorizontalStack Focusable="true"  Height="Fit" Width="Stretched" Background="{../Background}" >
+                               <Image Margin="2" Width="14" Height="14"
+                                       Path="#Crow.Images.Icons.file.svg"/>
+                               <Label Text="{Name}" Width="Stretched"
+                                       MouseEnter="{Background=hgradient|0:BlueCrayola|1:Transparent}"
+                                       MouseLeave="{Background=Transparent}"/>
                        </HorizontalStack>
-               </Expandable>
-       </ItemTemplate>
-</TreeView>
\ No newline at end of file
+               </ItemTemplate>
+               <ItemTemplate DataType="System.IO.DirectoryInfo" Data="GetFileSystemInfos">             
+                       <Expandable Caption="{Name}" >
+                               <Template>
+                                       <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+                                               <HorizontalStack Spacing="1" Height="Fit" Width="{./WidthPolicy}"
+                                                               MouseEnter="{Background=hgradient|0:BlueCrayola|1:Transparent}"
+                                                               MouseLeave="{Background=Transparent}">
+                                                       <Image Margin="2" Width="12" Height="12"
+                                                               Visible="{./HasContent}"
+                                                               Path="{./Image}" 
+                                                               SvgSub="{./IsExpanded}"/>
+                                                       <Image Margin="2" Width="14" Height="14"
+                                                               Path="#Crow.Images.Icons.folder.svg"/>
+                                                       <Label Text="{./Caption}" Width="{./WidthPolicy}"/>
+                                               </HorizontalStack>
+                                               <Container Name="Content" Visible="false"
+                                                               Height="{./HeightPolicy}" Width="{./WidthPolicy}"/>
+                                       </VerticalStack>
+                               </Template>
+                               <HorizontalStack Height="Fit" Width="{./WidthPolicy}">
+                                       <GraphicObject Width="12" Height="10"/>
+                                       <TreeView Name="List" Height="Fit" Width="{./WidthPolicy}"
+                                               Template="#Tests.Interfaces.treeList.crow" />
+                               </HorizontalStack>
+                       </Expandable>
+               </ItemTemplate>
+       </TreeView>
+       <Border Width="60%">
+               <Label Text="{../../treeView.SelectedItem}"/>
+       </Border>
+</HorizontalStack>
\ No newline at end of file
index 397ec39d2caad6188115cec87ba2435b7b5a8192..40ade60db01f606cbdb68f74255aa85d44a7184d 100644 (file)
@@ -125,9 +125,17 @@ namespace Crow
                        } else {
                                int ptr = 0;
                                ILayoutable tmp = Source.Instance as ILayoutable;
-                               if (string.IsNullOrEmpty (bindingExp [0])) {
-                                       //if exp start with '/' => Graphic tree parsing start at top container
-                                       tmp = Interface.CurrentInterface as ILayoutable;
+                               //if exp start with '/' => Graphic tree parsing start at source
+                               if (string.IsNullOrEmpty (bindingExp [0]))
+                                       ptr++;
+                               else if (bindingExp[0] == "."){ //search template root
+                                       do {
+                                               tmp = tmp.Parent;
+                                               if (tmp == null)
+                                                       return false;
+                                               if (tmp is Interface)
+                                                       throw new Exception ("Not in Templated Control");
+                                       } while (!(tmp is TemplatedControl));
                                        ptr++;
                                }
                                while (ptr < bindingExp.Length - 1) {
index d21936e81bb55eae7204eea77ea062ad893873c6..819987eb2811cad5f10cd6bbcab99095bbbff96a 100644 (file)
@@ -49,7 +49,8 @@ namespace Crow
                #region GraphicObject overrides
                public override void onMouseClick (object sender, MouseButtonEventArgs e)
                {
-                       IsExpanded = !IsExpanded;
+                       if (this.HasFocus)
+                               IsExpanded = !IsExpanded;
                        base.onMouseClick (sender, e);
                }
                #endregion
index f2f2564f2ba943f059854313c8c51a75ae9cef28..395569762928f7b09480c8f79c7d09e50942b9b6 100644 (file)
@@ -1136,10 +1136,13 @@ namespace Crow
 
                        MouseUp.Raise (this, e);
 
-                       if (MouseIsIn (e.Position)&&HasFocus)
-                               onMouseClick(sender,e);
+                       if (MouseIsIn (e.Position) && IsActive)
+                               onMouseClick (this, e);
                }
                public virtual void onMouseClick(object sender, MouseButtonEventArgs e){
+                       GraphicObject p = Parent as GraphicObject;
+                       if (p != null)
+                               p.onMouseClick(sender,e);
                        MouseClick.Raise (this, e);
                }
                public virtual void onMouseWheel(object sender, MouseWheelEventArgs e){
index 2f5798ee3d1984ca50738d1bdd11a629e9b30cb1..d09542b5279efdb65e6e520f0b96eb23505c51ed 100644 (file)
@@ -48,12 +48,13 @@ namespace Crow
         
                #region private and protected fields
                string _text = "label";
-        Alignment _textAlignment = Alignment.Left;
-               bool horizontalStretch = false;
-               bool verticalStretch = false;
-               bool _multiline = false;
-               Color selColor;
-               Color selFontColor;
+        Alignment _textAlignment;
+               bool horizontalStretch;
+               bool verticalStretch;
+               bool _selectable;
+               bool _multiline;
+               Color selBackground;
+               Color selForeground;
                Point mouseLocalPos = -1;//mouse coord in widget space, filled only when clicked        
                int _currentCol;        //0 based cursor position in string
                int _currentLine;
@@ -73,23 +74,23 @@ namespace Crow
 
                [XmlAttributeAttribute][DefaultValue("SteelBlue")]
                public virtual Color SelectionBackground {
-                       get { return selColor; }
+                       get { return selBackground; }
                        set {
-                               if (value == selColor)
+                               if (value == selBackground)
                                        return;
-                               selColor = value;
-                               NotifyValueChanged ("SelectionBackground", selColor);
+                               selBackground = value;
+                               NotifyValueChanged ("SelectionBackground", selBackground);
                                RegisterForRedraw ();
                        }
                }
                [XmlAttributeAttribute][DefaultValue("White")]
                public virtual Color SelectionForeground {
-                       get { return selFontColor; }
+                       get { return selForeground; }
                        set {
-                               if (value == selFontColor)
+                               if (value == selForeground)
                                        return;
-                               selFontColor = value;
-                               NotifyValueChanged ("SelectionForeground", selFontColor);
+                               selForeground = value;
+                               NotifyValueChanged ("SelectionForeground", selForeground);
                                RegisterForRedraw ();
                        }
                }
@@ -150,6 +151,21 @@ namespace Crow
                                RegisterForGraphicUpdate ();
             }
         }
+               [XmlAttributeAttribute][DefaultValue(false)]
+               public bool Selectable
+               {
+                       get { return _selectable; }
+                       set
+                       {
+                               if (value == _selectable)
+                                       return;
+                               _selectable = value;
+                               NotifyValueChanged ("Selectable", _selectable);
+                               SelBegin = -1;
+                               SelRelease = -1;
+                               RegisterForRedraw ();
+                       }
+               }
                [XmlAttributeAttribute][DefaultValue(false)]
                public bool Multiline
                {
@@ -548,7 +564,7 @@ namespace Crow
 //                                     lineRect.X += (rText.Width - lineLength);
                                
                                if (SelRelease >= 0 && i >= selectionStart.Y && i <= selectionEnd.Y) {                                  
-                                       gr.SetSourceColor(selColor);
+                                       gr.SetSourceColor(selBackground);
 
                                        Rectangle selRect = lineRect ;
 
@@ -594,6 +610,8 @@ namespace Crow
                {
                        base.onFocused (sender, e);
 
+                       if (!_selectable)
+                               return;
                        SelBegin = new Point(0,0);
                        SelRelease = new Point (lines.LastOrDefault ().Length, lines.Count-1);
                        RegisterForRedraw ();
@@ -610,7 +628,7 @@ namespace Crow
                {
                        base.onMouseMove (sender, e);
 
-                       if (!(SelectionInProgress && HasFocus))
+                       if (!(SelectionInProgress && HasFocus && _selectable))
                                return;
 
                        updatemouseLocalPos (e.Position);
@@ -619,7 +637,7 @@ namespace Crow
                }
                public override void onMouseDown (object sender, MouseButtonEventArgs e)
                {                       
-                       if (this.HasFocus){
+                       if (this.HasFocus && _selectable){
                                updatemouseLocalPos (e.Position);
                                SelBegin = -1;
                                SelRelease = -1;
index 24ceb618b9d260fd78fdd33c972b56ab59f56e1a..6cef4fd9e3468bf961a1305980cf2b06f6b10ec1 100644 (file)
@@ -97,9 +97,12 @@ namespace Crow
                                SelectedItemChanged.Raise (this, new SelectionChangeEventArgs (SelectedItem));
                        }
                }
-               [XmlIgnore]public object SelectedItem{
+               [XmlIgnore]public virtual object SelectedItem{
                        get { return data == null ? null : _selectedIndex < 0 ? null : data[_selectedIndex]; }
                }
+               protected void raiseSelectedItemChanged(){
+                       SelectedItemChanged.Raise (this, new SelectionChangeEventArgs (SelectedItem));
+               }
                        
                #region implemented abstract members of TemplatedControl
                protected override void loadTemplate (GraphicObject template = null)
@@ -173,7 +176,19 @@ namespace Crow
                                        page.AddChild (g);
                                        g.DataSource = data [i];
                                }
-                               g.MouseClick += itemClick;
+                               if (this is TreeView) {
+                                       TreeView tv = this as TreeView;
+                                       while (!tv.IsRoot) {
+                                               ILayoutable tmp = tv.Parent;
+                                               while (!(tmp is TreeView)) {
+                                                       tmp = tmp.Parent;
+                                               }
+                                               tv = tmp as TreeView;
+                                       }
+                                       g.MouseClick += tv.itemClick;
+                               }else
+                                       g.MouseClick += itemClick;
+                               
                                if (itemStream.Expand != null && g is Expandable) {
                                        (g as Expandable).Expand += itemStream.Expand;
                                }
@@ -219,7 +234,7 @@ namespace Crow
                                        (int)Math.Ceiling ((double)page1.Slot.Height / (double)itemPerPage * (double)(data.Count+1));
                        }
                }
-               void itemClick(object sender, MouseButtonEventArgs e){
+               internal virtual void itemClick(object sender, MouseButtonEventArgs e){
                        SelectedIndex = data.IndexOf((sender as GraphicObject).DataSource);
                }
        }
index 744cd329d72510e0d77d2f050b92f384a9ae2d3d..f1c719f6c73d0fbf362f140ea64e64a903d06186 100644 (file)
@@ -99,6 +99,17 @@ namespace Crow
                        //prevent name searching in template
                        return nameToFind == this.Name ? this : null;
                }
+               protected override void onDraw (Cairo.Context gr)
+               {
+                       gr.Save ();
+                       //clip to client zone
+                       CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                       gr.Clip ();
+
+                       if (child != null)
+                               child.Paint (ref gr);
+                       gr.Restore ();
+               }
                #endregion
 
                protected virtual void loadTemplate(GraphicObject template = null)
index 64d4afcb961881b7e1ce00995e7be2d644f96006..510802810d001d2cdbdda5d2ef8e2f9fed0f6f88 100644 (file)
@@ -19,6 +19,9 @@
 //  You should have received a copy of the GNU General Public License
 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 using System;
+using System.Xml.Serialization;
+using System.Diagnostics;
+using System.ComponentModel;
 
 namespace Crow
 {
@@ -27,9 +30,68 @@ namespace Crow
        [DefaultTemplate("#Crow.Templates.TreeView.crow")]
        public class TreeView : ListBox
        {
+               GraphicObject selectedItemContainer = null;
+               Color selBackground;
+               Color selForeground;
+               bool isRoot;
+
+
                public TreeView () : base()
                {
                }
+               [XmlAttributeAttribute()][DefaultValue(false)]
+               public virtual bool IsRoot {
+                       get { return isRoot; }
+                       set {
+                               if (isRoot == value)
+                                       return;
+                               isRoot = value;
+                               NotifyValueChanged ("IsRoot", isRoot);
+                       }
+               }
+
+               [XmlAttributeAttribute][DefaultValue("SteelBlue")]//DeepJungleGreen
+               public virtual Color SelectionBackground {
+                       get { return selBackground; }
+                       set {
+                               if (value == selBackground)
+                                       return;
+                               selBackground = value;
+                               NotifyValueChanged ("SelectionBackground", selBackground);
+                               RegisterForRedraw ();
+                       }
+               }
+               [XmlAttributeAttribute][DefaultValue("White")]
+               public virtual Color SelectionForeground {
+                       get { return selForeground; }
+                       set {
+                               if (value == selForeground)
+                                       return;
+                               selForeground = value;
+                               NotifyValueChanged ("SelectionForeground", selForeground);
+                               RegisterForRedraw ();
+                       }
+               }
+
+               [XmlIgnore]public override object SelectedItem {
+                       get {
+                               return selectedItemContainer == null ?
+                                       "" : selectedItemContainer.DataSource;
+                       }
+               }
+               internal override void itemClick (object sender, MouseButtonEventArgs e)
+               {
+                       GraphicObject tmp = sender as GraphicObject;
+                       if (selectedItemContainer != null) {
+                               selectedItemContainer.Foreground = Color.Transparent;
+                               selectedItemContainer.Background = Color.Transparent;
+                       }
+                       selectedItemContainer = tmp;
+                       selectedItemContainer.Foreground = SelectionForeground;
+                       selectedItemContainer.Background = SelectionBackground;
+                       NotifyValueChanged ("SelectedItem", SelectedItem);
+                       raiseSelectedItemChanged ();
+               }
        }
 }
 
index 350ef075ee9e538f8076379ddad4af914643391b..99ea974b7167abaab6a81034d8bd75ab2470caf9 100644 (file)
@@ -665,7 +665,7 @@ namespace Crow
                                mouseRepeatThread.Join ();
                        }
 
-                       _activeWidget.onMouseUp (this, e);
+                       _activeWidget.onMouseUp (_activeWidget, e);
                        activeWidget = null;
                        return true;
                }