Code: Select all
Procedure TransparentCanvas( canvas )
If StartDrawing(CanvasOutput(canvas))
FillMemory( DrawingBuffer(), DrawingBufferPitch() * OutputHeight())
StopDrawing()
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 220, 220, "Canvas container example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(0, $FFC8ECF0)
CanvasGadget(0, 10, 10, 200, 200, #PB_Canvas_Container)
ButtonGadget(1, 10, 10, 80, 30, "Clean up")
CloseGadgetList()
TransparentCanvas(0)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case 0
If EventType() = #PB_EventType_LeftButtonDown Or (EventType() = #PB_EventType_MouseMove And GetGadgetAttribute(0, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton)
If StartDrawing(CanvasOutput(0))
DrawingMode(#PB_2DDrawing_AllChannels)
x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
Circle(x, y, 10, RGBA(Random(255), Random(255), Random(255), Random(255)))
StopDrawing()
EndIf
EndIf
Case 1
TransparentCanvas(0)
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf