Граф коммитов

113 Коммитов

Автор SHA1 Сообщение Дата
tague%netscape.com a15b0b4b19 Fix bug #11687 - [Dogfood] Enable ender to save documents in encodings other than ISO-8859-1. Approved by chofmann@netscape.com, reviewed by buster@netscape.com. 1999-08-13 22:26:50 +00:00
jfrancis%netscape.com 1736058750 SplitNodeDeep() now emits an out param that tells you what the effective split offset was. This routine no longer splits text nodes unless it has to; ie, if the original offset was at the beginning or end of the text node, no split occurs in it. 1999-08-09 21:45:52 +00:00
sfraser%netscape.com 98818652df Landing editor API changes. Removed nsITextEditor and nsTextEditor, split interfaces into more, non-overlapping interfaces, and other general cleanup. 1999-08-09 01:37:50 +00:00
tague%netscape.com 1e3c4f5ac5 Added support for replies from private DOM text events. See bug #4826 1999-08-06 02:32:13 +00:00
sfraser%netscape.com d86a1421e4 Fix the document state listener mechanism so that you can install listeners after the editor has been created, and still get their 'document creation' notification called. 1999-08-03 06:53:45 +00:00
sfraser%netscape.com c7e760456a Make the nsIDocumentStateListener interface more useful, with doc creation and destruction notifiers. 1999-08-03 00:58:38 +00:00
sfraser%netscape.com ad67b5fdb6 Remove references to nsIContextLoader. 1999-07-28 03:08:21 +00:00
sfraser%netscape.com 24edc7b880 Implement support for nsIDocumentStateListeners. 1999-07-28 02:55:40 +00:00
jfrancis%netscape.com 8e8f2f24ef assorted work to expose nav html dtd to the editor 1999-07-19 22:49:21 +00:00
sfraser%netscape.com ceb8158380 Document modification count maintenance. 1999-07-14 22:29:39 +00:00
akkana%netscape.com 6d07c8eeb4 Restructure the editor output routines to allow passing in
a mime type and a flag argument.  Also fix the following bugs:
9746: get rid of bogus empty <style> in head.
8143: save wrap column in editor shell in case it's set before the
      editor is created.
9470, 9488: allow explicit specification of formatted output.
1999-07-14 18:54:29 +00:00
waterson%netscape.com ada67bac03 Fix nsCOMPtr bustage. 1999-07-02 05:20:31 +00:00
sfraser%netscape.com 2fa9524390 Added transactions for applying and removing style sheets 1999-07-02 03:57:50 +00:00
kin%netscape.com 41af01f373 Added ApplyStyleSheet() method to the various editor interfaces. 1999-07-01 19:32:35 +00:00
buster%netscape.com 4abaa32e35 0. possible fix for Sun build bustage.
1. IsEditable is much less hacky.  It basically says:
  1. if the node is a special bogus text node, it's not editable
  2. if the node is a text node with only newlines, then it's not editable
  3. if the node has no frame associated with it, then it is not editable
  4. otherwise, it is editable.
As part of this, I had to make IsEditable non-static.  This had some cascading effects on static methods that called
IsEditable, which likewise had to be made non-static.

