NS_IMETHODIMP nsXULTextFieldAccessible::GetAssociatedEditor(nsIEditor **aEditor) { *aEditor = nsnull; nsCOMPtr<nsIContent> inputField = GetInputField(); nsCOMPtr<nsIDOMNSEditableElement> editableElt(do_QueryInterface(inputField)); NS_ENSURE_TRUE(editableElt, NS_ERROR_FAILURE); return editableElt->GetEditor(aEditor); }
void nsXULTextFieldAccessible::CacheChildren() { // Create child accessibles for native anonymous content of underlying HTML // input element. nsCOMPtr<nsIContent> inputContent(GetInputField()); if (!inputContent) return; nsAccTreeWalker walker(mWeakShell, inputContent, PR_FALSE); nsAccessible* child = nsnull; while ((child = walker.NextChild()) && AppendChild(child)); }
SVNDuplicateRepoItemDialog::SVNDuplicateRepoItemDialog ( JXDirector* supervisor, const JCharacter* windowTitle, const JCharacter* prompt, const JCharacter* initialName, SVNRepoTreeNode* srcNode ) : JXGetStringDialog(supervisor, windowTitle, prompt, initialName), itsSrcNode(srcNode) { assert( itsSrcNode != NULL ); (GetInputField())->SetCharacterInWordFunction(JXChooseSaveFile::IsCharacterInWord); }
JXGetNewDirDialog::JXGetNewDirDialog ( JXDirector* supervisor, const JCharacter* windowTitle, const JCharacter* prompt, const JCharacter* initialName, const JCharacter* basePath, const JBoolean modal ) : JXGetStringDialog(supervisor, windowTitle, prompt, initialName, modal), itsBasePath(basePath) { assert( JDirectoryExists(basePath) ); (GetInputField())->SetCharacterInWordFunction(JXChooseSaveFile::IsCharacterInWord); }
nsresult nsXULTextFieldAccessible::GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState) { nsresult rv = nsHyperTextAccessibleWrap::GetStateInternal(aState, aExtraState); NS_ENSURE_A11Y_SUCCESS(rv, rv); nsCOMPtr<nsIContent> inputField(GetInputField()); NS_ENSURE_TRUE(inputField, NS_ERROR_FAILURE); // Create a temporary accessible from the HTML text field // to get the accessible state from. Doesn't add to cache // because Init() is not called. nsHTMLTextFieldAccessible* tempAccessible = new nsHTMLTextFieldAccessible(inputField, mWeakShell); if (!tempAccessible) return NS_ERROR_OUT_OF_MEMORY; nsCOMPtr<nsIAccessible> kungFuDeathGrip = tempAccessible; rv = tempAccessible->GetStateInternal(aState, nsnull); NS_ENSURE_SUCCESS(rv, rv); if (gLastFocusedNode == mContent) *aState |= nsIAccessibleStates::STATE_FOCUSED; nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent)); if (menuList) { // <xul:menulist droppable="false"> if (!mContent->AttrValueIs(kNameSpaceID_None, nsAccessibilityAtoms::editable, nsAccessibilityAtoms::_true, eIgnoreCase)) { *aState |= nsIAccessibleStates::STATE_READONLY; } } else { // <xul:textbox> if (mContent->AttrValueIs(kNameSpaceID_None, nsAccessibilityAtoms::type, nsAccessibilityAtoms::password, eIgnoreCase)) { *aState |= nsIAccessibleStates::STATE_PROTECTED; } if (mContent->AttrValueIs(kNameSpaceID_None, nsAccessibilityAtoms::readonly, nsAccessibilityAtoms::_true, eIgnoreCase)) { *aState |= nsIAccessibleStates::STATE_READONLY; } } if (!aExtraState) return NS_OK; PRBool isMultiLine = mContent->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::multiline); if (isMultiLine) { *aExtraState |= nsIAccessibleStates::EXT_STATE_MULTI_LINE; } else { *aExtraState |= nsIAccessibleStates::EXT_STATE_SINGLE_LINE; } return NS_OK; }