fixes bug 295544 "Expose more designMode options to web apps" r=brade sr=jst a=bsmedberg

This commit is contained in:
darin%meer.net 2005-06-24 17:18:27 +00:00
parent 9f2de2ac11
commit 800a1ddbc1
3 changed files with 61 additions and 1 deletions

View File

@ -3638,6 +3638,8 @@ static const struct MidasCommand gMidasCommandTable[] = {
{ "useCSS", "cmd_setDocumentUseCSS", "", PR_FALSE, PR_TRUE },
{ "readonly", "cmd_setDocumentReadOnly", "", PR_FALSE, PR_TRUE },
{ "insertBrOnReturn", "cmd_insertBrOnReturn", "", PR_FALSE, PR_TRUE },
{ "enableObjectResizing", "cmd_enableObjectResizing", "", PR_FALSE, PR_TRUE },
{ "enableInlineTableEditing", "cmd_enableInlineTableEditing", "", PR_FALSE, PR_TRUE },
#if 0
// no editor support to remove alignments right now
{ "justifynone", "cmd_align", "", PR_TRUE, PR_FALSE },

View File

@ -101,7 +101,9 @@ nsComposerController::RegisterEditorDocStateCommands(
NS_REGISTER_FIRST_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentModified")
NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentUseCSS")
NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentReadOnly")
NS_REGISTER_LAST_COMMAND(nsSetDocumentStateCommand, "cmd_insertBrOnReturn")
NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_insertBrOnReturn")
NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_enableObjectResizing")
NS_REGISTER_LAST_COMMAND(nsSetDocumentStateCommand, "cmd_enableInlineTableEditing")
NS_REGISTER_ONE_COMMAND(nsSetDocumentOptionsCommand, "cmd_setDocumentOptions")

View File

@ -44,6 +44,8 @@
#include "nsIEditingSession.h"
#include "nsIPlaintextEditor.h"
#include "nsIHTMLEditor.h"
#include "nsIHTMLObjectResizer.h"
#include "nsIHTMLInlineTableEditor.h"
#include "nsIDOMDocument.h"
#include "nsIDocument.h"
@ -303,6 +305,36 @@ nsSetDocumentStateCommand::DoCommandParams(const char *aCommandName,
return htmleditor->SetReturnInParagraphCreatesNewParagraph(!insertBrOnReturn);
}
if (!nsCRT::strcmp(aCommandName, "cmd_enableObjectResizing"))
{
NS_ENSURE_ARG_POINTER(aParams);
nsCOMPtr<nsIHTMLObjectResizer> resizer = do_QueryInterface(refCon);
if (!resizer)
return NS_ERROR_INVALID_ARG;
PRBool enabled;
nsresult rvOR = aParams->GetBooleanValue(STATE_ATTRIBUTE, &enabled);
if (NS_FAILED(rvOR))
return rvOR;
return resizer->SetObjectResizingEnabled(enabled);
}
if (!nsCRT::strcmp(aCommandName, "cmd_enableInlineTableEditing"))
{
NS_ENSURE_ARG_POINTER(aParams);
nsCOMPtr<nsIHTMLInlineTableEditor> editor = do_QueryInterface(refCon);
if (!editor)
return NS_ERROR_INVALID_ARG;
PRBool enabled;
nsresult rvOR = aParams->GetBooleanValue(STATE_ATTRIBUTE, &enabled);
if (NS_FAILED(rvOR))
return rvOR;
return editor->SetInlineTableEditingEnabled(enabled);
}
return NS_ERROR_NOT_IMPLEMENTED;
}
@ -368,6 +400,30 @@ nsSetDocumentStateCommand::GetCommandStateParams(const char *aCommandName,
return aParams->SetBooleanValue(STATE_ATTRIBUTE, !createPOnReturn);
}
if (!nsCRT::strcmp(aCommandName, "cmd_enableObjectResizing"))
{
NS_ENSURE_ARG_POINTER(aParams);
nsCOMPtr<nsIHTMLObjectResizer> resizer = do_QueryInterface(refCon);
if (!resizer)
return NS_ERROR_INVALID_ARG;
PRBool enabled;
resizer->GetObjectResizingEnabled(&enabled);
return aParams->SetBooleanValue(STATE_ATTRIBUTE, enabled);
}
if (!nsCRT::strcmp(aCommandName, "cmd_enableInlineTableEditing"))
{
NS_ENSURE_ARG_POINTER(aParams);
nsCOMPtr<nsIHTMLInlineTableEditor> editor = do_QueryInterface(refCon);
if (!editor)
return NS_ERROR_INVALID_ARG;
PRBool enabled;
editor->GetInlineTableEditingEnabled(&enabled);
return aParams->SetBooleanValue(STATE_ATTRIBUTE, enabled);
}
return NS_ERROR_NOT_IMPLEMENTED;
}