2. SetTextProperties now works when the endpoints are leaf nodes (like images), not just text.  Charlie, you should
put this through some stress cases.
1999-07-01 18:42:28 +00:00
kin%netscape.com e7538328dc Fix Linux build bustage by including nsIDOMCharacterData.h. 1999-06-30 00:52:25 +00:00
tague%netscape.com b40147fcc6 Added clause and selection support for Input Methods. Fixes bug #8639, #8459, #6989, #7824 1999-06-29 20:31:22 +00:00
buster%netscape.com d11a09da5d implemented most of max length handling 1999-06-25 22:57:26 +00:00
jfrancis%netscape.com 563cf4e689 improvement of editing rules for insert list, indent, outdent, and change alignment 1999-06-25 09:33:02 +00:00
cmanske%netscape.com 66a502040d Expanded nsIEditPropery to include all (I hope) HTML tags 1999-06-25 03:18:42 +00:00
akkana%netscape.com ae0b60e546 Use deep first/last child for Beginning/EndOfDocument methods 1999-06-22 21:42:44 +00:00
jfrancis%netscape.com de84bb53ed editor rules framework for {make list, indent, outdent, change alignment} 1999-06-16 05:02:43 +00:00
kin%netscape.com 82e5aae898 * Added StartLogging() and StopLogging() methods to nsIEditor,
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.
1999-06-14 20:02:46 +00:00
buster%netscape.com 1f25bbd226 changed the way nsEditProperty is used. Right now, it's our placeholder
for HTML and CSS atoms, since we can't get these from layout yet.  The old
use assumed one editor, but as we know many editors can exist simultaneously.
Now, the editors share a singleton which is fetched from a factory method,
saving memory and allocation overhead.
1999-06-12 21:15:14 +00:00
sfraser%netscape.com 7a15b0d1ec Add factory for EditorShell, and fix case of GetMonitor call. 1999-06-11 19:01:07 +00:00
akkana%netscape.com e7a3465092 Implement InsertHTML.
Also, some minor fixes, like warning removal and addition of error checking
in files which needed it.
1999-06-10 21:31:42 +00:00
kin%netscape.com 82359a176a First pass checkin of the JavaScript editor logging mechanism. All changes are
ifdef'd with ENABLE_JS_EDITOR_LOG.
1999-06-10 19:41:40 +00:00
cmanske%netscape.com 351d18f8fa Added support for prefs and string bundles for editor, various bug fixes, preliminary Horizontal Line dialog work 1999-06-09 01:27:08 +00:00
buster%netscape.com 594211b55c * Added nsAutoSelectionReset, a tiny class that resets the selection to what it was before a block transformation.
* Added some code to restore selection after RemoveTextProperty.
* Made a tiny change to the way the editor holds onto the transaction manager, so client (like the ender text control) can
turn undo on and off effectively
* Fixed a bug in IsNodeInline that was causing GetBlockParent to return the wrong parent node (and who knows what
other mischief) where atom compares were being done on strings of different case, for <B>, "b" vs. "B".  The DOM
method nsIDOMElement::GetTagName forced the returned tag name to upper case.  I don't know how long that has
been true, but I assume it's a fairly recent change (or something on our side related to it changed recently) or this method
never would have worked.  I also found a few cases of nsString::Equals that I changed to EqualsIgnoreCase
* Made some general improvements to the interaction between editors and rules, so that the aCancel out param is always
intialized, and all rules with Will... are matched with a Did... call.  Added Will/DidSetTextProperty() and
Will/DidRemoveTextProperty().  This helps enable plain text mode.  Added a skeleton for max length support in text editor.
* fixed some warnings.
1999-06-08 06:04:51 +00:00
jfrancis%netscape.com 365bec481e adding stackbased class for editor transaction batching 1999-06-03 05:58:20 +00:00
buster%netscape.com 87b3a69509 Preparation for ender-based text control
* 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.
1999-05-28 21:24:18 +00:00
jfrancis%netscape.com 35b0d02e18 cleanup util function duplication 1999-05-28 21:17:30 +00:00
sfraser%netscape.com f2c128b7dc Add unit test call to nsIEditor, and implement it in nsText- and nsHTMLEditors. 1999-05-27 04:10:04 +00:00
akkana%netscape.com f4b48a2327 Insert / Paste as Quotation. 1999-05-27 00:08:15 +00:00
cmanske%netscape.com 68f95d7549 Continued UI work: Spell checker fixes, toolbar improvements, popup menus implemented for paragraph style, font face and color, setting font color test UI, etc. 1999-05-26 21:40:51 +00:00
jfrancis%netscape.com 76905a8b3e insert list and indent work 1999-05-17 12:22:31 +00:00
sfraser%netscape.com 9f2b5512c3 Added file opening functionality 1999-05-12 22:24:47 +00:00
akkana%netscape.com 4123eec5cf - Rename iDirection enum to ECollapsedSelectionAction
- Initial implementation of Insert HTML
1999-05-05 23:27:17 +00:00
buster%netscape.com f913f9ba63 fixed mac bustage 1999-05-05 05:17:59 +00:00
buster%netscape.com 5fe17e98f7 added a param to GetPriorNode and GetNextNode to tell these methods whether to use or skip
non-editable content.
added some comments, turned off some debugging flags.
1999-05-05 04:51:54 +00:00
buster%netscape.com 7803f612f1 1. block transformation infrastructure is now in place. We can go ahead and implement interesting
features like set paragraph style, set list type, indent, etc.  I'm sure there's holes in my
implementation that these high level features will make obvious.

2. I've factored a lot of utility methods from several modules into nsEditor as public static methods.
This makes them easily accessable to all, and will help Joe and I remove redundant methods.

