Long story short, I'm planning on doing something similar to Java's ActionListener. Parts should be easy to do this with because they have mouse.Target, but GUIs don't.