From bc192756b4e404c4e9df616d75497fa91509dea6 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Fri, 19 Jun 2020 21:33:24 +0100 Subject: [PATCH] editor.py: allow pasting a character description back in. Middle-clicking will paste from the X primary selection and try to interpret it as a sequence of octal numbers representing bitmap rows. --- editor.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/editor.py b/editor.py index 0a02705..aae99ea 100644 --- a/editor.py +++ b/editor.py @@ -147,6 +147,22 @@ def click(event): regenerate() break +def paste(event): + s = tkroot.selection_get() + pat = re.compile("[0-7]+") + bitmap = [] + for i in range(YSIZE): + m = pat.search(s) + if m is None: + print("gronk") + return + bitmap.append(int(m.group(0), 8) & ((1 << XSIZE) - 1)) + s = s[m.end(0):] + for y in range(YSIZE): + for x in range(XSIZE): + setpixel(x, y, 1 & (bitmap[y] >> (XSIZE-1 - x))) + regenerate() + def drag(event): x = (event.x - cont.dragstartx) // pixel y = (event.y - gutter) // pixel @@ -169,6 +185,7 @@ def key(event): cont.canvas.bind("", click) cont.canvas.bind("", drag) +cont.canvas.bind("", paste) tkroot.bind("", key) cont.canvas.pack() -- 2.30.2