Access clipboard content in BaseEventTool on paste

  • Hi,

    I want to make sure when I paste some anchors while my tool is active, their names don't already exist in the glyph. Is it possible to access clipboard content in BaseEventTool on the paste method?


  • admin

    this is pretty cool:

    import AppKit
    import defcon
    from fontTools.ufoLib.glifLib import writeGlyphToString, readGlyphFromString
    # get the paste board
    pasteboard = AppKit.NSPasteboard.generalPasteboard()
    # get the data
    possibleGlifXML = pasteboard.stringForType_(AppKit.NSPasteboardTypeString)
    # maybe its glif xml, could also just be normal text
    # get a dummy glyph
    dummyGlyph = RGlyph()
    succes = False
        # try to read the xml
        readGlyphFromString(possibleGlifXML, dummyGlyph, dummyGlyph.getPointPen())
        succes = True
    except Exception as e:
        # if not valid fail
        print(f"Not valid glif xml!\nerror: {e}\ndata: \"{possibleGlifXML}\"")
    if succes:
        # do something with the glyph
        dummyGlyph.moveBy((50, 50))
        # get the glif xml
        glifXML = writeGlyphToString(, dummyGlyph, dummyGlyph.drawPoints)
        # clear the past board
        # write it back in to the paste board
        pasteboard.setString_forType_(glifXML, AppKit.NSPasteboardTypeString)

Log in to reply