This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MyBarLinkDragManager.vb
66 lines (53 loc) · 1.92 KB
/
MyBarLinkDragManager.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Controls
Imports DevExpress.XtraBars.Utils
Imports DevExpress.XtraBars.ViewInfo
Namespace BarsCustomization
Public Class MyBarLinkDragManager
Inherits BarLinkDragManager
Private currentBar As Bar = Nothing
Public Sub New(ByVal manager As BarManager)
MyBase.New(manager)
End Sub
Protected Overridable Function IsItemLinkIsFixed(ByVal link As BarItemLink) As Boolean
If currentBar Is Nothing Then
Return False
End If
Dim fixedItem As Boolean = False
If TypeOf link.Bar Is MyBar Then
fixedItem = (CType(link.Bar, MyBar)).FixedItems.Contains(link.Item)
End If
Return fixedItem AndAlso link.Bar IsNot currentBar
End Function
Public Overrides Function CanAcceptDragObject(ByVal data As IDataObject) As Boolean
If currentBar Is Nothing Then
Return MyBase.CanAcceptDragObject(data)
End If
Dim acceptDragObject As Boolean = MyBase.CanAcceptDragObject(data)
Dim obj As Object = GetDraggingObject(data)
If TypeOf obj Is BarItemLink AndAlso IsItemLinkIsFixed(CType(obj, BarItemLink)) Then
acceptDragObject = False
End If
Return acceptDragObject
End Function
Public Overrides Sub DoDragging(ByVal control As Control, ByVal e As MouseEventArgs)
MyBase.DoDragging(control, e)
Dim barControl As CustomBarControl = TryCast(control, CustomBarControl)
If barControl Is Nothing Then
Return
End If
currentBar = barControl.Bar
If TypeOf DragObject Is BarItemLink AndAlso IsItemLinkIsFixed(CType(DragObject, BarItemLink)) Then
Cursor.Current = CType(Manager.GetController().DragCursors(2), Cursor)
Manager.SelectionInfo.DropSelectStyle = LinkDropTargetEnum.None
End If
End Sub
Public Shadows ReadOnly Property Manager() As MyBarManager
Get
Return TryCast(MyBase.Manager, MyBarManager)
End Get
End Property
End Class
End Namespace