added nsEditProperty
beginning of implementation for SetTextProperties. Currently, it only works if the selection is entirely within a single text node. Currently only
supports bold and italic (mapped to ctrl-b and ctrl-i for testing purposes.)
changed a bunch of interfaces to make things easier, like CreateElement now returns (as an out-param) the element created.
updated to new nsCOMPtr usage
nsTextEditor::InsertBreak() implemented
splits the text node at the caret (deletes any extended selection to force a collapsed selection.)
inserts a <BR> which I assume we'll convert to a CR when we write to a text stream.
undo and redo work, except for the bug noted below
More stuff:
interface cleanup
strategic debugging code added
delete selection txn sets the collapses the selection...this is just a placeholder, but I needed it for undo/redo of InsertBreak.
join and split now work for text nodes as well as interior nodes
* added DeleteSelection to editor. Doesn't work very well yet because selection is giving me random offsets into text content.
* lots of work in the various transactions.
The key listener is now mostly a mapper of key events to editor actions. Soon, this should be 100% true.
The editor builds transactions that are themselves intelligent. The editor makes very few DOM calls itself.
It relies on the transactions to do most of the actual editing.