I don't know the answers to 1 and 2, but from the demo I know that the answer to 3 is wx.stc.StyledTextControl.
As for 4, I guess it depends on what you want to do. StyledTextControl looked pretty scary to me, and for my application I mainly needed to display styled text, not edit it, so I embedded a web browser window and used HTML+CSS (and even a little JavaScript now). That worked quite nicely. If you need to edit the text as well, then I don't know. The rich edit control (TextCtrl with style wx.TE_RICH2) is one option, but it is not particularly nice to use. -- Want to play tabletop RPGs over the internet? Check out RPZen: http://koboldsoft.com -- http://mail.python.org/mailman/listinfo/python-list