FunctionBox.all_function_boxes) * (text_container_height + padding) FunctionBox(event_manager, (0, place), (300, text_container_height), 30) new_expr = Button(event_manager, (25, screen_height - 60), pygame.Color(0, 200, 0), 'ADD NEW', create_new_text_container, size=(90, 35), gui_object_blitted_to=sidebar) while not event_manager.has_quit: event_manager.clock.tick(60) event_manager.update() if toggle_button.was_clicked: graph.toggle_degrees() mouse_pos = pygame.mouse.get_pos() if event_manager.lmb_down and 0 < mouse_pos[0] < 300: bounds = mouse_pos[1] // (text_container_height + padding) if bounds < len(FunctionBox.all_function_boxes): for item in FunctionBox.all_function_boxes: item.text_entry.is_on = False FunctionBox.all_function_boxes[bounds].text_entry.is_on = True try: graph.update() except TypeError or NameError:
class Window(Render, sf.RenderWindow): """This class create a window Cette classe créé une fenêtre""" def __init__(self, videoMode=sf.VideoMode(800, 600, 32), \ title="window", parent=0, framerateLimit=60,\ backgroundColor = sf.Color.BLACK, backgroundImage = Image()): sf.RenderWindow.__init__(self, videoMode, title) Render.__init__(self, parent, sf.Rectangle(sf.Vector2(),\ videoMode.size), backgroundColor, backgroundImage) self._isStaticToView = False self.position = (0,0) self.framerate_limit = framerateLimit self._framerate = framerateLimit self._event = EventManager(self) self.resetView() self.clear(backgroundColor) def update(self): """Update the Window. It Update all event, and update framerate. It Draw and display also all widgets child""" if self.canUpdate: self._event.update() self._framerate = 1/(self._event.elapsedTime*10**-6) if self._event.isResize: Render._setSize(self,self.size) if self.event._mouseMoved: Widget.widgetFocus = None if self.event._mouseMoved and self.event.isMouseInRect(self.rect): Updatable._focusIsChecked= False Updatable.updateFocus(self) Widget.update(self, self) self.display() self.clear(self.backgroundColor) def getEventFromRootParent(self): return self._event def _setSize(self, size): sf.RenderWindow.size.__set__(self, size) Widget.size.__set__(self,size) self._event._defaultWindowSize = size def getPosOnScreen(self, *args): return sf.Vector2(0,0) def setPos(self, position, *args): Widget.setPos(position, False) self.position = position def getSizeOnScreen(self, *args): return self.size def _setView(self,view): sf.RenderWindow.view.__set__(self, view) Render._setView(self,view) size = sf.RenderWindow.size event = property(lambda self:self._event) framerate = property(lambda self:self._framerate) setPosOnScreen = setPos draw = sf.RenderWindow.draw sizeOnScreen = sf.RenderWindow.size