def show_menu(self, jump_to_tabclass=None): """Shows tabs from self.__class__.tabs, if there are any. @param jump_to_tabclass: open the first tab that is a subclass to this parameter """ # this local import prevents circular imports from horizons.gui.tabs import TabWidget tablist = None if self.owner == self.session.world.player: tablist = self.__class__.tabs else: # this is an enemy instance with respect to the local player tablist = self.__class__.enemy_tabs if tablist: tabs = [ tabclass(self) for tabclass in tablist if tabclass.shown_for(self) ] tabwidget = TabWidget(self.session.ingame_gui, tabs=tabs) if jump_to_tabclass: num = None for i in xrange( len(tabs) ): if isinstance(tabs[i], jump_to_tabclass): num = i break if num is not None: tabwidget._show_tab(num) 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)
def show_menu(self, jump_to_tabclass=None): """Shows tabs from self.__class__.tabs, if there are any. @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 tablist: tabs = [ tabclass(self.instance) for tabclass in tablist if tabclass.shown_for(self.instance) ] tabwidget = TabWidget(self.session.ingame_gui, tabs=tabs) 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 tabs from self.__class__.tabs, if there are any. @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 tablist: tabs = [ tabclass(self.instance) for tabclass in tablist if tabclass.shown_for(self.instance) ] tabwidget = TabWidget(self.session.ingame_gui, tabs=tabs) 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 )