summaryrefslogtreecommitdiff
path: root/xcbgen
diff options
context:
space:
mode:
authorCarsten Meier <cm@trexity.de>2008-09-03 12:55:04 +0200
committerBart Massey <bart@cs.pdx.edu>2008-09-03 11:59:07 -0700
commitf9c1bc3c6f24b5533f8ec8a441c9856a57824576 (patch)
treedb509d33eb416cea604da71722bda1ba81d6c953 /xcbgen
parent929646d767c1eff07c6d0a551cce01922b2c887d (diff)
downloadxcb-proto-f9c1bc3c6f24b5533f8ec8a441c9856a57824576.tar.gz
Make bit-numbers available to code-generators
The Enum-class now exports the bit numbers in the 'bits'-list if they have been specified in the protocol description. Signed-off-by: Bart Massey <bart@cs.pdx.edu>
Diffstat (limited to 'xcbgen')
-rw-r--r--xcbgen/xtypes.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
index 1ba02eb..30617b8 100644
--- a/xcbgen/xtypes.py
+++ b/xcbgen/xtypes.py
@@ -114,10 +114,12 @@ class Enum(SimpleType):
Public fields added:
values contains a list of (name, value) tuples. value is empty, or a number.
+ bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number.
'''
def __init__(self, name, elt):
SimpleType.__init__(self, name, 4)
self.values = []
+ self.bits = []
for item in list(elt):
# First check if we're using a default value
if len(list(item)) == 0:
@@ -130,6 +132,7 @@ class Enum(SimpleType):
self.values.append((item.get('name'), value.text))
elif value.tag == 'bit':
self.values.append((item.get('name'), '%u' % (1 << int(value.text))))
+ self.bits.append((item.get('name'), value.text))
def resolve(self, module):
self.resolved = True