factor/library/ui/cocoa/dialogs.factor

36 lines
986 B
Factor
Raw Normal View History

2006-05-18 23:07:40 -04:00
! Copyright (C) 2006 Slava Pestov
! See http://factorcode.org/license.txt for BSD license.
IN: cocoa
2006-05-29 05:38:17 -04:00
USING: kernel objc objc-classes sequences ;
2006-05-18 23:07:40 -04:00
: <NSOpenPanel> ( -- panel )
NSOpenPanel -> openPanel
dup 1 -> setCanChooseFiles:
dup 0 -> setCanChooseDirectories:
dup 1 -> setResolvesAliases:
dup 1 -> setAllowsMultipleSelection: ;
2006-05-18 23:07:40 -04:00
: <NSSavePanel> ( -- panel )
NSSavePanel -> savePanel
dup 1 -> setCanChooseFiles:
dup 0 -> setCanChooseDirectories:
dup 0 -> setAllowsMultipleSelection: ;
2006-05-18 23:07:40 -04:00
: NSOKButton 1 ;
: NSCancelButton 0 ;
: run-panel ( panel -- paths ) ;
2006-05-18 23:07:40 -04:00
: open-panel ( -- paths )
<NSOpenPanel>
dup -> runModal NSOKButton =
[ -> filenames CF>string-array ] [ drop f ] if ;
: split-path ( path -- dir file )
<reversed> "/" split1 [ reverse <NSString> ] 2apply swap ;
: save-panel ( path -- paths )
<NSSavePanel> dup
rot split-path -> runModalForDirectory:file: NSOKButton =
[ -> filename CF>string ] [ drop f ] if ;