1 ! Copyright (C) 2006, 2007 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel cocoa cocoa.messages cocoa.classes
4 cocoa.application sequences splitting core-foundation ;
7 : <NSOpenPanel> ( -- panel )
8 NSOpenPanel -> openPanel
9 dup 1 -> setCanChooseFiles:
10 dup 0 -> setCanChooseDirectories:
11 dup 1 -> setResolvesAliases:
12 dup 1 -> setAllowsMultipleSelection: ;
14 : <NSSavePanel> ( -- panel )
15 NSSavePanel -> savePanel
16 dup 1 -> setCanChooseFiles:
17 dup 0 -> setCanChooseDirectories:
18 dup 0 -> setAllowsMultipleSelection: ;
23 : open-panel ( -- paths )
25 dup -> runModal NSOKButton =
26 [ -> filenames CF>string-array ] [ drop f ] if ;
28 : split-path ( path -- dir file )
29 "/" last-split1 [ <NSString> ] bi@ ;
31 : save-panel ( path -- paths )
33 rot split-path -> runModalForDirectory:file: NSOKButton =
34 [ -> filename CF>string ] [ drop f ] if ;