Reorder list of datafolders


I have a procedure which does lots of different things (plots, layouts etc) with waves in 4-6 main data folders. The code just gets a list of data folders and works through them in that order. I'd like the user to be able to change/specify the order.

My idea is to display a list of data folders and then be able to reorder them using drag-and-drop.
I found this snippet which looks good, but it's quite old and I'm wondering if there is a WM function I can tap into to do this.
Something like the Reorder Waves dialog would be ideal.

Thank you for any help or ideas.
Thanks. I now have it working fine. It was more simple than I thought.

If anyone is interested, I used the modified version here

And modified the first function to first make a textwave of the data folders (within root:data: in my case):
Function OpenDragNDropBox()
    SetDataFolder root:data:
    DFREF dfr = GetDataFolderDFR()
    String folderName
    Variable numDataFolders = CountObjectsDFR(dfr, 4)
    Make/O/T/N=(numDataFolders) root:DFList
    Make/O/N=(numDataFolders) root:testSel // is this needed?
    WAVE/T w = root:DFList
    Variable i
    for(i = 0; i < numDataFolders; i += 1)
        folderName = GetIndexedObjNameDFR(dfr, 4, i)
        w[i] = folderName
    DoWindow/K Panel_DragNDrop
    Execute/Q "Panel_DragNDrop()"