A little bit more progress in wiring up the font panel.
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Apr 2004 21:44:51 +0000 (21:44 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Apr 2004 21:44:51 +0000 (21:44 +0000)
        Reviewed by Ken.

        * WebView.subproj/WebViewInternal.h:
        put _updateFontPanel here. Also moved _isLoading here, since it was
        already in a category named WebInternal

        * WebView.subproj/WebView.m:
        (-[WebView _isLoading]):
        moved into WebInternal category implementation
        (_textAttributesFromStyle):
        changed from method to function
        (_fontFromStyle):
        added, guts not filled in yet
        (-[WebView _updateFontPanel]):
        now calls these two functions (but results are always nil)
        (-[WebView setSelectedDOMRange:affinity:]):
        remove call to _updateFontPanel here since it's now called in
        the proper bottleneck

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge postDidChangeNotification]):
        call -[WebView _updateFontPanel] in addition to sending notification
        (-[WebBridge postDidChangeSelectionNotification]):
        ditto

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

WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebBridge.m
WebKit/WebView.subproj/WebView.m
WebKit/WebView.subproj/WebViewInternal.h

index aa7dceb5ea3102b466999eefe24d067e76bfffe9..b307ccb57a81c5a8c05feba2b9a207bf123702c5 100644 (file)
@@ -1,3 +1,32 @@
+2004-04-28  John Sullivan  <sullivan@apple.com>
+
+        A little bit more progress in wiring up the font panel.
+
+        Reviewed by Ken.
+
+        * WebView.subproj/WebViewInternal.h:
+        put _updateFontPanel here. Also moved _isLoading here, since it was
+        already in a category named WebInternal
+
+        * WebView.subproj/WebView.m:
+        (-[WebView _isLoading]):
+        moved into WebInternal category implementation
+        (_textAttributesFromStyle):
+        changed from method to function
+        (_fontFromStyle):
+        added, guts not filled in yet
+        (-[WebView _updateFontPanel]):
+        now calls these two functions (but results are always nil)
+        (-[WebView setSelectedDOMRange:affinity:]):
+        remove call to _updateFontPanel here since it's now called in
+        the proper bottleneck
+
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge postDidChangeNotification]):
+        call -[WebView _updateFontPanel] in addition to sending notification
+        (-[WebBridge postDidChangeSelectionNotification]):
+        ditto
+
 2004-04-28  John Sullivan  <sullivan@apple.com>
 
         - fixed these bugs:
index 7d934abddb12df3b2277213441f47dbd35fe1565..63fea61c2ebfc4c58041deb8890657c6dcac325b 100644 (file)
@@ -38,6 +38,7 @@
 #import <WebKit/WebPreferencesPrivate.h>
 #import <WebKit/WebResourceLoadDelegate.h>
 #import <WebKit/WebSubresourceClient.h>
+#import <WebKit/WebViewInternal.h>
 #import <WebKit/WebViewPrivate.h>
 #import <WebKit/WebUIDelegatePrivate.h>
 
@@ -1168,11 +1169,13 @@ static id <WebFormDelegate> formDelegate(WebBridge *self)
 
 - (void)postDidChangeNotification
 {
+    [[_frame webView] _updateFontPanel];
     [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidChangeNotification object:[_frame webView]];
 }
 
 - (void)postDidChangeSelectionNotification
 {
+    [[_frame webView] _updateFontPanel];
     [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidChangeSelectionNotification object:[_frame webView]];
 }
 
index 91ca04fb4df99ca4b5ba6dc308b0b89ac50521c7..b30de4d49f201b2bda83b650865fa7b167254956 100644 (file)
@@ -1150,10 +1150,6 @@ NSMutableDictionary *countInvocations;
 
 @end
 
-@interface WebView (WebInternal)
-- (BOOL)_isLoading;
-@end
-
 @implementation WebView
 
 + (BOOL)canShowMIMEType:(NSString *)MIMEType
@@ -1904,13 +1900,6 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
     [self setTextSizeMultiplier:[self textSizeMultiplier]*TextSizeMultiplierRatio];
 }
 
-- (BOOL)_isLoading
-{
-    WebFrame *mainFrame = [self mainFrame];
-    return [[mainFrame dataSource] isLoading]
-        || [[mainFrame provisionalDataSource] isLoading];
-}
-
 - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
 {
     SEL action = [item action];
@@ -2140,11 +2129,23 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
 
 @end
 
-@implementation WebView (WebViewEditing)
+@implementation WebView (WebInternal)
+
+- (BOOL)_isLoading
+{
+    WebFrame *mainFrame = [self mainFrame];
+    return [[mainFrame dataSource] isLoading]
+        || [[mainFrame provisionalDataSource] isLoading];
+}
+
+static NSDictionary *_textAttributesFromStyle(DOMCSSStyleDeclaration *style)
+{
+    ERROR("unimplemented");
+    return nil;
+}
 
-- (NSDictionary *)_textAttributesFromStyle:(DOMCSSStyleDeclaration *)style
+static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
 {
-    // FIXME: this should probably be a method of DOMCSSStyleDeclaration
     ERROR("unimplemented");
     return nil;
 }
@@ -2182,9 +2183,12 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
         font = [NSFont menuFontOfSize:23];
     } else {
         style = [self typingStyle];
-        // FIXME: get font from style somehow. For now, return some bogus font to test the rest of the code path.
-        font = [NSFont toolTipsFontOfSize:17];
-        textAttributes = [self _textAttributesFromStyle:style];
+        font = _fontFromStyle(style);
+        if (font == nil) {
+            // For now, return some bogus font to test the rest of the code path.
+            font = [NSFont toolTipsFontOfSize:17];
+        }
+        textAttributes = _textAttributesFromStyle(style);
     }
     
     if (font != nil) {
@@ -2193,6 +2197,10 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
     [fm setSelectedAttributes:textAttributes isMultiple:!attributesIdenticalThroughoutSelection];
 }
 
+@end
+
+@implementation WebView (WebViewEditing)
+
 - (void)_editingKeyDown:(NSEvent *)event
 {   
     // Work around this bug:
@@ -2206,12 +2214,6 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
 - (void)setSelectedDOMRange:(DOMRange *)range affinity:(NSSelectionAffinity)selectionAffinity
 {
     [[self _bridgeForCurrentSelection] setSelectedDOMRange:range affinity:selectionAffinity];
-
-    // FIXME: this doesn't catch the cases where the selection is changed on the other side
-    // of the bridge. Eventually we need to notice all such changes and call _updateFontPanel,
-    // but this is not yet implemented. (The bottlenecks that send the notifications like
-    // webViewDidChangeSelection and friends will also need to call _updateFontPanel).
-    [self _updateFontPanel];
 }
 
 - (DOMRange *)selectedDOMRange
index 7a7ac2f88fc58ad3facd05ac016dc8c8d01e71cc..b4abaa2e7acd4846ee19e8d53d45d52f3192264a 100644 (file)
@@ -1,3 +1,8 @@
 // This header contains WebView declarations that can be used anywhere in the Web Kit, but are neither SPI nor API.
 
 #import <WebKit/WebViewPrivate.h>
+
+@interface WebView (WebInternal)
+- (BOOL)_isLoading;
+- (void)_updateFontPanel;
+@end;