3. I changed the HTML tags to lower case, and made all string compares case-insensitive.  No, this
isn't quite the right thing to do, but we don't have atoms from layout yet.  The Right Thing is for us
to reuse those atoms.
1999-05-05 04:05:19 +00:00
tague%netscape.com b23c932029 Fixed bug #5527 (Editor is not able to accumulate successive Japanese input) 1999-05-03 22:57:48 +00:00
mjudge%netscape.com d7c5a91c74 FIXING M5 BUGS: making weak links to stop extra addreff to presshell. fixing xul to set editor doc type to "content" 1999-04-29 20:21:04 +00:00
kin%netscape.com 8474633cfe Modified nsIEditActionListener to have Will*() and Do*() methods. Added
nsIEditActionListener support to nsEditor.cpp and nsEditor.h.
1999-04-27 17:14:28 +00:00
cmanske%netscape.com a0b7bdca93 Added simple dialogs for insert link and restructured ui source directories 1999-04-21 18:53:55 +00:00
sfraser%netscape.com e9f94ca763 Updated to conform to new IDL-ized selection interfaces. 1999-04-13 01:33:32 +00:00
akkana%netscape.com b67d941c43 4661: Fix win32 crasher inserting an image. Approved by chofmann.
Split nsEditor::DeleteSelectionAndCreateNode into two parts,
so that routines like InsertImage which need to set attributes
on the new node before inserting into the tree can do so.
This is somewhat temporary, since the current method isn't undo-able;
undo will be implemented after M4.
1999-04-08 00:46:10 +00:00
buster%netscape.com 2246607975 implemented simple cases of RemoveTextProperty. other cases are no-op'd now.
added aFirst out param to GetTextProperty, so the caller can know if the first character has the property in the case of aAny=true and aAll=false.
fixed a bunch of places where result was being used incorrectly as a return val from do_QueryInterface
some minor undo/redo fixes to split and join of interior nodes.
1999-04-04 18:01:35 +00:00
buster%netscape.com 5e09828b42 fixed join.
made a special case for typing with BR as the selection (as after an InsertBreak.)
made DEL and BACKSPACE at the beginning and end of a text node
fixes bugs 3742 and 3756 (with permission from choff and gkostello)
1999-03-16 16:38:09 +00:00
kostello%netscape.com 09e20dae08 Add HACKForceRedraw() to force a redraw until the drawing
problems are solved in Gecko
1999-03-14 00:31:35 +00:00
sfraser%netscape.com b5a8cb2fc4 Add Cut, Copy and Paste to editor interfaces and classes, with a stub implemenatioon in nsEditor. 1999-03-10 21:29:41 +00:00
buster%netscape.com 88a87e021d Implemented SelectAll.
Added nsEditor::DoInitialInsert() for doing first insert into an empty document.  Try typing into <html><body></body></html>
Added some smarts to DeleteSelectionAndCreateNode() so it only splits the selected node when appropriate (when the selection is not at offset 0 or max)

CreateElementTxn now creates text nodes as well as DOM elements
1999-03-10 19:48:13 +00:00
warren%netscape.com c50687b845 nsRepository -> nsIComponentManager changes. 1999-03-09 09:44:27 +00:00
cmanske%netscape.com 06356ad73a Changed editor classes to inherited model. Fixed lots of destructor warnings. 1999-03-05 21:05:35 +00:00
buster%netscape.com a1a725cf0e implemented GetTextProperty -- only works for bold and italic now,
trivial to add more properties
finished first cut at SetTextProperty.  This triggers lots of crashes in
range/selection code where we're holding onto a stale frame pointer (at
least, that's my best guess.)
synched with Charlie's change-o-rama
added an assert in DeleteTextTxn::Init() checking aNumCharsToDelete vs.
0
  NS_ASSERTION(0!=aNumCharsToDelete, "bad arg, numCharsToDelete");
if the number of chars to delete is 0, we shouldn't be creating a
transaction at all.  I had never seen this condition arise before
Charlie's checkin, I don't know if he introduced it or if it was a
latent bug I just never tripped over before.
1999-03-02 07:52:41 +00:00
cmanske%netscape.com 7aca17a8cb Implemented nsHTMLEditor. Changed prototypes to be use NS_IMETHOD and NS_IMETHODIMP. Started table editing transactions 1999-03-02 05:30:53 +00:00
warren%netscape.com 97781f4c14 Changes for RDF component registration using nsRepository. Also changed args to NSGetFactory and friends. 1999-02-26 10:17:14 +00:00
buster%netscape.com 42654a1a8d added InsertElementTxn
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.
1999-02-24 17:24:37 +00:00
buster%netscape.com 7e47414af3 work in progress 1999-02-18 23:01:06 +00:00
mcafee%netscape.com 81e9035294 Adding newline at end of file for Solaris/CC 1999-02-18 12:14:59 +00:00
buster%netscape.com 061b766061 Highlights:
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
1999-02-17 19:42:29 +00:00
buster%netscape.com c947533db7 minor fixes and lots of comments 1999-02-15 18:25:30 +00:00
buster%netscape.com 6b1dd3a628 * the viewer test app now instantiates an nsITextEditor via nsRepository for "Editor mode"
* 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.
1999-02-12 17:18:58 +00:00