From 834a672b7273dffe9a5769030b231ac4f85409fe Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 17 Aug 2020 12:33:56 +0200 Subject: [PATCH] ZooFlow: Save Window Position, Fix FlowForm Designer, Add Logger --- .../{ClassFlowForm.vb => ClassWin32.vb} | 61 +------- GUIs.ZooFlow/ZooFlow.vbproj | 2 +- GUIs.ZooFlow/frmAdmin.Designer.vb | 52 ++++--- GUIs.ZooFlow/frmAdmin.resx | 143 +++++------------- GUIs.ZooFlow/frmAdmin.vb | 16 +- GUIs.ZooFlow/frmFlowForm.Designer.vb | 22 ++- GUIs.ZooFlow/frmFlowForm.resx | 3 + GUIs.ZooFlow/frmFlowForm.vb | 101 ++++++++++--- 8 files changed, 188 insertions(+), 212 deletions(-) rename GUIs.ZooFlow/{ClassFlowForm.vb => ClassWin32.vb} (56%) diff --git a/GUIs.ZooFlow/ClassFlowForm.vb b/GUIs.ZooFlow/ClassWin32.vb similarity index 56% rename from GUIs.ZooFlow/ClassFlowForm.vb rename to GUIs.ZooFlow/ClassWin32.vb index ebe9226a..e3aa6c82 100644 --- a/GUIs.ZooFlow/ClassFlowForm.vb +++ b/GUIs.ZooFlow/ClassWin32.vb @@ -1,7 +1,6 @@ -Imports System.Drawing.Imaging -Imports System.Runtime.InteropServices +Imports System.Runtime.InteropServices -Class Win32 +Public Class ClassWin32 Public Enum Bool [False] = 0 [True] @@ -81,60 +80,4 @@ Class Win32 Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer End Function - -End Class - -Public Class ClassFlowForm - Inherits Form - Public Sub New() - FormBorderStyle = FormBorderStyle.None - TopMost = True - End Sub - - Public Sub SetBitmap(ByVal bitmap As Bitmap) - SetBitmap(bitmap, 255, bitmap.Width, bitmap.Height) - End Sub - - Public Sub SetBitmap(ByVal Bitmap As Bitmap, ByVal Opacity As Byte, ByVal Width As Integer, ByVal Height As Integer) - If Bitmap.PixelFormat <> PixelFormat.Format32bppArgb Then - Throw New ApplicationException("The bitmap must be 32ppp with alpha-channel.") - End If - - Dim oScreenDeviceContext As IntPtr = Win32.GetDC(IntPtr.Zero) - Dim oMemoryDeviceContext As IntPtr = Win32.CreateCompatibleDC(oScreenDeviceContext) - Dim oBitmap As IntPtr = IntPtr.Zero - Dim oOldBitmap As IntPtr = IntPtr.Zero - - Try - oBitmap = Bitmap.GetHbitmap(Color.FromArgb(0)) - oOldBitmap = Win32.SelectObject(oMemoryDeviceContext, oBitmap) - Dim oSize As Win32.Size = New Win32.Size(Width, Height) - Dim oPointSource As Win32.Point = New Win32.Point(0, 0) - Dim oTopPos As Win32.Point = New Win32.Point(Left, Top) - Dim oBlend As Win32.BLENDFUNCTION = New Win32.BLENDFUNCTION With { - .BlendOp = Win32.AC_SRC_OVER, - .BlendFlags = 0, - .SourceConstantAlpha = Opacity, - .AlphaFormat = Win32.AC_SRC_ALPHA - } - Win32.UpdateLayeredWindow(Handle, oScreenDeviceContext, oTopPos, oSize, oMemoryDeviceContext, oPointSource, 0, oBlend, Win32.ULW_ALPHA) - Finally - Win32.ReleaseDC(IntPtr.Zero, oScreenDeviceContext) - - If oBitmap <> IntPtr.Zero Then - Win32.SelectObject(oMemoryDeviceContext, oOldBitmap) - Win32.DeleteObject(oBitmap) - End If - - Win32.DeleteDC(oMemoryDeviceContext) - End Try - End Sub - - Protected Overrides ReadOnly Property CreateParams As CreateParams - Get - Dim oParams As CreateParams = MyBase.CreateParams - oParams.ExStyle = oParams.ExStyle Or &H80000 - Return oParams - End Get - End Property End Class diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index 6e79c28f..701c60ac 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -89,6 +89,7 @@ + @@ -97,7 +98,6 @@ - diff --git a/GUIs.ZooFlow/frmAdmin.Designer.vb b/GUIs.ZooFlow/frmAdmin.Designer.vb index 2dcc13be..d5ebf5ae 100644 --- a/GUIs.ZooFlow/frmAdmin.Designer.vb +++ b/GUIs.ZooFlow/frmAdmin.Designer.vb @@ -24,25 +24,26 @@ ''' the contents of this method with the code editor. ''' Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() Dim SplashScreenManager As DevExpress.XtraSplashScreen.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.DigitalData.GUIs.ZooFlow.frmSplash), True, True) Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAdmin)) Me.ribbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.ApplicationMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu() + Me.ApplicationMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu(Me.components) Me.ButtonSettings = New DevExpress.XtraBars.BarButtonItem() Me.ButtonExit = New DevExpress.XtraBars.BarButtonItem() Me.SkinDropDownButtonItem1 = New DevExpress.XtraBars.SkinDropDownButtonItem() Me.ribbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.ribbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.NotifyIconMain = New System.Windows.Forms.NotifyIcon() - Me.ContextMenuStripMain = New System.Windows.Forms.ContextMenuStrip() + Me.NotifyIconMain = New System.Windows.Forms.NotifyIcon(Me.components) + Me.ContextMenuStripMain = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.AnzeigenVersteckenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AdministrationToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToastNotificationsManager = New DevExpress.XtraBars.ToastNotifications.ToastNotificationsManager() - Me.TimerRefreshData = New System.Windows.Forms.Timer() - Me.ImageListDebugTree = New System.Windows.Forms.ImageList() + Me.ToastNotificationsManager = New DevExpress.XtraBars.ToastNotifications.ToastNotificationsManager(Me.components) + Me.TimerRefreshData = New System.Windows.Forms.Timer(Me.components) + Me.ImageListDebugTree = New System.Windows.Forms.ImageList(Me.components) CType(Me.ribbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ApplicationMenu, System.ComponentModel.ISupportInitialize).BeginInit() Me.ContextMenuStripMain.SuspendLayout() @@ -57,13 +58,13 @@ ' Me.ribbonControl1.ApplicationButtonDropDownControl = Me.ApplicationMenu Me.ribbonControl1.ExpandCollapseItem.Id = 0 - Me.ribbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonControl1.ExpandCollapseItem, Me.ButtonSettings, Me.ButtonExit, Me.SkinDropDownButtonItem1}) + Me.ribbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonControl1.ExpandCollapseItem, Me.ribbonControl1.SearchEditItem, Me.ButtonSettings, Me.ButtonExit, Me.SkinDropDownButtonItem1}) Me.ribbonControl1.Location = New System.Drawing.Point(0, 0) Me.ribbonControl1.MaxItemId = 4 Me.ribbonControl1.Name = "ribbonControl1" Me.ribbonControl1.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1) Me.ribbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.ribbonPage1}) - Me.ribbonControl1.Size = New System.Drawing.Size(906, 143) + Me.ribbonControl1.Size = New System.Drawing.Size(906, 158) ' 'ApplicationMenu ' @@ -76,14 +77,14 @@ ' Me.ButtonSettings.Caption = "Einstellungen" Me.ButtonSettings.Id = 1 - Me.ButtonSettings.ImageOptions.Image = CType(resources.GetObject("ButtonSettings.ImageOptions.Image"), System.Drawing.Image) + Me.ButtonSettings.ImageOptions.SvgImage = CType(resources.GetObject("ButtonSettings.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.ButtonSettings.Name = "ButtonSettings" ' 'ButtonExit ' Me.ButtonExit.Caption = "Beenden" Me.ButtonExit.Id = 2 - Me.ButtonExit.ImageOptions.Image = CType(resources.GetObject("ButtonExit.ImageOptions.Image"), System.Drawing.Image) + Me.ButtonExit.ImageOptions.SvgImage = CType(resources.GetObject("ButtonExit.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.ButtonExit.Name = "ButtonExit" ' 'SkinDropDownButtonItem1 @@ -111,38 +112,39 @@ ' 'ContextMenuStripMain ' - Me.ContextMenuStripMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AnzeigenVersteckenToolStripMenuItem, Me.AdministrationToolStripMenuItem, Me.ToolStripSeparator2, Me.ToolStripSeparator1, Me.BeendenToolStripMenuItem}) + Me.ContextMenuStripMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AnzeigenVersteckenToolStripMenuItem, Me.ToolStripSeparator2, Me.ToolStripMenuItem1, Me.ToolStripSeparator1, Me.BeendenToolStripMenuItem}) Me.ContextMenuStripMain.Name = "ContextMenuStripMain" - Me.ContextMenuStripMain.Size = New System.Drawing.Size(185, 82) + Me.ContextMenuStripMain.Size = New System.Drawing.Size(285, 82) ' 'AnzeigenVersteckenToolStripMenuItem ' Me.AnzeigenVersteckenToolStripMenuItem.Name = "AnzeigenVersteckenToolStripMenuItem" - Me.AnzeigenVersteckenToolStripMenuItem.Size = New System.Drawing.Size(184, 22) - Me.AnzeigenVersteckenToolStripMenuItem.Text = "Anzeigen/Verstecken" - ' - 'AdministrationToolStripMenuItem - ' - Me.AdministrationToolStripMenuItem.Name = "AdministrationToolStripMenuItem" - Me.AdministrationToolStripMenuItem.Size = New System.Drawing.Size(184, 22) - Me.AdministrationToolStripMenuItem.Text = "Administration" + Me.AnzeigenVersteckenToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.AnzeigenVersteckenToolStripMenuItem.Text = "Administration Anzeigen/Verstecken" ' 'ToolStripSeparator2 ' Me.ToolStripSeparator2.Name = "ToolStripSeparator2" - Me.ToolStripSeparator2.Size = New System.Drawing.Size(181, 6) + Me.ToolStripSeparator2.Size = New System.Drawing.Size(281, 6) Me.ToolStripSeparator2.Tag = "MODULE_ITEM_START" ' + 'ToolStripMenuItem1 + ' + Me.ToolStripMenuItem1.Enabled = False + Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" + Me.ToolStripMenuItem1.Size = New System.Drawing.Size(284, 22) + Me.ToolStripMenuItem1.Text = "Placeholder for module-specific actions" + ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(181, 6) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(281, 6) Me.ToolStripSeparator1.Tag = "MODULE_ITEM_END" ' 'BeendenToolStripMenuItem ' Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" - Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(184, 22) + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(284, 22) Me.BeendenToolStripMenuItem.Text = "Beenden" ' 'ToastNotificationsManager @@ -192,7 +194,6 @@ Private WithEvents ribbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents NotifyIconMain As NotifyIcon Friend WithEvents ContextMenuStripMain As ContextMenuStrip - Friend WithEvents AdministrationToolStripMenuItem As ToolStripMenuItem Friend WithEvents ToolStripSeparator2 As ToolStripSeparator Friend WithEvents ToolStripSeparator1 As ToolStripSeparator Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem @@ -204,4 +205,5 @@ Friend WithEvents SkinDropDownButtonItem1 As DevExpress.XtraBars.SkinDropDownButtonItem Friend WithEvents TimerRefreshData As Timer Friend WithEvents ImageListDebugTree As ImageList + Friend WithEvents ToolStripMenuItem1 As ToolStripMenuItem End Class diff --git a/GUIs.ZooFlow/frmAdmin.resx b/GUIs.ZooFlow/frmAdmin.resx index 682b07c0..a9e699ac 100644 --- a/GUIs.ZooFlow/frmAdmin.resx +++ b/GUIs.ZooFlow/frmAdmin.resx @@ -120,110 +120,48 @@ 702, 17 - - + + - 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 - N5fmzFsjzZ5vJqAzz1Rg1tzVPE2llBpcvWDBYiuaD8xbbEnzDC1JfYL2QnwT8eW5ugYWGIYUES7/T/we - UVnFoWBr+TznI5VPNdUJyXP+R5GkfwMPT3OfchuhBQAAAABJRU5ErkJggg== + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku + WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iUHJvcGVydGllcyI+DQogICAgPHBhdGggZD0iTTMwLDE4di00bC00LjQtMC43Yy0w + LjItMC44LTAuNS0xLjUtMC45LTIuMWwyLjYtMy42bC0yLjgtMi44bC0zLjYsMi42Yy0wLjctMC40LTEu + NC0wLjctMi4xLTAuOUwxOCwyaC00ICAgbC0wLjcsNC40Yy0wLjgsMC4yLTEuNSwwLjUtMi4xLDAuOUw3 + LjUsNC43TDQuNyw3LjVsMi42LDMuNmMtMC40LDAuNy0wLjcsMS40LTAuOSwyLjFMMiwxNHY0bDQuNCww + LjdjMC4yLDAuOCwwLjUsMS41LDAuOSwyLjEgICBsLTIuNiwzLjZsMi44LDIuOGwzLjYtMi42YzAuNyww + LjQsMS40LDAuNywyLjEsMC45TDE0LDMwaDRsMC43LTQuNGMwLjgtMC4yLDEuNS0wLjUsMi4xLTAuOWwz + LjYsMi42bDIuOC0yLjhsLTIuNi0zLjYgICBjMC40LTAuNywwLjctMS40LDAuOS0yLjFMMzAsMTh6IE0x + NiwyMGMtMi4yLDAtNC0xLjgtNC00YzAtMi4yLDEuOC00LDQtNHM0LDEuOCw0LDRDMjAsMTguMiwxOC4y + LDIwLDE2LDIweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= - + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACN0RVh0VGl0 - bGUAQ2FuY2VsO1N0b3A7RXhpdDtCYXJzO1JpYmJvbjtMlpayAAALFUlEQVRYR5WXB1RVxxaGx/dSfEGM - xq50BUUEC1goAtJBwYZiiRpFDREJNkBApVgQE7FjJMYSg6KiXlBRNNJEqQIXROBSlM6lKqLI1bf+7DkX - iHkr67319lrfmrlzZvb/zz5zDgdWsz+Y2C0n9G+g8Wpqq0M4wYyiz3/jRYA/ex7gxyp2+rLnRIW/Nyv3 - 9WLl271Ymc9WVuq9hUm2bWaSrZ40naJmXxD7d+vzbl6wD38DRY/AP4h/Ep8Qn/4HfIzDr/N5fd7XP2Pv - 6wvZ+zrOU/a+poDJasRMVp3Hijw9aApF1d4A9qGlnKj4K2SIokdYEM302jyleIdvcOku/0dlu/xyKgL8 - PpTv9P0g8ffOlfh6P8732rwnYcN6A5r7GZ9PyI0I4vm94rKqXFa4cQNdoqgM3sk+NJcRZOIjKHp2/Kl4 - +7bFJCip/DEEzbFX0CFOxdtnmaB5RBneFKbjdU4yGq9HomJvIJ5t2yxJc3dbTms/JwQjMm6gSi4uq3zC - 8r9zo2GKil1+7H2jpJtSoaUQdp3g7ja6xH97ek34EXTkpeJ9fRE6i9LQkX4Xr1Nv4uXdi3h55ze0J91A - e0oM3oqTIKvOR3t2IirC9kPs4Z55dsH8cZSLV0SoRteLbNb1PIvlrVtLPynK/Lez9w3FvVBw8U/SPT2s - JTu2t7beE6HrRR5eP75NYpFy4i6g7TZx6zzaYs+iVXQGrddPoyX6FFqunsTL+IvoLE6DNCYK+R7urTFL - lzhQTl4NuYnSNJa9ejV1KSQ+2+jePGWy2kL+UxBP3fCdjWSXf1d7ViLeZP8uF7opp/XmObTFnCVI9MYv - JPwzWq9FkPBPaL58As0Xj6Hpt8NoPB+G9oRotD2MQ66Hu+y688JeE53FqSxzxUqux1jRZk/WVZnHu0LZ - Rd+sGFfos625PfMBXlGCFi5C8FaABFu4YDQXpR1fOUnC4Wi+dBxNkUfQeOEQGs/9iMYzByD9OUSoSmtS - LDJcXVuOWVvrkoZwOx4vXcY1GROvWc26yrN5l5fnszyPjY+lsVFUxig08+RXaGe9cLFuwSjaLRcVdtwj - fBCNZ3+A9HQoGiL2ouHkbtQdDyJjx1AdeRrJLkvTSaMfwQ8m3zBjWS5LeCOUPnntmuUlwbvQnixCY+RR - YWEPNREHEOc8F78aTMX9rxej4exBNP1KolTqehKMd5mP0xP0IHKwRmXYDtSfCEbd0QDUHt6B2oO+aKFz - kvX9Rlyyc+A3vy/BN8xYuvMi3vAfn2evXy9puh0F6YXDkJKA9FyYQE34PojsbXDNaxfuxDzE1fUeuDXX - AXWnQlD30z7EzLHF5bXuiBOl4IqnL6JMjFAR4oXaMD9U/+CD6tBtqD7gjdrIU4h3ml9GWv2J3ioIu79q - a28n3uJJTs9S4n2ojwgRaPh5P+4sdILINwipWWUoe96IotJ6XHPzxE1He9ycY0fiG5GUVoyisnqUPG+C - iIyKrC1QFeqFqpAtqNq9CS8CNwq5UletwrGphk6k2fNUCAY+i7ObfejZzm2o3O2JmqOBqKUScuqIy8ZG - qK9qQEV1C9rau9D2+h1KyhsEE5fXeSDxcTGKyVhz+zs0v+pEq7QFZ3QnomqPJ14EfY/nAe6o8P8W5d6u - yN26ERemmxwnTQWCv2EFF33jbR0eSXZ6osTVCcXfzkflnk2oObQDNYd3InHVMjzasROd72Rk4B1aXpEQ - tcXlUqTnVKC4ohFNLzsF+JwkLx/EzXeUC+9wQ+nWVXi2xglFaxxR6LMBUdNn8sPIb0OvgS/ireyaJd7r - ULjSDoVf26JwhR1K3JxR7u+G2vA9uLdoAdICAwUBQYx2ytvGj+jslOGhnx9i7a3xItQHpZtWoNh1npDr - 6XIbwhbFW1xx2cCkhTQHEvwcCC4UblvYyCQey1HgYo2CpdZ4uowvILiZVQ4o93ND3GwbJPv6Qdr2BlIS - lLa97aW+uQOJPr6IsTRD2Xa+EQdBkOfh+fJdLCFebIlidxdcmmwoI82vCP5XVDDQL3ampaxw9TyInWfR - RAvk02S+qGCJlTwBJbptaYob33rgqUQKaQsZaHmLBqKOqG3qwK0NmxBjaggxzS9YaoX8JfIcPF+eszny - Fpqh4Js5uKA7nRsY9BcDN4zMmnOW2CNvAU1cYEaTzckMsYgMLbLALXNDXKfH7/eUIhSUSlHXTKICHYJ4 - bdNbiIvrcdV1A64b6iOXC3IoV+4CU+TOm0mYIsvZGme19fkt6DXAz4DCJQOTx2lzrZBDE584mdBkDi2a - PxN3LY1xw+173E95hnzavVywA2/edqGDqGnsQHU3ec9qcW3tBsQYG1AuUzyZa4InjsbIdjQS8ibZmSFc - c2ImafaeAW7gX6f1ph29b2WObCdTZDvMQNYcQ2TPMaKFJG5qjDJJNcQl9YJYDYl3vOlCRlAA0gMDhH6V - tEOgsuE1aqukuKg/RVifNXsGMilfpt10ymmEWKPpCFXR/ok0//IUfL5XS9cpepoRMhwIm6nItJmGDLtp - yKKF8faWeHryBF51dFHp3wiCWcFBuGNjjjhrM8HIaxrjVeFz8o4ewc1ZJsL6TMqVYW2AdCt9pNlOx3nt - idg6TN2FNPl7gGvL34TEl2e09cvvG08RJqdb8nYKMqwMkLtsNuJIjJt429CArKBA3LWdhYKVjihY5Yg7 - 1qbICNyFNw31yDt2FCJTI+QstUcarU+zmIy0WZOQRvnipk7AYSVt/q03lOBvwj7s3Dh9auXvgj1q49dF - 6kxGqvkkPDKbiMfmBF9MhriJ+w6WiJ01Ew/mWCFvmYNgNIMQL7PHPXsLRBsbIs6K7jsd5jRLfSHHI1M9 - PJqphxQTPUSoa2PrYFV30uopfx/2i+ZkaoUq8BM54ISGbtYNPR2kGE9AqrEuUmlx6kxdPDKfjNzF9Diu - nIscZyukmZFJUy5AJqmfs5Ae1xWOyF1kTcKT8NBEvv6hkQ6SZ4xHlJYmQoeO4R8ef+6eR4SGHkuw4B+y - 8sO4ZrDSjHA1ndbYiVpImqotLE6ZoYOHhtQakjGj8ULSh0YTPoJf52N03VCb5vM12kiaPg6JBlq4Pk4D - YUNHty3oN8SUNPj3gHz3PMJVddj9GRMEKPhZ6Ld5iOrCcGVt2TXt0fh9iiYSp45FMpE4bRySiSQipbv9 - k7ECiZypWkgg7k3SwGVNVYQN1pC5Kg5fSrkHELzSfX4YqEYNxfFR2uzuZE0WR1D03Ir+7l8pLzo8XOtl - pIYabuuo4f5kDTyYMgYP9DUFEnoZgwQymSBcI6h/T08DN8er4LyKCkK/Un21WmEo//7ir17+OdZHNEGd - hfZXpS7FkRFjWSwNxOqo85/cQI8JxXn9Bk/bP0gjN3yEOqLUlRE7Vgm3KPE9XTVCHQ8mUoWIePodP0EN - cXRNpDUKkaqjcHSwCoL6K4tt+w4wolx854I455qWEtunqEJdirAhY5iIBq5rjWIizVF8qMcEvx38WR3i - 0X+k+76BapWHBqsiYoQSflMZSSIjET16OKI1hiNSZQQuKI/EqeGjcHCgMvYoKle5KQzj/3sNJxQJoeyc - K+oj2BX14WyvgjL9pPhxkAaLVh/Grml0Q32KHhP8sPATyx+bYcu+GOLorTjyRKCisjhYUaUkpL8KQhRp - p/2USgIUlMRbvxgR7tJ30FyaO4Lgu+bffnwjQr7LKkNYD3sVlGiI4sBAdXZggBoL5XypSi3B2/5CiT42 - wkvIK8ITDyH47kZ2w/v88eLvd37KueleYS72d/w/0WOEP6o8MS8pN8SFOLzPx/g1Pqdn/v8Ixv4AVZya - X9ttAMYAAAAASUVORK5CYII= + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRlbGV0ZUNpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0x + Niw0QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHog + TTIzLjEsMjAuMmwtMi44LDIuOEwxNiwxOC44bC00LjIsNC4yICAgbC0yLjgtMi44bDQuMi00LjJsLTQu + Mi00LjJsMi44LTIuOGw0LjIsNC4ybDQuMi00LjJsMi44LDIuOEwxOC44LDE2TDIzLjEsMjAuMnoiIGNs + YXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs= @@ -232,6 +170,7 @@ 325, 17 + AAABAAQAEBAAAAEACABoBQAARgAAABAQAAABABgAaAMAAK4FAAAgIAAAAQAIAKgIAAAWCQAAICAAAAEA @@ -373,14 +312,14 @@ 847, 17 - 996, 17 + 17, 56 AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABU - CwAAAk1TRnQBSQFMAgEBBQEAAVgBAAFYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CwAAAk1TRnQBSQFMAgEBBQEAAXABAAFwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/GUIs.ZooFlow/frmAdmin.vb b/GUIs.ZooFlow/frmAdmin.vb index c81cf687..34dbfb11 100644 --- a/GUIs.ZooFlow/frmAdmin.vb +++ b/GUIs.ZooFlow/frmAdmin.vb @@ -60,7 +60,16 @@ Partial Public Class frmAdmin Visible = False End Sub - Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) + Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + If FlowForm IsNot Nothing Then + FlowForm.Close() + End If + End Sub + + Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed + My.UIConfig.FlowForm.Location = FlowForm.Location + My.UIConfigManager.Save() + EventBus.Instance.Unregister(Me) End Sub @@ -150,9 +159,6 @@ Partial Public Class frmAdmin ToggleVisibility() End Sub - - - #End Region Private Sub ToggleVisibility() @@ -197,6 +203,4 @@ Partial Public Class frmAdmin Logger.Error(ex) End Try End Sub - - End Class diff --git a/GUIs.ZooFlow/frmFlowForm.Designer.vb b/GUIs.ZooFlow/frmFlowForm.Designer.vb index f806a052..44b69e35 100644 --- a/GUIs.ZooFlow/frmFlowForm.Designer.vb +++ b/GUIs.ZooFlow/frmFlowForm.Designer.vb @@ -1,6 +1,6 @@  _ Partial Class frmFlowForm - Inherits ClassFlowForm + Inherits Form 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. _ @@ -22,8 +22,24 @@ Partial Class frmFlowForm 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. _ Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.SucheToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ContextMenuStrip1.SuspendLayout() Me.SuspendLayout() ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SucheToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(107, 26) + ' + 'SucheToolStripMenuItem + ' + Me.SucheToolStripMenuItem.Name = "SucheToolStripMenuItem" + Me.SucheToolStripMenuItem.Size = New System.Drawing.Size(106, 22) + Me.SucheToolStripMenuItem.Text = "Suche" + ' 'frmFlowForm ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -31,7 +47,11 @@ Partial Class frmFlowForm Me.ClientSize = New System.Drawing.Size(800, 450) Me.Name = "frmFlowForm" Me.Text = "frmFlowForm" + Me.ContextMenuStrip1.ResumeLayout(False) Me.ResumeLayout(False) End Sub + + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents SucheToolStripMenuItem As ToolStripMenuItem End Class diff --git a/GUIs.ZooFlow/frmFlowForm.resx b/GUIs.ZooFlow/frmFlowForm.resx index 1af7de15..279a4474 100644 --- a/GUIs.ZooFlow/frmFlowForm.resx +++ b/GUIs.ZooFlow/frmFlowForm.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb index 19f7a403..3205f6d6 100644 --- a/GUIs.ZooFlow/frmFlowForm.vb +++ b/GUIs.ZooFlow/frmFlowForm.vb @@ -1,20 +1,35 @@ Imports System.ComponentModel +Imports System.Drawing.Imaging +Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Messaging Public Class frmFlowForm Private WithEvents Watcher As ClassClipboardWatcher = ClassClipboardWatcher.Singleton Private ActiveModules As List(Of String) + Private Logger As Logger + Private ESCHitCount As Integer = 0 Private CurrentState As OnFlowFormStateChangedEvent.FlowFormState = OnFlowFormStateChangedEvent.FlowFormState.Default Public Event ClipboardChanged As EventHandler(Of IDataObject) + Public Sub New() + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + ActiveModules = New List(Of String) + Logger = My.LogConfig.GetLogger() + End Sub + + Public Sub New(ActiveModules As List(Of String)) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.ActiveModules = ActiveModules + Logger = My.LogConfig.GetLogger() End Sub Private Sub frmFlowForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load @@ -22,7 +37,9 @@ Public Class frmFlowForm TopMost = True AllowDrop = True ShowInTaskbar = False - SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.Default) + + SetFormLocation() + SetFormState(OnFlowFormStateChangedEvent.FlowFormState.Default) ' === Register Events === @@ -38,17 +55,16 @@ Public Class frmFlowForm Try EventBus.Instance.Unregister(Me) Catch ex As Exception - + Logger.Error(ex) End Try - End Sub Private Sub Form_MouseClick(sender As Object, ByVal e As MouseEventArgs) If e.Button = MouseButtons.Right Then - MsgBox("RightMouseClick", MsgBoxStyle.OkOnly) + ContextMenuStrip1.Show(Cursor.Position) Else If CurrentState = OnFlowFormStateChangedEvent.FlowFormState.HasSearchResults Then - SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.Default) + SetFormState(OnFlowFormStateChangedEvent.FlowFormState.Default) EventBus.Instance.PostEvent(New OnFlowFormInteractionEvent(OnFlowFormInteractionEvent.FlowFormInteraction.Click)) End If End If @@ -57,16 +73,19 @@ Public Class frmFlowForm Private Sub Form_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) If e.Button = MouseButtons.Left Then - Win32.ReleaseCapture() - Win32.SendMessage(Handle, Win32.WM_NCLBUTTONDOWN, Win32.HTCAPTION, 0) + ClassWin32.ReleaseCapture() + ClassWin32.SendMessage(Handle, ClassWin32.WM_NCLBUTTONDOWN, ClassWin32.HTCAPTION, 0) End If End Sub + Private Sub Form_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) If e.KeyCode = Keys.Escape Then If ESCHitCount > 0 Then Dim result As DialogResult = MessageBox.Show("Exit Zooflow", "Please Varify", MessageBoxButtons.YesNo) If result = DialogResult.Yes Then Application.Exit() + Else + ESCHitCount = 0 End If Else ESCHitCount += 1 @@ -75,16 +94,15 @@ Public Class frmFlowForm If ActiveModules.Contains(ClassConstants.MODULE_ZOOFLOW) Then MsgBox("Search") End If - End If End Sub Public Sub OnEvent(e As OnFlowFormStateChangedEvent) CurrentState = e.State - SetFlowFormState(e.State) + SetFormState(e.State) End Sub - Public Sub SetFlowFormState(State As OnFlowFormStateChangedEvent.FlowFormState) + Public Sub SetFormState(State As OnFlowFormStateChangedEvent.FlowFormState) Select Case State Case OnFlowFormStateChangedEvent.FlowFormState.HasSearchResults SetBitmap(My.Resources.CW_GEFUNDEN_klein) @@ -95,6 +113,10 @@ Public Class frmFlowForm End Select End Sub + Public Sub SetFormLocation() + Me.Location = My.UIConfig.FlowForm.Location + End Sub + Private Sub frmFlowForm_DragOver(sender As Object, e As DragEventArgs) Handles Me.DragOver If Not ActiveModules.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then e.Effect = DragDropEffects.None @@ -102,15 +124,15 @@ Public Class frmFlowForm If e.Data.GetDataPresent(DataFormats.FileDrop) Then ' Handle file dragged from Windows e.Effect = DragDropEffects.Copy - SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.HasFileDropped) + SetFormState(OnFlowFormStateChangedEvent.FlowFormState.HasFileDropped) ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then ' Handle a message dragged from Outlook e.Effect = DragDropEffects.Copy - SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.HasFileDropped) + SetFormState(OnFlowFormStateChangedEvent.FlowFormState.HasFileDropped) ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then ' Handle a message dragged from Thunderbird? e.Effect = DragDropEffects.Copy - SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.HasFileDropped) + SetFormState(OnFlowFormStateChangedEvent.FlowFormState.HasFileDropped) Else ' Otherwise, do not handle e.Effect = DragDropEffects.None @@ -119,7 +141,7 @@ Public Class frmFlowForm End Sub Private Sub frmFlowForm_DragLeave(sender As Object, e As EventArgs) Handles Me.DragLeave - SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.Default) + SetFormState(OnFlowFormStateChangedEvent.FlowFormState.Default) End Sub Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject) Handles Watcher.ClipboardChanged @@ -128,10 +150,6 @@ Public Class frmFlowForm End If End Sub - Private Sub frmFlowForm_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing - - End Sub - '''' '''' DragDrop Support '''' @@ -143,4 +161,51 @@ Public Class frmFlowForm ' MyBase.WndProc(m) 'End Sub + + Public Sub SetBitmap(ByVal bitmap As Bitmap) + SetBitmap(bitmap, 255, bitmap.Width, bitmap.Height) + End Sub + + Public Sub SetBitmap(ByVal Bitmap As Bitmap, ByVal Opacity As Byte, ByVal Width As Integer, ByVal Height As Integer) + If Bitmap.PixelFormat <> PixelFormat.Format32bppArgb Then + Throw New ApplicationException("The bitmap must be 32ppp with alpha-channel.") + End If + + Dim oScreenDeviceContext As IntPtr = ClassWin32.GetDC(IntPtr.Zero) + Dim oMemoryDeviceContext As IntPtr = ClassWin32.CreateCompatibleDC(oScreenDeviceContext) + Dim oBitmap As IntPtr = IntPtr.Zero + Dim oOldBitmap As IntPtr = IntPtr.Zero + + Try + oBitmap = Bitmap.GetHbitmap(Color.FromArgb(0)) + oOldBitmap = ClassWin32.SelectObject(oMemoryDeviceContext, oBitmap) + Dim oSize As ClassWin32.Size = New ClassWin32.Size(Width, Height) + Dim oPointSource As ClassWin32.Point = New ClassWin32.Point(0, 0) + Dim oTopPos As ClassWin32.Point = New ClassWin32.Point(Left, Top) + Dim oBlend As ClassWin32.BLENDFUNCTION = New ClassWin32.BLENDFUNCTION With { + .BlendOp = ClassWin32.AC_SRC_OVER, + .BlendFlags = 0, + .SourceConstantAlpha = Opacity, + .AlphaFormat = ClassWin32.AC_SRC_ALPHA + } + ClassWin32.UpdateLayeredWindow(Handle, oScreenDeviceContext, oTopPos, oSize, oMemoryDeviceContext, oPointSource, 0, oBlend, ClassWin32.ULW_ALPHA) + Finally + ClassWin32.ReleaseDC(IntPtr.Zero, oScreenDeviceContext) + + If oBitmap <> IntPtr.Zero Then + ClassWin32.SelectObject(oMemoryDeviceContext, oOldBitmap) + ClassWin32.DeleteObject(oBitmap) + End If + + ClassWin32.DeleteDC(oMemoryDeviceContext) + End Try + End Sub + + Protected Overrides ReadOnly Property CreateParams As CreateParams + Get + Dim oParams As CreateParams = MyBase.CreateParams + oParams.ExStyle = oParams.ExStyle Or &H80000 + Return oParams + End Get + End Property End Class \ No newline at end of file