NS_IMETHODIMP nsPasteCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *aCommandRefCon) { bool canUndo; IsCommandEnabled(aCommandName, aCommandRefCon, &canUndo); return aParams->SetBooleanValue(STATE_ENABLED,canUndo); }
NS_IMETHODIMP nsSwitchTextDirectionCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *aCommandRefCon) { PRBool canSwitchTextDirection = PR_TRUE; IsCommandEnabled(aCommandName, aCommandRefCon, &canSwitchTextDirection); return aParams->SetBooleanValue(STATE_ENABLED, canSwitchTextDirection); }
NS_IMETHODIMP nsOutdentCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *refCon) { bool outCmdEnabled = false; IsCommandEnabled(aCommandName, refCon, &outCmdEnabled); return aParams->SetBooleanValue(STATE_ENABLED,outCmdEnabled); }
NS_IMETHODIMP nsSetDocumentOptionsCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *refCon) { NS_ENSURE_ARG_POINTER(aParams); NS_ENSURE_ARG_POINTER(refCon); // The base editor owns most state info nsCOMPtr<nsIEditor> editor = do_QueryInterface(refCon); NS_ENSURE_TRUE(editor, NS_ERROR_INVALID_ARG); // Always get the enabled state bool outCmdEnabled = false; IsCommandEnabled(aCommandName, refCon, &outCmdEnabled); nsresult rv = aParams->SetBooleanValue(STATE_ENABLED, outCmdEnabled); NS_ENSURE_SUCCESS(rv, rv); // get pres context nsRefPtr<nsPresContext> presContext; rv = GetPresContextFromEditor(editor, getter_AddRefs(presContext)); NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(presContext, NS_ERROR_FAILURE); PRInt32 animationMode; rv = aParams->GetLongValue("imageAnimation", &animationMode); if (NS_SUCCEEDED(rv)) { // for possible values of animation mode, see // http://lxr.mozilla.org/seamonkey/source/image/public/imgIContainer.idl rv = aParams->SetLongValue("imageAnimation", presContext->ImageAnimationMode()); NS_ENSURE_SUCCESS(rv, rv); } bool allowPlugins; rv = aParams->GetBooleanValue("plugins", &allowPlugins); if (NS_SUCCEEDED(rv)) { nsCOMPtr<nsISupports> container = presContext->GetContainer(); NS_ENSURE_TRUE(container, NS_ERROR_FAILURE); nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(container, &rv)); NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(docShell, NS_ERROR_FAILURE); rv = docShell->GetAllowPlugins(&allowPlugins); NS_ENSURE_SUCCESS(rv, rv); rv = aParams->SetBooleanValue("plugins", allowPlugins); NS_ENSURE_SUCCESS(rv, rv); } return NS_OK; }
NS_IMETHODIMP nsHTTPIndex::IsCommandEnabled(nsISupportsArray *aSources, nsIRDFResource *aCommand, nsISupportsArray *aArguments, PRBool *_retval) { nsresult rv = NS_ERROR_UNEXPECTED; if (mInner) { rv = mInner->IsCommandEnabled(aSources, aCommand, aArguments, _retval); } return(rv); }
NS_IMETHODIMP nsInsertPlaintextCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *refCon) { NS_ENSURE_ARG_POINTER(aParams); bool outCmdEnabled = false; IsCommandEnabled(aCommandName, refCon, &outCmdEnabled); return aParams->SetBooleanValue(STATE_ENABLED, outCmdEnabled); }
NS_IMETHODIMP InsertParagraphCommand::GetCommandStateParams(const char* aCommandName, nsICommandParams* aParams, nsISupports* aCommandRefCon) { if (NS_WARN_IF(!aParams)) { return NS_ERROR_INVALID_ARG; } bool aIsEnabled = false; IsCommandEnabled(aCommandName, aCommandRefCon, &aIsEnabled); return aParams->AsCommandParams()->SetBool(STATE_ENABLED, aIsEnabled); }
NS_IMETHODIMP nsPasteNoFormattingCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *refCon) { NS_ENSURE_ARG_POINTER(aParams); bool enabled = false; nsresult rv = IsCommandEnabled(aCommandName, refCon, &enabled); NS_ENSURE_SUCCESS(rv, rv); return aParams->SetBooleanValue(STATE_ENABLED, enabled); }
NS_IMETHODIMP ClearUndoCommand::GetCommandStateParams(const char* aCommandName, nsICommandParams* aParams, nsISupports* aCommandRefCon) { NS_ENSURE_ARG_POINTER(aParams); bool enabled; nsresult rv = IsCommandEnabled(aCommandName, aCommandRefCon, &enabled); NS_ENSURE_SUCCESS(rv, rv); return aParams->SetBooleanValue(STATE_ENABLED, enabled); }
NS_IMETHODIMP nsSetDocumentStateCommand::GetCommandStateParams(const char *aCommandName, nsICommandParams *aParams, nsISupports *refCon) { NS_ENSURE_ARG_POINTER(aParams); NS_ENSURE_ARG_POINTER(refCon); // The base editor owns most state info nsCOMPtr<nsIEditor> editor = do_QueryInterface(refCon); NS_ENSURE_TRUE(editor, NS_ERROR_INVALID_ARG); // Always get the enabled state bool outCmdEnabled = false; IsCommandEnabled(aCommandName, refCon, &outCmdEnabled); nsresult rv = aParams->SetBooleanValue(STATE_ENABLED, outCmdEnabled); NS_ENSURE_SUCCESS(rv, rv); if (!nsCRT::strcmp(aCommandName, "cmd_setDocumentModified")) { bool modified; rv = editor->GetDocumentModified(&modified); NS_ENSURE_SUCCESS(rv, rv); return aParams->SetBooleanValue(STATE_ATTRIBUTE, modified); } if (!nsCRT::strcmp(aCommandName, "cmd_setDocumentReadOnly")) { NS_ENSURE_ARG_POINTER(aParams); PRUint32 flags; editor->GetFlags(&flags); bool isReadOnly = flags & nsIPlaintextEditor::eEditorReadonlyMask; return aParams->SetBooleanValue(STATE_ATTRIBUTE, isReadOnly); } if (!nsCRT::strcmp(aCommandName, "cmd_setDocumentUseCSS")) { NS_ENSURE_ARG_POINTER(aParams); nsCOMPtr<nsIHTMLEditor> htmleditor = do_QueryInterface(refCon); NS_ENSURE_TRUE(htmleditor, NS_ERROR_INVALID_ARG); bool isCSS; htmleditor->GetIsCSSEnabled(&isCSS); return aParams->SetBooleanValue(STATE_ALL, isCSS); } if (!nsCRT::strcmp(aCommandName, "cmd_insertBrOnReturn")) { NS_ENSURE_ARG_POINTER(aParams); nsCOMPtr<nsIHTMLEditor> htmleditor = do_QueryInterface(refCon); NS_ENSURE_TRUE(htmleditor, NS_ERROR_INVALID_ARG); bool createPOnReturn; htmleditor->GetReturnInParagraphCreatesNewParagraph(&createPOnReturn); return aParams->SetBooleanValue(STATE_ATTRIBUTE, !createPOnReturn); } if (!nsCRT::strcmp(aCommandName, "cmd_enableObjectResizing")) { NS_ENSURE_ARG_POINTER(aParams); nsCOMPtr<nsIHTMLObjectResizer> resizer = do_QueryInterface(refCon); NS_ENSURE_TRUE(resizer, NS_ERROR_INVALID_ARG); bool 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); NS_ENSURE_TRUE(editor, NS_ERROR_INVALID_ARG); bool enabled; editor->GetInlineTableEditingEnabled(&enabled); return aParams->SetBooleanValue(STATE_ATTRIBUTE, enabled); } return NS_ERROR_NOT_IMPLEMENTED; }