def _init_tabs(self): """Add enough tabbuttons for all widgets.""" def on_tab_removal(tabwidget): # called when a tab is being removed (via weakref since tabs shouldn't have references to the parent tabwidget) # If one tab is removed, the whole tabwidget will die.. # This is easy usually the desired behavior. if tabwidget(): tabwidget().on_remove() # Load buttons for index, tab in enumerate(self._tabs): # don't add a reference to the tab.add_remove_listener(Callback(on_tab_removal, weakref.ref(self))) container = Container(name="container_%s" % index) background = Icon(name="bg_%s" % index) button = ImageButton(name=str(index), size=(50, 50)) if self.current_tab is tab: background.image = tab.button_background_image_active button.path = tab.path_active else: background.image = tab.button_background_image button.path = tab.path button.capture(Callback(self._show_tab, index)) if hasattr(tab, 'helptext') and tab.helptext is not None: button.helptext = tab.helptext container.size = background.size container.addChild(background) container.addChild(button) self.content.addChild(container) self.widget.size = (50, 55*len(self._tabs)) self.widget.adaptLayout() self._apply_layout_hack()
def _init_tab_buttons(self): """Add enough tabbuttons for all widgets.""" def on_tab_removal(tabwidget): # called when a tab is being removed (via weakref since tabs shouldn't have references to the parent tabwidget) # If one tab is removed, the whole tabwidget will die.. # This is easy usually the desired behavior. if tabwidget(): tabwidget().on_remove() # Load buttons for index, tab in enumerate(self._tabs): # don't add a reference to the tab.add_remove_listener(Callback(on_tab_removal, weakref.ref(self))) container = Container(name="container_{}".format(index)) background = Icon(name="bg_{}".format(index)) button = ImageButton(name=str(index), size=(50, 50)) if self.current_tab is tab: background.image = tab.button_background_image_active button.path = tab.path_active else: background.image = tab.button_background_image button.path = tab.path button.capture(Callback(self.show_tab, index)) if hasattr(tab, 'helptext') and tab.helptext: button.helptext = tab.helptext container.size = (50, 52) container.addChild(background) container.addChild(button) self.content.addChild(container) self.widget.size = (54, 55 * len(self._tabs)) self.widget.adaptLayout() self._apply_layout_hack()
def _add_player_line(player): pname = Label(name="pname_%s" % player['name']) pname.helptext = _("Click here to change your name and/or color") pname.text = player['name'] if player['name'] == NetworkInterface().get_client_name(): pname.capture(Callback( self.__show_change_player_details_popup)) pname.min_size = pname.max_size = (130, 15) pcolor = Label(name="pcolor_%s" % player['name'], text=u" ") pcolor.helptext = _("Click here to change your name and/or color") pcolor.background_color = player['color'] if player['name'] == NetworkInterface().get_client_name(): pcolor.capture( Callback(self.__show_change_player_details_popup)) pcolor.min_size = pcolor.max_size = (15, 15) pstatus = Label(name="pstatus_%s" % player['name']) pstatus.text = "\t\t\t" + player['status'] pstatus.min_size = pstatus.max_size = (120, 15) picon = Icon(name="picon_%s" % player['name']) picon.image = "content/gui/images/background/hr.png" hbox = HBox() hbox.addChild(pname) hbox.addChild(pcolor) hbox.addChild(pstatus) if NetworkInterface().get_client_name() == game.get_creator( ) and player['name'] != game.get_creator(): pkick = CancelButton(name="pkick_%s" % player['name']) pkick.helptext = _("Kick {player}").format( player=player['name']) pkick.capture(Callback(NetworkInterface().kick, player['sid'])) pkick.up_image = "content/gui/images/buttons/delete_small.png" pkick.down_image = "content/gui/images/buttons/delete_small.png" pkick.hover_image = "content/gui/images/buttons/delete_small_h.png" pkick.min_size = pkick.max_size = (20, 15) hbox.addChild(pkick) players_vbox.addChild(hbox) players_vbox.addChild(picon)
def _add_player_line(player): pname = Label(name="pname_%s" % player['name']) pname.helptext = _("Click here to change your name and/or color") pname.text = player['name'] pname.min_size = pname.max_size = (130, 15) if player['name'] == NetworkInterface().get_client_name(): pname.capture(Callback(self._show_change_player_details_popup, game)) pcolor = Label(name="pcolor_%s" % player['name'], text=u" ") pcolor.helptext = _("Click here to change your name and/or color") pcolor.background_color = player['color'] pcolor.min_size = pcolor.max_size = (15, 15) if player['name'] == NetworkInterface().get_client_name(): pcolor.capture(Callback(self._show_change_player_details_popup, game)) pstatus = Label(name="pstatus_%s" % player['name']) pstatus.text = "\t\t\t" + player['status'] pstatus.min_size = pstatus.max_size = (120, 15) picon = Icon(name="picon_%s" % player['name']) picon.image = "content/gui/images/background/hr.png" hbox = HBox() hbox.addChild(pname) hbox.addChild(pcolor) hbox.addChild(pstatus) if NetworkInterface().get_client_name() == game.creator and player['name'] != game.creator: pkick = CancelButton(name="pkick_%s" % player['name']) pkick.helptext = _("Kick {player}").format(player=player['name']) pkick.capture(Callback(NetworkInterface().kick, player['sid'])) pkick.up_image = "content/gui/images/buttons/delete_small.png" pkick.down_image = "content/gui/images/buttons/delete_small.png" pkick.hover_image = "content/gui/images/buttons/delete_small_h.png" pkick.min_size = pkick.max_size = (20, 15) hbox.addChild(pkick) players_vbox.addChild(hbox) players_vbox.addChild(picon)