Skip to content

Instantly share code, notes, and snippets.

@ColdGrub1384
Created September 20, 2020 15:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ColdGrub1384/7f1050c36252b34f8de7cdc552f888bf to your computer and use it in GitHub Desktop.
Save ColdGrub1384/7f1050c36252b34f8de7cdc552f888bf to your computer and use it in GitHub Desktop.
Make a static widget with a text with Pyto
import widgets as wd
import pyto_ui as ui
import pyto_core as pc
import sys
from rubicon.objc import ObjCClass
from mainthread import mainthread
from time import sleep
UIColorPickerViewController = ObjCClass("UIColorPickerViewController")
# Color
color_picker = None
@mainthread
def show_color_picker():
global color_picker
color_picker = UIColorPickerViewController.alloc().init()
ui.show_view_controller(color_picker)
# Font
fonts_view = ui.TableView()
fonts_view.text = "Content's font"
cells = []
def select_font(section, index):
global font
font = cells[index].text_label.font
fonts_view.close()
for font in ui.font_family_names():
for name in ui.Font.font_names_for_family_name(font):
cell = ui.TableViewCell()
cell.text_label.text = name
cell.text_label.font = ui.Font(name, 15)
cells.append(cell)
fonts_section = ui.TableViewSection("", cells)
fonts_section.did_select_cell = select_font
fonts_view.sections = [fonts_section]
# Text
text_view = ui.TextView()
text_view.title = "Widget's content"
# Show
pc.show_view(fonts_view, ui.PRESENTATION_MODE_SHEET)
sleep(0.2)
show_color_picker()
while fonts_view.__py_view__.isPresented:
sleep(0.2)
color = color_picker.selectedColor
color = ui.__PyColor__.alloc().initWithManaged(color)
color = ui.Color(color)
text_view.become_first_responder()
pc.show_view(text_view, ui.PRESENTATION_MODE_SHEET)
sleep(0.2)
show_color_picker()
while text_view.__py_view__.isPresented:
sleep(0.2)
text = text_view.text
fore_color = color_picker.selectedColor
fore_color = ui.__PyColor__.alloc().initWithManaged(fore_color)
fore_color = ui.Color(fore_color)
font_size = float(input("Font size: "))
font = font.with_size(font_size)
# Make widget
widget = wd.Widget()
layouts = [
widget.small_layout,
widget.medium_layout,
widget.large_layout
]
for layout in layouts:
layout.set_background_color(color)
layout.add_row([
wd.Text(
text=text,
font=font,
color=fore_color
)
])
name = input("Save as: ")
wd.show_widget(widget)
wd.save_widget(widget, name)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment