def create_dom(shell: DOMNyanSatShell): return DOMStackLayout( id="window", style=DOMStyle(background_color=Color.BLACK), children=[ DOMStackLayout(orientation=HORIZONTAL, style=DOMStyle(size=(FULL_WIDTH, 9)), id="header_container", children=[ DOMText(ASCII_HEADER.split("\n"), style=DOMStyle( size=FULL_SIZE, text_align=Alignment.CENTER)), ]), DOMTextFill("═", style=DOMStyle(size=(FULL_WIDTH, 1))), DOMStackLayout( style=DOMStyle(size=FULL_SIZE), children=[ DOMStackLayout( orientation=VERTICAL, style=DOMStyle(size=FULL_SIZE, display=Display.NONE, text_align=Alignment.CENTER), id="disconnected_container", children=[ DOMTextFill(" ", style=DOMStyle(size=(FULL_WIDTH, 5))), DOMText(ASCII_DISCONNECTED.split("\n"), style=DOMStyle(size=FULL_SIZE)) ]), DOMStackLayout( orientation=VERTICAL, style=DOMStyle(size=FULL_SIZE, display=Display.NONE), id="telemetry_container", children=[ DOMText("Network", style=DOMStyle(text_align=Alignment.CENTER, size=(FULL_WIDTH, 1))), DOMTextFill("-", style=DOMStyle(size=(FULL_WIDTH, 1))), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle(text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("IP Address", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="ip_value", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle(text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("UDP Port", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="port_value", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), DOMTextFill("═", style=DOMStyle(size=(FULL_WIDTH, 1))), DOMText("GPS", style=DOMStyle(text_align=Alignment.CENTER, size=(FULL_WIDTH, 1))), DOMTextFill("-", style=DOMStyle(size=(FULL_WIDTH, 1))), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle(text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("Coordinates", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="gps_coordinates_value", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle( text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("Altitude", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="gps_altitude_value", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle( text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("Speed", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="gps_speed_value", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), DOMTextFill("═", style=DOMStyle(size=(FULL_WIDTH, 1))), DOMText("Antenna", style=DOMStyle(text_align=Alignment.CENTER, size=(FULL_WIDTH, 1))), DOMTextFill("-", style=DOMStyle(size=(FULL_WIDTH, 1))), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle( text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("Azimuth", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="antenna_azimuth", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), DOMStackLayout( orientation=HORIZONTAL, style=DOMStyle( text_align=Alignment.CENTER, size=(FULL_WIDTH, 1)), children=[ DOMText("Elevation", style=DOMStyle( text_align=Alignment.LEFT, size=(FULL_WIDTH, 1))), DOMText("", id="antenna_elevation", style=DOMStyle( text_align=Alignment.RIGHT, size=(FULL_WIDTH, 1))) ]), ]), ]), DOMTextFill("-", style=DOMStyle(size=(FULL_WIDTH, 1))), shell ])
def set_style(self, style: DOMStyle, render=True): self.style = DOMStyle.merge(self.style, style) computed_style = DOMStyle.merge(self._computed_style, self.style) for child in self._children: child._set_parent_style(computed_style, False) super()._update_style(computed_style, render)