+ def find_class(self, name):
+ for aclass in self.classes:
+ if aclass.name == name:
+ return aclass
+
+ return None
+
+ def get_enums_and_functions(self, filename, aclass):
+ file_path = os.path.dirname(filename)
+ enum_filename = os.path.join(file_path, aclass.name[2:] + "_8h.xml")
+ if os.path.exists(enum_filename):
+ root = minidom.parse(enum_filename).documentElement
+ for method in root.getElementsByTagName("memberdef"):
+ if method.getAttribute("kind") == "enum":
+ self.parse_enum(aclass, method, root)
+
+ def is_derived_from_base(self, aclass, abase):
+ base = get_first_value(aclass.bases)
+ while base and base != "":
+
+ if base == abase:
+ return True
+
+ parentclass = self.find_class(base)
+
+ if parentclass:
+ base = get_first_value(parentclass.bases)
+ else:
+ base = None
+
+ return False
+