From 9228fcfbbb21fa8942a244b7c8963745f738ddc9 Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Mon, 10 Jan 2022 11:33:47 +0100 Subject: [PATCH] MS Zooflow Sidebar --- .../My Project/licenses.licx | 1 - .../My Project/licenses.licx.bak | 2 +- GUIs.Common/My Project/licenses.licx | 3 - GUIs.Common/My Project/licenses.licx.bak | 12 +- GUIs.ZooFlow/My Project/licenses.licx | 2 - GUIs.ZooFlow/My Project/licenses.licx.bak | 9 +- GUIs.ZooFlow/frmFlowForm.Designer.vb | 16 +- GUIs.ZooFlow/frmFlowForm.resx | 4 +- GUIs.ZooFlow/frmFlowForm.vb | 157 ++++++++++++++++++ 9 files changed, 175 insertions(+), 31 deletions(-) diff --git a/GUIs.ClipboardWatcher/My Project/licenses.licx b/GUIs.ClipboardWatcher/My Project/licenses.licx index f44a7f5f..e69de29b 100644 --- a/GUIs.ClipboardWatcher/My Project/licenses.licx +++ b/GUIs.ClipboardWatcher/My Project/licenses.licx @@ -1 +0,0 @@ -DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ClipboardWatcher/My Project/licenses.licx.bak b/GUIs.ClipboardWatcher/My Project/licenses.licx.bak index df67c51b..f44a7f5f 100644 --- a/GUIs.ClipboardWatcher/My Project/licenses.licx.bak +++ b/GUIs.ClipboardWatcher/My Project/licenses.licx.bak @@ -1 +1 @@ -DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Common/My Project/licenses.licx b/GUIs.Common/My Project/licenses.licx index a42d698e..e69de29b 100644 --- a/GUIs.Common/My Project/licenses.licx +++ b/GUIs.Common/My Project/licenses.licx @@ -1,3 +0,0 @@ -DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Common/My Project/licenses.licx.bak b/GUIs.Common/My Project/licenses.licx.bak index 264209e7..a42d698e 100644 --- a/GUIs.Common/My Project/licenses.licx.bak +++ b/GUIs.Common/My Project/licenses.licx.bak @@ -1,9 +1,3 @@ -DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ZooFlow/My Project/licenses.licx b/GUIs.ZooFlow/My Project/licenses.licx index 7ac0984f..e69de29b 100644 --- a/GUIs.ZooFlow/My Project/licenses.licx +++ b/GUIs.ZooFlow/My Project/licenses.licx @@ -1,2 +0,0 @@ -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ZooFlow/My Project/licenses.licx.bak b/GUIs.ZooFlow/My Project/licenses.licx.bak index 701a04fa..de1da788 100644 --- a/GUIs.ZooFlow/My Project/licenses.licx.bak +++ b/GUIs.ZooFlow/My Project/licenses.licx.bak @@ -1,6 +1,5 @@ -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ZooFlow/frmFlowForm.Designer.vb b/GUIs.ZooFlow/frmFlowForm.Designer.vb index 128f9ba9..6200c680 100644 --- a/GUIs.ZooFlow/frmFlowForm.Designer.vb +++ b/GUIs.ZooFlow/frmFlowForm.Designer.vb @@ -152,7 +152,7 @@ Partial Class frmFlowForm ' Me.PictureBoxAbo.Cursor = System.Windows.Forms.Cursors.Hand Me.PictureBoxAbo.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_Abo - Me.PictureBoxAbo.Location = New System.Drawing.Point(275, 0) + Me.PictureBoxAbo.Location = New System.Drawing.Point(97, 153) Me.PictureBoxAbo.Name = "PictureBoxAbo" Me.PictureBoxAbo.Size = New System.Drawing.Size(40, 36) Me.PictureBoxAbo.TabIndex = 11 @@ -162,11 +162,11 @@ Partial Class frmFlowForm 'PictureBoxDragDrop ' Me.PictureBoxDragDrop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.PictureBoxDragDrop.Dock = System.Windows.Forms.DockStyle.Left + Me.PictureBoxDragDrop.Dock = System.Windows.Forms.DockStyle.Top Me.PictureBoxDragDrop.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._1_LOGO_ZOO_FLOW Me.PictureBoxDragDrop.Location = New System.Drawing.Point(0, 0) Me.PictureBoxDragDrop.Name = "PictureBoxDragDrop" - Me.PictureBoxDragDrop.Size = New System.Drawing.Size(197, 150) + Me.PictureBoxDragDrop.Size = New System.Drawing.Size(200, 150) Me.PictureBoxDragDrop.TabIndex = 10 Me.PictureBoxDragDrop.TabStop = False Me.ToolTip1.SetToolTip(Me.PictureBoxDragDrop, "Drag and Drop files here") @@ -177,7 +177,7 @@ Partial Class frmFlowForm Me.PictureBoxPM1.ItemAppearance.Hovered.FillColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(49, Byte), Integer)) Me.PictureBoxPM1.ItemAppearance.Normal.FillColor = System.Drawing.SystemColors.ControlDark Me.PictureBoxPM1.ItemHitTestType = DevExpress.XtraEditors.ItemHitTestType.BoundingBox - Me.PictureBoxPM1.Location = New System.Drawing.Point(336, 34) + Me.PictureBoxPM1.Location = New System.Drawing.Point(47, 298) Me.PictureBoxPM1.Name = "PictureBoxPM1" Me.PictureBoxPM1.Size = New System.Drawing.Size(90, 90) Me.PictureBoxPM1.SizeMode = DevExpress.XtraEditors.SvgImageSizeMode.Zoom @@ -211,7 +211,7 @@ Partial Class frmFlowForm Me.PictureBoxGlobix1.ItemAppearance.Hovered.FillColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(49, Byte), Integer)) Me.PictureBoxGlobix1.ItemAppearance.Normal.FillColor = System.Drawing.SystemColors.ControlDark Me.PictureBoxGlobix1.ItemHitTestType = DevExpress.XtraEditors.ItemHitTestType.BoundingBox - Me.PictureBoxGlobix1.Location = New System.Drawing.Point(448, 34) + Me.PictureBoxGlobix1.Location = New System.Drawing.Point(47, 406) Me.PictureBoxGlobix1.Name = "PictureBoxGlobix1" Me.PictureBoxGlobix1.Size = New System.Drawing.Size(90, 90) Me.PictureBoxGlobix1.SizeMode = DevExpress.XtraEditors.SvgImageSizeMode.Zoom @@ -225,7 +225,7 @@ Partial Class frmFlowForm Me.PictureBoxSearch1.ItemAppearance.Hovered.FillColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(49, Byte), Integer)) Me.PictureBoxSearch1.ItemAppearance.Normal.FillColor = System.Drawing.SystemColors.ControlDark Me.PictureBoxSearch1.ItemHitTestType = DevExpress.XtraEditors.ItemHitTestType.BoundingBox - Me.PictureBoxSearch1.Location = New System.Drawing.Point(225, 34) + Me.PictureBoxSearch1.Location = New System.Drawing.Point(47, 187) Me.PictureBoxSearch1.Name = "PictureBoxSearch1" Me.PictureBoxSearch1.Size = New System.Drawing.Size(90, 90) Me.PictureBoxSearch1.SizeMode = DevExpress.XtraEditors.SvgImageSizeMode.Stretch @@ -244,14 +244,14 @@ Partial Class frmFlowForm Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BehaviorManager1.SetBehaviors(Me, New DevExpress.Utils.Behaviors.Behavior() {CType(DevExpress.Utils.Behaviors.Common.SnapWindowBehavior.Create(GetType(DevExpress.Utils.BehaviorSource.SnapWindowBehaviorSourceForForm), SnapOptions1), DevExpress.Utils.Behaviors.Behavior)}) - Me.ClientSize = New System.Drawing.Size(563, 150) + Me.ClientSize = New System.Drawing.Size(200, 525) Me.Controls.Add(Me.PictureBoxGlobix1) Me.Controls.Add(Me.PictureBoxPM1) Me.Controls.Add(Me.PictureBoxAbo) Me.Controls.Add(Me.PictureBoxSearch1) Me.Controls.Add(Me.PictureBoxDragDrop) Me.DoubleBuffered = True - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow Me.IconOptions.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZOO_FLOW__sysicon_256 Me.Name = "frmFlowForm" Me.Text = "ZooFlow" diff --git a/GUIs.ZooFlow/frmFlowForm.resx b/GUIs.ZooFlow/frmFlowForm.resx index 3ffb638a..7329206b 100644 --- a/GUIs.ZooFlow/frmFlowForm.resx +++ b/GUIs.ZooFlow/frmFlowForm.resx @@ -1972,9 +1972,9 @@ 1079, 17 - 1228, 17 + 17, 56 - 17, 56 + 222, 56 \ No newline at end of file diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb index 3660f870..54e343db 100644 --- a/GUIs.ZooFlow/frmFlowForm.vb +++ b/GUIs.ZooFlow/frmFlowForm.vb @@ -13,6 +13,149 @@ Imports DigitalData.Modules.Messaging Imports DigitalData.Modules.Windows Public Class frmFlowForm +#Region "Sidebar Variablen und Konstanten" + Public AppDeskData As AppDeskBar + Public fBarRegistered As Boolean = False + Public ret, i, uCallBack As Integer + Structure RECT + Public left As Integer + Public top As Integer + Public right As Integer + Public bottom As Integer + End Structure + Structure AppDeskBar + Public cbSize As Integer + Public hWnd As IntPtr + Public uCallbackMessage As Integer + Public uEdge As Integer + Public rc As RECT + Public lParam As IntPtr + End Structure + Enum ABMsg + ABM_NEW = 0 + ABM_REMOVE = 1 + ABM_QUERYPOS = 2 + ABM_SETPOS = 3 + ABM_GETSTATE = 4 + ABM_GETTASKBARPOS = 5 + ABM_ACTIVATE = 6 + ABM_GETAUTOHIDEBAR = 7 + ABM_SETAUTOHIDEBAR = 8 + ABM_WINDOWPOSCHANGED = 9 + ABM_SETSTATE = 10 + End Enum + Enum ABEdge + ABE_LEFT = 0 + ABE_TOP + ABE_RIGHT + ABE_BOTTOM + End Enum + Enum ABNotify + ABN_STATECHANGE = 0 + ABN_POSCHANGED + ABN_FULLSCREENAPP + ABN_WINDOWARRANGE + End Enum +#End Region +#Region "Sidebar DllImport" + + Private Shared Function SHAppBarMessage(ByVal dwMessage As Integer, ByRef BarrData As AppDeskBar) As Integer + End Function + + Public Shared Function RegisterWindowMessage(ByVal msg As String) As Integer + End Function +#End Region +#Region "Sidebar Enum Properties Register" + Private Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal repaint As Boolean) As Boolean + + End Function + Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) + If m.Msg = uCallBack Then + Select Case m.WParam.ToInt32() + Case CInt(ABNotify.ABN_POSCHANGED) + ABSetPos(ABEdge.ABE_RIGHT) + End Select + End If + MyBase.WndProc(m) + End Sub 'WndProc + Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams + Get + Dim cp As CreateParams = MyBase.CreateParams + cp.Style = cp.Style And Not &HC00000 ' WS_CAPTION + cp.Style = cp.Style And Not &H800000 ' WS_BORDER + cp.ExStyle = &H80 Or &H8 ' WS_EX_TOOLWINDOW | WS_EX_TOPMOST + Return cp + End Get + End Property + Public Sub RegisterBar(ByVal dockEdge As ABEdge) + Dim abd As New AppDeskBar() + abd.cbSize = Marshal.SizeOf(abd) + abd.hWnd = Me.Handle + If Not fBarRegistered Then + uCallBack = RegisterWindowMessage("AppBarMessage") + abd.uCallbackMessage = uCallBack + Dim ret As System.UInt32 = SHAppBarMessage(CInt(ABMsg.ABM_NEW), abd) 'ToDo: Unsigned Integers not supported + fBarRegistered = True + ABSetPos(ABEdge.ABE_RIGHT) + Else + SHAppBarMessage(CInt(ABMsg.ABM_REMOVE), abd) + fBarRegistered = False + End If + End Sub + + Private Sub ABSetPos(ByVal dockEdge As ABEdge) + Dim abd As New AppDeskBar() + abd.cbSize = Marshal.SizeOf(abd) + abd.hWnd = Me.Handle + abd.uEdge = CInt(dockEdge) + If abd.uEdge = CInt(ABEdge.ABE_LEFT) Or abd.uEdge = CInt(ABEdge.ABE_RIGHT) Then + abd.rc.top = 0 + abd.rc.bottom = SystemInformation.PrimaryMonitorSize.Height + If abd.uEdge = CInt(ABEdge.ABE_LEFT) Then + abd.rc.left = 0 + abd.rc.right = Size.Width + Else + abd.rc.right = SystemInformation.PrimaryMonitorSize.Width + abd.rc.left = abd.rc.right - Size.Width + End If + Else + abd.rc.left = 0 + abd.rc.right = SystemInformation.PrimaryMonitorSize.Width + If abd.uEdge = CInt(ABEdge.ABE_TOP) Then + abd.rc.top = 0 + abd.rc.bottom = Size.Height + Else + abd.rc.bottom = SystemInformation.PrimaryMonitorSize.Height + abd.rc.top = abd.rc.bottom - Size.Height + End If + End If + ' Query the system for an approved size and position. + SHAppBarMessage(CInt(ABMsg.ABM_QUERYPOS), abd) + ' Adjust the rectangle, depending on the edge to which the + ' appbar is anchored. + Select Case abd.uEdge + Case CInt(ABEdge.ABE_LEFT) + abd.rc.right = abd.rc.left + Size.Width + Case CInt(ABEdge.ABE_RIGHT) + abd.rc.left = abd.rc.right - Size.Width + Case CInt(ABEdge.ABE_TOP) + abd.rc.bottom = abd.rc.top + Size.Height + Case CInt(ABEdge.ABE_BOTTOM) + abd.rc.top = abd.rc.bottom - Size.Height + End Select + ' Pass the final bounding rectangle to the system. + SHAppBarMessage(CInt(ABMsg.ABM_SETPOS), abd) + ' Move and size the appbar so that it conforms to the + ' bounding rectangle passed to the system. + + Me.Location = New Point(abd.rc.left, abd.rc.top) + Dim PSBH = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height + Dim TaskBarHeight = PSBH - System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height + Me.Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - TaskBarHeight + + ' MoveWindow(abd.hWnd, abd.rc.left, abd.rc.top, abd.rc.right - abd.rc.left, abd.rc.bottom - abd.rc.top, True) + End Sub +#End Region ' Constants Private Const OPACITY_INITIAL = 0 Private Const OPACITY_HIDDEN = 0.65 @@ -72,6 +215,7 @@ Public Class frmFlowForm Init = New ClassInit(My.LogConfig, Me) AddHandler Init.Completed, AddressOf Init_Completed Init.InitializeApplication() + 'RegisterBar(ABEdge.ABE_RIGHT) End Sub Private Sub Init_Completed(sender As Object, e As EventArgs) @@ -893,5 +1037,18 @@ Public Class frmFlowForm Private Sub SucheTestToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SucheTestToolStripMenuItem.Click frmSearchNeu.Show() End Sub + + Private Sub frmFlowForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + 'If fBarRegistered Then + ' fBarRegistered = False + + ' '----NEW + ' Dim abd As New AppDeskBar() + ' abd.cbSize = Marshal.SizeOf(abd) + ' abd.hWnd = Me.Handle + + ' ret = SHAppBarMessage(ABMsg.ABM_REMOVE, abd) + 'End If + End Sub End Class