Modules/ZooFlow/frmFlowForm.vb
Jonathan Jenne 8a8b286c77 zooflow
2019-09-13 16:05:20 +02:00

91 lines
3.6 KiB
VB.net

Imports DigitalData.Modules.Messaging
Public Class frmFlowForm
Private WithEvents Watcher As ClassClipboardWatcher = ClassClipboardWatcher.Singleton
Private ActiveModules As List(Of String)
Public Event ClipboardChanged As EventHandler(Of IDataObject)
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
End Sub
Private Sub frmFlowForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' === Set Form Properties ===
AllowDrop = True
ShowInTaskbar = False
SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.Default)
' === Register As Event Listener ===
EventBus.Instance.Register(Me)
End Sub
Private Sub frmFlowForm_Closed(sender As Object, e As EventArgs) Handles Me.Closed
EventBus.Instance.Unregister(Me)
End Sub
Private Sub frmFlowForm_Click(sender As Object, e As EventArgs) Handles Me.MouseClick
EventBus.Instance.PostEvent(New OnFlowFormInteractionEvent(OnFlowFormInteractionEvent.FlowFormInteraction.Click))
End Sub
Public Sub OnEvent(e As OnFlowFormStateChangedEvent)
SetFlowFormState(e.State)
End Sub
Public Sub SetFlowFormState(State As OnFlowFormStateChangedEvent.FlowFormState)
Select Case State
Case OnFlowFormStateChangedEvent.FlowFormState.HasSearchResults
SetBitmap(My.Resources.CW_GEFUNDEN_klein)
Case Else
SetBitmap(My.Resources.ZOOFLOW_Home_klein)
End Select
End Sub
Private Sub frmFlowForm_DragOver(sender As Object, e As DragEventArgs) Handles Me.DragOver
If ActiveModules.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then
e.Effect = DragDropEffects.None
Else
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
' Handle file dragged from Windows
e.Effect = DragDropEffects.Copy
SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.HasSearchResults)
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
' Handle a message dragged from Outlook
e.Effect = DragDropEffects.Copy
SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.HasSearchResults)
ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then
' Handle a message dragged from Thunderbird?
e.Effect = DragDropEffects.Copy
SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.HasSearchResults)
Else
' Otherwise, do not handle
e.Effect = DragDropEffects.None
End If
End If
End Sub
Private Sub frmFlowForm_DragLeave(sender As Object, e As EventArgs) Handles Me.DragLeave
SetFlowFormState(OnFlowFormStateChangedEvent.FlowFormState.Default)
End Sub
Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject) Handles Watcher.ClipboardChanged
If ActiveModules.Contains(ClassConstants.MODULE_CLIPBOARDWATCHER) Then
RaiseEvent ClipboardChanged(sender, e)
End If
End Sub
'''' <summary>
'''' DragDrop Support
'''' </summary>
'Protected Overrides Sub WndProc(ByRef m As Message)
' If m.Msg = &H84 Then
' m.Result = CType(2, IntPtr)
' Return
' End If
' MyBase.WndProc(m)
'End Sub
End Class