Mac-os transparent canvas gadget

Share your advanced PureBasic knowledge/code with the community.
mestnyi
Addict
Addict
Posts: 1001
Joined: Mon Nov 25, 2013 6:41 am

Mac-os transparent canvas gadget

Post by mestnyi »

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
User avatar
Piero
Enthusiast
Enthusiast
Posts: 346
Joined: Sat Apr 29, 2023 6:04 pm
Location: Italy

Re: Mac-os transparent canvas gadget

Post by Piero »

What OS do you have? Doesn't work in Monterey (I tested M1 and Intel)
mestnyi
Addict
Addict
Posts: 1001
Joined: Mon Nov 25, 2013 6:41 am

Re: Mac-os transparent canvas gadget

Post by mestnyi »

mac os BIG SUR
Post Reply