class Gui: class Widget: def __init__(self, image_surface=None, pos=Vector2(0, 0)): self.uuid = 0 self.position = pos self.image = image_surface self.tag = "" def __eq__(self, other): return self.uuid == other.uuid def __init__(self, engine): self.widgets = list() self.engine = engine self.id_manager = IdManager() # draw buttons, text, labels, hud elements def draw_widgets(self): display = self.engine.display for widget in self.widgets: x = widget.position.x y = widget.position.y display.blit(widget.image, (x, y)) # Add widget to gui and assign a uuid. def add_widget(self, widget): widget.uuid = self.id_manager.get_id() self.widgets.append(widget) # Change image of the widget. def update_widget_image(self, widget_tag, image_surface): # find widget by tag for widget in self.widgets: if widget.tag == widget_tag: widget.image = image_surface break # remove widget from the gui handler def remove_widget(self, widget): self.widgets.remove(widget)
def __init__(self, engine): self.widgets = list() self.engine = engine self.id_manager = IdManager()