def _write_add_signal_section(self, clif_class_name): if not self._obj.signals: return self.writeln("/* add signals */") self.writeln() marshaller_gen = MarshallerGenerator(self._obj) for signal in self._obj.signals: saved_out = self.output list_out = ListOut() self.output = list_out self.write("%(prefix)s_signals[" % self._vars) self.writeln("%s] = g_signal_new(\"%s\"," % (signal.internal_name.upper(), signal.name)) self.indent() self.writeln(self.gtypename(self._obj) + ",") self.writeln("G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED,") self.write("G_STRUCT_OFFSET(%s, " % clif_class_name) self.writeln(signal.internal_name + "),") self.writeln("NULL, /* accumulator */") self.writeln("NULL,") self.writeln("%s," % marshaller_gen.get_marshaller_name(signal)) self.writeln("%s," % self.gtypename(signal.result)) if signal.parameters: self.writeln("%d," % len(signal.parameters)) for param in signal.parameters: self.write(self.gtypename(param[1])) if not param is signal.parameters[-1]: self.writeln(",") else: self.writeln() else: self.writeln("0") self.writeln(");") self.unindent() self.output = saved_out self.user_section("signal_%s" % signal.internal_name, default_code = list_out.get_lines(), indent_level = -1 ) self.writeln()