Page 1 of 1

PanelGadget and EventTypes()

Posted: Fri Sep 19, 2003 8:13 am
by dige
How can I find out, if the right or left mouse button was pressed on a panel
gadget?

Regards,

dige

Posted: Fri Sep 19, 2003 9:47 am
by GPI
Not so easy, but possible

Code: Select all

Case #WM_RBUTTONDOWN
            ;{-Right Button Down
            If GetActiveWindow_()=MainWin And ignoreRightClick=#False
              popup_File=-1
              GetCursorPos_(mouse.POINT)
              getwindowrect_(SciEdi,rect.RECT)
                ;{ PanelPopUp
                count=CountGadgetItems(#gadget_main_PanelFile)-1
                Id=GadgetID(#gadget_main_PanelFile)
                getwindowrect_(Id,screen.RECT)
                For i=0 To count
                  SendMessage_(Id,#TCM_GETITEMRECT ,i,rect.RECT)
                  rect\left+screen\left:rect\right +screen\left
                  rect\top +screen\top :rect\bottom+screen\top
                  If mouse\x>=rect\left And mouse\y>=rect\top And mouse\x<=rect\right And mouse\y<=rect\bottom
                    popup_File=i:i=count
                    ak=ListIndex(Sources())
                    SelectElement(Sources(),popup_File)
                    SetMenuItemState(#menu_PanelFile,#menu_File_Debugger,Sources()\debugger)
                    If Sources()\compileThis$
                      EnableMenuItem_(PanelFileMenu,#menu_File_Debugger,#MF_BYCOMMAND|#MF_GRAYED)
                    Else
                      EnableMenuItem_(PanelFileMenu,#menu_File_Debugger,#MF_BYCOMMAND|#MF_Enabled)
                    EndIf
                    SelectElement(Sources(),ak)
                    DisplayPopupMenu(#menu_PanelFile,MainWin)
                  EndIf
                Next
                ;}
              EndIf
            Else
              ignoreRightClick=#False
            EndIf
            ;}