I noticed that this version of the program on Mac freezes clicks if their frequency is too high.
You have to wait almost a second between each click...
Code: Select all
; Constantes
#LARGEUR = 500
#HAUTEUR = 200
#HAUTEUR_BOUTON = 30
#ESPACEMENT = 10
; Création de la fenêtre principale
OpenWindow(0, 0, 0, #LARGEUR * 2, #HAUTEUR + #HAUTEUR_BOUTON + #ESPACEMENT, "Click Position", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; Remplacement des ImageGadget par CanvasGadget
CanvasGadget(0, 0, 0, #LARGEUR, #HAUTEUR)
CanvasGadget(1, #LARGEUR, 0, #LARGEUR, #HAUTEUR)
; Dessin sur les Canvas
If StartDrawing(CanvasOutput(0))
Box(0, 0, #LARGEUR, #HAUTEUR, RGB(255, 152, 0)) ; Orange
StopDrawing()
EndIf
If StartDrawing(CanvasOutput(1))
Box(0, 0, #LARGEUR, #HAUTEUR, RGB(0, 152, 255)) ; Bleu
StopDrawing()
EndIf
; Boutons
ButtonGadget(2, 0, #HAUTEUR + #ESPACEMENT, #LARGEUR, #HAUTEUR_BOUTON, "Bouton Gauche")
ButtonGadget(3, #LARGEUR, #HAUTEUR + #ESPACEMENT, #LARGEUR, #HAUTEUR_BOUTON, "Bouton Droit")
; Boucle principale
Repeat
Event = WaitWindowEvent(0)
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 0 ; Canvas gauche
If EventType() = #PB_EventType_LeftClick
x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
Debug "Clic sur gauche: X=" + Str(x) + " Y=" + Str(y)
; Affiche un marqueur
If StartDrawing(CanvasOutput(0))
Box(0, 0, #LARGEUR, #HAUTEUR, RGB(255, 152, 0)) ; Efface
Circle(x, y, 5, RGB(255, 255, 255)) ; Marqueur
StopDrawing()
EndIf
EndIf
Case 1 ; Canvas droit
If EventType() = #PB_EventType_LeftClick
x = GetGadgetAttribute(1, #PB_Canvas_MouseX)
y = GetGadgetAttribute(1, #PB_Canvas_MouseY)
Debug "Clic sur droit: X=" + Str(x) + " Y=" + Str(y)
; Affiche un marqueur
If StartDrawing(CanvasOutput(1))
Box(0, 0, #LARGEUR, #HAUTEUR, RGB(0, 152, 255)) ; Efface
Circle(x, y, 5, RGB(255, 255, 255)) ; Marqueur
StopDrawing()
EndIf
EndIf
Case 2
Debug "Bouton gauche cliqué"
Case 3
Debug "Bouton droit cliqué"
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver