Changeset 176511 in webkit
- Timestamp:
- Nov 23, 2014, 9:21:13 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/API/Cocoa/WKViewPrivate.h (modified) (1 diff)
-
UIProcess/API/mac/WKView.mm (modified) (1 diff)
-
UIProcess/mac/WKActionMenuController.mm (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r176509 r176511 1 2014-11-23 Conrad Shultz <conrad_shultz@apple.com> 2 3 Page previews should have titles 4 https://bugs.webkit.org/show_bug.cgi?id=139020 5 6 Reviewed by Tim Horton. 7 8 * UIProcess/API/Cocoa/WKViewPrivate.h: 9 Declare -_titleForPreviewOfURL:. 10 11 * UIProcess/API/mac/WKView.mm: 12 (-[WKView _titleForPreviewOfURL:]): 13 Stub implementation. 14 15 * UIProcess/mac/WKActionMenuController.mm: 16 (+[WKPagePreviewViewController previewPadding]): 17 Account for the title height. 18 (-[WKPagePreviewViewController loadView]): 19 Set correct autoresize masks on some views; create and configure a title view that is 20 horizontally and vertically centered. 21 (-[WKActionMenuController pagePreviewViewController:titleForPreviewOfURL:]): 22 WKPagePreviewViewControllerDelegate method; wrap -[WKView _titleForPreviewOfURL:]. 23 1 24 2014-11-22 Simon Fraser <simon.fraser@apple.com> 2 25 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h
r176427 r176511 124 124 125 125 - (NSView *)_viewForPreviewingURL:(NSURL *)url initialFrameSize:(NSSize)initialFrameSize; 126 - (NSString *)_titleForPreviewOfURL:(NSURL *)url; 126 127 - (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView; 127 128 - (void)_handleClickInPreviewView:(NSView *)previewView URL:(NSURL *)url; -
trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm
r176486 r176511 4220 4220 } 4221 4221 4222 - (NSString *)_titleForPreviewOfURL:(NSURL *)url 4223 { 4224 return nil; 4225 } 4226 4222 4227 - (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView 4223 4228 { -
trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm
r176485 r176511 73 73 74 74 static const CGFloat previewViewInset = 3; 75 static const CGFloat previewViewTitleHeight = 34; 75 76 76 77 @class WKPagePreviewViewController; … … 78 79 @protocol WKPagePreviewViewControllerDelegate <NSObject> 79 80 - (NSView *)pagePreviewViewController:(WKPagePreviewViewController *)pagePreviewViewController viewForPreviewingURL:(NSURL *)url initialFrameSize:(NSSize)initialFrameSize; 81 - (NSString *)pagePreviewViewController:(WKPagePreviewViewController *)pagePreviewViewController titleForPreviewOfURL:(NSURL *)url; 80 82 - (void)pagePreviewViewControllerWasClicked:(WKPagePreviewViewController *)pagePreviewViewController; 81 83 @end … … 112 114 + (NSSize)previewPadding 113 115 { 114 return NSMakeSize(2 * previewViewInset, 2 * previewViewInset);116 return NSMakeSize(2 * previewViewInset, previewViewTitleHeight + 2 * previewViewInset); 115 117 } 116 118 … … 134 136 NSRect previewFrame = [_previewView frame]; 135 137 NSRect containerFrame = previewFrame; 136 containerFrame.size.width += 2 * previewViewInset; 137 containerFrame.size.height += 2 * previewViewInset; 138 NSSize totalPadding = [[self class] previewPadding]; 139 containerFrame.size.width += totalPadding.width; 140 containerFrame.size.height += totalPadding.height; 138 141 previewFrame = NSOffsetRect(previewFrame, previewViewInset, previewViewInset); 139 142 140 143 RetainPtr<NSView> containerView = adoptNS([[NSView alloc] initWithFrame:containerFrame]); 144 [containerView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; 141 145 [containerView addSubview:_previewView.get()]; 142 146 [_previewView setFrame:previewFrame]; 147 [_previewView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; 148 149 RetainPtr<NSTextField> titleTextField = adoptNS([[NSTextField alloc] init]); 150 [titleTextField setWantsLayer:YES]; 151 [titleTextField setAutoresizingMask:NSViewWidthSizable | NSViewMinYMargin]; 152 [titleTextField setEditable:NO]; 153 [titleTextField setBezeled:NO]; 154 [titleTextField setDrawsBackground:NO]; 155 [titleTextField setAlignment:NSCenterTextAlignment]; 156 [titleTextField setUsesSingleLineMode:YES]; 157 [titleTextField setLineBreakMode:NSLineBreakByTruncatingTail]; 158 [titleTextField setTextColor:[NSColor labelColor]]; 159 160 NSString *title = [_delegate pagePreviewViewController:self titleForPreviewOfURL:_url.get()]; 161 if (!title) 162 title = [_url absoluteString]; 163 164 [titleTextField setStringValue:title ? title : @""]; 165 166 [titleTextField sizeToFit]; 167 NSSize titleFittingSize = [titleTextField frame].size; 168 CGFloat textFieldCenteringOffset = (NSMaxY(containerFrame) - NSMaxY(previewFrame) - titleFittingSize.height) / 2; 169 170 NSRect titleFrame = previewFrame; 171 titleFrame.size.height = titleFittingSize.height; 172 titleFrame.origin.y = NSMaxY(previewFrame) + textFieldCenteringOffset; 173 [titleTextField setFrame:titleFrame]; 174 [containerView addSubview:titleTextField.get()]; 143 175 144 176 // Setting the webView bounds will scale it to 75% of the _mainViewSize. … … 1088 1120 } 1089 1121 1122 - (NSString *)pagePreviewViewController:(WKPagePreviewViewController *)pagePreviewViewController titleForPreviewOfURL:(NSURL *)url 1123 { 1124 return [_wkView _titleForPreviewOfURL:url]; 1125 } 1126 1090 1127 - (void)pagePreviewViewControllerWasClicked:(WKPagePreviewViewController *)pagePreviewViewController 1091 1128 {
Note:
See TracChangeset
for help on using the changeset viewer.