]> gitweb.factorcode.org Git - factor.git/blob - extra/cocoa/dialogs/dialogs.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / extra / cocoa / dialogs / dialogs.factor
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 ;
5 IN: cocoa.dialogs
6
7 : <NSOpenPanel> ( -- panel )
8     NSOpenPanel -> openPanel
9     dup 1 -> setCanChooseFiles:
10     dup 0 -> setCanChooseDirectories:
11     dup 1 -> setResolvesAliases:
12     dup 1 -> setAllowsMultipleSelection: ;
13
14 : <NSSavePanel> ( -- panel )
15     NSSavePanel -> savePanel
16     dup 1 -> setCanChooseFiles:
17     dup 0 -> setCanChooseDirectories:
18     dup 0 -> setAllowsMultipleSelection: ;
19
20 : NSOKButton 1 ;
21 : NSCancelButton 0 ;
22
23 : open-panel ( -- paths )
24     <NSOpenPanel>
25     dup -> runModal NSOKButton =
26     [ -> filenames CF>string-array ] [ drop f ] if ;
27
28 : split-path ( path -- dir file )
29     "/" last-split1 [ <NSString> ] bi@ ;
30
31 : save-panel ( path -- paths )
32     <NSSavePanel> dup
33     rot split-path -> runModalForDirectory:file: NSOKButton =
34     [ -> filename CF>string ] [ drop f ] if ;