def layout_bottom(self, sizer, row): s = self.Sizer sizer.Add(self.expand, (row, 0), (1,3)) row+=1 self.details = Clique() account_gui = getattr(self.protocolinfo, 'account_gui', None) if account_gui is not None: # Protocolmeta can specify a lazy import path to separate # GUI components. with traceguard: self.add_account_gui(account_gui) else: getattr(self, 'build_details_' + self.formtype, getattr(self, 'build_details_default'))(sizer,row) self.expand.Show(bool(self.details)) self.details.Show(False) s.Add(build_button_sizer(self.save, self.cancel, border=self.save.GetDefaultBorder()), 0, EXPAND | ALL, self.GetDefaultBorder())