Hello everyone. Is it possible to drag a file from a windows explorer to a smalltalk image an get the file name in smalltalk? Regards Alex You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Hi Alex,
-- I think the answer is yes. VA Smalltalk supports drag and drop. When defining drag and drop for a widget (generally a container of some sort) you specify either "Image Drag Drop Spec" or "Platform Drag Drop Spec". You would want "Platform Drag Drop Spec". "Image Drag Drop Spec" is for dragging and dropping things (rows or whatever) from within the VA Smalltalk program. "Platform Drag Drop Spec" I expect is for dragging and dropping things that are outside you program. I have used "Image Drag Drop Spec" (it works fine) but don't remember using "Platform Drag Drop Spec" but I think it should work so give it a try. Good luck! Lou On Thursday, July 23, 2015 at 1:12:24 PM UTC-4, Alex Greber wrote:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
I have actually tried that...using the Platform Drag Drop Spec, but have never been able to get that to work.
-- Alex, have you had any luck with this? I would very much like to be able to drag a file from windows explorer.... Regards, Juilan On Friday, 24 July 2015 09:13:06 UTC-4, Louis LaBrunda wrote:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Alex Greber
Yes, its possible - though I've only be able to transfer ONE file at a time. There has been a change in the Drag&Drop Protocol in the Windows history ... the one-file approach is the old protocol (and you you get short file names).
-- The following code parts are around 15 years old and I took this from an old repository: startTransfer: callData targetTypes: targetTypes clientData: clientData "" | dropTransfers | dropTransfers := OrderedCollection new. targetTypes do: [ :target | dropTransfers add: (CwDropTransferEntry target: target transferClientData: clientData) ]. callData dragContext dropTransferStart: [ :dropTransfer | dropTransfer dropTransfers: dropTransfers ; transferProc: (CwCallbackRec receiver: self selector: #transferProc:clientData:callData: clientData: callData) ]. and transferProc: aCwDropTransfer clientData: dopProcCallData callData: callData "" callData value isNil ifTrue: [^self]. self asyncExecInUI: [ self handleSelectedFile: ( CfsPath named: ( PHXOperatingSystemServices longFilenameFromShortPath: (String abtFromPointer: callData value)))] and: nativeFilenameDrag: aWidget clientData: clientData callData: callData callData operation: XmDROPCOPY ; dropSiteStatus: XmDROPSITEVALID and: nativeFilenameDrop: aWidget clientData: clientData callData: callData self startTransfer: callData targetTypes: #('FileName') clientData: self docRenderingsWidget Am Donnerstag, 23. Juli 2015 19:12:24 UTC+2 schrieb Alex Greber:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Thanks for posting the code, Marten.
-- How is it used? Are these the handlers for Drag/Drop events? Sorry if I am missing the obvious, but can you indicate how this code is used? Thanks! Regards, Julian On Sunday, 3 April 2016 03:29:25 UTC-4, Marten Feldtmann wrote:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Alex Greber
I know this is an old thread now...but I have still not managed to get this to work.
-- Does anyone have a working example of this? Thanks! Julian On Thursday, July 23, 2015 at 1:12:24 PM UTC-4, Alex Greber wrote:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Marten Feldtmann-4
I used this as a template to get filenames and got it to work ("somehow...").
-- Things to note:
How would one implement dragging files from the Windows Explorer to a VAST App in the 21st century? (note that I am not using CompEditor in this project but WB Pro). Joachim Am Sonntag, 3. April 2016 09:29:25 UTC+2 schrieb Marten Feldtmann:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Am Dienstag, 20. März 2018 18:50:31 UTC+1 schrieb Joachim Tuchel:
I think its a matter of a newer internal protocol ...
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by jtuchel
I'd be interested in understanding the code a little better. The code shown in the Programmers' Reference and the sample provided by Marten are somewhat confusing to me. You register a few callbacks and finally in the last callback you get some info in callData that's not been there in the methods that have previously been called.... Where can I find more about this handling of drag&drop events in ancient Windows APIs? How do the parts work together and what is happening inbetween the callbacks?
-- I guess I'd have to dig for some documentation from Windows 95 or earlier to understand all this? Any pointers? Maybe there is miore to learn like additional targetTypes? And then: is there any current plan to support more recent drag&drop standards, like getting "real" paths, dropping multiple files etc.? You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
This is an example I got from Instantiations. (see attachment) Am Mittwoch, 21. März 2018 07:14:07 UTC+1 schrieb Joachim Tuchel:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. manager58944.dat (58K) Download Attachment |
In reply to this post by jtuchel
With the help of a colleague I found out that there is 'FileDrop' and 'FileNameW'. And we found out that 'FileName' has been deprecated by MS a while ago.
-- So... Trying FileNameW, we get into troubles because the (full) filename is in UTF-16, but we couldn't find a way to convert UTF-16 to the local code page (819 in our case) - any tips? The ByteArray in callData value starts with 67 0 (which I guess is the Drive Letter 'C', but trying to use AbtCodepAgeConverter for 'UTF-16', 1200 or 1201 results in a primitive failed). Trying FileDrop, the callData value is nil, so there either need to be more modifications to the code in order to get multiple file names or this simply doesn't work in VA. Has anybody had more success with this? Joachim You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at https://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Free forum by Nabble | Edit this page |