From 2097f4b4006e532e757ac2ff0d0c4999d1e3d79d Mon Sep 17 00:00:00 2001 From: Siddharth Dalal Date: Thu, 25 Mar 2021 13:48:00 -0400 Subject: [PATCH] Release 5.3.0 (#49) --- .../AuthenticationExample.csproj | 4 +- .../Properties/AssemblyInfo.cs | 4 +- AuthenticationExample/packages.config | 4 +- MultiWindowExample/App.xaml.cs | 13 +- MultiWindowExample/MultiWindowExample.csproj | 4 +- MultiWindowExample/Properties/AssemblyInfo.cs | 2 +- MultiWindowExample/packages.config | 2 +- WPFExample/Assets/ic_WPFLogo.png | Bin 0 -> 22301 bytes .../CustomControls/FinsembleButton.xaml | 49 ++ .../CustomControls/FinsembleButton.xaml.cs | 39 ++ .../CustomControls/FinsembleDropDown.xaml | 149 +++++ .../CustomControls/FinsembleDropDown.xaml.cs | 28 + WPFExample/CustomControls/FinsembleInput.xaml | 43 ++ .../CustomControls/FinsembleInput.xaml.cs | 28 + WPFExample/MainWindow.xaml | 80 ++- WPFExample/MainWindow.xaml.cs | 63 +- WPFExample/Properties/AssemblyInfo.cs | 4 +- WPFExample/WPFExample.csproj | 25 +- WPFExample/packages.config | 2 +- WindowlessExample/Properties/AssemblyInfo.cs | 4 +- WindowlessExample/WindowlessExample.csproj | 4 +- WindowlessExample/packages.config | 2 +- .../Controls/FinsembleInput.Designer.cs | 78 +++ WinformExample/Controls/FinsembleInput.cs | 46 ++ WinformExample/Controls/FinsembleInput.resx | 120 ++++ WinformExample/Controls/RoundedButton.cs | 146 +++++ .../Controls/RoundedSelect.Designer.cs | 87 +++ WinformExample/Controls/RoundedSelect.cs | 101 +++ WinformExample/Controls/RoundedSelect.resx | 120 ++++ WinformExample/FormExample.Designer.cs | 577 ++++++++++++------ WinformExample/FormExample.cs | 449 +++++++++----- WinformExample/Properties/AssemblyInfo.cs | 2 +- .../Properties/Resources.Designer.cs | 30 + WinformExample/Properties/Resources.resx | 10 + .../Resources/icons/chevron-arrow-down.png | Bin 0 -> 249 bytes .../Resources/icons/chevron-arrow-up.png | Bin 0 -> 245 bytes .../Resources/icons/winformsLogo.jpg | Bin 0 -> 4988 bytes WinformExample/WinformExample.csproj | 44 +- WinformExample/app.manifest | 2 +- WinformExample/packages.config | 2 +- .../Properties/AssemblyInfo.cs | 4 +- .../WinformMultiWindowExample.csproj | 4 +- WinformMultiWindowExample/app.manifest | 2 +- WinformMultiWindowExample/packages.config | 2 +- winformExample.json | 4 +- 45 files changed, 1941 insertions(+), 442 deletions(-) create mode 100644 WPFExample/Assets/ic_WPFLogo.png create mode 100644 WPFExample/CustomControls/FinsembleButton.xaml create mode 100644 WPFExample/CustomControls/FinsembleButton.xaml.cs create mode 100644 WPFExample/CustomControls/FinsembleDropDown.xaml create mode 100644 WPFExample/CustomControls/FinsembleDropDown.xaml.cs create mode 100644 WPFExample/CustomControls/FinsembleInput.xaml create mode 100644 WPFExample/CustomControls/FinsembleInput.xaml.cs create mode 100644 WinformExample/Controls/FinsembleInput.Designer.cs create mode 100644 WinformExample/Controls/FinsembleInput.cs create mode 100644 WinformExample/Controls/FinsembleInput.resx create mode 100644 WinformExample/Controls/RoundedButton.cs create mode 100644 WinformExample/Controls/RoundedSelect.Designer.cs create mode 100644 WinformExample/Controls/RoundedSelect.cs create mode 100644 WinformExample/Controls/RoundedSelect.resx create mode 100644 WinformExample/Resources/icons/chevron-arrow-down.png create mode 100644 WinformExample/Resources/icons/chevron-arrow-up.png create mode 100644 WinformExample/Resources/icons/winformsLogo.jpg diff --git a/AuthenticationExample/AuthenticationExample.csproj b/AuthenticationExample/AuthenticationExample.csproj index e5e69b5..a59395d 100644 --- a/AuthenticationExample/AuthenticationExample.csproj +++ b/AuthenticationExample/AuthenticationExample.csproj @@ -89,8 +89,8 @@ ..\packages\EventHook.1.4.105\lib\net45\EventHook.dll - - ..\packages\Finsemble.5.2.0\lib\net452\Finsemble.dll + + ..\packages\Finsemble.5.3.0\lib\net452\Finsemble.dll ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll diff --git a/AuthenticationExample/Properties/AssemblyInfo.cs b/AuthenticationExample/Properties/AssemblyInfo.cs index 9cdc56f..8d94662 100644 --- a/AuthenticationExample/Properties/AssemblyInfo.cs +++ b/AuthenticationExample/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("5.2.0.0")] -[assembly: AssemblyFileVersion("5.2.0.0")] +[assembly: AssemblyVersion("5.3.0.0")] +[assembly: AssemblyFileVersion("5.3.0.0")] diff --git a/AuthenticationExample/packages.config b/AuthenticationExample/packages.config index 7cab62a..16c9458 100644 --- a/AuthenticationExample/packages.config +++ b/AuthenticationExample/packages.config @@ -3,8 +3,8 @@ - - + + diff --git a/MultiWindowExample/App.xaml.cs b/MultiWindowExample/App.xaml.cs index ecb5484..be85146 100644 --- a/MultiWindowExample/App.xaml.cs +++ b/MultiWindowExample/App.xaml.cs @@ -1,14 +1,13 @@ -using System; +using ChartIQ.Finsemble; +using Microsoft.Shell; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Reflection; + using System.Threading; using System.Windows; using System.Windows.Threading; -using ChartIQ.Finsemble; -using Microsoft.Shell; - namespace MultiWindowExample { /// @@ -138,7 +137,7 @@ private static bool LaunchWindow(IList args) if (window == null) { - Debug.Write($"Could not create window: {name}"); + Debug.Print($"Could not create window: {name}"); } else { @@ -150,7 +149,7 @@ private static bool LaunchWindow(IList args) IIntegratable fsblWin = window as IIntegratable; if (fsblWin == null) { - Debug.Write($"The window \"{name}\" is not a window that can be integrated into Finsemble."); + Debug.Print($"The window \"{name}\" is not a window that can be integrated into Finsemble."); } else { diff --git a/MultiWindowExample/MultiWindowExample.csproj b/MultiWindowExample/MultiWindowExample.csproj index 17e1acb..2159dcc 100644 --- a/MultiWindowExample/MultiWindowExample.csproj +++ b/MultiWindowExample/MultiWindowExample.csproj @@ -49,8 +49,8 @@ ..\packages\EventHook.1.4.105\lib\net45\EventHook.dll - - ..\packages\Finsemble.5.2.0\lib\net452\Finsemble.dll + + ..\packages\Finsemble.5.3.0\lib\net452\Finsemble.dll ..\packages\log4net.2.0.8\lib\net45-full\log4net.dll diff --git a/MultiWindowExample/Properties/AssemblyInfo.cs b/MultiWindowExample/Properties/AssemblyInfo.cs index 5a7809a..c2230f4 100644 --- a/MultiWindowExample/Properties/AssemblyInfo.cs +++ b/MultiWindowExample/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("5.2.0.0")] +[assembly: AssemblyVersion("5.3.0.0")] [assembly: AssemblyFileVersion("5.2.0.0")] diff --git a/MultiWindowExample/packages.config b/MultiWindowExample/packages.config index 3baf63b..a2d66ee 100644 --- a/MultiWindowExample/packages.config +++ b/MultiWindowExample/packages.config @@ -3,7 +3,7 @@ - + diff --git a/WPFExample/Assets/ic_WPFLogo.png b/WPFExample/Assets/ic_WPFLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..039888f001d89ccf3d987fa6929c10c608f19998 GIT binary patch literal 22301 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

|ip069hg|gE17Kr_1F_*f)|QO^OVrAB|@;+bn;W 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 kZ-`E`JzStesw5&WlB`7dZM} z63#+I_(ji_+GF{%k}A496g?vf4NRc1$^8vd4!iWVe6Bs9sihJp`INvvQZW?FOes2` zYA|(uasFBKz|ZHVGxaHKr@;M~tJG76*sHYr^?^6~dP)6{@L}MN z%D8i%$2MiDkr(pGK*L&t3ZXjJz77sN>-xzmF;J+SaImUv0eF_^MYgDP{I)+~P zU_4&5&W;2fFe@X%&o#-YmF0ix-2AQA`R11!6X&Q2ImlFj#!k0leW}0sZsgja>!gU-SHXGOEPx9jLV7gPnvds=enscVuPCEhf z8Q;xhxFVtIl**|M0Cb3vi({)J*?u;U*_~crP`&zM3E9_5#odU+E+CQoPxozZp-O_< zh$4m=2t!^!6K=^M-l$&jMc&I|jfpkhzJ(E;e|ENs%u08-FngpeGp4i&#l zEztbet}anQ@S3sN@M}p@IZ)5-nh&s}iLoiUu3kXnB8uxXhUJ?%-ZG#kBMSSOk*wcN zTw*gaG~dSimenkXvKqtzjS#BI8JuJ9^hX@|<&(eSEvn}4a9|h8)zx=kINAoY)SEx^ zPI+JTnogGmPqBU3S4fh`{FlmK_<(M00p9 zr5Vd}Ulqw;CX$PMCtCbBa|Db2!w!Jue(nXh+=jQB>ym)bKCR3J@_X9vPWdYy4TVo~ zRlIRSca+A4qX~yI^j`9{GBpAh45O9R(VcajgU0SI_EeWfF(3rnsfoL6?-C3l!zat!qnhRSV`i z&9c<1agpCb_pXJ^vBJi;r|^RYJdRDHe{FcqS+XwYhgF!4+C_kY(+l)kuBIyNH43@;j{6>b5Pl5gZVbECQ|f3vLq{11@%M^4Z8FZ7irZU zsxPl)J@S`bi@9SqYto?VdpMR&O$h}b$R3r=F=v=pjW}R;l;`C(?ftnbZGyIW%9kTc zKYnkjgnQWNWLea8A9Np3KYT_-hITooQ)g@8ptK=Vb&Lsw2V?c@m$rC}VdC*GC>pUA zZ#sn+JI2f~n|wl@?tQ-fSuTsUccY%*?c^t94;XFP$GM^Jn=6o?Fq&lQxrK&>)h-v} zZoYAm!5v$_GUh9^rKRrRUH$t#9h{vK*>wJ>DZc9r2qX_KcX6gfP=`>XbOA~Im05bz zL;Bk8`ZB{YR}i3TKxO#=OCVJ0VoS`!IE0JxF1WK?Z2jFVgqL)}~cN^lK z#Ou?0_6imi)_iMfvb7!2>wzf0G_u;$bJLicx<-o5D9446wYAvudiHFvhil}k&td32 z1dCyHP$iv&*B5c(NHnBG@#H~zv zjk@Fv<-fwLC-wF`M`PGl7-7v@m>h^65(ko%Gj~i zHZQ!joo5VANN{vG>#P{t42{h#j)3WR#T&!U#MnwZ*$S#>lfIBx%*$oDrmn8;!OSnM#&|4m39a6N4&&Vk}Br7Q@7EEyV#&V3-H!sRfcpU>hV8ium zV&fGm)M>o-pogCLO(9q|y!z+CTHC3|A$}lo$y+5wwRw)+Z#rPC!Si3aAxT!_zX5A{yF=vw&0qi08bA!`BIG_G2U9VZh)8@~aItNRj z2%evEupM|;+S7u{gy$kmT{|(Uz0c2`i0Xfo#NsE;W55;=#fc$%a6S;+bk>-NiJ5Ls z@|A%7aoo19DbPU_^6|t#)ZVThFYqDZ=312Ux$bDja$#v-nXZ(mqnki9 zA;Y0+RNG#c2&`br2YER7dS7OGD>uAhWU&FXsg#cq-D@~~(G0W5-8A5$*-z7b;vdvD zx?|k_<1LyE|Btukf4}^{(dhrV(dhre_*L}kE{$QE{`11$R@ME0rR_Pxd#1V-+V(O3 E2H1!$g#Z8m literal 0 HcmV?d00001 diff --git a/WPFExample/CustomControls/FinsembleButton.xaml b/WPFExample/CustomControls/FinsembleButton.xaml new file mode 100644 index 0000000..d8074fe --- /dev/null +++ b/WPFExample/CustomControls/FinsembleButton.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + diff --git a/WPFExample/CustomControls/FinsembleButton.xaml.cs b/WPFExample/CustomControls/FinsembleButton.xaml.cs new file mode 100644 index 0000000..7b99872 --- /dev/null +++ b/WPFExample/CustomControls/FinsembleButton.xaml.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace WPFExample.CustomControls +{ + ///

