WebCore:
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jul 2005 16:34:17 +0000 (16:34 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jul 2005 16:34:17 +0000 (16:34 +0000)
        Reviewed by Darin Adler.

        Test cases added: none, only affects Safari autofill

        - big hunk of weaning form-related SPI from NSView; autofill continues to
        work (but only on tip of tree Safari)

        * kwq/KWQTextArea.mm:
        (-[KWQTextArea textDidChange:]):
        call renamed bridge method, passing DOMElement* instead of NSView*

        * kwq/KWQTextField.mm:
        (-[KWQTextFieldController controlTextDidBeginEditing:]):
        call renamed bridge method, passing DOMElement* instead of NSView*
        (-[KWQTextFieldController controlTextDidEndEditing:]):
        ditto
        (-[KWQTextFieldController controlTextDidChange:]):
        ditto
        (-[KWQTextFieldController control:textShouldBeginEditing:]):
        don't call through to bridge form-delegate-related method; I deleted it because it was
        not being used
        (-[KWQTextFieldController control:textShouldEndEditing:]):
        ditto
        (-[KWQTextFieldController textView:shouldHandleEvent:]):
        call renamed bridge method, passing DOMElement* instead of NSView*

        * kwq/WebCoreBridge.h:
        Remove textShouldBeginEditing and textShouldEndEditing methods since they weren't being used.
        Rename other methods and made them take DOMElement* instead of NSView*

WebKit:

        Reviewed by Darin Adler.

        - big hunk of weaning form-related SPI from NSView; autofill continues to
        work (but only on tip of tree Safari)

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge textFieldDidBeginEditing:]):
        changed name from controlTextXXX:, now takes a DOMHTMLInputElement*
        (-[WebBridge textFieldDidEndEditing:]):
        ditto
        (-[WebBridge textDidChangeInTextField:]):
        ditto
        (-[WebBridge textDidChangeInTextArea:]):
        changed name from textDidChange:, now takes a DOMHTMLTextAreaElement*
        (-[WebBridge control:textShouldBeginEditing:]):
        removed this method as it wasn't being used by autofill, and did nothing in WebKit
        (-[WebBridge control:textShouldEndEditing:]):
        ditto
        (-[WebBridge textField:shouldHandleEvent:]):
        changed name from control:textView:shouldHandleEvent:, now takes a DOMHTMLInputElement*.
        The textView parameter wasn't being used, so I eliminated it.

        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate textFieldDidBeginEditing:inFrame:]):
        (-[WebFormDelegate textFieldDidEndEditing:inFrame:]):
        (-[WebFormDelegate control:textShouldBeginEditing:inFrame:]):
        (-[WebFormDelegate control:textShouldEndEditing:inFrame:]):
        (-[WebFormDelegate textDidChangeInTextField:inFrame:]):
        (-[WebFormDelegate textDidChangeInTextArea:inFrame:]):
        (-[WebFormDelegate textField:shouldHandleEvent:inFrame:]):
        These all changed in the same way as the WebBridge methods

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9905 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQTextArea.mm
WebCore/kwq/KWQTextField.mm
WebCore/kwq/WebCoreBridge.h
WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebBridge.m
WebKit/WebView.subproj/WebFormDelegate.h
WebKit/WebView.subproj/WebFormDelegate.m

index a7b35de..50344ba 100644 (file)
@@ -1,3 +1,35 @@
+2005-07-26  John Sullivan  <sullivan@apple.com>
+
+        Reviewed by Darin Adler.
+
+        Test cases added: none, only affects Safari autofill
+        
+        - big hunk of weaning form-related SPI from NSView; autofill continues to
+        work (but only on tip of tree Safari)        
+
+        * kwq/KWQTextArea.mm:
+        (-[KWQTextArea textDidChange:]):
+        call renamed bridge method, passing DOMElement* instead of NSView*
+        
+        * kwq/KWQTextField.mm:
+        (-[KWQTextFieldController controlTextDidBeginEditing:]):
+        call renamed bridge method, passing DOMElement* instead of NSView*
+        (-[KWQTextFieldController controlTextDidEndEditing:]):
+        ditto
+        (-[KWQTextFieldController controlTextDidChange:]):
+        ditto
+        (-[KWQTextFieldController control:textShouldBeginEditing:]):
+        don't call through to bridge form-delegate-related method; I deleted it because it was
+        not being used
+        (-[KWQTextFieldController control:textShouldEndEditing:]):
+        ditto
+        (-[KWQTextFieldController textView:shouldHandleEvent:]):
+        call renamed bridge method, passing DOMElement* instead of NSView*
+        
+        * kwq/WebCoreBridge.h:
+        Remove textShouldBeginEditing and textShouldEndEditing methods since they weren't being used.
+        Rename other methods and made them take DOMElement* instead of NSView*
+
 2005-07-26  Maciej Stachowiak  <mjs@apple.com>
 
         - imported much of the w3c DOM test suite:
