Minimum requirement is OS X 10.6
Code: Select all
#showHiddenFiles = 1 << 0
#allowMultipleSelection = 1 << 1
Procedure.s OpenFileRequester_(title.s, defaultdirectory.s = "", pattern.s = "", message.s = "", flags = 0)
Protected NSPanel, NSArray, NSString
NSPanel = CocoaMessage(0, 0, "NSOpenPanel openPanel")
NSArray = CocoaMessage(0, CocoaMessage(0, 0, "NSString stringWithString:$", @pattern), "componentsSeparatedByString:$", @"|")
CocoaMessage(0, NSPanel, "setTitle:$", @title)
CocoaMessage(0, NSPanel, "setDirectoryURL:", CocoaMessage(0, 0, "NSURL URLWithString:$", @defaultdirectory))
CocoaMessage(0, NSPanel, "setAllowedFileTypes:", NSArray)
CocoaMessage(0, NSPanel, "setMessage:$", @message)
If flags & #showHiddenFiles
CocoaMessage(0, NSPanel, "setShowsHiddenFiles:", #YES)
EndIf
If flags & #allowMultipleSelection
CocoaMessage(0, NSPanel, "setAllowsMultipleSelection:", #YES)
EndIf
If CocoaMessage(0, NSPanel, "runModal")
NSString = CocoaMessage(0, CocoaMessage(0, NSPanel, "URLs"), "componentsJoinedByString:$", @"|")
ProcedureReturn PeekS(CocoaMessage(0, NSString, "UTF8String"), -1, #PB_UTF8)
Else
ProcedureReturn ""
EndIf
EndProcedure
Debug OpenFileRequester_("Please choose file(s) to load",
"/users/",
"pb|pbi|prefs|rtf|txt",
"Optional message:"+#CR$+"Please open a file for loading."+#CR$+"Second message line",
#allowMultipleSelection |
#showHiddenFiles )


