From 1bbc8db126544a2cec043e56ae861037ca397692 Mon Sep 17 00:00:00 2001 From: "angelon%netscape.com" Date: Thu, 14 Nov 2002 01:58:06 +0000 Subject: [PATCH] merge from PHT_2002_08_08_BRANCH git-svn-id: svn://10.0.0.236/branches/ANGELON_MOZ12_BRANCH@133806 18797224-902f-48f8-a5cc-f745e15eee43 --- .../src/nsComposerCommandsUpdater.cpp | 67 ++++++++++++++++--- .../public/nsIHTMLFragmentContentSink.h | 3 + .../public/nsIHTMLFragmentContentSink.h | 3 + 3 files changed, 62 insertions(+), 11 deletions(-) diff --git a/mozilla/editor/composer/src/nsComposerCommandsUpdater.cpp b/mozilla/editor/composer/src/nsComposerCommandsUpdater.cpp index d1fff99df04..cdf02866ee1 100644 --- a/mozilla/editor/composer/src/nsComposerCommandsUpdater.cpp +++ b/mozilla/editor/composer/src/nsComposerCommandsUpdater.cpp @@ -40,12 +40,12 @@ nsComposerCommandsUpdater::nsComposerCommandsUpdater() : mEditor(nsnull) -, mDocShell(nsnull) +, mDocShell(nsnull) , mDirtyState(eStateUninitialized) , mSelectionCollapsed(eStateUninitialized) , mFirstDoOfFirstUndo(PR_TRUE) { - NS_INIT_ISUPPORTS(); + NS_INIT_ISUPPORTS(); } nsComposerCommandsUpdater::~nsComposerCommandsUpdater() @@ -111,7 +111,7 @@ NS_IMETHODIMP nsComposerCommandsUpdater::DidDo(nsITransactionManager *aManager, CallUpdateCommands(NS_LITERAL_STRING("undo")); mFirstDoOfFirstUndo = PR_FALSE; } - + return NS_OK; } @@ -191,7 +191,7 @@ NS_IMETHODIMP nsComposerCommandsUpdater::DidMerge(nsITransactionManager *aManage nsresult nsComposerCommandsUpdater::SetEditor(nsIEditor* aEditor) { - mEditor = aEditor; // no addreffing here + mEditor = aEditor; // no addreffing here return NS_OK; } @@ -245,7 +245,7 @@ nsComposerCommandsUpdater::UpdateDirtyState(PRBool aNowDirty) } nsresult -nsComposerCommandsUpdater::CallUpdateCommands(const nsAString& aCommand) +nsComposerCommandsUpdater::CallUpdateCommands(const nsAString& aCommandGroup) { if (!mDocShell) { @@ -262,21 +262,66 @@ nsComposerCommandsUpdater::CallUpdateCommands(const nsAString& aCommand) nsCOMPtr scriptGlobalObject; theDoc->GetScriptGlobalObject(getter_AddRefs(scriptGlobalObject)); - nsCOMPtr docShell; - scriptGlobalObject->GetDocShell(getter_AddRefs(docShell)); - mDocShell = docShell.get(); + if (scriptGlobalObject) { + nsCOMPtr docShell; + scriptGlobalObject->GetDocShell(getter_AddRefs(docShell)); + mDocShell = docShell.get(); + } } if (!mDocShell) return NS_ERROR_FAILURE; - nsCOMPtr commandManager = do_GetInterface(mDocShell); - nsCOMPtr commandUpdater = do_QueryInterface(commandManager); + nsCOMPtr commandManager = do_GetInterface(mDocShell); + nsCOMPtr commandUpdater = do_QueryInterface(commandManager); if (!commandUpdater) return NS_ERROR_FAILURE; commandUpdater->CommandStatusChanged("cmd_bold"); commandUpdater->CommandStatusChanged("cmd_italic"); commandUpdater->CommandStatusChanged("cmd_underline"); - + + // this hardcoded list of commands in temporary. This code should + // use nsICommandGroup. + if (aCommandGroup.Equals(NS_LITERAL_STRING("undo"))) + { + commandUpdater->CommandStatusChanged("cmd_undo"); + commandUpdater->CommandStatusChanged("cmd_redo"); + } + else if (aCommandGroup.Equals(NS_LITERAL_STRING("select")) || + aCommandGroup.Equals(NS_LITERAL_STRING("style"))) + { + commandUpdater->CommandStatusChanged("cmd_bold"); + commandUpdater->CommandStatusChanged("cmd_italic"); + commandUpdater->CommandStatusChanged("cmd_underline"); + commandUpdater->CommandStatusChanged("cmd_tt"); + + commandUpdater->CommandStatusChanged("cmd_strikethrough"); + commandUpdater->CommandStatusChanged("cmd_superscript"); + commandUpdater->CommandStatusChanged("cmd_subscript"); + commandUpdater->CommandStatusChanged("cmd_nobreak"); + + commandUpdater->CommandStatusChanged("cmd_em"); + commandUpdater->CommandStatusChanged("cmd_strong"); + commandUpdater->CommandStatusChanged("cmd_cite"); + commandUpdater->CommandStatusChanged("cmd_abbr"); + commandUpdater->CommandStatusChanged("cmd_acronym"); + commandUpdater->CommandStatusChanged("cmd_code"); + commandUpdater->CommandStatusChanged("cmd_samp"); + commandUpdater->CommandStatusChanged("cmd_var"); + + commandUpdater->CommandStatusChanged("cmd_increaseFont"); + commandUpdater->CommandStatusChanged("cmd_decreaseFont"); + + commandUpdater->CommandStatusChanged("cmd_paragraphState"); + commandUpdater->CommandStatusChanged("cmd_fontFace"); + commandUpdater->CommandStatusChanged("cmd_fontColor"); + commandUpdater->CommandStatusChanged("cmd_backgroundColor"); + commandUpdater->CommandStatusChanged("cmd_highlight"); + } + else if (aCommandGroup.Equals(NS_LITERAL_STRING("save"))) + { + // save commands (none in C++) + } + return NS_OK; } diff --git a/mozilla/htmlparser/public/nsIHTMLFragmentContentSink.h b/mozilla/htmlparser/public/nsIHTMLFragmentContentSink.h index cc9f7523380..7b9d481bc7f 100644 --- a/mozilla/htmlparser/public/nsIHTMLFragmentContentSink.h +++ b/mozilla/htmlparser/public/nsIHTMLFragmentContentSink.h @@ -41,6 +41,9 @@ #include "nsIHTMLContentSink.h" #define NS_HTMLFRAGMENTSINK_CONTRACTID "@mozilla.org/layout/htmlfragmentsink;1" +#define NS_HTMLFRAGMENTSINK2_CONTRACTID "@mozilla.org/layout/htmlfragmentsink;2" +#define NS_FRAGMENTSINK_CONTRACTID "@mozilla.org/layout/htmlfragmentsink;1" + class nsIDOMDocumentFragment; diff --git a/mozilla/parser/htmlparser/public/nsIHTMLFragmentContentSink.h b/mozilla/parser/htmlparser/public/nsIHTMLFragmentContentSink.h index cc9f7523380..7b9d481bc7f 100644 --- a/mozilla/parser/htmlparser/public/nsIHTMLFragmentContentSink.h +++ b/mozilla/parser/htmlparser/public/nsIHTMLFragmentContentSink.h @@ -41,6 +41,9 @@ #include "nsIHTMLContentSink.h" #define NS_HTMLFRAGMENTSINK_CONTRACTID "@mozilla.org/layout/htmlfragmentsink;1" +#define NS_HTMLFRAGMENTSINK2_CONTRACTID "@mozilla.org/layout/htmlfragmentsink;2" +#define NS_FRAGMENTSINK_CONTRACTID "@mozilla.org/layout/htmlfragmentsink;1" + class nsIDOMDocumentFragment;