82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
import atexit
|
|
import os
|
|
|
|
import supervisor
|
|
from displayio import Group, Palette, TileGrid
|
|
import terminalio
|
|
from adafruit_display_text.bitmap_label import Label
|
|
from adafruit_editor import editor, picker
|
|
from tilepalettemapper import TilePaletteMapper
|
|
from adafruit_argv_file import read_argv, write_argv
|
|
from adafruit_fruitjam.peripherals import request_display_config
|
|
from adafruit_usb_host_mouse import find_and_init_boot_mouse
|
|
|
|
print(f"cwd in editor/code.py: {os.getcwd()}")
|
|
|
|
request_display_config(720, 400)
|
|
display = supervisor.runtime.display
|
|
display.auto_refresh = True
|
|
|
|
main_group = Group()
|
|
|
|
display.root_group = main_group
|
|
|
|
font_palette = Palette(2)
|
|
font_palette[0] = 0x000000
|
|
font_palette[1] = 0xFFFFFF
|
|
|
|
|
|
font = terminalio.FONT
|
|
char_size = font.get_bounding_box()
|
|
screen_size = (display.width // char_size[0], display.height // char_size[1])
|
|
print(screen_size)
|
|
|
|
highlight_palette = Palette(3)
|
|
highlight_palette[0] = 0x000000
|
|
highlight_palette[1] = 0xFFFFFF
|
|
highlight_palette[2] = 0xC9C9C9
|
|
|
|
|
|
|
|
terminal_area = TileGrid(bitmap=font.bitmap, width=screen_size[0], height=screen_size[1],
|
|
tile_width=char_size[0], tile_height=char_size[1])
|
|
|
|
tpm = TilePaletteMapper(highlight_palette, 2, terminal_area)
|
|
for x in range(screen_size[0]):
|
|
tpm[x,screen_size[1]-1] = [2,0]
|
|
|
|
main_group.append(terminal_area)
|
|
|
|
terminal = terminalio.Terminal(terminal_area, font)
|
|
|
|
# visible_cursor = Label(terminalio.FONT, text="",
|
|
# color=0x000000, background_color=0xeeeeee, padding_left=1)
|
|
# visible_cursor.hidden = False
|
|
# visible_cursor.anchor_point = (0, 0)
|
|
# visible_cursor.anchored_position = (0, 0)
|
|
# main_group.append(visible_cursor)
|
|
|
|
file = None
|
|
args = read_argv(__file__)
|
|
if args is not None and len(args) > 0:
|
|
file = args[0]
|
|
else:
|
|
file = picker.pick_file(terminal)
|
|
|
|
mouse = find_and_init_boot_mouse()
|
|
if mouse is not None:
|
|
mouse.x = display.width - 6
|
|
main_group.append(mouse.tilegrid)
|
|
|
|
|
|
def atexit_callback():
|
|
"""
|
|
re-attach USB devices to kernel if needed.
|
|
:return:
|
|
"""
|
|
print("inside atexit callback")
|
|
if mouse is not None:
|
|
mouse.release()
|
|
|
|
atexit.register(atexit_callback)
|
|
editor.edit(file, terminal, mouse, terminal_area)
|