using System.Reflection;\r
using System.Linq;\r
using System.IO;\r
+using System.Collections.Generic;\r
\r
\r
namespace test2\r
{\r
- class GOLIBTest_DirViewer : OpenTKGameWindow\r
+ class GOLIBTest_DirViewer : OpenTKGameWindow, IValueChange\r
{\r
+ #region IValueChange implementation\r
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;\r
+ public void NotifyValueChanged(string name, object value)\r
+ {\r
+ ValueChanged.Raise (this, new ValueChangeEventArgs (name, value));\r
+ }\r
+ #endregion\r
+\r
public GOLIBTest_DirViewer ()\r
: base(1024, 600,"test")\r
{}\r
protected override void OnLoad (EventArgs e)\r
{\r
base.OnLoad (e);\r
+\r
CurDir = new DirContainer(new DirectoryInfo ("/home/jp/"));\r
\r
- this.AddWidget(Interface.Load ("Interfaces/testDirViewer.goml", CurDir));\r
+ GraphicObject dv = Interface.Load ("Interfaces/testDirViewer.goml");\r
+ this.AddWidget(dv);\r
+ dv.DataSource = CurDir;\r
+\r
//LoadInterface("Interfaces/testTypeViewer.goml", out g);\r
}\r
+ \r
\r
[STAThread]\r
static void Main ()\r
}\r
}\r
}\r
- public class DirContainer\r
+ public class DirContainer: IValueChange\r
{\r
+ #region IValueChange implementation\r
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;\r
+ public void NotifyValueChanged(string name, object value)\r
+ {\r
+ ValueChanged.Raise (this, new ValueChangeEventArgs (name, value));\r
+ }\r
+ #endregion\r
+\r
public DirectoryInfo CurDir;\r
public DirContainer(DirectoryInfo _dir){\r
CurDir = _dir;\r
public FileSystemInfo[] GetFileSystemInfos\r
{\r
get {\r
- return CurDir.GetFileSystemInfos ().Where(fi => !fi.Attributes.HasFlag(FileAttributes.Hidden)).ToArray();\r
+ List<FileSystemInfo> tmp = CurDir.GetFileSystemInfos ().Where(fi => !fi.Attributes.HasFlag(FileAttributes.Hidden)).ToList();\r
+ if (CurDir.Parent != null)\r
+ tmp.Insert (0, CurDir.Parent);\r
+ return tmp.ToArray ();\r
}\r
}\r
void onDirUp(object sender, MouseButtonEventArgs e)\r
{\r
Debug.WriteLine (sender.ToString ());\r
}\r
+ void OnSelectedItemChanged (object sender, SelectionChangeEventArgs e)\r
+ {\r
+ CurDir = e.NewValue as DirectoryInfo;\r
+ NotifyValueChanged ("GetFileSystemInfos", GetFileSystemInfos);\r
+ NotifyValueChanged ("Name", Name);\r
+\r
+ }\r
}\r
\r
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--part of the rodentia icon theme by sixsixfive released under CC0 (https://creativecommons.org/publicdomain/zero/1.0/) on openclipart-->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48">
- <defs id="0">
- <linearGradient id="2">
- <stop id="J" stop-color="#2e3436"/>
- <stop id="K" offset="1" stop-color="#2e3436" stop-opacity="0"/>
- </linearGradient>
- <linearGradient id="3">
- <stop id="L" stop-color="#fff" stop-opacity="0.4"/>
- <stop id="M" offset="1" stop-color="#fff" stop-opacity="0"/>
- </linearGradient>
- <linearGradient id="4">
- <stop id="N" stop-color="#8f5902"/>
- <stop id="O" offset="1" stop-color="#683f00"/>
- </linearGradient>
- <linearGradient id="5">
- <stop id="P" stop-color="#fff"/>
- <stop id="Q" offset="1" stop-color="#fff" stop-opacity="0"/>
- </linearGradient>
- <linearGradient id="6">
- <stop id="R" stop-color="#fff" stop-opacity="0.8"/>
- <stop id="S" offset="1" stop-color="#fff" stop-opacity="0"/>
- </linearGradient>
- <linearGradient id="7">
- <stop id="T" stop-color="#e9b96e"/>
- <stop id="U" offset="1" stop-color="#c17d11"/>
- </linearGradient>
- <linearGradient id="8">
- <stop id="V" stop-color="#2e3436"/>
- <stop id="W" offset="1" stop-color="#555753"/>
- </linearGradient>
- <filter color-interpolation-filters="sRGB" id="9">
- <feGaussianBlur stdDeviation="0.755" id="X"/>
- </filter>
- <radialGradient cx="35.488" cy="26.2" r="23" id="A" xlink:href="#8" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0434444,-1.4643692,1.4020098,0.9990096,-62.776231,34.470805)"/>
- <linearGradient y1="1.781" x2="0" y2="41.75" id="B" xlink:href="#3" gradientUnits="userSpaceOnUse"/>
- <linearGradient y1="10.144" x2="0" y2="42.775" id="C" xlink:href="#7" gradientUnits="userSpaceOnUse"/>
- <linearGradient y1="10.144" x2="0" y2="42.775" id="D" xlink:href="#4" gradientUnits="userSpaceOnUse"/>
- <linearGradient y1="11.188" x2="0" y2="41.75" id="E" xlink:href="#6" gradientUnits="userSpaceOnUse"/>
- <linearGradient x1="7.935" y1="-28.25" x2="20.05" y2="36.1" id="F" xlink:href="#5" gradientUnits="userSpaceOnUse"/>
- <radialGradient cx="24.919" cy="48.2" r="25.941" id="G" xlink:href="#2" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.1062992,0,43.080183)"/>
- </defs>
- <g id="1" opacity="0.6">
- <path d="m 50.860289,48.204258 a 25.94079,2.7574856 0 1 1 -51.8815807,0 25.94079,2.7574856 0 1 1 51.8815807,0 z" transform="matrix(0.9652959,0,0,0.8148148,-0.05468968,4.2286171)" id="H" fill="url(#G)"/>
- <g transform="matrix(0.9574469,0,0,0.9574469,1.0212744,3.1660267)" id="I">
- <path d="m 1.5,1.2452202 0,41.0294108 45,0 0,-34.5135739 -18.834842,0 -5.497737,-6.5158369 -20.667421,0 z" id="Y" fill="url(#A)" stroke="#2e3436" stroke-linejoin="round" stroke-linecap="square"/>
- <path d="m 2.53125,2.28125 0,38.96875 42.9375,0 0,-32.46875 -17.8125,0 A 1.0266953,1.0266953 0 0 1 26.875,8.40625 l -5.1875,-6.125 -19.15625,0 z" id="Z" opacity="0.8" fill="none" stroke="url(#B)" stroke-linejoin="round" stroke-linecap="square"/>
- <path d="m 18.65625,11.1875 -2.875,6.34375 a 0.54138149,0.54138149 0 0 1 -0.5,0.3125 l -13.75,0 0.5,23.90625 43.9375,0 0.5,-30.5625 -27.8125,0 z" transform="translate(0,-1.7)" id="a" filter="url(#9)"/>
- <path d="m 18.310273,10.643608 -3.037735,6.654088 -14.272535,0 0.4999972,24.976935 44.9999998,0 0.499997,-31.631023 -28.689724,0 z" id="b" fill="url(#C)" stroke="url(#D)" stroke-linejoin="round" stroke-linecap="square"/>
- <path d="m 18.96875,11.6875 -2.75,6.0625 a 1.0266953,1.0266953 0 0 1 -0.9375,0.59375 l -13.21875,0 L 2.5,41.25 l 43,0 0.4375,-29.5625 -26.96875,0 z" id="c" opacity="0.8" fill="none" stroke="url(#E)" stroke-linejoin="round" stroke-linecap="square"/>
- <path d="m 18.65625,11.15625 -2.90625,6.375 c -0.08919,0.176066 -0.271425,0.285406 -0.46875,0.28125 l -13.78125,0 0.3125,15.34375 c 12.189878,-5.184653 30.416986,-10.313955 44.53125,-12.75 l 0.15625,-9.25 -27.84375,0 z" id="d" opacity="0.8" fill="url(#F)"/>
+
+<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"
+ viewBox="0 0 48 48"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="folder1.svg">
+ <metadata
+ id="metadata46">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1237"
+ inkscape:window-height="922"
+ id="namedview44"
+ showgrid="false"
+ inkscape:zoom="9.8333333"
+ inkscape:cx="24.730721"
+ inkscape:cy="17.391797"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="0">
+ <linearGradient
+ id="2">
+ <stop
+ id="J"
+ stop-color="#2e3436" />
+ <stop
+ id="K"
+ offset="1"
+ stop-color="#2e3436"
+ stop-opacity="0" />
+ </linearGradient>
+ <linearGradient
+ id="3">
+ <stop
+ id="L"
+ stop-color="#fff"
+ stop-opacity="0.4" />
+ <stop
+ id="M"
+ offset="1"
+ stop-color="#fff"
+ stop-opacity="0" />
+ </linearGradient>
+ <linearGradient
+ id="4">
+ <stop
+ id="N"
+ stop-color="#8f5902" />
+ <stop
+ id="O"
+ offset="1"
+ stop-color="#683f00" />
+ </linearGradient>
+ <linearGradient
+ id="5">
+ <stop
+ id="P"
+ stop-color="#fff" />
+ <stop
+ id="Q"
+ offset="1"
+ stop-color="#fff"
+ stop-opacity="0" />
+ </linearGradient>
+ <linearGradient
+ id="6">
+ <stop
+ id="R"
+ stop-color="#fff"
+ stop-opacity="0.8" />
+ <stop
+ id="S"
+ offset="1"
+ stop-color="#fff"
+ stop-opacity="0" />
+ </linearGradient>
+ <linearGradient
+ id="7">
+ <stop
+ id="T"
+ stop-color="#e9b96e" />
+ <stop
+ id="U"
+ offset="1"
+ stop-color="#c17d11" />
+ </linearGradient>
+ <linearGradient
+ id="8">
+ <stop
+ id="V"
+ stop-color="#2e3436" />
+ <stop
+ id="W"
+ offset="1"
+ stop-color="#555753" />
+ </linearGradient>
+ <filter
+ color-interpolation-filters="sRGB"
+ id="9">
+ <feGaussianBlur
+ stdDeviation="0.755"
+ id="X" />
+ </filter>
+ <radialGradient
+ cx="35.488"
+ cy="26.2"
+ r="23"
+ id="A"
+ xlink:href="#8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0434444,-1.4643692,1.4020098,0.9990096,-62.776231,34.470805)" />
+ <linearGradient
+ y1="1.781"
+ x2="0"
+ y2="41.75"
+ id="B"
+ xlink:href="#3"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y1="10.144"
+ x2="0"
+ y2="42.775"
+ id="C"
+ xlink:href="#7"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y1="10.144"
+ x2="0"
+ y2="42.775"
+ id="D"
+ xlink:href="#4"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y1="11.188"
+ x2="0"
+ y2="41.75"
+ id="E"
+ xlink:href="#6"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="7.935"
+ y1="-28.25"
+ x2="20.05"
+ y2="36.1"
+ id="F"
+ xlink:href="#5"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ cx="24.919"
+ cy="48.2"
+ r="25.941"
+ id="G"
+ xlink:href="#2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.1062992,0,43.080183)" />
+ <linearGradient
+ inkscape:collect="always"
+ x1="105"
+ y1="123"
+ gradientTransform="translate(2,922.36)"
+ x2="-80"
+ gradientUnits="userSpaceOnUse"
+ y2="-112"
+ id="linearGradient3606">
+ <stop
+ offset="0"
+ style="stop-color:#e6e6e6"
+ id="stop3602" />
+ <stop
+ offset="1"
+ style="stop-color:#f9f9f9"
+ id="stop3604" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ x1="93"
+ y1="944.36"
+ gradientTransform="translate(2,-2)"
+ x2="80"
+ gradientUnits="userSpaceOnUse"
+ y2="957.36"
+ id="linearGradient3614">
+ <stop
+ offset="0"
+ style="stop-color:#cccccc"
+ id="stop3610" />
+ <stop
+ offset=".22008"
+ style="stop-color:#e6e6e6"
+ id="stop3616" />
+ <stop
+ offset=".46933"
+ style="stop-color:#ffffff"
+ id="stop3618" />
+ <stop
+ offset="1"
+ style="stop-color:#e6e6e6"
+ id="stop3612" />
+ </linearGradient>
+ </defs>
+ <g
+ id="Directory"
+ transform="matrix(1.0511923,0,0,1.0511923,-1.1274166,-1.2155515)"
+ style="opacity:0.6">
+ <path
+ d="m 50.860289,48.204258 a 25.94079,2.7574856 0 1 1 -51.8815807,0 25.94079,2.7574856 0 1 1 51.8815807,0 z"
+ transform="matrix(0.9652959,0,0,0.8148148,-0.05468968,4.2286171)"
+ id="H"
+ style="fill:url(#G)"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(0.9574469,0,0,0.9574469,1.0212744,3.1660267)"
+ id="I">
+ <path
+ d="m 1.5,1.2452202 0,41.0294108 45,0 0,-34.5135739 -18.834842,0 -5.497737,-6.5158369 -20.667421,0 z"
+ id="Y"
+ style="fill:url(#A);stroke:#2e3436;stroke-linecap:square;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 2.53125,2.28125 0,38.96875 42.9375,0 0,-32.46875 -17.8125,0 A 1.0266953,1.0266953 0 0 1 26.875,8.40625 l -5.1875,-6.125 -19.15625,0 z"
+ id="Z"
+ style="opacity:0.8;fill:none;stroke:url(#B);stroke-linecap:square;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 18.65625,11.1875 -2.875,6.34375 a 0.54138149,0.54138149 0 0 1 -0.5,0.3125 l -13.75,0 0.5,23.90625 43.9375,0 0.5,-30.5625 -27.8125,0 z"
+ transform="translate(0,-1.7)"
+ id="a"
+ inkscape:connector-curvature="0"
+ style="filter:url(#9)" />
+ <path
+ d="m 18.310273,10.643608 -3.037735,6.654088 -14.272535,0 0.4999972,24.976935 44.9999998,0 0.499997,-31.631023 -28.689724,0 z"
+ id="b"
+ style="fill:url(#C);stroke:url(#D);stroke-linecap:square;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 18.96875,11.6875 -2.75,6.0625 a 1.0266953,1.0266953 0 0 1 -0.9375,0.59375 l -13.21875,0 L 2.5,41.25 l 43,0 0.4375,-29.5625 -26.96875,0 z"
+ id="c"
+ style="opacity:0.8;fill:none;stroke:url(#E);stroke-linecap:square;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 18.65625,11.15625 -2.90625,6.375 c -0.08919,0.176066 -0.271425,0.285406 -0.46875,0.28125 l -13.78125,0 0.3125,15.34375 c 12.189878,-5.184653 30.416986,-10.313955 44.53125,-12.75 l 0.15625,-9.25 -27.84375,0 z"
+ id="d"
+ style="opacity:0.8;fill:url(#F)"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.39982059,0,0,0.39982059,-1.5622442,-371.2009)"
+ inkscape:label="Layer 1"
+ id="Normal">
+ <path
+ d="m 82,930.36 -60,0 0,115 85,0 0,-90 -25,-25 z"
+ style="fill:url(#linearGradient3606);fill-rule:evenodd;stroke:#808080;stroke-width:1px;stroke-linejoin:round"
+ sodipodi:nodetypes="cccccc"
+ id="path2826"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 107,955.36 -25,-25 c 1.8633,8.3333 2.1329,16.667 0,25 9.9055,-1.935 17.128,-0.56751 25,0 z"
+ style="fill:url(#linearGradient3614);fill-rule:evenodd;stroke:#808080;stroke-width:1px;stroke-linejoin:round"
+ sodipodi:nodetypes="cccc"
+ id="rect2822"
+ inkscape:connector-curvature="0" />
</g>
- </g>
</svg>