Window with rounded corners

Mac OSX specific forum
Wolfram
Enthusiast
Enthusiast
Posts: 604
Joined: Thu May 30, 2013 4:39 pm

Re: Window with rounded corners

Post by Wolfram »

I got it :-)
I have to open the window invisible...

Code: Select all

Rect.NSRect
Rect\origin\x = 0
Rect\origin\y = 0
Rect\size\width = 300
Rect\size\height = 200
RadiusX.CGFloat = 20
RadiusY.CGFloat = 20

ImageID = CocoaMessage(0,CocoaMessage(0,0,"NSImage alloc"),"initWithSize:@",@Rect\size)
CocoaMessage(0,ImageID,"lockFocus")
Path = CocoaMessage(0,0,"NSBezierPath bezierPathWithRoundedRect:@",@Rect,"xRadius:@",@RadiusX,"yRadius:@",@RadiusY)
ColorWhite = CocoaMessage(0,0,"NSColor whiteColor")
CocoaMessage(0,ColorWhite,"setFill")
CocoaMessage(0,Path,"fill")
CocoaMessage(0,ImageID,"unlockFocus")

If OpenWindow(0,0,0,300,200,"Drawing",#PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Invisible)
  Close = ButtonGadget(#PB_Any, 100, 50, 100, 25, "close")

  ID = WindowID(0)

  CocoaMessage(0,ID,"setOpaque:",#NO)
  CocoaMessage(0,ID,"setBackgroundColor:",CocoaMessage(0,0,"NSColor colorWithPatternImage:",ImageID))
  CocoaMessage(0,ID,"setHasShadow:",#YES)
  CocoaMessage(0,ID,"setMovableByWindowBackground:",#NO)

  HideWindow(0, 0)
  
  Repeat
    ev = WaitWindowEvent()
    If EventGadget() = Close
      Break
    EndIf
    
  Until ev = #PB_Event_CloseWindow
  
  End
  
EndIf
macOS Catalina 10.15.7