editor/base/Makefile.in
editor/base/makefile.win
- Modified makefiles build files that were
renamed, and use new define to build the
API Logging code.
editor/base/nsEditor.cpp
editor/base/nsEditor.h
editor/base/nsHTMLEditor.cpp
- Removed all ENABLE_JS_EDITOR_LOG ifdef'd code.
- Removed all references to nsVector.h.
editor/base/nsEditorFactory.cpp
- Added ENABLE_EDITOR_API_LOG ifdef'd code
that will create an instance of nsHTMLEditorLog
instead of nsHTMLEditor.
editor/base/nsEditorTxnLog.cpp
- Initial checkin of file. File was originally named nsJSTxnLog.cpp.
editor/base/nsEditorTxnLog.h
- Initial checkin of file. File was originally named nsJSTxnLog.h.
editor/base/nsHTMLEditorLog.cpp
- Initial checkin of file. File was originally named nsJSEditorLog.cpp.
- nsHTMLEditorLog.cpp now derives from nsHTMLEditor, and only
overrides methods that modify the content tree and are publicly
available via XPIDL.
editor/base/nsHTMLEditorLog.h
- Initial checkin of file. File was originally named nsJSEditorLog.h.
- nsHTMLEditorLog.cpp now derives from nsHTMLEditor, and only
overrides methods that modify the content tree and are publicly
available via XPIDL.
nsIHTMLEditor, nsITextEditor, and nsIEditorShell and enabled
the "Start Log" and "End Log" menu items in the editor test bed.
* Modified makefiles for Unix and Win32 to turn on Editor API Logging.
* Added action argument to the DeleteSelection() method in nsIEditorShell.
* Modified nsJSTxnLog to use nsJSEditorLog when writing it's output.
* added focus listener. Doesn't do much yet, but when focus notifications start appearing, we'll be ready for them. The code is in
place to hide selection when we lose focus and paint selection when we get focus. That's probably not quite right, but it's a start.
We will need to be able to determine the distinction between losing focus to another control within our app, and losing focus to
another app.
* added support for disabled and readonly states in the editor. This is accomplished by having flags set by the client, and letting the
rules system deal with those flags. The flags I added are:
TEXT_EDITOR_FLAG_PLAINTEXT 0x01 // only plain text editing is allowed
TEXT_EDITOR_FLAG_SINGLELINE 0x02 // enter key and CR-LF handled specially
TEXT_EDITOR_FLAG_PASSWORD 0x04 // text is not entered into content, only a representative character
TEXT_EDITOR_FLAG_READONLY 0x08 // editing events are disabled. Editor may still accept focus.
TEXT_EDITOR_FLAG_DISALBED 0x10 // all events are disabled (like scrolling). Editor will not accept focus.
* added WillInsertBreak/DidInsertBreak into text rules, so flags could be checked. This gets us readonly, disabled, and single line
behavior.
* cleaned up the code that allocates, registers, and destroys event listeners. Thanks to Kin and Simon for cleaning up the
ownership model on the listeners, it was a big help.
* added support for a max text length. You can now tell the text editor, be no bigger than n characters.
* added TextEditorTest.cpp, a unit test module for nsTextEditor. It's use is actually commented out since my checkin is happening so late due
to all-day build bustage, and I don't have a Mac handy to verify. With someone's Mac help tomorrow, I can turn it on.
* some minor bug fixes to property handling
and merges in subsequent transactions indiscriminately until it's told to stop.
It also gives the last transaction in its child list a chance to merge the
next transaction.
All this is in support of complex transactions that result in text insertion
being able to collapse into a single undoable event.
Also improved tracking of bogus content node used when document is empty.
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.
* the TxnMgr is invoked by the editor via nsRepository
* editor.h|cpp have been renamed nsEditor.h|cpp for consistency
* editorInterfaces.h|cpp have been renamed nsEditorEventListeners.c|hpp
* added nsITextEditor.h, nsTextEditor.h|cpp. The text editor is a placeholder for the rules unique to text
editing. It invokes the nsIEditor to do core editing operations.
* reworked nsIEditor and related interfaces as per emerging design.
* nsEditor::BeginTransaction and EndTransaction call nsTransactionManager::BeginBatch and EndBatch.
* 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.