From: jpbruyere Date: Thu, 27 Apr 2017 13:52:59 +0000 (+0200) Subject: simple treeView presenting example with source of crow files X-Git-Tag: v0.9.5-beta~223 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=c994e73e833331f2edfd81f77d43a12933d41d22;p=jp%2Fcrow.git simple treeView presenting example with source of crow files --- diff --git a/Tests/Showcase.cs b/Tests/Showcase.cs new file mode 100644 index 00000000..517f722d --- /dev/null +++ b/Tests/Showcase.cs @@ -0,0 +1,199 @@ +// +// UIEditor.cs +// +// Author: +// Jean-Philippe Bruyère +// +// 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; +using OpenTK; +using OpenTK.Graphics.OpenGL; +using Crow; +using System.IO; +using System.Collections.Generic; +using System.Reflection; +using System.Linq; + +namespace Tests +{ + class Showcase : CrowWindow + { + [STAThread] + static void Main () + { + Showcase win = new Showcase (); + win.Run (30); + } + + public Showcase () + : base(1024, 800,"Showcase") + { + } + + Container crowContainer; + + protected override void OnLoad (EventArgs e) + { + base.OnLoad (e); + + GraphicObject g = Load ("#Tests.ui.showcase.crow"); + g.DataSource = this; + crowContainer = g.FindByName ("CrowContainer") as Container; + //I set an empty object as datasource at this level to force update when new + //widgets are added to the interface + crowContainer.DataSource = new object (); + } + + void Dv_SelectedItemChanged (object sender, SelectionChangeEventArgs e) + { + FileSystemInfo fi = e.NewValue as FileSystemInfo; + if (fi == null) + return; + lock (this.ifaceControl [0].CrowInterface.UpdateMutex) { + GraphicObject g = this.ifaceControl [0].CrowInterface.Load (fi.FullName); + crowContainer.SetChild (g); + g.DataSource = this; + } + + string source = ""; + using (Stream s = new FileStream (fi.FullName, FileMode.Open)) { + using (StreamReader sr = new StreamReader (s)) { + source = sr.ReadToEnd (); + } + } + NotifyValueChanged ("source", source); + } + + void Tb_TextChanged (object sender, TextChangeEventArgs e) + { + GraphicObject g = null; + try { + lock (this.ifaceControl [0].CrowInterface.UpdateMutex) { + Instantiator inst = null; + using (MemoryStream ms = new MemoryStream (System.Text.Encoding.Unicode.GetBytes (e.Text))){ + inst = new Instantiator (ms); + } + g = inst.CreateInstance (this.ifaceControl [0].CrowInterface); + crowContainer.SetChild (g); + + } + } catch (Exception ex) { + System.Diagnostics.Debug.WriteLine (ex.ToString ()); + } + g.DataSource = this; + } + public override void OnRender (FrameEventArgs e) + { + base.OnRender (e); + } + + #region Test values for Binding + public int intValue = 500; + DirectoryInfo curDir = new DirectoryInfo (Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); + //DirectoryInfo curDir = new DirectoryInfo (@"/mnt/data/Images"); + public FileSystemInfo[] CurDirectory { + get { return curDir.GetFileSystemInfos (); } + } + public int IntValue { + get { + return intValue; + } + set { + intValue = value; + NotifyValueChanged ("IntValue", intValue); + } + } + void onSpinnerValueChange(object sender, ValueChangeEventArgs e){ + if (e.MemberName != "Value") + return; + intValue = Convert.ToInt32(e.NewValue); + } + void change_alignment(object sender, EventArgs e){ + RadioButton rb = sender as RadioButton; + if (rb == null) + return; + NotifyValueChanged ("alignment", Enum.Parse(typeof(Alignment), rb.Caption)); + } + public IList List2 = new List(new string[] + { + "string1", + "string2", + "string3", + // "string4", + // "string5", + // "string6", + // "string7", + // "string8", + // "string8", + // "string8", + // "string8", + // "string8", + // "string8", + // "string9" + } + ); + public IList TestList2 { + set{ + List2 = value; + NotifyValueChanged ("TestList2", testList); + } + get { return List2; } + } + IList testList = Color.ColorDic.ToList(); + public IList TestList { + set{ + testList = value; + NotifyValueChanged ("TestList", testList); + } + get { return testList; } + } + string curSources = ""; + public string CurSources { + get { return curSources; } + set { + if (value == curSources) + return; + curSources = value; + NotifyValueChanged ("CurSources", curSources); + } + } + bool boolVal = true; + public bool BoolVal { + get { return boolVal; } + set { + if (boolVal == value) + return; + boolVal = value; + NotifyValueChanged ("BoolVal", boolVal); + } + } + + #endregion + + void OnClear (object sender, MouseButtonEventArgs e) => TestList = null; + + void OnLoadList (object sender, MouseButtonEventArgs e) => TestList = Color.ColorDic.ToList(); + + } + + +} \ No newline at end of file diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 360f4400..16c851a3 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -8,7 +8,7 @@ Exe Tests Tests - Tests.BasicTests + Tests.Showcase v4.5 AnyCPU 0.5 @@ -28,16 +28,12 @@ 4 false DEBUG;TRACE;MEASURE_TIME - $(SolutionDir)build\obj\$(Configuration) - $(SolutionDir)build\$(Configuration) none true 0 false - $(SolutionDir)build\obj\$(Configuration) - $(SolutionDir)build\$(Configuration) @@ -61,11 +57,11 @@ - + @@ -356,6 +352,7 @@ + diff --git a/Tests/UIEditor.cs b/Tests/UIEditor.cs deleted file mode 100644 index ed21eceb..00000000 --- a/Tests/UIEditor.cs +++ /dev/null @@ -1,64 +0,0 @@ -// -// UIEditor.cs -// -// Author: -// Jean-Philippe Bruyère -// -// 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; -using OpenTK; -using OpenTK.Graphics.OpenGL; -using Crow; - -namespace Tests -{ - class UIEditor : CrowWindow - { - [STAThread] - static void Main () - { - UIEditor win = new UIEditor (); - win.Run (30); - } - - public UIEditor () - : base(800, 600,"UIEditor") - { - } - - protected override void OnLoad (EventArgs e) - { - base.OnLoad (e); - - AddWidget( - new Window () - { - Caption = "Hello World" - } - ); - } - public override void OnRender (FrameEventArgs e) - { - base.OnRender (e); - } - } -} \ No newline at end of file diff --git a/Tests/ui/showcase.crow b/Tests/ui/showcase.crow new file mode 100755 index 00000000..4453e6aa --- /dev/null +++ b/Tests/ui/showcase.crow @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + +