J'ai besoin de vous pour pour tester cette procédure dans les différentes distributions de Linux et j'aimerais aussi que ceux qui connaissent l'APIs Mac complètent cette procédure et pourquoi pas aussi d'autres environnements.
Merci d'avance à tous ceux qui participeront à l'élaboration de cette procédure

Code : Tout sélectionner
Procedure EventMouse()
Protected wnd.i
If GetActiveWindow()<>-1
Wnd=WindowID(GetActiveWindow())
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
Protected gdkWnd.l, x.l, y.l, mask.l
*Window.GTKWindow = Wnd
gdkWnd = *Window\bin\child\window
gdk_window_get_pointer_(gdkWnd, @x, @y, @mask)
If (mask & #GDK_BUTTON1_MASK)
ProcedureReturn 1
ElseIf (mask & #GDK_BUTTON3_MASK)
ProcedureReturn 3
ElseIf (mask & #GDK_BUTTON2_MASK)
ProcedureReturn 2
EndIf
CompilerEndIf
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
ProcedureReturn Abs(GetAsyncKeyState_(#VK_LBUTTON) + GetAsyncKeyState_(#VK_RBUTTON)*2 + GetAsyncKeyState_(#VK_MBUTTON)*3)/$8000
CompilerEndIf
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
;
;
CompilerEndIf
EndIf
Delay(500)
EndProcedure
;----- Test---------------
OpenWindow(0, 100, 100, 300, 300, "EventMouse")
TextGadget(1,20,10,200,20,"Teste Mouse Event")
Repeat
Event = WaitWindowEvent()
EventMouse=EventMouse()
Select EventMouse()
Case 0 : SetGadgetText(1,"Bouton relaché")
Case 1 : SetGadgetText(1,"Bouton Gauche de la souris")
Case 2 : SetGadgetText(1,"Bouton Droit de la souris")
Case 3 : SetGadgetText(1,"Bouton Milieu de la souris")
EndSelect
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
ForEver