+ /// Interaction logic for FinsembleButton.xaml + /// + public partial class FinsembleButton : UserControl + { + public event EventHandler Click; + + public string ButtonContent { get; set; } + public FinsembleButton() + { + InitializeComponent(); + this.DataContext = this; + } + + private void Button_OnClick(object sender, RoutedEventArgs e) + { + var eventHandler = this.Click; + + eventHandler?.Invoke(this, e); + } + } +} diff --git a/WPFExample/CustomControls/FinsembleDropDown.xaml b/WPFExample/CustomControls/FinsembleDropDown.xaml new file mode 100644 index 0000000..44504bc --- /dev/null +++ b/WPFExample/CustomControls/FinsembleDropDown.xaml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WPFExample/CustomControls/FinsembleDropDown.xaml.cs b/WPFExample/CustomControls/FinsembleDropDown.xaml.cs new file mode 100644 index 0000000..8b14000 --- /dev/null +++ b/WPFExample/CustomControls/FinsembleDropDown.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace WPFExample.CustomControls +{ + /// + /// Interaction logic for FinsembleDropDown.xaml + /// + public partial class FinsembleDropDown : UserControl + { + public FinsembleDropDown() + { + InitializeComponent(); + } + } +} diff --git a/WPFExample/CustomControls/FinsembleInput.xaml b/WPFExample/CustomControls/FinsembleInput.xaml new file mode 100644 index 0000000..2c70480 --- /dev/null +++ b/WPFExample/CustomControls/FinsembleInput.xaml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + diff --git a/WPFExample/CustomControls/FinsembleInput.xaml.cs b/WPFExample/CustomControls/FinsembleInput.xaml.cs new file mode 100644 index 0000000..2fe927d --- /dev/null +++ b/WPFExample/CustomControls/FinsembleInput.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace WPFExample.CustomControls +{ + /// + /// Interaction logic for FinsembleInput.xaml + /// + public partial class FinsembleInput : UserControl + { + public FinsembleInput() + { + InitializeComponent(); + } + } +} diff --git a/WPFExample/MainWindow.xaml b/WPFExample/MainWindow.xaml index 3c2ac7c..d575f52 100644 --- a/WPFExample/MainWindow.xaml +++ b/WPFExample/MainWindow.xaml @@ -5,33 +5,71 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WPFExample" xmlns:Finsemble="clr-namespace:ChartIQ.Finsemble;assembly=Finsemble" + xmlns:customControls="clr-namespace:WPFExample.CustomControls" xmlns:Custom="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon" x:Class="WPFExample.MainWindow" mc:Ignorable="d" - Title="MainWindow" Height="350" - Width="525" WindowStyle="None" Background="{x:Null}" + Title="MainWindow" Height="600" + Width="600" WindowStyle="None" Background="{x:Null}" AllowsTransparency="True"> - - + - - - - -