def show_menu(self, jump_to_tabclass=None): """Shows tabwidget tabs of this instance. Opens the first such tab unless jump_to_tabclass specifies otherwise. @param jump_to_tabclass: open the first tab that is a subclass to this parameter """ from horizons.gui.tabs import TabWidget tablist = None if self.instance.owner is not None and self.instance.owner.is_local_player: tablist = self.tabs else: # this is an enemy instance with respect to the local player tablist = self.enemy_tabs if not tablist: return tabclasses = [ tabclass for tabclass in tablist if tabclass.shown_for(self.instance) ] try: active_tab_index = tabclasses.index(self.active_tab) except ValueError: active_tab_index = None tabs = [tabclass(self.instance) for tabclass in tabclasses] tabwidget = TabWidget(self.session.ingame_gui, tabs=tabs, active_tab=active_tab_index) if jump_to_tabclass: for i, tab in enumerate(tabs): if isinstance(tab, jump_to_tabclass): tabwidget.show_tab(i) break self.session.ingame_gui.show_menu(tabwidget)
def show_menu(self, jump_to_tabclass=None): """Shows tabwidget tabs of this instance. Opens the first such tab unless jump_to_tabclass specifies otherwise. @param jump_to_tabclass: open the first tab that is a subclass to this parameter """ from horizons.gui.tabs import TabWidget tablist = None if self.instance.owner is not None and self.instance.owner.is_local_player: tablist = self.tabs else: # this is an enemy instance with respect to the local player tablist = self.enemy_tabs if not tablist: return tabclasses = [tabclass for tabclass in tablist if tabclass.shown_for(self.instance)] try: active_tab_index = tabclasses.index(self.active_tab) except ValueError: active_tab_index = None tabs = [tabclass(self.instance) for tabclass in tabclasses] tabwidget = TabWidget(self.session.ingame_gui, tabs=tabs, active_tab=active_tab_index) if jump_to_tabclass: for i, tab in enumerate(tabs): if isinstance(tab, jump_to_tabclass): tabwidget.show_tab(i) break self.session.ingame_gui.show_menu(tabwidget)