Esempio n. 1
0
    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)
Esempio n. 2
0
	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)