Posted: Mon Jan 15, 2007 8:36 pm
Code: Select all
Global gOldListProc
;Subclasses the list icon gadget.
Procedure listiconcallback(hWnd,uMsg,wParam,lParam)
Protected ReturnValue, numfiles, buffer$
Select uMsg
Case #WM_DROPFILES
*dropped = wParam
numfiles = DragQueryFile_(wParam , -1, 0, 0)
For i = 0 To numfiles - 1
buffer$=Space(DragQueryFile_(*dropped, i, 0, 0)+1)
DragQueryFile_ (*dropped, i, buffer$, Len(buffer$))
AddGadgetItem(1, -1, buffer$)
Next
DragFinish_(*dropped)
ReturnValue = CallWindowProc_(gOldListProc, hWnd, uMsg, wParam, lParam)
Default
ReturnValue = CallWindowProc_(gOldListProc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn ReturnValue
EndProcedure
If OpenWindow(0, 0, 0, 300, 300, "Drag 'n' drop",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ListIconGadget(1, 50,50, 200,200, "Files", 150)
DragAcceptFiles_(GadgetID(1), 1)
gOldListProc = SetWindowLong_(GadgetID(1), #GWL_WNDPROC, @listiconcallback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End