diff --git a/EpdBase/EpdBase.vcxproj b/EpdBase/EpdBase.vcxproj
index 4262bea..033330a 100644
--- a/EpdBase/EpdBase.vcxproj
+++ b/EpdBase/EpdBase.vcxproj
@@ -35,7 +35,7 @@
Unicode
- DynamicLibrary
+ StaticLibrary
false
v141
true
@@ -49,7 +49,7 @@
Unicode
- DynamicLibrary
+ StaticLibrary
false
v141
true
diff --git a/eDos.sln b/eDos.sln
index 5f89985..577aba3 100644
--- a/eDos.sln
+++ b/eDos.sln
@@ -9,8 +9,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestEdosBase", "TestEdosBas
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDirect", "TestDirect\TestDirect.vcxproj", "{3655B312-F7C2-4825-BD5F-E087F6AF2D90}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosStationApp", "eDosStationApp\eDosStationApp.vcxproj", "{A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eDosStation", "eDosStation\eDosStation.csproj", "{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBaseClr", "EpdBaseClr\EpdBaseClr.vcxproj", "{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}"
@@ -40,6 +38,7 @@ Global
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.ActiveCfg = Debug|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.Build.0 = Debug|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.ActiveCfg = Release|Win32
+ {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.Build.0 = Release|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM.ActiveCfg = Release|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM64.ActiveCfg = Release|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x64.ActiveCfg = Release|x64
@@ -59,7 +58,6 @@ Global
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.ActiveCfg = Release|x64
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.Build.0 = Release|x64
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x86.ActiveCfg = Release|Win32
- {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x86.Build.0 = Release|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|Any CPU.ActiveCfg = Debug|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM.ActiveCfg = Debug|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM64.ActiveCfg = Debug|Win32
@@ -73,33 +71,6 @@ Global
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.ActiveCfg = Release|x64
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.Build.0 = Release|x64
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x86.ActiveCfg = Release|Win32
- {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x86.Build.0 = Release|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|ARM.ActiveCfg = Debug|ARM
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|ARM.Build.0 = Debug|ARM
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|ARM.Deploy.0 = Debug|ARM
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|ARM64.Build.0 = Debug|ARM64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|ARM64.Deploy.0 = Debug|ARM64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|x64.ActiveCfg = Debug|x64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|x64.Build.0 = Debug|x64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|x64.Deploy.0 = Debug|x64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|x86.ActiveCfg = Debug|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|x86.Build.0 = Debug|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Debug|x86.Deploy.0 = Debug|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|Any CPU.ActiveCfg = Release|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|ARM.ActiveCfg = Release|ARM
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|ARM.Build.0 = Release|ARM
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|ARM.Deploy.0 = Release|ARM
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|ARM64.ActiveCfg = Release|ARM64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|ARM64.Build.0 = Release|ARM64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|ARM64.Deploy.0 = Release|ARM64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|x64.ActiveCfg = Release|x64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|x64.Build.0 = Release|x64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|x64.Deploy.0 = Release|x64
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|x86.ActiveCfg = Release|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|x86.Build.0 = Release|Win32
- {A9A6D31B-34F4-47E4-BD05-2294C9A7B4DC}.Release|x86.Deploy.0 = Release|Win32
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -129,6 +100,7 @@ Global
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.ActiveCfg = Debug|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.Build.0 = Debug|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.ActiveCfg = Release|Win32
+ {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.Build.0 = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM.ActiveCfg = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM64.ActiveCfg = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x64.ActiveCfg = Release|x64
@@ -136,6 +108,7 @@ Global
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.ActiveCfg = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.Build.0 = Release|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.Build.0 = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM.ActiveCfg = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM64.ActiveCfg = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x64.ActiveCfg = Debug|x64
@@ -143,6 +116,7 @@ Global
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x86.ActiveCfg = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x86.Build.0 = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.ActiveCfg = Release|Win32
+ {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.Build.0 = Release|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM.ActiveCfg = Release|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM64.ActiveCfg = Release|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x64.ActiveCfg = Release|x64
diff --git a/eDosStation/Properties/AssemblyInfo.cs b/eDosStation/Properties/AssemblyInfo.cs
index 70af0cf..633dd2a 100644
--- a/eDosStation/Properties/AssemblyInfo.cs
+++ b/eDosStation/Properties/AssemblyInfo.cs
@@ -12,7 +12,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("eDosStation")]
-[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyCopyright("Copyright © 2019 Luc Vandenbroucke")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/eDosStation/eDosStation.csproj b/eDosStation/eDosStation.csproj
index 6e5e582..f5c9fb5 100644
--- a/eDosStation/eDosStation.csproj
+++ b/eDosStation/eDosStation.csproj
@@ -15,7 +15,7 @@
true
true
false
- \\scksrv1\sckcen\DOKUMENT\idpbw\TOESTELLEN\REMSnew\eDosStation\
+ publish\
true
Unc
true
@@ -25,12 +25,9 @@
false
false
true
- true
- publish.htm
- 4
+ 5
1.0.0.%2a
- false
- true
+ true
true
@@ -42,6 +39,7 @@
DEBUG;TRACE
prompt
4
+ true
AnyCPU
@@ -51,6 +49,7 @@
TRACE
prompt
4
+ true
CFFDCEC5D1541D1BA185CEE6003129CB1EFB31A4
@@ -59,10 +58,26 @@
eDosStation_TemporaryKey.pfx
- true
+ false
- true
+ false
+
+
+
+ eDosStation.exe.manifest
+
+
+ mk2-epd-bg.ico
+
+
+ true
+
+
+ eDosStation_TemporaryKey.pfx
+
+
+ LocalIntranet
@@ -201,6 +216,7 @@
DataSet1.xsd
+
Always
@@ -243,6 +259,7 @@
Always
+
\ No newline at end of file
diff --git a/eDosStation/eDosStation.csproj.user b/eDosStation/eDosStation.csproj.user
index a591446..f6ae38a 100644
--- a/eDosStation/eDosStation.csproj.user
+++ b/eDosStation/eDosStation.csproj.user
@@ -4,7 +4,7 @@
true
- \\scksrv1\sckcen\DOKUMENT\idpbw\TOESTELLEN\REMSnew\eDosStation\
+ publish\|\\scksrv1\sckcen\DOKUMENT\idpbw\TOESTELLEN\REMSnew\eDosStation\
diff --git a/eDosStation/eDosStation.exe.manifest b/eDosStation/eDosStation.exe.manifest
new file mode 100644
index 0000000..493f253
--- /dev/null
+++ b/eDosStation/eDosStation.exe.manifest
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ E/KnitRVP+ei1Vaej6cjgpa1UffqBnKO1GR2aegGDpE=
+
+
+
+
+
+
+
+
+
+
+
+ B+dDaIFlJR3Kh3p2ZQqFT/O6anyZ4lBODeH0tLZ86yk=
+
+
+
+
+
+
+
+
+
+
+
+ 2YySM+py+MGdwxX41WzJhVU94695DaB25+HuYoOWGuM=
+
+
+
+
+
+
+
+
+
+
+
+ 61gldXt7lQcqzpoKJJ3FYFEVyEVZuSBpuvSt8+VULVE=
+
+
+
+
+
+
+
+
+
+
+
+ vpxYl0EJN+YP9kswpZw+w1o6CeI2zdgDhFce+EOp464=
+
+
+
+
+
+
+
+
+
+
+
+ ATonc010MtM11S0pCS5rTLHmU/6vUCjPhUXeeDnHQUs=
+
+
+
+
+
+
+
+
+
+
+
+ IIp9LmNDdkHUuUYin9QpGwUS2ni+q+TAFksAcTi4RT4=
+
+
+
+
+
+
+
+
+
+
+
+ u1S/AULtO4oO34Bo3xv3ZCn+PH4w6KVEznss6mTYk8Y=
+
+
+
+
+
+
+
+
+
+
+
+ Buft+iq3jMIcfpS4VvBK9BFbYTnLjfk41avcprqvguY=
+
+
+
+
+
+
+
+
+
+
+
+ 7PrZk3sb54UQ+16RPCpjdnTDtNM91HO8tEZsXg4V3as=
+
+
+
+
+
+
+
+
+
+
+
+ +sOWwhguGw0q5U/g1J81rwh92LbN7TTL06lu+jH7mTE=
+
+
+
+
+
+
+
+
+
+
+
+ 628J8Le92HH34eAO4ZHN6qwpo7JNeas0hvJUYFPeRoc=
+
+
+
+
+
+
+
+
+
+
+
+ 1hKhobNYAooFlQciVJEDihh7UZl8hv69oBdDuiusKYI=
+
+
+
+
+
+
+
+
+
+
+
+ t0YURM1GhZsJiywm4JrwBucY2SH5KSalyHJ9qJjB4mI=
+
+
+
+
+
+
+
+
+
+ ecXdauTc0cvrZAfCWBp5vzOJP4rw4S6/gvqE4uwVarM=
+
+
+
+
+
+
+
+
+ Dmc2XekRBEwqdOzPDxZ4jAKTn5iN7re86aA5JJlDgis=
+
+
+
\ No newline at end of file
diff --git a/eDosStation/mk2-epd-bg.ico b/eDosStation/mk2-epd-bg.ico
new file mode 100644
index 0000000..9d38d12
Binary files /dev/null and b/eDosStation/mk2-epd-bg.ico differ
diff --git a/eDosStationApp/Generated Files/App.g.h b/eDosStationApp/Generated Files/App.g.h
deleted file mode 100644
index ba11c5e..0000000
--- a/eDosStationApp/Generated Files/App.g.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-//------------------------------------------------------------------------------
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//------------------------------------------------------------------------------
-
-#include "XamlTypeInfo.g.h"
-
-namespace eDosStationApp
-{
- partial ref class App : public ::Windows::UI::Xaml::Application,
- public ::Windows::UI::Xaml::Markup::IXamlMetadataProvider
- {
- public:
- void InitializeComponent();
- [::Windows::Foundation::Metadata::DefaultOverload]
- virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Windows::UI::Xaml::Interop::TypeName type);
- virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Platform::String^ fullName);
- virtual ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ GetXmlnsDefinitions();
- private:
- ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ __provider;
- bool _contentLoaded;
- property ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _AppProvider
- {
- ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ get();
- }
- };
-}
-
diff --git a/eDosStationApp/Generated Files/DirectXPage.g.h b/eDosStationApp/Generated Files/DirectXPage.g.h
deleted file mode 100644
index 94446b6..0000000
--- a/eDosStationApp/Generated Files/DirectXPage.g.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#pragma once
-//------------------------------------------------------------------------------
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//------------------------------------------------------------------------------
-
-
-namespace Windows {
- namespace UI {
- namespace Xaml {
- namespace Controls {
- ref class SwapChainPanel;
- ref class AppBar;
- }
- }
- }
-}
-
-namespace eDosStationApp
-{
- [::Windows::Foundation::Metadata::WebHostHidden]
- partial ref class DirectXPage : public ::Windows::UI::Xaml::Controls::Page,
- public ::Windows::UI::Xaml::Markup::IComponentConnector,
- public ::Windows::UI::Xaml::Markup::IComponentConnector2
- {
- public:
- void InitializeComponent();
- virtual void Connect(int connectionId, ::Platform::Object^ target);
- virtual ::Windows::UI::Xaml::Markup::IComponentConnector^ GetBindingConnector(int connectionId, ::Platform::Object^ target);
-
- private:
- void UnloadObject(::Windows::UI::Xaml::DependencyObject^ dependencyObject);
- void DisconnectUnloadedObject(int connectionId);
-
- private:
- bool _contentLoaded;
-
-
- private: ::Windows::UI::Xaml::Controls::SwapChainPanel^ swapChainPanel;
- private: ::Windows::UI::Xaml::Controls::AppBar^ bottomAppBar;
- };
-}
-
diff --git a/eDosStationApp/Generated Files/XamlBindingInfo.g.h b/eDosStationApp/Generated Files/XamlBindingInfo.g.h
deleted file mode 100644
index 1cf740d..0000000
--- a/eDosStationApp/Generated Files/XamlBindingInfo.g.h
+++ /dev/null
@@ -1,265 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-#pragma once
-
-namespace XamlBindingInfo
-{
- ref class XamlBindings;
-
- class IXamlBindings
- {
- public:
- virtual ~IXamlBindings() {};
- virtual bool IsInitialized() = 0;
- virtual void Update() = 0;
- virtual bool SetDataRoot(::Platform::Object^ data) = 0;
- virtual void StopTracking() = 0;
- virtual void Connect(int connectionId, ::Platform::Object^ target) = 0;
- virtual void Recycle() = 0;
- virtual void ProcessBindings(::Platform::Object^ item, int itemIndex, int phase, int* nextPhase) = 0;
- virtual void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object, ::XamlBindingInfo::XamlBindings^ handler) = 0;
- virtual void DisconnectUnloadedObject(int connectionId) = 0;
- };
-
- class IXamlBindingTracking
- {
- public:
- virtual void PropertyChanged(Platform::Object^ sender, ::Windows::UI::Xaml::Data::PropertyChangedEventArgs^ e) = 0;
- virtual void CollectionChanged(::Platform::Object^ sender, ::Windows::UI::Xaml::Interop::NotifyCollectionChangedEventArgs^ e) = 0;
- virtual void DependencyPropertyChanged(::Windows::UI::Xaml::DependencyObject^ sender, Windows::UI::Xaml::DependencyProperty^ prop) = 0;
- virtual void VectorChanged(::Platform::Object^ sender, ::Windows::Foundation::Collections::IVectorChangedEventArgs^ e) = 0;
- virtual void MapChanged(::Platform::Object^ sender, ::Windows::Foundation::Collections::IMapChangedEventArgs<::Platform::String^>^ e) = 0;
- };
-
- ref class XamlBindings sealed :
- ::Windows::UI::Xaml::IDataTemplateExtension,
- ::Windows::UI::Xaml::Markup::IComponentConnector,
- ::Windows::UI::Xaml::Markup::IDataTemplateComponent
- {
- internal:
- XamlBindings(::XamlBindingInfo::IXamlBindings* pBindings);
- void Initialize();
- void Update();
- void StopTracking();
- void Loading(::Windows::UI::Xaml::FrameworkElement^ src, ::Platform::Object^ data);
- void DataContextChanged(::Windows::UI::Xaml::FrameworkElement^ sender, ::Windows::UI::Xaml::DataContextChangedEventArgs^ args);
- void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object);
-
- public:
- // IComponentConnector
- virtual void Connect(int connectionId, ::Platform::Object^ target);
-
- // IDataTemplateComponent
- virtual void ProcessBindings(::Platform::Object^ item, int itemIndex, int phase, int* nextPhase);
- virtual void Recycle();
-
- // IDataTemplateExtension
- virtual bool ProcessBinding(unsigned int);
- virtual int ProcessBindings(::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs^ args);
- virtual void ResetTemplate();
-
- virtual void DisconnectUnloadedObject(int connectionId);
- private:
- ~XamlBindings();
- ::XamlBindingInfo::IXamlBindings* _pBindings = nullptr;
- };
-
- template
- class XamlBindingsBase : public IXamlBindings
- {
- protected:
- bool _isInitialized;
- TBindingsTracking^ _bindingsTracking;
- ::Windows::Foundation::EventRegistrationToken _dataContextChangedToken;
- static const int NOT_PHASED = (1 << 31);
- static const int DATA_CHANGED = (1 << 30);
-
- protected:
- XamlBindingsBase()
- : _isInitialized(false)
- , _bindingsTracking(nullptr)
- {
- _dataContextChangedToken.Value = 0;
- }
-
- virtual ~XamlBindingsBase()
- {
- if (_bindingsTracking != nullptr)
- {
- _bindingsTracking->SetListener(nullptr);
- _bindingsTracking = nullptr;
- }
- }
-
- virtual void ReleaseAllListeners()
- {
- // Overridden in the binding class as needed.
- }
-
- public:
- void InitializeTracking(::XamlBindingInfo::IXamlBindingTracking* pBindingsTracking)
- {
- _bindingsTracking = ref new TBindingsTracking();
- _bindingsTracking->SetListener(pBindingsTracking);
- }
-
- virtual void StopTracking() override
- {
- ReleaseAllListeners();
- this->_isInitialized = false;
- }
-
- virtual bool IsInitialized() override
- {
- return this->_isInitialized;
- }
-
- virtual void Update() = 0;
-
- void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object, ::XamlBindingInfo::XamlBindings^ handler)
- {
- this->_dataContextChangedToken = object->DataContextChanged +=
- ref new Windows::Foundation::TypedEventHandler<::Windows::UI::Xaml::FrameworkElement^, ::Windows::UI::Xaml::DataContextChangedEventArgs^>(
- handler, &::XamlBindingInfo::XamlBindings::DataContextChanged);
- }
-
- virtual void Connect(int connectionId, ::Platform::Object^ target) = 0;
-
- virtual void Recycle()
- {
- // Overridden in the binding class as needed.
- }
-
- virtual void ProcessBindings(::Platform::Object^, int, int, int* nextPhase)
- {
- // Overridden in the binding class as needed.
- *nextPhase = -1;
- }
- };
-
- ref class XamlBindingTrackingBase
- {
- internal:
- XamlBindingTrackingBase();
- void SetListener(::XamlBindingInfo::IXamlBindingTracking* pBindings);
-
- // Event handlers
- void PropertyChanged(Platform::Object^ sender, ::Windows::UI::Xaml::Data::PropertyChangedEventArgs^ e);
- void CollectionChanged(::Platform::Object^ sender, ::Windows::UI::Xaml::Interop::NotifyCollectionChangedEventArgs^ e);
- void DependencyPropertyChanged(::Windows::UI::Xaml::DependencyObject^ sender, Windows::UI::Xaml::DependencyProperty^ prop);
- void VectorChanged(::Platform::Object^ sender, ::Windows::Foundation::Collections::IVectorChangedEventArgs^ e);
- void MapChanged(::Platform::Object^ sender, ::Windows::Foundation::Collections::IMapChangedEventArgs<::Platform::String^>^ e);
-
- // Listener update functions
- void UpdatePropertyChangedListener(::Windows::UI::Xaml::Data::INotifyPropertyChanged^ obj, ::Windows::UI::Xaml::Data::INotifyPropertyChanged^* pCache, ::Windows::Foundation::EventRegistrationToken* pToken);
- void UpdatePropertyChangedListener(::Windows::UI::Xaml::Data::INotifyPropertyChanged^ obj, ::Platform::WeakReference& cacheRef, ::Windows::Foundation::EventRegistrationToken* pToken);
- void UpdateCollectionChangedListener(::Windows::UI::Xaml::Interop::INotifyCollectionChanged^ obj, ::Windows::UI::Xaml::Interop::INotifyCollectionChanged^* pCache, ::Windows::Foundation::EventRegistrationToken* pToken);
- void UpdateDependencyPropertyChangedListener(::Windows::UI::Xaml::DependencyObject^ obj, Windows::UI::Xaml::DependencyProperty^ property, ::Windows::UI::Xaml::DependencyObject^* pCache, __int64* pToken);
- void UpdateDependencyPropertyChangedListener(::Windows::UI::Xaml::DependencyObject^ obj, Windows::UI::Xaml::DependencyProperty^ property, ::Platform::WeakReference& cacheRef, __int64* pToken);
-
- private:
- ::XamlBindingInfo::IXamlBindingTracking* _pBindingsTrackingWeakRef = nullptr;
- };
-
- template
- struct ResolveHelper
- {
- static T^ Resolve(const ::Platform::WeakReference& wr)
- {
- return wr.Resolve();
- }
- };
-
- template <>
- struct ResolveHelper<::Platform::String>
- {
- typedef ::Platform::IBox<::Platform::String^> ResolveType;
-
- static ::Platform::String^ Resolve(const ::Platform::WeakReference& wr)
- {
- return safe_cast<::Platform::String^>(wr.Resolve());
- }
-
- };
-
- template
- class ReferenceTypeXamlBindings : public XamlBindingsBase
- {
- private:
- ::Platform::WeakReference _dataRoot;
-
- protected:
- ReferenceTypeXamlBindings() {}
-
- virtual void Update_(T^, int)
- {
- // Overridden in the binding class as needed.
- }
-
- public:
- T^ GetDataRoot()
- {
- return ResolveHelper::Resolve(this->_dataRoot);
- }
-
- bool SetDataRoot(::Platform::Object^ data)
- {
- if (data != nullptr)
- {
- this->_dataRoot = data;
- return true;
- }
- return false;
- }
-
- virtual void Update() override
- {
- this->Update_(this->GetDataRoot(), this->NOT_PHASED);
- this->_isInitialized = true;
- }
- };
-
- template
- class ValueTypeXamlBindings : public XamlBindingsBase
- {
- private:
- T _dataRoot;
-
- protected:
- ValueTypeXamlBindings() {}
-
- virtual void Update_(T, int)
- {
- // Overridden in the binding class as needed.
- }
-
- public:
- T GetDataRoot()
- {
- return this->_dataRoot;
- }
-
- bool SetDataRoot(::Platform::Object^ data)
- {
- if (data != nullptr)
- {
- this->_dataRoot = safe_cast(data);
- return true;
- }
- return false;
- }
-
- virtual void Update() override
- {
- this->Update_(this->GetDataRoot(), this->NOT_PHASED);
- this->_isInitialized = true;
- }
- };
-}
-
diff --git a/eDosStationApp/Generated Files/XamlLibMetadataProvider.g.cpp b/eDosStationApp/Generated Files/XamlLibMetadataProvider.g.cpp
deleted file mode 100644
index 0d57f45..0000000
--- a/eDosStationApp/Generated Files/XamlLibMetadataProvider.g.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-
-#include "pch.h"
diff --git a/eDosStationApp/Generated Files/XamlTypeInfo.Impl.g.cpp b/eDosStationApp/Generated Files/XamlTypeInfo.Impl.g.cpp
deleted file mode 100644
index 4fe16df..0000000
--- a/eDosStationApp/Generated Files/XamlTypeInfo.Impl.g.cpp
+++ /dev/null
@@ -1,634 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-#include "pch.h"
-#include
-#include "XamlTypeInfo.g.h"
-
-
-// XamlMetaDataProvider
-namespace eDosStationApp
-{
- namespace eDosStationApp_XamlTypeInfo
- {
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class XamlMetaDataProvider sealed : public ::Windows::UI::Xaml::Markup::IXamlMetadataProvider
- {
- public:
- [::Windows::Foundation::Metadata::DefaultOverload]
- virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Windows::UI::Xaml::Interop::TypeName type);
- virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Platform::String^ fullName);
- virtual ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ GetXmlnsDefinitions();
-
- private:
- ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider;
- property ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ Provider
- {
- ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ get();
- }
- };
- }
-}
-
-[::Windows::Foundation::Metadata::DefaultOverload]
-::Windows::UI::Xaml::Markup::IXamlType^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::GetXamlType(::Windows::UI::Xaml::Interop::TypeName type)
-{
- return Provider->GetXamlTypeByType(type);
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::GetXamlType(Platform::String^ fullName)
-{
- return Provider->GetXamlTypeByName(fullName);
-}
-
-Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::GetXmlnsDefinitions()
-{
- return ref new Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>(0);
-}
-
-::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::Provider::get()
-{
- if (_provider == nullptr)
- {
- _provider = ref new XamlTypeInfo::InfoProvider::XamlTypeInfoProvider();
- }
- return _provider;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName type)
-{
- auto xamlType = GetXamlTypeByName(type.Name);
- ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType);
- if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType))
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForType(type);
- if (libXamlType != nullptr)
- {
- if(libXamlType->IsConstructible || xamlType == nullptr)
- {
- xamlType = libXamlType;
- }
- }
- }
- return xamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByName(::Platform::String^ typeName)
-{
- if (typeName == nullptr || typeName->IsEmpty())
- {
- return nullptr;
- }
-
- auto lock = _xamlTypesCriticalSection.Lock();
- auto val = _xamlTypes.find(typeName);
- ::Windows::UI::Xaml::Markup::IXamlType^ xamlType = nullptr;
- if (val != _xamlTypes.end())
- {
- xamlType = (val->second).Resolve<::Windows::UI::Xaml::Markup::IXamlType>();
- if(xamlType != nullptr)
- {
- return xamlType;
- }
- }
-
- xamlType = CreateXamlType(typeName);
- ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType);
- if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType))
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForName(typeName);
- if (libXamlType != nullptr)
- {
- if(libXamlType->IsConstructible || xamlType == nullptr)
- {
- xamlType = libXamlType;
- }
- }
- }
-
-
- if (xamlType != nullptr)
- {
- Platform::WeakReference wr(xamlType);
- _xamlTypes[xamlType->FullName] = wr;
- }
- return xamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetMemberByLongName(::Platform::String^ longMemberName)
-{
- if (longMemberName == nullptr || longMemberName->IsEmpty())
- {
- return nullptr;
- }
-
- auto lock = _xamlMembersCriticalSection.Lock();
- auto val = _xamlMembers.find(longMemberName);
- if (val != _xamlMembers.end())
- {
- return val->second;
- }
-
- auto xamlMember = CreateXamlMember(longMemberName);
- if (xamlMember != nullptr)
- {
- _xamlMembers[longMemberName] = xamlMember;
- }
- return xamlMember;
-}
-
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForName(::Platform::String^ typeName)
-{
- ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr;
- for (unsigned int i = 0; i < OtherProviders->Size; i++)
- {
- auto xamlType = OtherProviders->GetAt(i)->GetXamlType(typeName);
- if(xamlType != nullptr)
- {
- if(xamlType->IsConstructible) // not Constructible means it might be a Return Type Stub
- {
- return xamlType;
- }
- foundXamlType = xamlType;
- }
- }
- return foundXamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t)
-{
- ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr;
- for (unsigned int i = 0; i < OtherProviders->Size; i++)
- {
- auto xamlType = OtherProviders->GetAt(i)->GetXamlType(t);
- if(xamlType != nullptr)
- {
- if(xamlType->IsConstructible) // not Constructible means it might be a Return Type Stub
- {
- return xamlType;
- }
- foundXamlType = xamlType;
- }
- }
- return foundXamlType;
-}
-
-// XamlSystemBaseType
-::XamlTypeInfo::InfoProvider::XamlSystemBaseType::XamlSystemBaseType(::Platform::String^ name) :
- _fullName(name)
-{
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::BaseType::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ContentProperty::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::FullName::get()
-{
- return _fullName;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::Name::get()
-{
- const wchar_t* seperator = wcsrchr(_fullName->Data(), '.');
- if (seperator == nullptr)
- {
- return _fullName;
- }
- return ref new ::Platform::String(seperator);
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsArray::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsCollection::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsConstructible::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsDictionary::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsMarkupExtension::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsEnum::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsSystemType::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsBindable::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ItemType::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::KeyType::get()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlSystemBaseType::UnderlyingType::get)()
-{
- ::Windows::UI::Xaml::Interop::TypeName typeName;
-
- typeName.Name = _fullName;
- typeName.Kind = ::Windows::UI::Xaml::Interop::TypeKind::Primitive;
-
- return typeName;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ActivateInstance()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::GetMember(::Platform::String^)
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToVector(::Platform::Object^, ::Platform::Object^)
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToMap(::Platform::Object^, ::Platform::Object^, ::Platform::Object^)
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::RunInitializer()
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::CreateFromString(::Platform::String^)
-{
- throw ref new ::Platform::NotImplementedException;
-}
-
-//XamlUserType
-::XamlTypeInfo::InfoProvider::XamlUserType::XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType) :
- _isArray(false),
- _isMarkupExtension(false),
- _isEnum(false),
- _isBindable(false),
- _isReturnTypeStub(false),
- _isLocalType(false),
- _fullName(fullName),
- _provider(provider),
- _baseType(baseType)
-{
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::FullName::get()
-{
- return _fullName;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::Name::get()
-{
- const wchar_t *seperator = wcsrchr(_fullName->Data(), '.');
- if (seperator == nullptr)
- {
- return _fullName;
- }
- return ref new ::Platform::String(seperator);
-}
-
-::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlUserType::UnderlyingType::get)()
-{
- ::Windows::UI::Xaml::Interop::TypeName typeName;
-
- typeName.Name = _fullName;
- typeName.Kind = KindOfType;
-
- return typeName;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsSystemType::get()
-{
- return true;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::BaseType::get()
-{
- return _baseType;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::get()
-{
- return _isArray;
-}
-void ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::set(bool value)
-{
- _isArray = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsCollection::get()
-{
- return CollectionAdd != nullptr;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsConstructible::get()
-{
- return Activator != nullptr;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsDictionary::get()
-{
- return DictionaryAdd != nullptr;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::get()
-{
- return _isMarkupExtension;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::set(bool value)
-{
- _isMarkupExtension = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::get()
-{
- return _isEnum;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::set(bool value)
-{
- _isEnum = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::get()
-{
- return _isBindable;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::set(bool value)
-{
- _isBindable = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::get()
-{
- return _isReturnTypeStub;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::set(bool value)
-{
- _isReturnTypeStub = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::get()
-{
- return _isLocalType;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::set(bool value)
-{
- _isLocalType = value;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::ContentProperty::get()
-{
- return _provider->GetMemberByLongName(_contentPropertyName);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::ContentPropertyName::set(::Platform::String^ value)
-{
- _contentPropertyName = value;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::ItemType::get()
-{
- return _provider->GetXamlTypeByName(_itemTypeName);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::ItemTypeName::set(::Platform::String^ value)
-{
- _itemTypeName = value;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::KeyType::get()
-{
- return _provider->GetXamlTypeByName(_keyTypeName);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::KeyTypeName::set(::Platform::String^ value)
-{
- _keyTypeName = value;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::GetMember(::Platform::String^ name)
-{
- auto val = _memberNames.find(name);
- if (val != _memberNames.end())
- {
- return _provider->GetMemberByLongName(val->second);
- }
- return nullptr;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::ActivateInstance()
-{
- return Activator();
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item)
-{
- DictionaryAdd(instance, key, item);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToVector(::Platform::Object^ instance, ::Platform::Object^ item)
-{
- CollectionAdd(instance, item);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::RunInitializer()
-{
- // The C++ runtime will have already run all the Static Initializers at start up.
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::CreateFromString(::Platform::String^ input)
-{
- if (CreateFromStringMethod != nullptr)
- {
- return (*CreateFromStringMethod)(input);
- }
- else
- {
- return FromStringConverter(this, input);
- }
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddMemberName(::Platform::String^ shortName)
-{
- _memberNames[shortName] = FullName + "." + shortName;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddEnumValue(::Platform::String^ name, ::Platform::Object^ value)
-{
- _enumValues[name->Data()] = value;
-}
-
-::default::uint32 (::XamlTypeInfo::InfoProvider::XamlUserType::CreateEnumUIntFromString)(::Platform::String^ input)
-{
- bool found = false;
-
- const std::wregex regularExpression(L"^\\s+|\\s*,\\s*|\\s+$");
- uint32 val = 0;
-
- for (std::wcregex_token_iterator it(input->Begin(), input->End(), regularExpression, -1), end; it != end; ++it)
- {
- const std::wcsub_match& subMatch = *it;
-
- if (subMatch.length() == 0 )
- {
- continue;
- }
-
- std::wstring lookup(subMatch.first, (unsigned int)subMatch.length());
-
- try
- {
- auto entry = _enumValues.find(lookup);
- if (entry != _enumValues.end())
- {
- const auto f = entry->second;
- val |= safe_cast(f);
- }
- else
- {
- val |= std::stoi(subMatch);
- }
- found=true;
- }
- catch (const std::invalid_argument& )
- {
- found = false;
- break;
- }
- }
-
- if(found)
- {
- return val;
- }
- throw ref new ::Platform::InvalidArgumentException();
-}
-
-// XamlMember
-::XamlTypeInfo::InfoProvider::XamlMember::XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName) :
- _isAttachable(false),
- _isDependencyProperty(false),
- _isReadOnly(false),
- _name(name),
- _typeName(typeName),
- _provider(provider)
-{
-}
-
-
-bool ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::get()
-{
- return _isAttachable;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::set(bool value)
-{
- _isAttachable = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::get()
-{
- return _isDependencyProperty;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::set(bool value)
-{
- _isDependencyProperty = value;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::get()
-{
- return _isReadOnly;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::set(bool value)
-{
- _isReadOnly = value;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlMember::Name::get()
-{
- return _name;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::Type::get()
-{
- return _provider->GetXamlTypeByName(_typeName);
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::TargetType::get()
-{
- return _provider->GetXamlTypeByName(_targetTypeName);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::TargetTypeName::set(::Platform::String^ value)
-{
- _targetTypeName = value;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlMember::GetValue(::Platform::Object^ instance)
-{
- if (Getter != nullptr)
- {
- return Getter(instance);
- }
- throw ref new ::Platform::NullReferenceException();
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::SetValue(::Platform::Object^ instance, ::Platform::Object^ value)
-{
- if (Setter != nullptr)
- {
- Setter(instance, value);
- return;
- }
- throw ref new ::Platform::NullReferenceException();
-}
-
diff --git a/eDosStationApp/Generated Files/XamlTypeInfo.g.cpp b/eDosStationApp/Generated Files/XamlTypeInfo.g.cpp
deleted file mode 100644
index 733bb6b..0000000
--- a/eDosStationApp/Generated Files/XamlTypeInfo.g.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-#include "pch.h"
-#include "XamlTypeInfo.g.h"
-
-#include "App.xaml.h"
-#include "DirectXPage.xaml.h"
-#include "XamlBindingInfo.g.hpp"
-#include "App.g.hpp"
-#include "DirectXPage.g.hpp"
-
-template
-::Platform::Object^ ActivateType()
-{
- return ref new T;
-}
-
-template
-void CollectionAdd(::Platform::Object^ instance, ::Platform::Object^ item)
-{
- safe_cast(instance)->Append((TItem)item);
-}
-
-template
-void DictionaryAdd(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item)
-{
- safe_cast(instance)->Insert((TKey)key, (TItem)item);
-}
-
-template
-::Platform::Object^ FromStringConverter(::XamlTypeInfo::InfoProvider::XamlUserType^ userType, ::Platform::String^ input)
-{
- return ref new ::Platform::Box((T)userType->CreateEnumUIntFromString(input));
-}
-
-enum TypeInfo_Flags
-{
- TypeInfo_Flags_None = 0x00,
- TypeInfo_Flags_IsLocalType = 0x01,
- TypeInfo_Flags_IsSystemType = 0x02,
- TypeInfo_Flags_IsReturnTypeStub = 0x04,
- TypeInfo_Flags_IsBindable = 0x08,
- TypeInfo_Flags_IsMarkupExtension = 0x10,
-};
-
-struct TypeInfo
-{
- PCWSTR typeName;
- PCWSTR contentPropertyName;
- ::Platform::Object^ (*activator)();
- void (*collectionAdd)(::Platform::Object^, ::Platform::Object^);
- void (*dictionaryAdd)(::Platform::Object^, ::Platform::Object^, ::Platform::Object^);
- ::Platform::Object^ (*fromStringConverter)(::XamlTypeInfo::InfoProvider::XamlUserType^, ::Platform::String^);
- int baseTypeIndex;
- int firstMemberIndex;
- int firstEnumValueIndex;
- int createFromStringIndex;
- ::Windows::UI::Xaml::Interop::TypeKind kindofType;
- unsigned int flags;
-};
-
-const TypeInfo TypeInfos[] =
-{
- // 0
- L"eDosStationApp.DirectXPage", L"",
- &ActivateType<::eDosStationApp::DirectXPage>, nullptr, nullptr, nullptr,
- 1, // Windows.UI.Xaml.Controls.Page
- 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Custom,
- TypeInfo_Flags_IsLocalType | TypeInfo_Flags_None,
- // 1
- L"Windows.UI.Xaml.Controls.Page", L"",
- nullptr, nullptr, nullptr, nullptr,
- -1,
- 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Metadata,
- TypeInfo_Flags_IsSystemType | TypeInfo_Flags_None,
- // 2
- L"Windows.UI.Xaml.Controls.UserControl", L"",
- nullptr, nullptr, nullptr, nullptr,
- -1,
- 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Metadata,
- TypeInfo_Flags_IsSystemType | TypeInfo_Flags_None,
- // Last type here is for padding
- L"", L"",
- nullptr, nullptr, nullptr, nullptr,
- -1,
- 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Custom,
- TypeInfo_Flags_None,
-};
-
-const UINT TypeInfoLookup[] = {
- 0, // 0
- 0, // 1
- 0, // 2
- 0, // 3
- 0, // 4
- 0, // 5
- 0, // 6
- 0, // 7
- 0, // 8
- 0, // 9
- 0, // 10
- 0, // 11
- 0, // 12
- 0, // 13
- 0, // 14
- 0, // 15
- 0, // 16
- 0, // 17
- 0, // 18
- 0, // 19
- 0, // 20
- 0, // 21
- 0, // 22
- 0, // 23
- 0, // 24
- 0, // 25
- 0, // 26
- 1, // 27
- 1, // 28
- 1, // 29
- 2, // 30
- 2, // 31
- 2, // 32
- 2, // 33
- 2, // 34
- 2, // 35
- 2, // 36
- 3, // 37
-};
-
-const TypeInfo* GetTypeInfo(::Platform::String^ typeName)
-{
- auto typeNameLength = typeName->Length();
- if (typeNameLength < _countof(TypeInfoLookup) - 1)
- {
- for (UINT i = TypeInfoLookup[typeNameLength]; i < TypeInfoLookup[typeNameLength+1]; i++)
- {
- if (typeName == ::Platform::StringReference(TypeInfos[i].typeName))
- {
- return &TypeInfos[i];
- }
- }
- }
- return nullptr;
-}
-
-::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::OtherProviders::get()
-{
- if(_otherProviders == nullptr)
- {
- auto otherProviders = ref new ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>();
- _otherProviders = otherProviders;
- }
- return _otherProviders;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlType(::Platform::String^ typeName)
-{
- const TypeInfo* pTypeInfo = GetTypeInfo(typeName);
- const TypeInfo* pNextTypeInfo = pTypeInfo + 1;
- if (pTypeInfo == nullptr || pNextTypeInfo == nullptr)
- {
- return nullptr;
- }
- else if (pTypeInfo->flags & TypeInfo_Flags_IsSystemType)
- {
- return ref new ::XamlTypeInfo::InfoProvider::XamlSystemBaseType(typeName);
- }
- else
- {
- ::XamlTypeInfo::InfoProvider::XamlUserType^ userType = ref new ::XamlTypeInfo::InfoProvider::XamlUserType(
- this,
- ::Platform::StringReference(pTypeInfo->typeName),
- this->GetXamlTypeByName(::Platform::StringReference(pTypeInfo->baseTypeIndex >= 0 ? TypeInfos[pTypeInfo->baseTypeIndex].typeName : L"")));
- userType->KindOfType = pTypeInfo->kindofType;
- userType->Activator = pTypeInfo->activator;
- userType->CollectionAdd = pTypeInfo->collectionAdd;
- userType->DictionaryAdd = pTypeInfo->dictionaryAdd;
- userType->FromStringConverter = pTypeInfo->fromStringConverter;
- userType->ContentPropertyName = ::Platform::StringReference(pTypeInfo->contentPropertyName);
- userType->IsLocalType = pTypeInfo->flags & TypeInfo_Flags_IsLocalType;
- userType->IsReturnTypeStub = pTypeInfo->flags & TypeInfo_Flags_IsReturnTypeStub;
- userType->IsBindable = pTypeInfo->flags & TypeInfo_Flags_IsBindable;
- userType->IsMarkupExtension = pTypeInfo->flags & TypeInfo_Flags_IsMarkupExtension;
- userType->CreateFromStringMethod = nullptr;
- return userType;
- }
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlMember(::Platform::String^ longMemberName)
-{
- ::XamlTypeInfo::InfoProvider::XamlMember^ xamlMember = nullptr;
- // No Local Properties
- (void)longMemberName; // Unused parameter
- return xamlMember;
-}
-
diff --git a/eDosStationApp/Generated Files/XamlTypeInfo.g.h b/eDosStationApp/Generated Files/XamlTypeInfo.g.h
deleted file mode 100644
index 88ce8ac..0000000
--- a/eDosStationApp/Generated Files/XamlTypeInfo.g.h
+++ /dev/null
@@ -1,392 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-#pragma once
-#include
-
-namespace XamlTypeInfo
-{
- namespace InfoProvider
- {
- ref class XamlTypeInfoProvider sealed
- {
- struct CriticalSection
- {
- CriticalSection()
- {
- InitializeCriticalSection(&criticalSection);
- }
-
- ~CriticalSection()
- {
- DeleteCriticalSection(&criticalSection);
- }
-
- struct AutoLock
- {
- AutoLock(LPCRITICAL_SECTION criticalSection)
- : pCriticalSection(criticalSection)
- {
- EnterCriticalSection(criticalSection);
- }
-
- ~AutoLock()
- {
- LeaveCriticalSection(pCriticalSection);
- }
-
- private:
- LPCRITICAL_SECTION pCriticalSection{ nullptr };
- };
-
- AutoLock Lock()
- {
- return AutoLock(&criticalSection);
- }
-
- private:
- CRITICAL_SECTION criticalSection;
- };
-
- public:
- ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlTypeByName(::Platform::String^ typeName);
- ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName t);
- ::Windows::UI::Xaml::Markup::IXamlMember^ GetMemberByLongName(::Platform::String^ longMemberName);
- void AddOtherProvider(::Windows::UI::Xaml::Markup::IXamlMetadataProvider^ otherProvider);
-
- private:
- CriticalSection _xamlTypesCriticalSection;
- std::map<::Platform::String^, ::Platform::WeakReference> _xamlTypes;
- CriticalSection _xamlMembersCriticalSection;
- std::map<::Platform::String^, ::Windows::UI::Xaml::Markup::IXamlMember^> _xamlMembers;
- ::Windows::UI::Xaml::Markup::IXamlType^ CreateXamlType(::Platform::String^ typeName);
- ::Windows::UI::Xaml::Markup::IXamlMember^ CreateXamlMember(::Platform::String^ longMemberName);
-
- ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ _otherProviders;
- property ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ OtherProviders
- {
- ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ get();
- }
-
- ::Windows::UI::Xaml::Markup::IXamlType^ CheckOtherMetadataProvidersForName(::Platform::String^ typeName);
- ::Windows::UI::Xaml::Markup::IXamlType^ CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t);
- };
-
- ref class XamlSystemBaseType sealed : public ::Windows::UI::Xaml::Markup::IXamlType
- {
- internal:
- XamlSystemBaseType(::Platform::String^ name);
-
- public:
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ BaseType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlMember^ ContentProperty
- {
- ::Windows::UI::Xaml::Markup::IXamlMember^ get();
- }
-
- virtual property ::Platform::String^ FullName
- {
- ::Platform::String^ get();
- }
-
- virtual property ::Platform::String^ Name
- {
- ::Platform::String^ get();
- }
-
- virtual property bool IsArray
- {
- bool get();
- }
-
- virtual property bool IsCollection
- {
- bool get();
- }
-
- virtual property bool IsConstructible
- {
- bool get();
- }
-
- virtual property bool IsDictionary
- {
- bool get();
- }
-
- virtual property bool IsMarkupExtension
- {
- bool get();
- }
-
- virtual property bool IsEnum
- {
- bool get();
- }
-
- virtual property bool IsSystemType
- {
- bool get();
- }
-
- virtual property bool IsBindable
- {
- bool get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ ItemType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ KeyType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Interop::TypeName UnderlyingType
- {
- ::Windows::UI::Xaml::Interop::TypeName get();
- }
-
- virtual ::Platform::Object^ ActivateInstance();
- virtual ::Windows::UI::Xaml::Markup::IXamlMember^ GetMember(::Platform::String^ name);
- virtual void AddToVector(::Platform::Object^ instance, ::Platform::Object^ value);
- virtual void AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ value);
- virtual void RunInitializer();
- virtual ::Platform::Object^ CreateFromString(::Platform::String^ value);
-
- private:
- ::Platform::String^ _fullName;
- };
-
- ref class XamlUserType sealed : public [::Platform::Metadata::RuntimeClassName] ::Windows::UI::Xaml::Markup::IXamlType
- {
- internal:
- XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType);
-
- public:
- // --- Interface methods ----
- virtual property ::Platform::String^ FullName
- {
- ::Platform::String^ get();
- }
-
- virtual property ::Platform::String^ Name
- {
- ::Platform::String^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Interop::TypeName UnderlyingType
- {
- ::Windows::UI::Xaml::Interop::TypeName get();
- }
-
- virtual property bool IsSystemType
- {
- bool get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ BaseType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual property bool IsArray
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property bool IsCollection
- {
- bool get();
- }
-
- virtual property bool IsConstructible
- {
- bool get();
- }
-
- virtual property bool IsDictionary
- {
- bool get();
- }
-
- virtual property bool IsMarkupExtension
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property bool IsEnum
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property bool IsBindable
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlMember^ ContentProperty
- {
- ::Windows::UI::Xaml::Markup::IXamlMember^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ ItemType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ KeyType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual ::Windows::UI::Xaml::Markup::IXamlMember^ GetMember(::Platform::String^ name);
- virtual ::Platform::Object^ ActivateInstance();
- virtual void AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ value);
- virtual void AddToVector(::Platform::Object^ instance, ::Platform::Object^ value);
- virtual void RunInitializer();
- virtual ::Platform::Object^ CreateFromString(::Platform::String^ value);
- // --- End of Interface methods
-
- property bool IsReturnTypeStub
- {
- bool get();
- internal: void set(bool value);
- }
-
- property bool IsLocalType
- {
- bool get();
- internal: void set(bool value);
- }
-
- internal:
- typedef ::Platform::Object^ (*ActivatorFn)();
- typedef void (*AddToCollectionFn)(::Platform::Object^ instance, ::Platform::Object^ item);
- typedef void (*AddToDictionaryFn)(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item);
- typedef ::Platform::Object^ (*CreateFromStringFn)(::Platform::String^);
- typedef ::Platform::Object^ (*StringConverterFn)(::XamlTypeInfo::InfoProvider::XamlUserType^ userType, ::Platform::String^ input);
-
- property ActivatorFn Activator;
- property AddToCollectionFn CollectionAdd;
- property AddToDictionaryFn DictionaryAdd;
- property CreateFromStringFn CreateFromStringMethod;
- property ::Windows::UI::Xaml::Interop::TypeKind KindOfType;
- property StringConverterFn FromStringConverter;
-
- property ::Platform::String^ ContentPropertyName
- {
- void set(::Platform::String^ value);
- }
-
- property ::Platform::String^ ItemTypeName
- {
- void set(::Platform::String^ value);
- }
-
- property ::Platform::String^ KeyTypeName
- {
- void set(::Platform::String^ value);
- }
-
- void AddMemberName(::Platform::String^ shortName);
- void AddEnumValue(::Platform::String^ name, ::Platform::Object^ value);
- uint32 CreateEnumUIntFromString(::Platform::String^ input);
-
- private:
- ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider;
- ::Windows::UI::Xaml::Markup::IXamlType^ _baseType;
- ::Platform::String^ _contentPropertyName;
- ::Platform::String^ _itemTypeName;
- ::Platform::String^ _keyTypeName;
- ::Platform::String^ _fullName;
- std::map<::Platform::String^, ::Platform::String^> _memberNames;
- std::map _enumValues;
- bool _isArray = false;
- bool _isMarkupExtension = false;
- bool _isEnum = false;
- bool _isBindable = false;
- bool _isReturnTypeStub = false;
- bool _isLocalType = false;
- };
-
- ref class XamlMember sealed : public ::Windows::UI::Xaml::Markup::IXamlMember
- {
- internal:
- XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName);
-
- typedef ::Platform::Object^ (*PropertyGetterFn)(::Platform::Object^ instance);
- typedef void (*PropertySetterFn)(::Platform::Object^ instance, ::Platform::Object^ value);
-
- property PropertyGetterFn Getter;
- property PropertySetterFn Setter;
-
- public:
- virtual property bool IsAttachable
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property bool IsDependencyProperty
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property bool IsReadOnly
- {
- bool get();
- internal: void set(bool value);
- }
-
- virtual property ::Platform::String^ Name
- {
- ::Platform::String^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ Type
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual property ::Windows::UI::Xaml::Markup::IXamlType^ TargetType
- {
- ::Windows::UI::Xaml::Markup::IXamlType^ get();
- }
-
- virtual ::Platform::Object^ GetValue(::Platform::Object^ instance);
- virtual void SetValue(::Platform::Object^ instance, ::Platform::Object^ value);
-
- internal:
- virtual property ::Platform::String^ TargetTypeName
- {
- void set(::Platform::String^ value);
- }
-
- private:
- bool _isAttachable;
- bool _isDependencyProperty;
- bool _isReadOnly;
- ::Platform::String^ _name;
- ::Platform::String^ _targetTypeName;
- ::Platform::String^ _typeName;
- ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider;
- };
- }
-}