@@ -9,8 +41,6 @@
 
        For now I left out the XHTML versions.
 
-        Test cases added: (NONE)
-
         * layout-tests/dom/html/level1/core/*
        * layout-tests/dom/html/level2/core/*
         * layout-tests/dom/html/level2/events/*
index 6694f08..bbffa6e 100644 (file)
@@ -214,7 +214,7 @@ const float LargeNumberForText = 1.0e7;
         widget->textChanged();
     
     WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
-    [bridge textDidChange:notification];
+    [bridge textDidChangeInTextArea:(DOMHTMLTextAreaElement *)[bridge elementForView:self]];
 }
 
 - (void)setWordWrap:(BOOL)f
index 3d57388..af85b1c 100644 (file)
        return;
     
     WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
-    [bridge controlTextDidBeginEditing:notification];
+    [bridge textFieldDidBeginEditing:(DOMHTMLInputElement *)[bridge elementForView:field]];
 }
 
 - (void)controlTextDidEndEditing:(NSNotification *)notification
        return;
     
     WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
-    [bridge controlTextDidEndEditing:notification];
+    [bridge textFieldDidEndEditing:(DOMHTMLInputElement *)[bridge elementForView:field]];
     
     if (widget && [[[notification userInfo] objectForKey:@"NSTextMovement"] intValue] == NSReturnTextMovement)
         widget->returnPressed();
         return;
     
     WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
-    [bridge controlTextDidChange:notification];
+    [bridge textDidChangeInTextField:(DOMHTMLInputElement *)[bridge elementForView:field]];
     
     edited = YES;
     if (widget) {
 - (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor
 {
     if (!widget)
-        return NO;
-    
-    WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
+        return NO;    
     
     // In WebHTMLView, we set a clip. This is not typical to do in an
     // NSView, and while correct for any one invocation of drawRect:,
     [fieldEditor releaseGState];
     [[fieldEditor superview] releaseGState];
     
-    return [bridge control:control textShouldBeginEditing:fieldEditor];
+    return YES;
 }
 
 - (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
     if (!widget)
        return NO;
     
-    WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
-    return [bridge control:control textShouldEndEditing:fieldEditor];
+    return YES;
 }
 
 - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector
 
         QWidget::setDeferFirstResponderChanges(true);
 
-        BOOL intercepted = [bridge control:field textView:view shouldHandleEvent:event];
+        BOOL intercepted = [bridge textField:(DOMHTMLInputElement *)[bridge elementForView:field] shouldHandleEvent:event];
         if (!intercepted) {
             intercepted = [bridge interceptKeyEvent:event toView:view];
         }
index 886d16f..423bd71 100644 (file)
@@ -56,8 +56,10 @@ typedef khtml::RenderPart KHTMLRenderPart;
 @class DOMDocumentFragment;
 @class DOMElement;
 @class DOMHTMLElement;
+@class DOMHTMLInputElement;
 @class DOMNode;
 @class DOMRange;
+@class DOMHTMLTextAreaElement;
 @class WebCoreSettings;
 @class WebScriptObject;
 
@@ -584,15 +586,13 @@ typedef enum
 - (void)goBackOrForward:(int)distance;
 - (BOOL)canGoBackOrForward:(int)distance;
 
-- (void)controlTextDidBeginEditing:(NSNotification *)obj;
-- (void)controlTextDidEndEditing:(NSNotification *)obj;
-- (void)controlTextDidChange:(NSNotification *)obj;
-- (void)textDidChange:(NSNotification *)obj;
+- (void)textFieldDidBeginEditing:(DOMHTMLInputElement *)element;
+- (void)textFieldDidEndEditing:(DOMHTMLInputElement *)element;
+- (void)textDidChangeInTextField:(DOMHTMLInputElement *)element;
+- (void)textDidChangeInTextArea:(DOMHTMLTextAreaElement *)element;
 
-- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor;
-- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor;
 - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector;
-- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView shouldHandleEvent:(NSEvent *)event;
+- (BOOL)textField:(DOMHTMLInputElement *)element shouldHandleEvent:(NSEvent *)event;
 
 - (NSView <WebCoreFileButton> *)fileButtonWithDelegate:(id <WebCoreFileButtonDelegate>)delegate;
 
index 0c525c8..43da46a 100644 (file)
@@ -1,3 +1,39 @@
+2005-07-25  John Sullivan  <sullivan@apple.com>
+
+        Reviewed by Darin Adler.
+        
+        - big hunk of weaning form-related SPI from NSView; autofill continues to
+        work (but only on tip of tree Safari)
+        
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge textFieldDidBeginEditing:]):
+        changed name from controlTextXXX:, now takes a DOMHTMLInputElement*
+        (-[WebBridge textFieldDidEndEditing:]):
+        ditto
+        (-[WebBridge textDidChangeInTextField:]):
+        ditto
+        (-[WebBridge textDidChangeInTextArea:]):
+        changed name from textDidChange:, now takes a DOMHTMLTextAreaElement*
+        (-[WebBridge control:textShouldBeginEditing:]):
+        removed this method as it wasn't being used by autofill, and did nothing in WebKit
+        (-[WebBridge control:textShouldEndEditing:]):
+        ditto
+        (-[WebBridge textField:shouldHandleEvent:]):
+        changed name from control:textView:shouldHandleEvent:, now takes a DOMHTMLInputElement*.
+        The textView parameter wasn't being used, so I eliminated it.
+        
+        * WebView.subproj/WebFormDelegate.h:
+        * WebView.subproj/WebFormDelegate.m:
+        (-[WebFormDelegate textFieldDidBeginEditing:inFrame:]):
+        (-[WebFormDelegate textFieldDidEndEditing:inFrame:]):
+        (-[WebFormDelegate control:textShouldBeginEditing:inFrame:]):
+        (-[WebFormDelegate control:textShouldEndEditing:inFrame:]):
+        (-[WebFormDelegate textDidChangeInTextField:inFrame:]):
+        (-[WebFormDelegate textDidChangeInTextArea:inFrame:]):
+        (-[WebFormDelegate textField:shouldHandleEvent:inFrame:]):
+        These all changed in the same way as the WebBridge methods
+        
+
 2005-07-25  Vicki Murley <vicki@apple.com>
 
         Reviewed by Darin.
index 6e4c718..54274a0 100644 (file)
@@ -1229,40 +1229,28 @@ static id <WebFormDelegate> formDelegate(WebBridge *self)
 
 #define FormDelegateLog(ctrl)  LOG(FormDelegate, "control=%@", ctrl)
 
-- (void)controlTextDidBeginEditing:(NSNotification *)obj
+- (void)textFieldDidBeginEditing:(DOMHTMLInputElement *)element
 {
-    FormDelegateLog([obj object]);
-    [formDelegate(self) controlTextDidBeginEditing:obj inFrame:_frame];
+    FormDelegateLog(element);
+    [formDelegate(self) textFieldDidBeginEditing:element inFrame:_frame];
 }
 
-- (void)controlTextDidEndEditing:(NSNotification *)obj
+- (void)textFieldDidEndEditing:(DOMHTMLInputElement *)element
 {
-    FormDelegateLog([obj object]);
-    [formDelegate(self) controlTextDidEndEditing:obj inFrame:_frame];
+    FormDelegateLog(element);
+    [formDelegate(self) textFieldDidEndEditing:element inFrame:_frame];
 }
 
-- (void)controlTextDidChange:(NSNotification *)obj
+- (void)textDidChangeInTextField:(DOMHTMLInputElement *)element
 {
-    FormDelegateLog([obj object]);
-    [formDelegate(self) controlTextDidChange:obj inFrame:_frame];
+    FormDelegateLog(element);
+    [formDelegate(self) textDidChangeInTextField:(DOMHTMLInputElement *)element inFrame:_frame];
 }
 
-- (void)textDidChange:(NSNotification *)obj
+- (void)textDidChangeInTextArea:(DOMHTMLTextAreaElement *)element
 {
-    FormDelegateLog([obj object]);
-    [formDelegate(self) textDidChange:obj inFrame:_frame];
-}
-
-- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor
-{
-    FormDelegateLog(control);
-    return [formDelegate(self) control:control textShouldBeginEditing:fieldEditor inFrame:_frame];
-}
-
-- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
-{
-    FormDelegateLog(control);
-    return [formDelegate(self) control:control textShouldEndEditing:fieldEditor inFrame:_frame];
+    FormDelegateLog(element);
+    [formDelegate(self) textDidChangeInTextArea:element inFrame:_frame];
 }
 
 - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector
@@ -1271,10 +1259,10 @@ static id <WebFormDelegate> formDelegate(WebBridge *self)
     return [formDelegate(self) control:control textView:textView doCommandBySelector:commandSelector inFrame:_frame];
 }
 
-- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView shouldHandleEvent:(NSEvent *)event
+- (BOOL)textField:(DOMHTMLInputElement *)element shouldHandleEvent:(NSEvent *)event
 {
-    FormDelegateLog(control);
-    return [formDelegate(self) control:control textView:textView shouldHandleEvent:event inFrame:_frame];
+    FormDelegateLog(element);
+    return [formDelegate(self) textField:element shouldHandleEvent:event inFrame:_frame];
 }
 
 - (void)frameDetached
index fa00894..99883cc 100644 (file)
@@ -34,6 +34,8 @@
 #import <AppKit/AppKit.h>
 
 @class DOMElement;
+@class DOMHTMLInputElement;
+@class DOMHTMLTextAreaElement;
 @class WebFrame;
 
 /*!
 // analogous to similar methods in AppKit/NSControl.h.
 // These methods are forwarded from widgets used in forms to the WebFormDelegate.
 
-- (void)controlTextDidBeginEditing:(NSNotification *)obj inFrame:(WebFrame *)frame;
-- (void)controlTextDidEndEditing:(NSNotification *)obj inFrame:(WebFrame *)frame;
-- (void)controlTextDidChange:(NSNotification *)obj inFrame:(WebFrame *)frame;
-- (void)textDidChange:(NSNotification *)obj inFrame:(WebFrame *)frame;
-
-- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor inFrame:(WebFrame *)frame;
-- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor inFrame:(WebFrame *)frame;
+- (void)textFieldDidBeginEditing:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame;
+- (void)textFieldDidEndEditing:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame;
+- (void)textDidChangeInTextField:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame;
+- (void)textDidChangeInTextArea:(DOMHTMLTextAreaElement *)element inFrame:(WebFrame *)frame;
 
 - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector inFrame:(WebFrame *)frame;
-- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView shouldHandleEvent:(NSEvent *)event inFrame:(WebFrame *)frame;
+- (BOOL)textField:(DOMHTMLInputElement *)element shouldHandleEvent:(NSEvent *)event inFrame:(WebFrame *)frame;
 
 // Sent when a form is just about to be submitted (before the load is started)
 // listener must be sent continue when the delegate is done.
index 2d44d4b..81e0052 100644 (file)
@@ -45,30 +45,20 @@ static WebFormDelegate *sharedDelegate = nil;
     return sharedDelegate;
 }
     
-- (void)controlTextDidBeginEditing:(NSNotification *)obj inFrame:(WebFrame *)frame { }
+- (void)textFieldDidBeginEditing:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame { }
 
-- (void)controlTextDidEndEditing:(NSNotification *)obj inFrame:(WebFrame *)frame { }
+- (void)textFieldDidEndEditing:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame { }
 
-- (void)controlTextDidChange:(NSNotification *)obj inFrame:(WebFrame *)frame { }
+- (void)textDidChangeInTextField:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame { }
 
-- (void)textDidChange:(NSNotification *)obj inFrame:(WebFrame *)frame { }
-
-- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor inFrame:(WebFrame *)frame
-{
-    return YES;
-}
-
-- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor inFrame:(WebFrame *)frame
-{
-    return YES;
-}
+- (void)textDidChangeInTextArea:(DOMHTMLTextAreaElement *)element inFrame:(WebFrame *)frame { }
 
 - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector inFrame:(WebFrame *)frame
 {
     return NO;
 }
 
-- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView shouldHandleEvent:(NSEvent *)event inFrame:(WebFrame *)frame
+- (BOOL)textField:(DOMHTMLInputElement *)element shouldHandleEvent:(NSEvent *)event inFrame:(WebFrame *)frame
 {
     return NO;
 }