Skip to content

Commit

Permalink
feat(py): Generate default empty event handlers.
Browse files Browse the repository at this point in the history
  • Loading branch information
iphydf committed Jan 7, 2024
1 parent 26bc5e5 commit 9ad1bf3
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions tools/gen-python
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ _array_typecode = {
def _order_types_first(decl: apigen.Decl) -> int:
if isinstance(decl, apigen.Enumeration):
return 0
if isinstance(decl, apigen.CallbackTypeDecl):
return 1
return 100


Expand Down Expand Up @@ -585,7 +583,7 @@ class GenCython:
self.in_class = decl.name
ns = self.ns
self.ns += tuple(decl.name.name)
for mem in decl.mems:
for mem in sorted(decl.mems, key=_order_types_first):
self.genDecl(mem)
self.ns = ns
self.in_class = None
Expand Down Expand Up @@ -778,13 +776,20 @@ class GenCython:
if not self.pyx.handlers:
self.pyx.handlers = ["", "cdef:"]
params = self.make_handler_params(decl.params)
py_params = ", ".join(p[1] for p in params)
self._add(
self.pyx.handlers,
f" void py_{handler}(self: {self.make_typename(self.in_class)}_Ptr, {', '.join(p[1] for p in params)}) except *:",
f" void py_{handler}(self: {self.make_typename(self.in_class)}_Ptr, {py_params}) except *:",
f" self.{handler}({', '.join(p[0] for p in params)})",
f" void {handler}({', '.join(self.make_params(decl.params))}) except *:",
f" py_{handler}(<{self.make_typename(self.in_class)}_Ptr> user_data, {', '.join(self.make_handler_args(decl.params)[1:])})",
)
if not self.pyx.classes[-1].startswith(" def handle_"):
self._add(self.pyx.classes, "")
self._add(
self.pyx.classes,
f" def {handler}(self, {py_params}) -> None: pass",
)

def genIdTypeDecl(self, decl: apigen.IdTypeDecl):
self._add(self.pxd.typedefs,
Expand Down

0 comments on commit 9ad1bf3

Please sign in to comment.