Skip to content

Commit

Permalink
chooseFile cb use nsarray
Browse files Browse the repository at this point in the history
  • Loading branch information
bung87 committed Oct 8, 2024
1 parent e66648a commit 27ec8f5
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
10 changes: 3 additions & 7 deletions src/crowngui/platforms/macos/dialog.nim
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,13 @@ proc chooseFile*(root: string = ""; completionHandler: Block[OpenCompletionHandl
var openPanel1 = NSOpenPanel.openPanel()
openPanel1.setAllowsMultipleSelection(NO)
openPanel1.setCanChooseFiles(YES)
let send = cast[proc(a: ID, b: SEL, c: seq[string]){.cdecl, gcsafe.}](objc_msgSend)
let send = cast[proc(a: ID, b: SEL, c: NSArray[NSURL]){.cdecl, gcsafe.}](objc_msgSend)
let b2 = toBlock() do(r: int):
if r == NSModalResponseOK:
let urls = openPanel1.URLs
var newUrls = newSeq[string]()
for one in urls:
let path = one.path
newUrls.add path
send(cast[Id](completionHandler), $$"invoke", newUrls)
send(cast[Id](completionHandler), $$"invoke", urls)
else:
send(cast[Id](completionHandler), $$"invoke", newSeq[string]())
send(cast[Id](completionHandler), $$"invoke", nil)
openPanel1.beginWithCompletionHandler(b2)

proc saveFile*(root = ""; filename = "", completionHandler: Block[SaveCompletionHandler] = nil) =
Expand Down
3 changes: 2 additions & 1 deletion src/crowngui/platforms/macos/dialog_types.nim
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import darwin / [objc/runtime]
import darwin/foundation/[nsarray,nsurl]

type OpenCompletionHandler* = proc (self: ID;urls: seq[string];): void
type OpenCompletionHandler* = proc (self: ID;urls: NSArray[NSURL];): void

type SaveCompletionHandler* = proc (self: ID;allowOverwrite: BOOL; destination: NSString): void

Expand Down

0 comments on commit 27ec8f5

Please sign in to comment.