Code: Select all
LoadFont(0,"Tahoma",12)
Dim xl(10,1)
OpenWindow(0,0,0,600,400,"Drag Line over Canvas",#PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
CanvasGadget(0,10,10,580,350)
TextGadget(1,20,370,200,25,"")
SetGadgetFont(1,FontID(0))
SetGadgetColor(1,#PB_Gadget_FrontColor,$0000FF)
StartDrawing(CanvasOutput(0))
Circle(150, 150,100, RGBA(Random(255), Random(255), Random(255),250))
Circle(400, 220,100, RGBA(Random(255), Random(255), Random(255),200))
DrawingMode(#PB_2DDrawing_AlphaBlend)
Circle(400, 100,100, RGBA(Random(255), Random(255), Random(255),200))
StopDrawing()
lColor = $0005FE
xColor = lColor ! $FFFFFF
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftButtonDown
x = GetGadgetAttribute(0,#PB_Canvas_MouseX)
StartDrawing(CanvasOutput(0))
DrawingMode(#PB_2DDrawing_XOr )
LineXY(x,0,x,350,xColor)
StopDrawing()
Flag = 1
Case #PB_EventType_MouseMove
If Flag = 1
StartDrawing(CanvasOutput(0))
DrawingMode(#PB_2DDrawing_XOr )
LineXY(x,0,x,350,xColor)
x = GetGadgetAttribute(0,#PB_Canvas_MouseX)
LineXY(x,0,x,350,xColor)
StopDrawing()
EndIf
SetGadgetText(1," X : "+Str(GetGadgetAttribute(0,#PB_Canvas_MouseX)) +" Y : "+Str(GetGadgetAttribute(0,#PB_Canvas_MouseY)))
Case #PB_EventType_LeftButtonUp
Flag = 0
StartDrawing(CanvasOutput(0))
gi = GrabDrawingImage(#PB_Any, x-1, 0, 2, 350)
LineXY(x,0,x,350,lColor)
StopDrawing()
xl(line,0) = x
xl(line,1) = gi
line +1
Case #PB_EventType_RightButtonDown ;Undo
If line >= 1
line-1
StartDrawing(CanvasOutput(0))
DrawImage(ImageID(xl(line,1)),xl(line,0)-1,0)
DrawingMode(#PB_2DDrawing_XOr )
LineXY(xl(line,0),0,xl(line,0),350,xColor)
StopDrawing()
EndIf
EndSelect
EndSelect
EndSelect
ForEver