def generate_layout(): """Generate home screen layout""" boxes.DOUBLE_TOP.set_chars_of(Container) Container.set_style("border", lambda depth, item: foreground(item, 234)) Container.set_style("corner", lambda depth, item: foreground(item, 234)) Splitter.set_style("separator", lambda depth, item: foreground(item, 234)) Splitter.set_char("separator", boxes.DOUBLE_TOP.borders[0]) corners = boxes.DOUBLE_TOP.corners.copy() corners[0] += " bezo " corners[1] = " calc " + corners[1] root = outer_container() root.set_char("corner", corners) root.forced_height = 32 root.vert_align = Container.VERT_ALIGN_TOP header = Container() + Label("title") header[-1].id = "header_title" root += header inner = Container() inner.id = "inner" inner_title = (Splitter("39;36;36") + Label("[242 bold]Name:") + Label("[242 bold]Worth in dollars:") + Label("[242 bold]Worth in Bezos:")) inner_title.id = "inner_title" inner += inner_title for i in range(24): row = Splitter("39;36;36") if i > 0: row.id = f"inner_row{i - 1}" row += Label(align=Label.ALIGN_LEFT) row += Label() row += Label() inner += row root += inner root += Label() field = InputField(prompt=" ") field.id = "field" root += field with open(to_local(LAYOUT_DIR + "/bezos.ptg"), "w") as datafile: serializer.dump_to_file(root, datafile)
def random_rgb() -> tuple[int, int, int]: """Get random rgb color""" return ";".join(random_255() for _ in range(3)) def random_hex() -> str: """Get random hex color""" rgb = tuple(int(color) for color in random_rgb().split(";")) return "#" + "%02x%02x%02x" % rgb # set up styles border_markup = MarkupFormatter("[bold 60]{item}") Container.set_style("border", border_markup) Container.set_style("corner", border_markup) Splitter.set_style("separator", border_markup) Splitter.set_char("separator", boxes.SINGLE.borders[0]) boxes.SINGLE.set_chars_of(Container) # create root Container root = Container() + Prompt("[222 bold]hello", "[72]world") boxes.DOUBLE_TOP.set_chars_of(root) # create inner Container, add elements to it inner = Container() inner += Label("This is an inner [italic bold 24]label") inner += Label( "All [208]widgets[/fg] support [bold @61 141]markup", )