mirror of https://github.com/python/cpython.git
Initial minimal test program: print information on anything dropped onto Python
window.
This commit is contained in:
parent
58b2eacf6b
commit
1de2a92791
|
@ -0,0 +1,43 @@
|
||||||
|
import Drag
|
||||||
|
import time
|
||||||
|
xxxx=1
|
||||||
|
def decode_hfs(data):
|
||||||
|
import struct, macfs
|
||||||
|
tp = data[0:4]
|
||||||
|
cr = data[4:8]
|
||||||
|
flags = struct.unpack("h", data[8:10])
|
||||||
|
fss = macfs.RawFSSpec(data[10:])
|
||||||
|
return tp, cr, flags, fss
|
||||||
|
|
||||||
|
def tracker(msg, dragref, window):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def dropper(dragref, window):
|
||||||
|
global xxxx
|
||||||
|
n = dragref.CountDragItems()
|
||||||
|
print 'Drop %d items:'%n
|
||||||
|
for i in range(1, n+1):
|
||||||
|
refnum = dragref.GetDragItemReferenceNumber(i)
|
||||||
|
print '%d (ItemReference 0x%x)'%(i, refnum)
|
||||||
|
nf = dragref.CountDragItemFlavors(refnum)
|
||||||
|
print ' %d flavors:'%nf
|
||||||
|
for j in range(1, nf+1):
|
||||||
|
ftype = dragref.GetFlavorType(refnum, j)
|
||||||
|
fflags = dragref.GetFlavorFlags(refnum, ftype)
|
||||||
|
print ' "%4.4s" 0x%x'%(ftype, fflags)
|
||||||
|
if ftype == 'hfs ':
|
||||||
|
datasize = dragref.GetFlavorDataSize(refnum, ftype)
|
||||||
|
data = dragref.GetFlavorData(refnum, ftype, datasize, 0)
|
||||||
|
print ' datasize', `data`
|
||||||
|
xxxx = data
|
||||||
|
print ' ->', decode_hfs(data)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print "Drag things onto output window. Press command-. to quit."
|
||||||
|
Drag.InstallTrackingHandler(tracker)
|
||||||
|
Drag.InstallReceiveHandler(dropper)
|
||||||
|
while 1:
|
||||||
|
time.sleep(100)
|
||||||
|
|
||||||
|
main()
|
Loading…
Reference in New Issue