From 29ef0dcc59873d2915b2cf8e0ca867c340b0b11a Mon Sep 17 00:00:00 2001 From: Alexander Iljin Date: Tue, 22 Aug 2017 02:27:03 +0300 Subject: [PATCH] windows.dropfiles: move two words from windows.dragdrop-listener --- .../dragdrop-listener/dragdrop-listener.factor | 16 ++-------------- basis/windows/dropfiles/dropfiles-docs.factor | 18 ++++++++++++++++++ basis/windows/dropfiles/dropfiles.factor | 14 ++++++++++++++ 3 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 basis/windows/dropfiles/dropfiles-docs.factor diff --git a/basis/windows/dragdrop-listener/dragdrop-listener.factor b/basis/windows/dragdrop-listener/dragdrop-listener.factor index fb04ba5da8..879d989d7b 100644 --- a/basis/windows/dragdrop-listener/dragdrop-listener.factor +++ b/basis/windows/dragdrop-listener/dragdrop-listener.factor @@ -5,25 +5,13 @@ USING: accessors alien.accessors alien.data alien.strings classes.struct io.encodings.utf16n kernel make math namespaces prettyprint sequences specialized-arrays ui.gadgets.worlds ui.tools.listener windows.com -windows.com.wrapper windows.kernel32 windows.ole32 -windows.shell32 windows.types ; +windows.com.wrapper windows.dropfiles windows.kernel32 +windows.ole32 windows.shell32 windows.types ; SPECIALIZED-ARRAY: WCHAR IN: windows.dragdrop-listener CONSTANT: E_OUTOFMEMORY -2147024882 ! 0x8007000e -: filecount-from-hdrop ( hdrop -- n ) - 0xFFFFFFFF f 0 DragQueryFile ; - -: filenames-from-hdrop ( hdrop -- filenames ) - dup filecount-from-hdrop - [ - 2dup f 0 DragQueryFile 1 + ! get size of filename buffer - dup WCHAR - [ swap DragQueryFile drop ] keep - utf16n alien>string - ] with map ; - : handle-data-object ( handler: ( hdrop -- x ) data-object -- filenames ) FORMATETC CF_HDROP >>cfFormat diff --git a/basis/windows/dropfiles/dropfiles-docs.factor b/basis/windows/dropfiles/dropfiles-docs.factor new file mode 100644 index 0000000000..80292b3951 --- /dev/null +++ b/basis/windows/dropfiles/dropfiles-docs.factor @@ -0,0 +1,18 @@ +! Copyright (C) 2017 Alexander Ilin. +! See http://factorcode.org/license.txt for BSD license. +USING: help.markup help.syntax kernel windows.ole32 ; +IN: windows.dropfiles + +HELP: filecount-from-hdrop +{ $values + { "hdrop" null } + { "n" null } +} +{ $description "" } ; + +HELP: filenames-from-hdrop +{ $values + { "hdrop" null } + { "filenames" null } +} +{ $description "" } ; diff --git a/basis/windows/dropfiles/dropfiles.factor b/basis/windows/dropfiles/dropfiles.factor index 4f07275004..ab4ec14c37 100644 --- a/basis/windows/dropfiles/dropfiles.factor +++ b/basis/windows/dropfiles/dropfiles.factor @@ -1,3 +1,17 @@ ! Copyright (C) 2017 Alexander Ilin. ! See http://factorcode.org/license.txt for BSD license. +USING: alien.data alien.strings io.encodings.utf16n kernel math +sequences windows.messages windows.shell32 windows.types ; IN: windows.dropfiles + +: filecount-from-hdrop ( hdrop -- n ) + 0xFFFFFFFF f 0 DragQueryFile ; + +: filenames-from-hdrop ( hdrop -- filenames ) + dup filecount-from-hdrop + [ + 2dup f 0 DragQueryFile 1 + ! get size of filename buffer + dup WCHAR + [ swap DragQueryFile drop ] keep + utf16n alien>string + ] with map ; -- 2.34.1