aboutsummaryrefslogtreecommitdiffstatsci
path: root/Samples/common
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-03-02 11:57:39 +0100
committerj-p <jp_bruyere@hotmail.com>2021-03-02 12:01:06 +0100
commit25a2b0d668dfea62e53a1fcf50ed32b43cfc2c68 (patch)
treebc77c325f93fb136b7a0ba977982d1262338ecf7 /Samples/common
parent5b5150e5e7e1eca0aa99de8b8a7aa6f38b7310d8 (diff)
implement theme from directory
Diffstat (limited to 'Samples/common')
-rw-r--r--Samples/common/SampleBase.cs495
-rw-r--r--Samples/common/ui/Interfaces/Divers/chess.crow19
2 files changed, 265 insertions, 249 deletions
diff --git a/Samples/common/SampleBase.cs b/Samples/common/SampleBase.cs
index 8307faed..71fb65f1 100644
--- a/Samples/common/SampleBase.cs
+++ b/Samples/common/SampleBase.cs
@@ -1,19 +1,20 @@
-using System.Net.NetworkInformation;
-using System.Runtime.InteropServices;
+using Crow;
+using Glfw;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Net.NetworkInformation;
using System.Reflection;
using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
using System.Threading;
-using Crow;
-using Glfw;
namespace Crow
{
- public class SampleBase : Interface {
-#if NETCOREAPP
+ public class SampleBase : Interface
+ {
+#if NETCOREAPP
static IntPtr resolveUnmanaged (Assembly assembly, String libraryName) {
switch (libraryName)
@@ -31,270 +32,266 @@ namespace Crow
System.Runtime.Loader.AssemblyLoadContext.Default.ResolvingUnmanagedDll+=resolveUnmanaged;
}
#endif
- public Version CrowVersion => Assembly.GetAssembly (typeof (Widget)).GetName ().Version;
+ public Version CrowVersion => Assembly.GetAssembly (typeof (Widget)).GetName ().Version;
- #region Test values for Binding
- public List<Command> Commands;
- public int intValue = 500;
- VerticalAlignment currentVAlign;
+ #region Test values for Binding
+ public List<Command> Commands;
+ public int intValue = 500;
+ VerticalAlignment currentVAlign;
- DirectoryInfo curDir = new DirectoryInfo (Path.GetDirectoryName (Assembly.GetEntryAssembly ().Location));
- public FileSystemInfo[] CurDirectory => curDir.GetFileSystemInfos ();
- public string MultilineText =
- $"Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit. Sed non risus.\n\nSuspendisse lectus tortor,\nLorem ipsum dolor sit amet,\nconsectetur adipiscing elit. Sed non risus.\n\nSuspendisse lectus tortor,";
- //public string MultilineText = $"a\n";
- TextAlignment textAlignment = TextAlignment.Left;
- public TextAlignment TextAlignment {
- get => textAlignment;
- set {
- if (textAlignment == value)
- return;
- textAlignment = value;
- NotifyValueChanged (textAlignment);
- }
- }
+ DirectoryInfo curDir = new DirectoryInfo (Path.GetDirectoryName (Assembly.GetEntryAssembly ().Location));
+ public FileSystemInfo[] CurDirectory => curDir.GetFileSystemInfos ();
+ public string MultilineText =
+ $"Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit. Sed non risus.\n\nSuspendisse lectus tortor,\nLorem ipsum dolor sit amet,\nconsectetur adipiscing elit. Sed non risus.\n\nSuspendisse lectus tortor,";
+ //public string MultilineText = $"a\n";
+ TextAlignment textAlignment = TextAlignment.Left;
+ public TextAlignment TextAlignment {
+ get => textAlignment;
+ set {
+ if (textAlignment == value)
+ return;
+ textAlignment = value;
+ NotifyValueChanged (textAlignment);
+ }
+ }
- public int IntValue {
- get => intValue;
- set {
- if (IntValue == value)
- return;
- intValue = value;
- NotifyValueChanged ("IntValue", intValue);
- }
- }
- public VerticalAlignment CurrentVAlign {
- get => currentVAlign;
- set {
- if (currentVAlign == value)
- return;
- currentVAlign = value;
- NotifyValueChanged ("CurrentVAlign", currentVAlign);
- }
- }
- 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 IEnumerable<String> List2 = new List<string> (new string[]
- {
- "string1",
- "string2",
- "string3",
- "string4",
- "string5",
- "string6",
- "string7",
- "string8",
- "string8",
- "string8",
- "string8",
- "string8",
- "string8",
- "string9"
- }
- );
- public IEnumerable<String> TestList2 {
- set {
- List2 = value;
- NotifyValueChanged ("TestList2", testList);
- }
- get { return List2; }
- }
- public class TestClass
- {
- public string Prop1 { get; set; }
- public string Prop2 { get; set; }
+ public int IntValue {
+ get => intValue;
+ set {
+ if (IntValue == value)
+ return;
+ intValue = value;
+ NotifyValueChanged ("IntValue", intValue);
+ }
+ }
+ public VerticalAlignment CurrentVAlign {
+ get => currentVAlign;
+ set {
+ if (currentVAlign == value)
+ return;
+ currentVAlign = value;
+ NotifyValueChanged ("CurrentVAlign", currentVAlign);
+ }
+ }
+ 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 IEnumerable<String> List2 = new List<string> (new string[]
+ {
+ "string1",
+ "string2",
+ "string3",
+ "string4",
+ "string5",
+ "string6",
+ "string7",
+ "string8",
+ "string8",
+ "string8",
+ "string8",
+ "string8",
+ "string8",
+ "string9"
+ }
+ );
+ public IEnumerable<String> TestList2 {
+ set {
+ List2 = value;
+ NotifyValueChanged ("TestList2", testList);
+ }
+ get { return List2; }
+ }
+ public class TestClass
+ {
+ public string Prop1 { get; set; }
+ public string Prop2 { get; set; }
- public override string ToString ()
- => $"{Prop1}, {Prop2}";
+ public override string ToString ()
+ => $"{Prop1}, {Prop2}";
- }
- public class TestClassVC : IValueChange
- {
- public event EventHandler<ValueChangeEventArgs> ValueChanged;
- public void NotifyValueChanged (object _value, [CallerMemberName] string caller = null)
- => ValueChanged.Raise (this, new ValueChangeEventArgs (caller, _value));
- string prop1, prop2;
- public string Prop1 {
- get => prop1;
- set {
- if (prop1 == value)
- return;
- prop1 = value;
- NotifyValueChanged (prop1);
- }
- }
- public string Prop2 {
- get => prop2;
- set {
- if (prop2 == value)
- return;
- prop2 = value;
- NotifyValueChanged (prop2);
- }
+ }
+ public class TestClassVC : IValueChange
+ {
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public void NotifyValueChanged (object _value, [CallerMemberName] string caller = null)
+ => ValueChanged.Raise (this, new ValueChangeEventArgs (caller, _value));
+ string prop1, prop2;
+ public string Prop1 {
+ get => prop1;
+ set {
+ if (prop1 == value)
+ return;
+ prop1 = value;
+ NotifyValueChanged (prop1);
+ }
+ }
+ public string Prop2 {
+ get => prop2;
+ set {
+ if (prop2 == value)
+ return;
+ prop2 = value;
+ NotifyValueChanged (prop2);
+ }
- }
+ }
- public override string ToString ()
- => $"{Prop1}, {Prop2}";
+ public override string ToString ()
+ => $"{Prop1}, {Prop2}";
- }
- TestClass tcInstance;// = new TestClass () { Prop1 = "instance 0 prop1 value", Prop2 = "instance 0 prop2 value" };
- TestClassVC tcVCInstance;// = new TestClassVC () { Prop1 = "instance 0 prop1 value", Prop2 = "instance 0 prop2 value" };
- TestClass tcInstance1 = new TestClass () { Prop1 = "instance 1 prop1 value", Prop2 = "instance 1 prop2 value" };
- TestClassVC tcVCInstance1 = new TestClassVC () { Prop1 = "instance 1 prop1 value", Prop2 = "instance 1 prop2 value" };
- TestClass tcInstance2 = new TestClass () { Prop1 = "instance 2 prop1 value", Prop2 = "instance 2 prop2 value" };
- TestClassVC tcVCInstance2 = new TestClassVC () { Prop1 = "instance 2 prop1 value", Prop2 = "instance 2 prop2 value" };
+ }
+ TestClass tcInstance;// = new TestClass () { Prop1 = "instance 0 prop1 value", Prop2 = "instance 0 prop2 value" };
+ TestClassVC tcVCInstance;// = new TestClassVC () { Prop1 = "instance 0 prop1 value", Prop2 = "instance 0 prop2 value" };
+ TestClass tcInstance1 = new TestClass () { Prop1 = "instance 1 prop1 value", Prop2 = "instance 1 prop2 value" };
+ TestClassVC tcVCInstance1 = new TestClassVC () { Prop1 = "instance 1 prop1 value", Prop2 = "instance 1 prop2 value" };
+ TestClass tcInstance2 = new TestClass () { Prop1 = "instance 2 prop1 value", Prop2 = "instance 2 prop2 value" };
+ TestClassVC tcVCInstance2 = new TestClassVC () { Prop1 = "instance 2 prop1 value", Prop2 = "instance 2 prop2 value" };
- public TestClass TcInstance {
- get => tcInstance;
- set {
- if (tcInstance == value)
- return;
- tcInstance = value;
- NotifyValueChanged (tcInstance);
- }
- }
- public TestClassVC TcVCInstance {
- get => tcVCInstance;
- set {
- if (tcVCInstance == value)
- return;
- tcVCInstance = value;
- NotifyValueChanged (tcVCInstance);
- }
- }
+ public TestClass TcInstance {
+ get => tcInstance;
+ set {
+ if (tcInstance == value)
+ return;
+ tcInstance = value;
+ NotifyValueChanged (tcInstance);
+ }
+ }
+ public TestClassVC TcVCInstance {
+ get => tcVCInstance;
+ set {
+ if (tcVCInstance == value)
+ return;
+ tcVCInstance = value;
+ NotifyValueChanged (tcVCInstance);
+ }
+ }
- void tcInstance_ChangeProperties_MouseClick (object sender, MouseButtonEventArgs e)
- {
- }
- public void tcInstance_ChangeInstance_MouseClick (object sender, MouseButtonEventArgs e)
- {
- if (TcInstance == tcInstance1)
- TcInstance = tcInstance2;
- else
- TcInstance = tcInstance1;
- }
- void tcVCInstance_ChangeInstance_MouseClick (object sender, MouseButtonEventArgs e)
- {
- TcVCInstance = new TestClassVC () { Prop1 = "prop1 value changed", Prop2 = "prop2 value changed" };
- }
+ void tcInstance_ChangeProperties_MouseClick (object sender, MouseButtonEventArgs e) {
+ }
+ public void tcInstance_ChangeInstance_MouseClick (object sender, MouseButtonEventArgs e) {
+ if (TcInstance == tcInstance1)
+ TcInstance = tcInstance2;
+ else
+ TcInstance = tcInstance1;
+ }
+ void tcVCInstance_ChangeInstance_MouseClick (object sender, MouseButtonEventArgs e) {
+ TcVCInstance = new TestClassVC () { Prop1 = "prop1 value changed", Prop2 = "prop2 value changed" };
+ }
- public IEnumerable<TestClass> List3 = new List<TestClass> (new TestClass[]
- {
- new TestClass { Prop1 = "string1", Prop2="prop2-1" },
- new TestClass { Prop1 = "string2", Prop2="prop2-2" },
- new TestClass { Prop1 = "string3", Prop2="prop2-3" },
- }
- );
- public IEnumerable<string> TestList3Props1 => List3.Select (sc => sc.Prop1).ToList ();
- public IEnumerable<TestClass> TestList3 {
- set {
- List3 = value;
- NotifyValueChanged ("TestList3", testList);
- }
- get { return List3; }
- }
- string prop1;
- public string TestList3SelProp1 {
- get => prop1;
- set {
- if (prop1 == value)
- return;
- prop1 = value;
+ public IEnumerable<TestClass> List3 = new List<TestClass> (new TestClass[]
+ {
+ new TestClass { Prop1 = "string1", Prop2="prop2-1" },
+ new TestClass { Prop1 = "string2", Prop2="prop2-2" },
+ new TestClass { Prop1 = "string3", Prop2="prop2-3" },
+ }
+ );
+ public IEnumerable<string> TestList3Props1 => List3.Select (sc => sc.Prop1).ToList ();
+ public IEnumerable<TestClass> TestList3 {
+ set {
+ List3 = value;
+ NotifyValueChanged ("TestList3", testList);
+ }
+ get { return List3; }
+ }
+ string prop1;
+ public string TestList3SelProp1 {
+ get => prop1;
+ set {
+ if (prop1 == value)
+ return;
+ prop1 = value;
- NotifyValueChanged (prop1);
- }
- }
+ NotifyValueChanged (prop1);
+ }
+ }
- string selString;
- public string TestList2SelectedString {
- get => selString;
- set {
- if (selString == value)
- return;
- selString = value;
- NotifyValueChanged (selString);
- }
- }
+ string selString;
+ public string TestList2SelectedString {
+ get => selString;
+ set {
+ if (selString == value)
+ return;
+ selString = value;
+ NotifyValueChanged (selString);
+ }
+ }
- IList<Colors> testList = (IList<Colors>)FastEnumUtility.FastEnum.GetValues<Colors> ().ToList ();//.ColorDic.Values//.OrderBy(c=>c.Hue)
- //.ThenBy(c=>c.Value).ThenBy(c=>c.Saturation)
- //.ToList ();
- public IList<Colors> TestList {
- set {
- testList = value;
- NotifyValueChanged ("TestList", testList);
- }
- get { return testList; }
- }
- void OnClear (object sender, MouseButtonEventArgs e) => TestList = null;
- void OnLoadList (object sender, MouseButtonEventArgs e) => TestList = (IList<Colors>)FastEnumUtility.FastEnum.GetValues<Colors> ().ToList ();
+ IList<Colors> testList = (IList<Colors>)FastEnumUtility.FastEnum.GetValues<Colors> ().ToList ();//.ColorDic.Values//.OrderBy(c=>c.Hue)
+ //.ThenBy(c=>c.Value).ThenBy(c=>c.Saturation)
+ //.ToList ();
+ public IList<Colors> TestList {
+ set {
+ testList = value;
+ NotifyValueChanged ("TestList", testList);
+ }
+ get { return testList; }
+ }
+ void OnClear (object sender, MouseButtonEventArgs e) => TestList = null;
+ void OnLoadList (object sender, MouseButtonEventArgs e) => TestList = (IList<Colors>)FastEnumUtility.FastEnum.GetValues<Colors> ().ToList ();
- string curSources = "";
- public string CurSources {
- get { return curSources; }
- set {
- if (value == curSources)
- return;
- curSources = value;
- NotifyValueChanged (curSources);
- }
- }
- bool boolVal = true;
- public bool BoolVal {
- get { return boolVal; }
- set {
- if (boolVal == value)
- return;
- boolVal = value;
- NotifyValueChanged (boolVal);
- }
- }
+ string curSources = "";
+ public string CurSources {
+ get { return curSources; }
+ set {
+ if (value == curSources)
+ return;
+ curSources = value;
+ NotifyValueChanged (curSources);
+ }
+ }
+ bool boolVal = true;
+ public bool BoolVal {
+ get { return boolVal; }
+ set {
+ if (boolVal == value)
+ return;
+ boolVal = value;
+ NotifyValueChanged (boolVal);
+ }
+ }
#endregion
- protected override void OnInitialized ()
- {
- Commands = new List<Command> {
- new Command(() => MessageBox.ShowModal(this, MessageBox.Type.Information, "context menu 1 clicked")) { Caption = "Action 1" },
- new Command(() => MessageBox.ShowModal(this, MessageBox.Type.Information, "context menu 2 clicked")) { Caption = "Action 2" },
- new Command(() => MessageBox.ShowModal(this, MessageBox.Type.Information, "context menu 3 clicked")) { Caption = "Action 3" }
- };
- base.OnInitialized ();
- }
+ protected override void OnInitialized () {
+ Commands = new List<Command> {
+ new Command(() => MessageBox.ShowModal(this, MessageBox.Type.Information, "context menu 1 clicked")) { Caption = "Action 1" },
+ new Command(() => MessageBox.ShowModal(this, MessageBox.Type.Information, "context menu 2 clicked")) { Caption = "Action 2" },
+ new Command(() => MessageBox.ShowModal(this, MessageBox.Type.Information, "context menu 3 clicked")) { Caption = "Action 3" }
+ };
+ base.OnInitialized ();
+ }
- public override bool OnKeyDown (Key key) {
-
- switch (key) {
- case Key.F5:
- Load ("Interfaces/Divers/testFileDialog.crow").DataSource = this;
- return true;
- case Key.F6:
- Load ("Interfaces/Divers/0.crow").DataSource = this;
- return true;
- case Key.F7:
- Load ("Interfaces/Divers/perfMeasures.crow").DataSource = this;
- return true;
- case Key.F2:
- if (IsKeyDown (Key.LeftShift))
- DbgLogger.Reset ();
- DbgLogger.Save (this);
- return true;
- }
- return base.OnKeyDown (key);
- }
- }
+ public override bool OnKeyDown (Key key) {
+
+ switch (key) {
+ case Key.F5:
+ Load ("Interfaces/Divers/testFileDialog.crow").DataSource = this;
+ return true;
+ case Key.F6:
+ Load ("Interfaces/Divers/0.crow").DataSource = this;
+ return true;
+ case Key.F7:
+ Load ("Interfaces/Divers/perfMeasures.crow").DataSource = this;
+ return true;
+ case Key.F2:
+ if (IsKeyDown (Key.LeftShift))
+ DbgLogger.Reset ();
+ DbgLogger.Save (this);
+ return true;
+ }
+ return base.OnKeyDown (key);
+ }
+ }
} \ No newline at end of file
diff --git a/Samples/common/ui/Interfaces/Divers/chess.crow b/Samples/common/ui/Interfaces/Divers/chess.crow
new file mode 100644
index 00000000..30b86d46
--- /dev/null
+++ b/Samples/common/ui/Interfaces/Divers/chess.crow
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<HorizontalStack Height="Fit" Background="vgradient|0:Grey|0.3:Jet|0.7:Jet|1:Black" VerticalAlignment="Bottom" Margin="10">
+ <CheckBox Caption="Hint" IsChecked="{²EnableHint}"/>
+ <Button Caption="Undo" MouseClick="onUndoClick"/>
+ <Button Caption="N" MouseClick="onNewGameClick"/>
+ <Button Caption="Options" MouseClick="onOptionsClick"/>
+ <Widget Width="Stretched" Height="1"/>
+ <Button Caption="Quit" MouseClick="onQuitClick"/>
+ <VerticalStack Style="hsStatus" >
+ <Label Style="labStatus" Text="State:"/>
+ <Label Style="labStatus2" Text="{CurrentState}" />
+ </VerticalStack >
+ <VerticalStack Style="hsStatus" >
+ <Label Style="labStatus" Text="Hover:"/>
+ <Label Style="labStatus2" Text="{SelCell}"/>
+ </VerticalStack>
+ <Image Width="30" Height="20" Path="#Crow.Icons.IconAlerte.svg" Visible="{StockfishNotFound}"/>
+ <Label Text="Stockfish not found" Font="droid bold, 10" Visible="{StockfishNotFound}"/>
+</HorizontalStack>