Moved Citer/Wrap files into core editor list. Ifdef'd out HTML
specific transactions with ifndef MOZILLA_PLAINTEXT_EDITOR_ONLY.
editor/base/Makefile.in
editor/base/TransactionFactory.cpp
editor/base/makefile.win
r=akkana@netscape.comsr=sfraser@netscape.com
sr=sfraser@netscape.com,mscott@netscape.com r=jfrancis@netscape.com
* nsITransaction, nsITransactionListenter, nsITransactionManager have
been XPIDL'ized and moved into mozilla/editor/txmgr/idl. The versions
of these interfaces in mozilla/editor/txmgr/public are being CVS removed.
* Renamed Do(), Undo(), and Redo() to DoTransaction(), UndoTransaction(),
and RedoTransaction() to avoid reserved word problems in languages like
JS. I did a sweep through editor and mailnews to remove these methods.
* PeekUndoStack() and PeekRedoStack() now return an AddRef'd pointer.
* Removed GetUndoString(), GetRedoString() and Write() from the
nsITransaction interface. Neither editor or mailnews really made
use of these methods.
* Removed Write() from the nsITransactionManager.cpp interface.
* The Transaction Manager now supports weak references.
* Added support for nsITransactionList to the TransactionManager
to allow access to all transactions on the Undo and Redo stacks, as
well as auto-aggregated transactions.
* Removed all references to nsITransactionDescription from txmgr and editor.
* Added nsPIEditorTransaction and made all Editor internal transactions
inherit from it so we can distinguish between our transactions and
ones from 3rd parties.
New files checked in:
editor/txmgr/idl/nsITransaction.idl
editor/txmgr/idl/nsITransactionList.idl
editor/txmgr/idl/nsITransactionListener.idl
editor/txmgr/idl/nsITransactionManager.idl
editor/txmgr/src/nsITransactionList.cpp
editor/txmgr/src/nsITransactionList.h
editor/idl/nsPIEditorTransaction.idl
Files that were CVS removed:
editor/txmgr/public/nsITransaction.h
editor/txmgr/public/nsITransactionListener.h
editor/txmgr/public/nsITransactionManager.h
editor/txmgr/idl/nsITransactionDescription.h
editor/base/IMECommitTxn.cpp
editor/base/IMECommitTxn.h
Files modified:
editor/Makefile.in
editor/makefile.win
editor/base/ChangeAttributeTxn.cpp
editor/base/ChangeAttributeTxn.h
editor/base/CreateElementTxn.cpp
editor/base/CreateElementTxn.h
editor/base/DeleteElementTxn.cpp
editor/base/DeleteElementTxn.h
editor/base/DeleteRangeTxn.cpp
editor/base/DeleteRangeTxn.h
editor/base/DeleteTextTxn.cpp
editor/base/DeleteTextTxn.h
editor/base/EditAggregateTxn.cpp
editor/base/EditAggregateTxn.h
editor/base/EditTxn.cpp
editor/base/EditTxn.h
editor/base/IMECommitTxn.cpp
editor/base/IMECommitTxn.h
editor/base/IMETextTxn.cpp
editor/base/IMETextTxn.h
editor/base/InsertElementTxn.cpp
editor/base/InsertElementTxn.h
editor/base/InsertTextTxn.cpp
editor/base/InsertTextTxn.h
editor/base/JoinElementTxn.cpp
editor/base/JoinElementTxn.h
editor/base/nsEditor.cpp
editor/base/nsEditorShell.cpp
editor/base/nsEditorShell.h
editor/base/nsEditorTxnLog.cpp
editor/base/nsStyleSheetTxns.cpp
editor/base/nsStyleSheetTxns.h
editor/base/PlaceholderTxn.cpp
editor/base/PlaceholderTxn.h
editor/base/SetDocTitleTxn.cpp
editor/base/SetDocTitleTxn.h
editor/base/SplitElementTxn.cpp
editor/base/SplitElementTxn.h
editor/idl/Makefile.in
editor/idl/makefile.win
editor/idl/MANIFEST
editor/idl/nsIEditorShell.idl
editor/macbuild/editor.mcp
editor/macbuild/EditorIDL.mcp
editor/txmgr/idl/Makefile.in
editor/txmgr/idl/makefile.win
editor/txmgr/idl/MANIFEST
editor/txmgr/idl/nsITransactionManager.idl
editor/txmgr/macbuild/txmgr.mcp
editor/txmgr/macbuild/txmgrIDL.mcp
editor/txmgr/public/Makefile.in
editor/txmgr/public/makefile.win
editor/txmgr/public/MANIFEST
editor/txmgr/src/Makefile.in
editor/txmgr/src/makefile.win
editor/txmgr/src/nsTransactionItem.cpp
editor/txmgr/src/nsTransactionItem.h
editor/txmgr/src/nsTransactionList.cpp
editor/txmgr/src/nsTransactionList.h
editor/txmgr/src/nsTransactionManager.cpp
editor/txmgr/src/nsTransactionManager.h
editor/txmgr/src/nsTransactionManagerFactory.cpp
editor/txmgr/src/nsTransactionStack.cpp
editor/txmgr/src/nsTransactionStack.h
editor/txmgr/tests/TestTXMgr.cpp
editor/ui/composer/content/EditorCommandsDebug.js
editor/ui/composer/content/editorOverlay.xul
editor/ui/composer/locale/en-US/editorOverlay.dtd
mailnews/base/src/nsMessenger.cpp
mailnews/base/util/nsMsgTxn.cpp
mailnews/base/util/nsMsgTxn.h
mailnews/imap/src/nsImapMailFolder.cpp
mailnews/imap/src/nsImapUndoTxn.cpp
mailnews/imap/src/nsImapUndoTxn.h
mailnews/local/src/nsLocalMailFolder.cpp
mailnews/local/src/nsLocalUndoTxn.cpp
mailnews/local/src/nsLocalUndoTxn.h
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.