This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
/
MenuHelper.vb
46 lines (43 loc) · 1.5 KB
/
MenuHelper.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
Imports Microsoft.VisualBasic
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.XtraTab.ViewInfo
Imports DevExpress.XtraTabbedMdi
Namespace WindowsApplication7
Public Class MenuHelper
Private menuCore As DXPopupMenu
Private managerCore As XtraTabbedMdiManager
Public Event PopupMenuShowing As PopupMenuShowingEventHandler
Public Sub New(ByVal manager As XtraTabbedMdiManager)
Me.managerCore = manager
AddHandler Me.managerCore.MouseUp, AddressOf OnManagerMouseUp
End Sub
Public Property Menu() As DXPopupMenu
Get
If menuCore Is Nothing Then
menuCore = New DXPopupMenu()
End If
Return menuCore
End Get
Set(ByVal value As DXPopupMenu)
menuCore = value
End Set
End Property
Private Sub OnManagerMouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
If e.Button <> MouseButtons.Right Then
Return
End If
Dim hi As BaseTabHitInfo = managerCore.CalcHitInfo(New Point(e.X, e.Y))
If hi.HitTest = XtraTabHitTest.PageHeader Then
Menu.Items.Clear()
Dim args As New PopupMenuShowingEventArgs(hi.Page) With {.Menu = Menu}
RaisePopupMenuShowing(args)
CType(Menu, IDXDropDownControl).Show(New SkinMenuManager(DevExpress.LookAndFeel.UserLookAndFeel.Default.ActiveLookAndFeel), managerCore.MdiParent.ActiveMdiChild, e.Location)
End If
End Sub
Private Sub RaisePopupMenuShowing(ByVal e As PopupMenuShowingEventArgs)
RaiseEvent PopupMenuShowing(managerCore, e)
End Sub
End Class
End Namespace