diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx new file mode 100644 index 0000000..a5e4af2 Binary files /dev/null and b/.vs/Effector.Plugin.Lib/FileContentIndex/47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx differ diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/828d5703-c62f-47b2-907d-b3f891f62570.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/828d5703-c62f-47b2-907d-b3f891f62570.vsidx new file mode 100644 index 0000000..4a73cef Binary files /dev/null and b/.vs/Effector.Plugin.Lib/FileContentIndex/828d5703-c62f-47b2-907d-b3f891f62570.vsidx differ diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/b2ea713a-8221-408a-8d21-5ed95b655ed4.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/b2ea713a-8221-408a-8d21-5ed95b655ed4.vsidx new file mode 100644 index 0000000..379d146 Binary files /dev/null and b/.vs/Effector.Plugin.Lib/FileContentIndex/b2ea713a-8221-408a-8d21-5ed95b655ed4.vsidx differ diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx new file mode 100644 index 0000000..6f794ac Binary files /dev/null and b/.vs/Effector.Plugin.Lib/FileContentIndex/b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx differ diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx new file mode 100644 index 0000000..0506973 Binary files /dev/null and b/.vs/Effector.Plugin.Lib/FileContentIndex/c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx differ diff --git a/.vs/Effector.Plugin.Lib/v17/.suo b/.vs/Effector.Plugin.Lib/v17/.suo new file mode 100644 index 0000000..53f7b4b Binary files /dev/null and b/.vs/Effector.Plugin.Lib/v17/.suo differ diff --git a/.vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..b3a37d2 --- /dev/null +++ b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json @@ -0,0 +1,171 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "MultipleCopyWndV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:20:02.087Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "ProcessManagerVM.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-16T14:19:17.625Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "ProcessManagerV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:19:13.496Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "EgtWindow.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ViewState": "AgIAADkAAAAAAAAAAAAAAH8AAAAtAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T15:16:31.177Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "Generic.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-09T14:50:37.334Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "PluginConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:19:08.316Z" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "ConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:17:20.215Z" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "PluginIniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAUAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:12:44.529Z" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "IniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:09:43.898Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Effector.Plugin.Lib/v17/DocumentLayout.json b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.json new file mode 100644 index 0000000..b3a37d2 --- /dev/null +++ b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.json @@ -0,0 +1,171 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "MultipleCopyWndV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:20:02.087Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "ProcessManagerVM.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-16T14:19:17.625Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "ProcessManagerV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:19:13.496Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "EgtWindow.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ViewState": "AgIAADkAAAAAAAAAAAAAAH8AAAAtAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T15:16:31.177Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "Generic.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-09T14:50:37.334Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "PluginConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:19:08.316Z" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "ConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:17:20.215Z" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "PluginIniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAUAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:12:44.529Z" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "IniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:09:43.898Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Effector.Plugin.Lib.sln b/Effector.Plugin.Lib.sln new file mode 100644 index 0000000..ad8c935 --- /dev/null +++ b/Effector.Plugin.Lib.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35514.174 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Effector.Plugin.Lib", "Effector.Plugin.Lib\Effector.Plugin.Lib.vbproj", "{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json b/Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json new file mode 100644 index 0000000..be0c1c3 --- /dev/null +++ b/Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib","ProjectFileName":"Effector.Plugin.Lib.vbproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Constants\\ConstGen.vb"},{"SourceFile":"Constants\\ConstIni.vb"},{"SourceFile":"Constants\\PluginConstIni.vb"},{"SourceFile":"EgtWindow\\EgtWindow.vb"},{"SourceFile":"MultipleCopyWnd\\MultipleCopyWndV.xaml.vb"},{"SourceFile":"MultipleCopyWnd\\MultipleCopyWndVM.vb"},{"SourceFile":"My Project\\AssemblyInfo.vb"},{"SourceFile":"My Project\\Resources.Designer.vb"},{"SourceFile":"My Project\\Settings.Designer.vb"},{"SourceFile":"TitleBar\\TitleBarV.xaml.vb"},{"SourceFile":"Utility\\Command.vb"},{"SourceFile":"Utility\\ExecProcessManager.vb"},{"SourceFile":"Utility\\GenInterface.vb"},{"SourceFile":"Utility\\IdNameStruct.vb"},{"SourceFile":"Utility\\IniFile.vb"},{"SourceFile":"Utility\\PluginIniFile.vb"},{"SourceFile":"Utility\\StringConversion.vb"},{"SourceFile":"Utility\\VMBase.vb"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.vb"},{"SourceFile":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\obj\\Debug\\MultipleCopyWnd\\MultipleCopyWndV.g.vb"},{"SourceFile":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\obj\\Debug\\TitleBar\\TitleBarV.g.vb"},{"SourceFile":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\obj\\Debug\\GeneratedInternalTypeHelper.g.vb"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\bin\\Debug\\Effector.Plugin.Lib.dll","OutputItemRelativePath":"Effector.Plugin.Lib.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/Effector.Plugin.Lib/Constants/ConstGen.vb b/Effector.Plugin.Lib/Constants/ConstGen.vb new file mode 100644 index 0000000..7cc6083 --- /dev/null +++ b/Effector.Plugin.Lib/Constants/ConstGen.vb @@ -0,0 +1,66 @@ +'---------------------------------------------------------------------------- +' EgalTech 2015-2017 +'---------------------------------------------------------------------------- +' File : ConstGen.vb Data : 08.05.24 Versione : 2.6e1 +' Contenuto : Modulo costanti generali. +' +' +' +' Modifiche : 08.05.24 ES Creazione modulo. +' +' +'---------------------------------------------------------------------------- + +Public Module ConstGen + + ' File con direttorio radice dei dati + Public Const DAT_FILE_NAME As String = "DataRoot.Ini" + Public Const S_DATA As String = "Data" + Public Const K_DATAROOT As String = "DataRoot" + + '' File con dati di licenza + 'Public Const LIC_FILE_NAME As String = "EgtBEAMWALL.lic" + 'Public Const S_LICENCE As String = "Licence" + 'Public Const K_LOCKID As String = "LockId" + 'Public Const K_KEY As String = "Key" + + + ' Abilitazioni licenza + Public Enum KEY_OPT As UInteger + SUPERVISOR = 1 + End Enum + + ' Sottodirettorio di configurazione + Public Const CONF_DIR As String = "Config" + ' Sottodirettorio delle risorse + Public Const RES_DIR As String = "Resources" + ' Sottodirettorio script + Public Const SCRIPT_DIR As String = "Script" + ' Sottodirettorio temporaneo + Public Const TEMP_DIR As String = "Temp" + '' Sottodirettorio per Cam automatico + 'Public Const PROJS_DIR As String = "Projs" + '' Sottodirettorio per Csv automatico + 'Public Const PRODS_DIR As String = "Prods" + '' Sottodirettorio per Macro + 'Public Const MACRO_DIR As String = "Macro" + '' Sottodirettorio per Magazzino + 'Public Const WAREHOUSE_DIR As String = "Warehouse" + '' Sottodirettorio per lavorazioni travi + 'Public Const BEAM_DIR As String = "Beam" + '' Sottodirettorio per lavorazioni pareti + 'Public Const WALL_DIR As String = "Wall" + '' Sottodirettorio di default per il salvataggio con nome + 'Public Const SAVE_DFL_NAMEDIR As String = "MyProjects" + '' Sottodirettorio di default per le macchine + 'Public Const MACHINES_DFL_DIR As String = "Machines" + '' Sottodirettorio di default per toolmakers + 'Public Const TOOLMAKERS_DFL_DIR As String = "ToolMakers" + '' Nome file Lua con le funzioni di attrezzaggio + 'Public Const SETUP_LUA As String = "SetUp.lua" + '' Nome eseguibile per stampa + 'Public Const ZEBRAPRINTER_EXE As String = "ZebraPrinterUtilitiesD32.exe" + '' Sottodirettorio di default per macro + 'Public Const MACRO_DFL_DIR As String = "Macro" + +End Module diff --git a/Effector.Plugin.Lib/Constants/ConstIni.vb b/Effector.Plugin.Lib/Constants/ConstIni.vb new file mode 100644 index 0000000..052941f --- /dev/null +++ b/Effector.Plugin.Lib/Constants/ConstIni.vb @@ -0,0 +1,39 @@ +'---------------------------------------------------------------------------- +' EgalTech 2015-2024 +'---------------------------------------------------------------------------- +' File : ConstIni.vb Data : 08.05.24 Versione : 2.6e1 +' Contenuto : Modulo costanti sezione e chiavi per file Ini. +' +' +' +' Modifiche : 08.05.24 ES Creazione modulo. +' +' +'---------------------------------------------------------------------------- +Module ConstIni + + Public Const INI_FILE_NAME As String = "Effector.ini" + + Public Const S_GENERAL As String = "General" + 'Public Const K_DEBUG As String = "Debug" + Public Const K_LICENCE As String = "Licence" + 'Public Const K_USERLEVEL As String = "UserLevel" + 'Public Const K_MAXINST As String = "MaxInstances" + Public Const K_INSTANCES As String = "Instances" + Public Const K_PREPROC As String = "PreProc" + Public Const K_POSTPROC As String = "PostProc" + Public Const K_MACHINESTATE As String = "MachineState" + Public Const K_INITLUA As String = "InitLua" + Public Const K_PLUGINNAME As String = "PluginName" + Public Const K_WINPLACE = "WinPlace" + + Public Const S_REDIS As String = "Redis" + Public Const K_ENABLED As String = "Enabled" + Public Const K_DBINDEX As String = "DbIndex" + + + Public Const S_NC As String = "NC" + Public Const K_NC_SIMULATE As String = "NcSimulate" + Public Const K_MACHINE As String = "Machine" + +End Module diff --git a/Effector.Plugin.Lib/Constants/PluginConstIni.vb b/Effector.Plugin.Lib/Constants/PluginConstIni.vb new file mode 100644 index 0000000..3739f92 --- /dev/null +++ b/Effector.Plugin.Lib/Constants/PluginConstIni.vb @@ -0,0 +1,51 @@ +'---------------------------------------------------------------------------- +' EgalTech 2015-2024 +'---------------------------------------------------------------------------- +' File : ConstIni.vb Data : 08.05.24 Versione : 2.6e1 +' Contenuto : Modulo costanti sezione e chiavi per file Ini. +' +' +' +' Modifiche : 08.05.24 ES Creazione modulo. +' +' +'---------------------------------------------------------------------------- +Module PluginConstIni + + 'Public Const S_GENERAL As String = "General" + Public Const K_CAMEXEPATH As String = "CAMExePath" + Public Const K_DOORCREATOREXEPATH As String = "DoorCreatorExePath" + Public Const K_BACKUPDIR As String = "BackupDir" + Public Const K_RESOURCESDIR As String = "ResourcesDir" + Public Const K_DDFDIR As String = "DDFDir" + Public Const K_DDTDIR As String = "DDTDir" + Public Const K_GENDDFDIR As String = "GenDDFDir" + Public Const K_CSVOUTPUT As String = "CSVOutput" + + + Public Const S_CSV As String = "CSV" + Public Const K_DDFNAME As String = "DDFName" + Public Const K_QUANTITY As String = "Quantity" + Public Const K_HEIGHT As String = "Height" + Public Const K_WIDTH As String = "Width" + Public Const K_THICKNESS As String = "Thickness" + Public Const K_SWING As String = "Swing" + Public Const K_PHASE As String = "Phase" + Public Const K_STATE As String = "State" + Public Const K_PROGRAMSENT As String = "ProgramSent" + Public Const K_PROGRAMSTART As String = "ProgramStart" + Public Const K_PROGRAMEND As String = "ProgramEnd" + Public Const K_MANUALADDEDDOORNAME As String = "ManualAddedDoorName" + Public Const K_DELIMITER As String = "Delimiter" + + Public Const S_DEBUG As String = "Debug" + Public Const K_VARIABLELIST As String = "VariableList" + Public Const K_VARIABLEONDRAW As String = "VariableOnDraw" + Public Const K_MACHINECOMMANDS As String = "MachineCommands" + Public Const K_DOORCIRCLIST As String = "DoorCircList" + Public Const K_EXECUTEWINDOW As String = "ExecuteWindow" + + Public Const S_NC As String = "NC" + Public Const K_NC_SIMULATE As String = "NcSimulate" + +End Module diff --git a/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj new file mode 100644 index 0000000..552efb1 --- /dev/null +++ b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj @@ -0,0 +1,163 @@ + + + + Debug + AnyCPU + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + Effector.Plugin.Lib + Effector.Plugin.Lib + Library + v4.7.2 + Custom + true + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779} + + + true + full + true + true + true + bin\Debug\ + Effector.Plugin.Lib.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + pdbonly + false + false + true + false + true + bin\Release\ + Effector.Plugin.Lib.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MultipleCopyWndV.xaml + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ProcessManagerV.xaml + + + + TitleBarV.xaml + + + + + + + + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + MSBuild:Compile + Designer + + + Designer + XamlIntelliSenseFileGenerator + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + + + + + + + copy $(TargetPath) c:\EgtData\Effector\Plugin\Effector.Plugin.DoorArreda\Effector.Plugin.Lib.dll +copy $(TargetPath) c:\EgtData\Effector\Plugin\Effector.Plugin.FiveLakes\Effector.Plugin.Lib.dll +copy $(TargetPath) c:\EgtProg\Effector\Effector.Plugin.Lib.dll + + \ No newline at end of file diff --git a/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user new file mode 100644 index 0000000..31847db --- /dev/null +++ b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user @@ -0,0 +1,10 @@ + + + + ShowAllFiles + + + Program + C:\EgtProg\Effector\EffectorD32.exe + + \ No newline at end of file diff --git a/Effector.Plugin.Lib/EgtWindow/EgtWindow.vb b/Effector.Plugin.Lib/EgtWindow/EgtWindow.vb new file mode 100644 index 0000000..3d2611d --- /dev/null +++ b/Effector.Plugin.Lib/EgtWindow/EgtWindow.vb @@ -0,0 +1,360 @@ +' Follow steps 1a or 1b and then 2 to use this custom control in a XAML file. +' +' Step 1a) Using this custom control in a XAML file that exists in the current project. +' Add this XmlNamespace attribute to the root element of the markup file where it is +' to be used: +' +' xmlns:MyNamespace="clr-namespace:Effector.Plugin.Lib" +' +' +' Step 1b) Using this custom control in a XAML file that exists in a different project. +' Add this XmlNamespace attribute to the root element of the markup file where it is +' to be used: +' +' xmlns:MyNamespace="clr-namespace:Effector.Plugin.Lib;assembly=Effector.Plugin.Lib" +' +' You will also need to add a project reference from the project where the XAML file lives +' to this project and Rebuild to avoid compilation errors: +' +' Right click on the target project in the Solution Explorer and +' "Add Reference"->"Projects"->[Browse to and select this project] +' +' +' Step 2) +' Go ahead and use your control in the XAML file. Note that Intellisense in the +' XML editor does not currently work on custom controls and its child elements. +' +' +' + +Imports System.Globalization +Imports System.Runtime.InteropServices +Imports System.Text +Imports System.Windows.Controls.Primitives +Imports System.Windows.Interop +Imports System.Xml.Serialization + + + + +Public Class EgtWindow + Inherits System.Windows.Window + + Private Const WM_GETMINMAXINFO As Integer = &H24 + Private Const MONITOR_DEFAULTTONEAREST As UInteger = &H2 + Private Const SW_SHOWNORMAL As Integer = 1 + Private Const SW_SHOWMINIMIZED As Integer = 2 + + + + Public Structure RECT + + Public Left As Integer + Public Top As Integer + Public Right As Integer + Public Bottom As Integer + + Public Sub New(ByVal left As Integer, ByVal top As Integer, ByVal right As Integer, ByVal bottom As Integer) + Me.Left = left + Me.Top = top + Me.Right = right + Me.Bottom = bottom + End Sub + + End Structure + + + Public Structure MONITORINFO + + Public cbSize As Integer + Public rcMonitor As RECT + Public rcWork As RECT + Public dwFlags As UInteger + + End Structure + + + + Public Structure POINT + + Public X As Integer + Public Y As Integer + + Public Sub New(ByVal x As Integer, ByVal y As Integer) + Me.X = x + Me.Y = y + End Sub + + End Structure + + + Public Structure MINMAXINFO + + Public ptReserved As POINT + Public ptMaxSize As POINT + Public ptMaxPosition As POINT + Public ptMinTrackSize As POINT + Public ptMaxTrackSize As POINT + + End Structure + + + + Public Structure WINDOWPLACEMENT + + Public length As Integer + Public flags As Integer + Public showCmd As Integer + Public minPosition As POINT + Public maxPosition As POINT + Public normalPosition As RECT + + End Structure + + ' Proprietà che permette di impostare l'altezza della TitleBar + Public Shared ReadOnly TitleBarHeightProperty As DependencyProperty = DependencyProperty.Register("TitleBarHeight", GetType(Double), GetType(EgtWindow), New PropertyMetadata(0.0)) + Public Property TitleBarHeight() As Double + Get + Return CType(GetValue(TitleBarHeightProperty), Double) + End Get + Set(ByVal value As Double) + SetValue(TitleBarHeightProperty, value) + End Set + End Property + + 'Private Shared encoding As Encoding = New UTF8Encoding() + 'Private Shared serializer As XmlSerializer = New XmlSerializer(GetType(WINDOWPLACEMENT)) + + Private m_Placement_AppName As String = "" + Public Sub SetPlacementAppName(Placement_AppName As String) + m_Placement_AppName = Placement_AppName + End Sub + Private m_Placement_KeyName As String = "" + Public Sub SetPlacementKeyName(Placement_KeyName As String) + m_Placement_KeyName = Placement_KeyName + End Sub + Private m_Placement_FileName As String = "" + Public Sub SetPlacementFileName(Placement_FileName As String) + m_Placement_FileName = Placement_FileName + End Sub + + +#Region "CONSTRUCTOR" + + Shared Sub New() + 'This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class. + 'This style is defined in themes\generic.xaml + DefaultStyleKeyProperty.OverrideMetadata(GetType(EgtWindow), New FrameworkPropertyMetadata(GetType(EgtWindow))) + End Sub + + Sub New() + AddHandler Me.Closing, AddressOf OnWindowClosing + End Sub + +#End Region ' CONSTRUCTOR + +#Region "METHODS" + + + Private Shared Function MonitorFromWindow(ByVal handle As IntPtr, ByVal flags As UInteger) As IntPtr + End Function + + Private Shared Function GetMonitorInfo(ByVal hMonitor As IntPtr, ByRef lpmi As MONITORINFO) As Boolean + End Function + + Private Shared Function SetWindowPlacement(ByVal hWnd As IntPtr, <[In]> ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Private Shared Function GetWindowPlacement(ByVal hWnd As IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Protected Overrides Sub OnSourceInitialized(ByVal e As EventArgs) + MyBase.OnSourceInitialized(e) + CType(PresentationSource.FromVisual(Me), HwndSource).AddHook(AddressOf HookProc) + If Me.SizeToContent = SizeToContent.Manual Then + Dim sPlacement As String = "" + GetPrivateProfileString(m_Placement_AppName, m_Placement_KeyName, "", sPlacement, m_Placement_FileName) + If Not String.IsNullOrWhiteSpace(sPlacement) Then + SetPlacement(sPlacement) + End If + End If + Me.InvalidateMeasure() + End Sub + + Public Shared Function HookProc(ByVal hwnd As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr, ByRef handled As Boolean) As IntPtr + If msg = WM_GETMINMAXINFO Then + Dim mmi As MINMAXINFO = CType(Marshal.PtrToStructure(lParam, GetType(MINMAXINFO)), MINMAXINFO) + Dim monitor As IntPtr = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST) + + If monitor <> IntPtr.Zero Then + Dim monitorInfo As MONITORINFO = New MONITORINFO() + monitorInfo.cbSize = Marshal.SizeOf(GetType(MONITORINFO)) + GetMonitorInfo(monitor, monitorInfo) + Dim rcWorkArea As RECT = monitorInfo.rcWork + Dim rcMonitorArea As RECT = monitorInfo.rcMonitor + mmi.ptMaxPosition.X = Math.Abs(rcWorkArea.Left - rcMonitorArea.Left) + mmi.ptMaxPosition.Y = Math.Abs(rcWorkArea.Top - rcMonitorArea.Top) + mmi.ptMaxSize.X = Math.Abs(rcWorkArea.Right - rcWorkArea.Left) + mmi.ptMaxSize.Y = Math.Abs(rcWorkArea.Bottom - rcWorkArea.Top) + End If + + Marshal.StructureToPtr(mmi, lParam, True) + End If + + Return IntPtr.Zero + End Function + + Shared Sub SetPlacement(ByVal windowHandle As IntPtr, ByVal placementXml As String) + If String.IsNullOrEmpty(placementXml) Then + Return + End If + + Dim placement As WINDOWPLACEMENT + Try + placement = StringToPlacement(placementXml) + 'Using memoryStream As TextReader = New StringReader(placementXml) + ' placement = CType(serializer.Deserialize(memoryStream), WINDOWPLACEMENT) + 'End Using + + placement.length = Marshal.SizeOf(GetType(WINDOWPLACEMENT)) + placement.flags = 0 + placement.showCmd = (If(placement.showCmd = SW_SHOWMINIMIZED, SW_SHOWNORMAL, placement.showCmd)) + SetWindowPlacement(windowHandle, placement) + Catch __unusedInvalidOperationException1__ As InvalidOperationException + End Try + + End Sub + + Private Shared Function PlacementToString(Placement As WINDOWPLACEMENT) As String + Dim sPlacement As String = "" + sPlacement = Placement.length.ToString() & ";" & + Placement.flags.ToString() & ";" & + Placement.showCmd.ToString() & ";" + sPlacement &= PointToString(Placement.minPosition) & ";" + sPlacement &= PointToString(Placement.maxPosition) & ";" + sPlacement &= RectToString(Placement.normalPosition) + Return sPlacement + End Function + + Private Shared Function PointToString(Point As POINT) As String + Dim sPoint As String = "" + sPoint = Point.X.ToString() & "," & + Point.Y.ToString() + Return sPoint + End Function + + Private Shared Function RectToString(Rect As RECT) As String + Dim sRect As String = "" + sRect = Rect.Left.ToString() & "," & + Rect.Top.ToString() & "," & + Rect.Right.ToString() & "," & + Rect.Bottom.ToString() + Return sRect + End Function + + Shared Function GetPlacement(ByVal windowHandle As IntPtr) As String + Dim placement As WINDOWPLACEMENT = New WINDOWPLACEMENT() + GetWindowPlacement(windowHandle, placement) + Return PlacementToString(placement) + + 'Using TextWriter As StringWriter = New StringWriter() + ' serializer.Serialize(TextWriter, placement) + ' Return TextWriter.ToString().Replace(Environment.NewLine, "") + 'End Using + + End Function + + Private Shared Function StringToPlacement(sPlacement As String) As WINDOWPLACEMENT + Dim Placement As WINDOWPLACEMENT + Dim sPlacementArray As String() = sPlacement.Split(";"c) + If sPlacementArray.Length < 5 Then + Placement.normalPosition = New RECT(100, 100, 800, 800) + Return Placement + End If + Integer.TryParse(sPlacementArray(0), Placement.length) + Integer.TryParse(sPlacementArray(1), Placement.flags) + Integer.TryParse(sPlacementArray(2), Placement.showCmd) + Placement.minPosition = StringToPoint(sPlacementArray(3)) + Placement.maxPosition = StringToPoint(sPlacementArray(4)) + Placement.normalPosition = StringToRect(sPlacementArray(5)) + Return Placement + End Function + + Private Shared Function StringToPoint(sPoint As String) As POINT + Dim sPointArray As String() = sPoint.Split(","c) + Dim nX As Integer = 0 + Dim nY As Integer = 0 + Integer.TryParse(sPointArray(0), nX) + Integer.TryParse(sPointArray(1), nY) + Return New POINT(nX, nY) + End Function + + Private Shared Function StringToRect(sRect As String) As RECT + Dim sRectArray As String() = sRect.Split(","c) + Dim nLeft As Integer = 0 + Dim nTop As Integer = 0 + Dim nRight As Integer = 0 + Dim nBottom As Integer = 0 + Integer.TryParse(sRectArray(0), nLeft) + Integer.TryParse(sRectArray(1), nTop) + Integer.TryParse(sRectArray(2), nRight) + Integer.TryParse(sRectArray(3), nBottom) + Return New RECT(nLeft, nTop, nRight, nBottom) + End Function + + Public Sub SetPlacement(ByVal placementXml As String) + SetPlacement(New WindowInteropHelper(Me).Handle, placementXml) + End Sub + + Public Function GetPlacement() As String + Return GetPlacement(New WindowInteropHelper(Me).Handle) + End Function + +#End Region ' METHODS + +#Region "EVENTS" + + Public Sub OnMinimizeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.WindowState = WindowState.Minimized + End Sub + + Public Sub OnMaximizeRestoreButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + If Me.WindowState = WindowState.Maximized Then + Me.WindowState = WindowState.Normal + Else + Me.WindowState = WindowState.Maximized + End If + End Sub + + Public Overridable Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.Close() + End Sub + + Private Sub OnWindowClosing(sender As Object, e As System.ComponentModel.CancelEventArgs) + If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then + e.Cancel = True + Return + End If + If Me.SizeToContent = SizeToContent.Manual Then + WritePrivateProfileString(m_Placement_AppName, m_Placement_KeyName, GetPlacement(), m_Placement_FileName) + End If + End Sub + +#End Region ' EVENTS + +End Class + +Public Class CaptionHeightConverter + Implements IValueConverter + + Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert + If Not TypeOf value Is Double Then Return 39 + Dim dValue As Double = CDbl(value) + Return dValue + 7 + End Function + + Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack + Throw New NotImplementedException() + End Function + +End Class \ No newline at end of file diff --git a/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml new file mode 100644 index 0000000..a0500ae --- /dev/null +++ b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml @@ -0,0 +1,4 @@ + + diff --git a/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb new file mode 100644 index 0000000..c7823f1 --- /dev/null +++ b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb @@ -0,0 +1,301 @@ +Imports System.Runtime.InteropServices +Imports System.Text +Imports System.Windows.Interop +Imports System.Xml.Serialization + +Public Class EgtWindowV + + Private Const WM_GETMINMAXINFO As Integer = &H24 + Private Const MONITOR_DEFAULTTONEAREST As UInteger = &H2 + Private Const SW_SHOWNORMAL As Integer = 1 + Private Const SW_SHOWMINIMIZED As Integer = 2 + + + + Public Structure RECT + + Public Left As Integer + Public Top As Integer + Public Right As Integer + Public Bottom As Integer + + Public Sub New(ByVal left As Integer, ByVal top As Integer, ByVal right As Integer, ByVal bottom As Integer) + Me.Left = left + Me.Top = top + Me.Right = right + Me.Bottom = bottom + End Sub + + End Structure + + + Public Structure MONITORINFO + + Public cbSize As Integer + Public rcMonitor As RECT + Public rcWork As RECT + Public dwFlags As UInteger + + End Structure + + + + Public Structure POINT + + Public X As Integer + Public Y As Integer + + Public Sub New(ByVal x As Integer, ByVal y As Integer) + Me.X = x + Me.Y = y + End Sub + + End Structure + + + Public Structure MINMAXINFO + + Public ptReserved As POINT + Public ptMaxSize As POINT + Public ptMaxPosition As POINT + Public ptMinTrackSize As POINT + Public ptMaxTrackSize As POINT + + End Structure + + + + Public Structure WINDOWPLACEMENT + + Public length As Integer + Public flags As Integer + Public showCmd As Integer + Public minPosition As POINT + Public maxPosition As POINT + Public normalPosition As RECT + + End Structure + + Private Shared encoding As Encoding = New UTF8Encoding() + Private Shared serializer As XmlSerializer = New XmlSerializer(GetType(WINDOWPLACEMENT)) + + +#Region "CONSTRUCTOR" + + Sub New() + ' Funzione che interpreta l'xaml + InitializeComponent() + AddHandler Me.Loaded, AddressOf MainWindowV_Loaded + AddHandler Me.ContentRendered, AddressOf MainWindowV_ContentRendered + AddHandler Me.StateChanged, AddressOf Window_StateChanged + AddHandler Me.Closing, AddressOf MainWindowV_Closing + AddHandler Me.Closed, AddressOf MainWindowV_Closed + Me.RefreshMaximizeRestoreButton() + End Sub + +#End Region ' CONSTRUCTOR + +#Region "METHODS" + + + Private Shared Function MonitorFromWindow(ByVal handle As IntPtr, ByVal flags As UInteger) As IntPtr + End Function + + Private Shared Function GetMonitorInfo(ByVal hMonitor As IntPtr, ByRef lpmi As MONITORINFO) As Boolean + End Function + + Private Shared Function SetWindowPlacement(ByVal hWnd As IntPtr, <[In]> ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Private Shared Function GetWindowPlacement(ByVal hWnd As IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Protected Overrides Sub OnSourceInitialized(ByVal e As EventArgs) + MyBase.OnSourceInitialized(e) + CType(PresentationSource.FromVisual(Me), HwndSource).AddHook(AddressOf HookProc) + Dim sPlacement As String = "" + GetMainPrivateProfileString(S_GENERAL, K_WINPLACE, "", sPlacement) + If Not String.IsNullOrWhiteSpace(sPlacement) Then + SetPlacement(sPlacement) + End If + + End Sub + + Public Shared Function HookProc(ByVal hwnd As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr, ByRef handled As Boolean) As IntPtr + If msg = WM_GETMINMAXINFO Then + Dim mmi As MINMAXINFO = CType(Marshal.PtrToStructure(lParam, GetType(MINMAXINFO)), MINMAXINFO) + Dim monitor As IntPtr = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST) + + If monitor <> IntPtr.Zero Then + Dim monitorInfo As MONITORINFO = New MONITORINFO() + monitorInfo.cbSize = Marshal.SizeOf(GetType(MONITORINFO)) + GetMonitorInfo(monitor, monitorInfo) + Dim rcWorkArea As RECT = monitorInfo.rcWork + Dim rcMonitorArea As RECT = monitorInfo.rcMonitor + mmi.ptMaxPosition.X = Math.Abs(rcWorkArea.Left - rcMonitorArea.Left) + mmi.ptMaxPosition.Y = Math.Abs(rcWorkArea.Top - rcMonitorArea.Top) + mmi.ptMaxSize.X = Math.Abs(rcWorkArea.Right - rcWorkArea.Left) + mmi.ptMaxSize.Y = Math.Abs(rcWorkArea.Bottom - rcWorkArea.Top) + End If + + Marshal.StructureToPtr(mmi, lParam, True) + End If + + Return IntPtr.Zero + End Function + + Shared Sub SetPlacement(ByVal windowHandle As IntPtr, ByVal placementXml As String) + If String.IsNullOrEmpty(placementXml) Then + Return + End If + + Dim placement As WINDOWPLACEMENT + Try + placement = StringToPlacement(placementXml) + 'Using memoryStream As TextReader = New StringReader(placementXml) + ' placement = CType(serializer.Deserialize(memoryStream), WINDOWPLACEMENT) + 'End Using + + placement.length = Marshal.SizeOf(GetType(WINDOWPLACEMENT)) + placement.flags = 0 + placement.showCmd = (If(placement.showCmd = SW_SHOWMINIMIZED, SW_SHOWNORMAL, placement.showCmd)) + SetWindowPlacement(windowHandle, placement) + Catch __unusedInvalidOperationException1__ As InvalidOperationException + End Try + + End Sub + + Private Shared Function PlacementToString(Placement As WINDOWPLACEMENT) As String + Dim sPlacement As String = "" + sPlacement = Placement.length.ToString() & ";" & + Placement.flags.ToString() & ";" & + Placement.showCmd.ToString() & ";" + sPlacement &= PointToString(Placement.minPosition) & ";" + sPlacement &= PointToString(Placement.maxPosition) & ";" + sPlacement &= RectToString(Placement.normalPosition) + Return sPlacement + End Function + + Private Shared Function PointToString(Point As POINT) As String + Dim sPoint As String = "" + sPoint = Point.X.ToString() & "," & + Point.Y.ToString() + Return sPoint + End Function + + Private Shared Function RectToString(Rect As RECT) As String + Dim sRect As String = "" + sRect = Rect.Left.ToString() & "," & + Rect.Top.ToString() & "," & + Rect.Right.ToString() & "," & + Rect.Bottom.ToString() + Return sRect + End Function + + Shared Function GetPlacement(ByVal windowHandle As IntPtr) As String + Dim placement As WINDOWPLACEMENT = New WINDOWPLACEMENT() + GetWindowPlacement(windowHandle, placement) + Return PlacementToString(placement) + + 'Using TextWriter As StringWriter = New StringWriter() + ' serializer.Serialize(TextWriter, placement) + ' Return TextWriter.ToString().Replace(Environment.NewLine, "") + 'End Using + + End Function + + Private Shared Function StringToPlacement(sPlacement As String) As WINDOWPLACEMENT + Dim Placement As WINDOWPLACEMENT + Dim sPlacementArray As String() = sPlacement.Split(";"c) + If sPlacementArray.Length < 5 Then + Placement.normalPosition = New RECT(100, 100, 800, 800) + Return Placement + End If + Integer.TryParse(sPlacementArray(0), Placement.length) + Integer.TryParse(sPlacementArray(1), Placement.flags) + Integer.TryParse(sPlacementArray(2), Placement.showCmd) + Placement.minPosition = StringToPoint(sPlacementArray(3)) + Placement.maxPosition = StringToPoint(sPlacementArray(4)) + Placement.normalPosition = StringToRect(sPlacementArray(5)) + Return Placement + End Function + + Private Shared Function StringToPoint(sPoint As String) As POINT + Dim sPointArray As String() = sPoint.Split(","c) + Dim nX As Integer = 0 + Dim nY As Integer = 0 + Integer.TryParse(sPointArray(0), nX) + Integer.TryParse(sPointArray(1), nY) + Return New POINT(nX, nY) + End Function + + Private Shared Function StringToRect(sRect As String) As RECT + Dim sRectArray As String() = sRect.Split(","c) + Dim nLeft As Integer = 0 + Dim nTop As Integer = 0 + Dim nRight As Integer = 0 + Dim nBottom As Integer = 0 + Integer.TryParse(sRectArray(0), nLeft) + Integer.TryParse(sRectArray(1), nTop) + Integer.TryParse(sRectArray(2), nRight) + Integer.TryParse(sRectArray(3), nBottom) + Return New RECT(nLeft, nTop, nRight, nBottom) + End Function + + Public Sub SetPlacement(ByVal placementXml As String) + SetPlacement(New WindowInteropHelper(Me).Handle, placementXml) + End Sub + + Public Function GetPlacement() As String + Return GetPlacement(New WindowInteropHelper(Me).Handle) + End Function + + Private Sub RefreshMaximizeRestoreButton() + If Me.WindowState = WindowState.Maximized Then + Me.maximizeButton.Visibility = Visibility.Collapsed + Me.restoreButton.Visibility = Visibility.Visible + Else + Me.maximizeButton.Visibility = Visibility.Visible + Me.restoreButton.Visibility = Visibility.Collapsed + End If + End Sub + +#End Region ' METHODS + +#Region "EVENTS" + + Private Sub OnMinimizeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.WindowState = WindowState.Minimized + End Sub + + Private Sub OnMaximizeRestoreButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + If Me.WindowState = WindowState.Maximized Then + Me.WindowState = WindowState.Normal + Else + Me.WindowState = WindowState.Maximized + End If + End Sub + + Private Sub Window_StateChanged(ByVal sender As Object, ByVal e As EventArgs) + Me.RefreshMaximizeRestoreButton() + End Sub + + Private Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.Close() + End Sub + + Private Sub MainWindowV_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) + If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then + e.Cancel = True + Return + End If + WriteMainPrivateProfileString(S_GENERAL, K_WINPLACE, GetPlacement()) + End Sub + + Private Sub MainWindowV_Closed(sender As Object, e As EventArgs) + EgtOutLog("Exit") + End Sub + +#End Region ' EVENTS + +End Class diff --git a/Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml b/Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml new file mode 100644 index 0000000..2b0fd0c --- /dev/null +++ b/Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +