Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1de2a92

Browse files
committed
Initial minimal test program: print information on anything dropped onto Python
window.
1 parent 58b2eac commit 1de2a92

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

Mac/Lib/test/dragtest.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import Drag
2+
import time
3+
xxxx=1
4+
def decode_hfs(data):
5+
import struct, macfs
6+
tp = data[0:4]
7+
cr = data[4:8]
8+
flags = struct.unpack("h", data[8:10])
9+
fss = macfs.RawFSSpec(data[10:])
10+
return tp, cr, flags, fss
11+
12+
def tracker(msg, dragref, window):
13+
pass
14+
15+
def dropper(dragref, window):
16+
global xxxx
17+
n = dragref.CountDragItems()
18+
print 'Drop %d items:'%n
19+
for i in range(1, n+1):
20+
refnum = dragref.GetDragItemReferenceNumber(i)
21+
print '%d (ItemReference 0x%x)'%(i, refnum)
22+
nf = dragref.CountDragItemFlavors(refnum)
23+
print ' %d flavors:'%nf
24+
for j in range(1, nf+1):
25+
ftype = dragref.GetFlavorType(refnum, j)
26+
fflags = dragref.GetFlavorFlags(refnum, ftype)
27+
print ' "%4.4s" 0x%x'%(ftype, fflags)
28+
if ftype == 'hfs ':
29+
datasize = dragref.GetFlavorDataSize(refnum, ftype)
30+
data = dragref.GetFlavorData(refnum, ftype, datasize, 0)
31+
print ' datasize', `data`
32+
xxxx = data
33+
print ' ->', decode_hfs(data)
34+
35+
36+
def main():
37+
print "Drag things onto output window. Press command-. to quit."
38+
Drag.InstallTrackingHandler(tracker)
39+
Drag.InstallReceiveHandler(dropper)
40+
while 1:
41+
time.sleep(100)
42+
43+
main()

0 commit comments

Comments
 (0)