(self, rect: rl.Rectangle | None = None)
| 104 | return rl.get_collision_rec(self._rect, self._parent_rect) |
| 105 | |
| 106 | def render(self, rect: rl.Rectangle | None = None) -> bool | int | None: |
| 107 | if rect is not None: |
| 108 | self.set_rect(rect) |
| 109 | |
| 110 | self._update_state() |
| 111 | |
| 112 | if self._click_release_time is not None and rl.get_time() >= self._click_release_time: |
| 113 | self._click_release_time = None |
| 114 | |
| 115 | if not self.is_visible: |
| 116 | return None |
| 117 | |
| 118 | self._layout() |
| 119 | ret = self._render(self._rect) |
| 120 | |
| 121 | if gui_app.show_touches: |
| 122 | self._draw_debug_rect() |
| 123 | |
| 124 | # Keep track of whether mouse down started within the widget's rectangle |
| 125 | if self.enabled and self.__was_awake: |
| 126 | self._process_mouse_events() |
| 127 | else: |
| 128 | # TODO: ideally we emit release events when going disabled |
| 129 | self.__is_pressed = [False] * MAX_TOUCH_SLOTS |
| 130 | self.__tracking_is_pressed = [False] * MAX_TOUCH_SLOTS |
| 131 | |
| 132 | self.__was_awake = device.awake |
| 133 | |
| 134 | return ret |
| 135 | |
| 136 | def _draw_debug_rect(self) -> None: |
| 137 | rl.draw_rectangle_lines(int(self._rect.x), int(self._rect.y), |
no test coverage detected