blob: 6ce57792164c9b33efea5bb18df10a4b23d781c0 [file] [log] [blame]
Guido van Rossum17448e21995-01-30 11:53:55 +00001# List all resources
2
Jack Jansen5a6fdcd2001-08-25 12:15:04 +00003from Carbon import Res
4from Carbon.Resources import *
Guido van Rossum17448e21995-01-30 11:53:55 +00005
6def list1resources():
Tim Peters182b5ac2004-07-18 06:16:08 +00007 ntypes = Res.Count1Types()
8 for itype in range(1, 1+ntypes):
9 type = Res.Get1IndType(itype)
10 print "Type:", repr(type)
11 nresources = Res.Count1Resources(type)
12 for i in range(1, 1 + nresources):
13 Res.SetResLoad(0)
14 res = Res.Get1IndResource(type, i)
15 Res.SetResLoad(1)
16 info(res)
Guido van Rossum17448e21995-01-30 11:53:55 +000017
18def listresources():
Tim Peters182b5ac2004-07-18 06:16:08 +000019 ntypes = Res.CountTypes()
20 for itype in range(1, 1+ntypes):
21 type = Res.GetIndType(itype)
22 print "Type:", repr(type)
23 nresources = Res.CountResources(type)
24 for i in range(1, 1 + nresources):
25 Res.SetResLoad(0)
26 res = Res.GetIndResource(type, i)
27 Res.SetResLoad(1)
28 info(res)
Guido van Rossum17448e21995-01-30 11:53:55 +000029
30def info(res):
Tim Peters182b5ac2004-07-18 06:16:08 +000031 print res.GetResInfo(), res.SizeResource(), decodeattrs(res.GetResAttrs())
Guido van Rossum17448e21995-01-30 11:53:55 +000032
33attrnames = {
Tim Peters182b5ac2004-07-18 06:16:08 +000034 resChanged: 'Changed',
35 resPreload: 'Preload',
36 resProtected: 'Protected',
37 resLocked: 'Locked',
38 resPurgeable: 'Purgeable',
39 resSysHeap: 'SysHeap',
Guido van Rossum17448e21995-01-30 11:53:55 +000040}
41
42def decodeattrs(attrs):
Tim Peters182b5ac2004-07-18 06:16:08 +000043 names = []
44 for bit in range(16):
45 mask = 1<<bit
46 if attrs & mask:
47 if attrnames.has_key(mask):
48 names.append(attrnames[mask])
49 else:
50 names.append(hex(mask))
51 return names
Guido van Rossum17448e21995-01-30 11:53:55 +000052
53def test():
Tim Peters182b5ac2004-07-18 06:16:08 +000054 print "=== Local resourcess ==="
55 list1resources()
56 print "=== All resources ==="
57 listresources()
Guido van Rossum17448e21995-01-30 11:53:55 +000058
59if __name__ == '__main__':
Tim Peters182b5ac2004-07-18 06:16:08 +000060 test()