| 2 | from wminterfaces import WMInterface |
| 3 | |
| 4 | class ModelManager: |
| 5 | def __init__(self, puppet: DesktopPuppet, wm_interface: WMInterface) -> None: |
| 6 | self.puppet = puppet |
| 7 | self.wm_interface = wm_interface |
| 8 | |
| 9 | def get_gtk_widget(self): |
| 10 | return self.puppet.get_gtk_widget() |
| 11 | |
| 12 | def get_updated_area(self) -> tuple[int, int, int, int]: |
| 13 | self.puppet.update_area() |
| 14 | return self.puppet.model_x, self.puppet.model_y, self.puppet.model_width, self.puppet.model_height |
| 15 | |
| 16 | def update_cursor_position(self): |
| 17 | x, y = self.wm_interface.get_cursor_position() |
| 18 | self.puppet.look(x, y) |
| 19 | |
| 20 | def get_motions(self) -> list[str]: |
| 21 | return self.puppet.get_motions() |
| 22 | |
| 23 | def do_motion(self, motion: str) -> None: |
| 24 | self.puppet.do_motion(motion) |
| 25 | |
| 26 | def get_expressions(self): |
| 27 | return self.puppet.get_expressions() |
| 28 | |
| 29 | def set_expression(self, expression: str) -> None: |
| 30 | self.puppet.set_expression(expression) |
| 31 | |
| 32 | def set_mouth_amplitude(self, amplitude: float) -> None: |
| 33 | self.puppet.set_mouth_amplitude(amplitude) |
| 34 | |
| 35 | def set_settings(self, settings: dict) -> None: |
| 36 | self.puppet.set_settings(settings) |
| 37 | |
| 38 | def get_monitor_dimensions(self) -> tuple[int, int]: |
| 39 | return self.wm_interface.get_active_monitor_resolution() |