From 0c9ebbc8d15cd5032bbfbb67d1377fb1505aa3be Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Mon, 22 Jan 2007 18:50:03 +0000 Subject: [PATCH] added iterator for Enum --- direct/src/showbase/PythonUtil.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/direct/src/showbase/PythonUtil.py b/direct/src/showbase/PythonUtil.py index 95e7d9895b..8b85e8c7bb 100644 --- a/direct/src/showbase/PythonUtil.py +++ b/direct/src/showbase/PythonUtil.py @@ -1862,6 +1862,18 @@ def uniqueName(name): global _serialGen return '%s-%s' % (name, _serialGen.next()) +class EnumIter: + def __init__(self, enum): + self._values = enum._stringTable.keys() + self._index = 0 + def __iter__(self): + return self + def next(self): + if self._index >= len(self._values): + raise StopIteration + self._index += 1 + return self._values[self._index-1] + class Enum: """Pass in list of strings or string of comma-separated strings. Items are accessible as instance.item, and are assigned unique, @@ -1923,6 +1935,9 @@ class Enum: self._stringTable[i] = item i += 1 + def __iter__(self): + return EnumIter(self) + def getString(self, value): return self._stringTable[value]