Attribute VB_Name = "modXPMenu"

Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal h As Long, ByVal w As Long, ByVal E As Long, ByVal O As Long, ByVal w As Long, ByVal i As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Declare Function DrawFrameControl Lib "user32" (ByVal hdc As Long, lpRect As Rect, ByVal un1 As Long, ByVal un2 As Long) As Long
Public Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect, ByVal bErase As Long) As Long
Public Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long

Public Type Rect
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Public Const DFC_MENU = 2
Public Const DFCS_MENUBULLET = 2
Public Const DFCS_MENUCHECK = 1
Public Const FW_LIGHT = 300
Public Const DEFAULT_CHARSET = 1
Public Const DEFAULT_PITCH = 0
Sub HandleClick(menuName As String, itemNum As Integer, strItemText As String)
    On Error Resume Next
    setFocus CLIENT.ActiveForm.hwnd

    Select Case menuName
        '* *******
        '* Connect
        '* *******
        Case "Connect"
            Select Case itemNum
                Case 1
                    CLIENT.mnu_Connect_NewServer_Click
                Case 3
                    CLIENT.mnu_Connect_Connect_Click
                Case 4
                    CLIENT.mnu_Connect_Disconnect_Click
                Case 6
                    Unload CLIENT
            End Select
        '* *****
        '* Tools
        '* *****
        Case "Tools"
            Select Case itemNum
                Case 1
                    Load frmOptions
                    frmOptions.Show
                Case 2
                    Load frmSexIDE
                Case 4
                    CLIENT.Tag = "NO"
                    Unload CLIENT
                    frmLoadProfile.Show
            End Select
        '* ****
        '* Edit
        '* ****
        Case "Edit"
            Select Case itemNum
                Case 1
                    SendMessage CLIENT.ActiveForm.ActiveControl.hwnd, EM_UNDO, 0, 0
                Case 3
                    CLIENT.mnu_Edit_Cut_Click
                Case 4
                    CLIENT.mnu_Edit_Copy_Click
                Case 5
                    CLIENT.mnu_Edit_Paste_Click
                Case 6
                    CLIENT.mnu_Edit_Delete_Click
                Case 8
                    CLIENT.mnu_Edit_SelectAll_Click
            End Select
        '* ****
        '* View
        '* ****
        Case "View"
            Select Case itemNum
                Case 1  'debug window
                    'nothing
                Case 2  'uhmmmuhmm whats it called!..oh yeah..treeview
                    XPM_View.SetCheck 2, Not XPM_View.GetCheck(2)
                    CLIENT.picServerList.Visible = XPM_View.GetCheck(2)
                Case 4
                    Select Case XPM_View.GetItemText(4)
                        Case "Server Bar"
                            XPM_View.SetCheck 4, Not XPM_View.GetCheck(4)
                            CLIENT.ActiveForm.bShowServerInfo = XPM_View.GetCheck(4)
                            CLIENT.ActiveForm.ResizeToolbar
                            CLIENT.ActiveForm.Resize_event
                        Case "Topic Bar"
                            XPM_View.SetCheck 4, Not XPM_View.GetCheck(4)
                            CLIENT.ActiveForm.bShowChannelInfo = XPM_View.GetCheck(4)
                            CLIENT.ActiveForm.ResizeToolbar
                            CLIENT.ActiveForm.Resize_event
                    End Select
            End Select
        '* ******
        '* Window
        '* ******
        Case "Window"
            Select Case itemNum
                Case 1  'close
                    Unload CLIENT.ActiveForm
                Case 3  'cascade
                    CLIENT.Arrange vbCascade
                Case 4  'tile horizontal
                    CLIENT.Arrange vbTileHorizontal
                Case 5
                    CLIENT.Arrange vbTileVertical
                Case 7  ' maximize
                    WP_SetMax CLIENT.ActiveForm
                Case 8  ' maximize all
                    Dim frm As Form
                    For Each frm In Forms
                        If frm.bShowInTaskbar Then WP_SetMax frm
                    Next
            End Select
        '* ******
        '* Window _ Auto
        '* ******
        Case "Window_Auto"
            With XPM_Window_Auto
                Select Case itemNum
                    Case 1
                        .SetCheck 1, Not .GetCheck(1)
                        .SetCheck 2, False
                        .SetCheck 3, False
                    Case 2
                        .SetCheck 2, Not .GetCheck(2)
                        .SetCheck 1, False
                        .SetCheck 3, False
                        
                        CLIENT.Arrange vbTileHorizontal
                    Case 3
                        .SetCheck 3, Not .GetCheck(3)
                        .SetCheck 2, False
                        .SetCheck 1, False
                        
                        CLIENT.Arrange vbTileVertical
                End Select
            End With
        '* ******
        '* Window _ Remember
        '* ******
        Case "Window_Remember"
            Select Case itemNum
                Case 1      ' remember current window
                    Call WP_RememberWindow(CLIENT.ActiveForm)
                Case 2      ' remember client
                    Call WP_RememberClient
                Case 3
                    Call WP_RememberAll
            End Select
        '* ******
        '* Window _ Forget
        '* ******
        Case "Window_Forget"
            Select Case itemNum
                Case 1      ' remember current window
                    Call WP_ForgetWindow(CLIENT.ActiveForm)
                Case 2      ' remember client
                    Call WP_ForgetClient
                Case 3
                    Call WP_ForgetAll
            End Select
        '* ******
        '* Window - Reset
        '* ******
        Case "Window_Reset"
            Select Case itemNum
                Case 1
                    Call WP_ResetWindow(CLIENT.ActiveForm)
                Case 2
                    Call WP_ResetClient
                Case 3
                    Call WP_ResetAll
            End Select
        '* ****
        '* Help
        '* ****
        Case "Help"
            Select Case itemNum
                Case 1
                    If FileExists(PATH & "help\sirc.hlp") Then
                        ShellExecute 0, "open", PATH & "help\sirc.hlp", "", "", 10
                    Else
                        MsgBox "Help file could not be found!", vbCritical
                    End If
                Case 3
                    Load frmAbout
                    frmAbout.Show
                    frmAbout.Visible = True
                    StayOnTop frmAbout, True
                    SendMessage frmAbout.hwnd, WM_SETFOCUS, 0, vbNullString
            End Select
    End Select
End Sub