diff options
Diffstat (limited to 'WebCore/bindings/objc/DOMHTML.mm')
-rw-r--r-- | WebCore/bindings/objc/DOMHTML.mm | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/WebCore/bindings/objc/DOMHTML.mm b/WebCore/bindings/objc/DOMHTML.mm deleted file mode 100644 index a2277d2..0000000 --- a/WebCore/bindings/objc/DOMHTML.mm +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. - * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "config.h" - -#import "DOMDocumentFragmentInternal.h" -#import "DOMExtensions.h" -#import "DOMHTMLCollectionInternal.h" -#import "DOMHTMLDocumentInternal.h" -#import "DOMHTMLInputElementInternal.h" -#import "DOMHTMLSelectElementInternal.h" -#import "DOMHTMLTextAreaElementInternal.h" -#import "DOMNodeInternal.h" -#import "DOMPrivate.h" -#import "DocumentFragment.h" -#import "FrameView.h" -#import "HTMLCollection.h" -#import "HTMLDocument.h" -#import "HTMLInputElement.h" -#import "HTMLParserIdioms.h" -#import "HTMLSelectElement.h" -#import "HTMLTextAreaElement.h" -#import "Page.h" -#import "Range.h" -#import "RenderTextControl.h" -#import "Settings.h" -#import "markup.h" - -//------------------------------------------------------------------------------------------ -// DOMHTMLDocument - -@implementation DOMHTMLDocument (DOMHTMLDocumentExtensions) - -- (DOMDocumentFragment *)createDocumentFragmentWithMarkupString:(NSString *)markupString baseURL:(NSURL *)baseURL -{ - return kit(createFragmentFromMarkup(core(self), markupString, [baseURL absoluteString]).get()); -} - -- (DOMDocumentFragment *)createDocumentFragmentWithText:(NSString *)text -{ - // FIXME: Since this is not a contextual fragment, it won't handle whitespace properly. - return kit(createFragmentFromText(core(self)->createRange().get(), text).get()); -} - -@end - -@implementation DOMHTMLDocument (WebPrivate) - -- (DOMDocumentFragment *)_createDocumentFragmentWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString -{ - NSURL *baseURL = core(self)->completeURL(WebCore::stripLeadingAndTrailingHTMLSpaces(baseURLString)); - return [self createDocumentFragmentWithMarkupString:markupString baseURL:baseURL]; -} - -- (DOMDocumentFragment *)_createDocumentFragmentWithText:(NSString *)text -{ - return [self createDocumentFragmentWithText:text]; -} - -@end - -#ifdef BUILDING_ON_TIGER -@implementation DOMHTMLDocument (DOMHTMLDocumentOverrides) - -- (DOMNode *)firstChild -{ - WebCore::HTMLDocument* coreHTMLDocument = core(self); - if (!coreHTMLDocument->page() || !coreHTMLDocument->page()->settings()->needsTigerMailQuirks()) - return kit(coreHTMLDocument->firstChild()); - - WebCore::Node* child = coreHTMLDocument->firstChild(); - while (child && child->nodeType() == WebCore::Node::DOCUMENT_TYPE_NODE) - child = child->nextSibling(); - - return kit(child); -} - -@end -#endif - -@implementation DOMHTMLInputElement (FormAutoFillTransition) - -- (BOOL)_isTextField -{ - return core(self)->isTextField(); -} - -- (NSRect)_rectOnScreen -{ - // Returns bounding rect of text field, in screen coordinates. - NSRect result = [self boundingBox]; - if (!core(self)->document()->view()) - return result; - - NSView* view = core(self)->document()->view()->documentView(); - result = [view convertRect:result toView:nil]; - result.origin = [[view window] convertBaseToScreen:result.origin]; - return result; -} - -- (void)_replaceCharactersInRange:(NSRange)targetRange withString:(NSString *)replacementString selectingFromIndex:(int)index -{ - WebCore::HTMLInputElement* inputElement = core(self); - if (inputElement) { - WTF::String newValue = inputElement->value(); - newValue.replace(targetRange.location, targetRange.length, replacementString); - inputElement->setValue(newValue); - inputElement->setSelectionRange(index, newValue.length()); - } -} - -- (NSRange)_selectedRange -{ - WebCore::HTMLInputElement* inputElement = core(self); - if (inputElement) { - int start = inputElement->selectionStart(); - int end = inputElement->selectionEnd(); - return NSMakeRange(start, end - start); - } - return NSMakeRange(NSNotFound, 0); -} - -- (BOOL)_isAutofilled -{ - return core(self)->isAutofilled(); -} - -- (void)_setAutofilled:(BOOL)filled -{ - // This notifies the input element that the content has been autofilled - // This allows WebKit to obey the -webkit-autofill pseudo style, which - // changes the background color. - core(self)->setAutofilled(filled); -} - -@end - -@implementation DOMHTMLSelectElement (FormAutoFillTransition) - -- (void)_activateItemAtIndex:(int)index -{ - // Use the setSelectedIndexByUser function so a change event will be fired. <rdar://problem/6760590> - if (WebCore::HTMLSelectElement* select = core(self)) - select->setSelectedIndexByUser(index, true, true); -} - -- (void)_activateItemAtIndex:(int)index allowMultipleSelection:(BOOL)allowMultipleSelection -{ - // Use the setSelectedIndexByUser function so a change event will be fired. <rdar://problem/6760590> - // If this is a <select multiple> the allowMultipleSelection flag will allow setting multiple - // selections without clearing the other selections. - if (WebCore::HTMLSelectElement* select = core(self)) - select->setSelectedIndexByUser(index, true, true, allowMultipleSelection); -} - -@end - -@implementation DOMHTMLInputElement (FormPromptAdditions) - -- (BOOL)_isEdited -{ - WebCore::RenderObject *renderer = core(self)->renderer(); - return renderer && [self _isTextField] && static_cast<WebCore::RenderTextControl *>(renderer)->lastChangeWasUserEdit(); -} - -@end - -@implementation DOMHTMLTextAreaElement (FormPromptAdditions) - -- (BOOL)_isEdited -{ - WebCore::RenderObject* renderer = core(self)->renderer(); - return renderer && static_cast<WebCore::RenderTextControl*>(renderer)->lastChangeWasUserEdit(); -} - -@end - -Class kitClass(WebCore::HTMLCollection* collection) -{ - if (collection->type() == WebCore::SelectOptions) - return [DOMHTMLOptionsCollection class]; - return [DOMHTMLCollection class]; -} |