class MainWidget(BaseWidget): def __init__(self): super(MainWidget, self).__init__() self.menu = MenuWidget(self.load_game_cb) self.add_widget(self.menu) self.load_game = False self.game = None def load_game_cb(self): self.remove_widget(self.menu) self.menu = None self.load_game = True self.game = GameWidget(restart_cb=self.restart_game_cb, exit_cb=self.exit_game_cb) self.add_widget(self.game) def exit_game_cb(self): self.remove_widget(self.game) self.game = None self.load_game = False self.menu = MenuWidget(self.load_game_cb) self.add_widget(self.menu) def restart_game_cb(self): self.remove_widget(self.game) self.game = GameWidget(restart_cb=self.restart_game_cb, exit_cb=self.exit_game_cb) self.add_widget(self.game) def on_update(self): if self.load_game and self.game: self.game.on_update() else: if self.menu: self.menu.on_update()