file-picker.windows: Basic file-picker works!
parent
2d5358d713
commit
9b6133d081
|
@ -1,9 +1,13 @@
|
||||||
USING: file-picker windows.shell32 windows.types ;
|
USING: accessors alien.c-types alien.data alien.strings
|
||||||
|
alien.syntax classes.struct destructors file-picker
|
||||||
|
io.encodings.string io.encodings.utf8 kernel libc literals math
|
||||||
|
system windows windows.kernel32 windows.shell32 windows.types
|
||||||
|
windows.user32 ;
|
||||||
IN: file-picker.windows
|
IN: file-picker.windows
|
||||||
|
|
||||||
LIBRARY: shell32
|
LIBRARY: shell32
|
||||||
|
|
||||||
TYPEDEF: void* PIDLIST_ABSOLUTE
|
TYPEDEF: void* PIDLIST_ABSOLUTE
|
||||||
|
TYPEDEF: void* PCIDLIST_ABSOLUTE
|
||||||
TYPEDEF: void* BFFCALLBACK
|
TYPEDEF: void* BFFCALLBACK
|
||||||
|
|
||||||
FUNCTION: HRESULT SHGetFolderLocation (
|
FUNCTION: HRESULT SHGetFolderLocation (
|
||||||
|
@ -22,8 +26,7 @@ STRUCT: BROWSEINFO
|
||||||
{ ulFlags UINT }
|
{ ulFlags UINT }
|
||||||
{ lpfn BFFCALLBACK }
|
{ lpfn BFFCALLBACK }
|
||||||
{ lParam LPARAM }
|
{ lParam LPARAM }
|
||||||
{ iImage int }
|
{ iImage int } ;
|
||||||
} ;
|
|
||||||
|
|
||||||
CONSTANT: BIF_RETURNONLYFSDIRS 0x00000001
|
CONSTANT: BIF_RETURNONLYFSDIRS 0x00000001
|
||||||
CONSTANT: BIF_DONTGOBELOWDOMAIN 0x00000002
|
CONSTANT: BIF_DONTGOBELOWDOMAIN 0x00000002
|
||||||
|
@ -54,16 +57,17 @@ FUNCTION: BOOL SHGetPathFromIDList (
|
||||||
|
|
||||||
|
|
||||||
M: windows open-file-dialog
|
M: windows open-file-dialog
|
||||||
|
[
|
||||||
BROWSEINFO <struct>
|
BROWSEINFO <struct>
|
||||||
GetDesktopWindow >>hwndOwner
|
GetDesktopWindow >>hwndOwner
|
||||||
0 CSIDL_PERSONAL 0 0 SHGetFolderLocation >>pidlRoot
|
"Select a file or folder" utf8 malloc-string &free >>lpszTitle
|
||||||
"Select a file or folder" >>lpszTitle
|
|
||||||
BIF_BROWSEINCLUDEFILES >>ulFlags
|
BIF_BROWSEINCLUDEFILES >>ulFlags
|
||||||
SHBrowseForFolder [
|
SHBrowseForFolder [
|
||||||
void* <ref> [ SHGetPathFromIDList ] keep
|
MAX_UNICODE_PATH 1 + malloc &free [ SHGetPathFromIDList ] keep
|
||||||
alien>native-string
|
swap [ utf8 alien>string ] [ drop f ] if
|
||||||
] [
|
] [
|
||||||
f
|
f
|
||||||
] if* ;
|
] if*
|
||||||
|
] with-destructors ;
|
||||||
|
|
||||||
M: windows save-file-dialog ;
|
M: windows save-file-dialog ;
|
||||||
|
|
Loading…
Reference in New Issue