Ejemplo n.º 1
0
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
        ])
Ejemplo n.º 2
0
 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)