Changeset 165817 in webkit


Ignore:
Timestamp:
Mar 18, 2014, 10:57:19 AM (12 years ago)
Author:
Simon Fraser
Message:

Renable pagination mode in WK2 MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=130374

Source/WebKit2:

Reviewed by Anders Carlsson.

Add SPI for pagination mode.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _paginationMode]):
(-[WKWebView _setPaginationMode:]):
(-[WKWebView _paginationBehavesLikeColumns]):
(-[WKWebView _setPaginationBehavesLikeColumns:]):
(-[WKWebView _pageLength]):
(-[WKWebView _setPageLength:]):
(-[WKWebView _gapBetweenPages]):
(-[WKWebView _setGapBetweenPages:]):
(-[WKWebView _pageCount]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

(NS_ENUM):

Tools:

Reviewed by Anders Carlsson.

Put the implementation of togglePaginationMode: back, and correctly
enable the menu item.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController isPaginated]):
(-[WK2BrowserWindowController togglePaginationMode:]):

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r165813 r165817  
     12014-03-17  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Renable pagination mode in WK2 MiniBrowser
     4        https://bugs.webkit.org/show_bug.cgi?id=130374
     5
     6        Reviewed by Anders Carlsson.
     7       
     8        Add SPI for pagination mode.
     9
     10        * UIProcess/API/Cocoa/WKWebView.mm:
     11        (-[WKWebView _paginationMode]):
     12        (-[WKWebView _setPaginationMode:]):
     13        (-[WKWebView _paginationBehavesLikeColumns]):
     14        (-[WKWebView _setPaginationBehavesLikeColumns:]):
     15        (-[WKWebView _pageLength]):
     16        (-[WKWebView _setPageLength:]):
     17        (-[WKWebView _gapBetweenPages]):
     18        (-[WKWebView _setGapBetweenPages:]):
     19        (-[WKWebView _pageCount]):
     20        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
     21        (NS_ENUM):
     22
    1232014-03-18  Ryuan Choi  <ryuan.choi@samsung.com>
    224
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

    r165775 r165817  
    902902}
    903903
     904- (_WKPaginationMode)_paginationMode
     905{
     906    switch (_page->paginationMode()) {
     907    case WebCore::Pagination::Unpaginated:
     908        return _WKPaginationModeUnpaginated;
     909    case WebCore::Pagination::LeftToRightPaginated:
     910        return _WKPaginationModeLeftToRight;
     911    case WebCore::Pagination::RightToLeftPaginated:
     912        return _WKPaginationModeRightToLeft;
     913    case WebCore::Pagination::TopToBottomPaginated:
     914        return _WKPaginationModeTopToBottom;
     915    case WebCore::Pagination::BottomToTopPaginated:
     916        return _WKPaginationModeBottomToTop;
     917    }
     918
     919    ASSERT_NOT_REACHED();
     920    return _WKPaginationModeUnpaginated;
     921}
     922
     923- (void)_setPaginationMode:(_WKPaginationMode)paginationMode
     924{
     925    WebCore::Pagination::Mode mode;
     926    switch (paginationMode) {
     927    case _WKPaginationModeUnpaginated:
     928        mode = WebCore::Pagination::Unpaginated;
     929        break;
     930    case _WKPaginationModeLeftToRight:
     931        mode = WebCore::Pagination::LeftToRightPaginated;
     932        break;
     933    case _WKPaginationModeRightToLeft:
     934        mode = WebCore::Pagination::RightToLeftPaginated;
     935        break;
     936    case _WKPaginationModeTopToBottom:
     937        mode = WebCore::Pagination::TopToBottomPaginated;
     938        break;
     939    case _WKPaginationModeBottomToTop:
     940        mode = WebCore::Pagination::BottomToTopPaginated;
     941        break;
     942    default:
     943        return;
     944    }
     945
     946    _page->setPaginationMode(mode);
     947}
     948
     949- (BOOL)_paginationBehavesLikeColumns
     950{
     951    return _page->paginationBehavesLikeColumns();
     952}
     953
     954- (void)_setPaginationBehavesLikeColumns:(BOOL)behavesLikeColumns
     955{
     956    _page->setPaginationBehavesLikeColumns(behavesLikeColumns);
     957}
     958
     959- (CGFloat)_pageLength
     960{
     961    return _page->pageLength();
     962}
     963
     964- (void)_setPageLength:(CGFloat)pageLength
     965{
     966    _page->setPageLength(pageLength);
     967}
     968
     969- (CGFloat)_gapBetweenPages
     970{
     971    return _page->gapBetweenPages();
     972}
     973
     974- (void)_setGapBetweenPages:(CGFloat)gapBetweenPages
     975{
     976    _page->setGapBetweenPages(gapBetweenPages);
     977}
     978
     979- (NSUInteger)_pageCount
     980{
     981    return _page->pageCount();
     982}
     983
    904984#pragma mark iOS-specific methods
    905985
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h

    r165776 r165817  
    3131    _WKRenderingProgressEventFirstLayout = 1 << 0,
    3232    _WKRenderingProgressEventFirstPaintWithSignificantArea = 1 << 2,
     33};
     34
     35typedef NS_ENUM(NSUInteger, _WKPaginationMode) {
     36    _WKPaginationModeUnpaginated,
     37    _WKPaginationModeLeftToRight,
     38    _WKPaginationModeRightToLeft,
     39    _WKPaginationModeTopToBottom,
     40    _WKPaginationModeBottomToTop,
    3341};
    3442
     
    8795- (void)_runJavaScriptInMainFrame:(NSString *)scriptString;
    8896
     97@property (nonatomic, setter=_setPaginationMode:) _WKPaginationMode _paginationMode;
     98// Whether the column-break-{before,after} properties are respected instead of the
     99// page-break-{before,after} properties.
     100@property (nonatomic, setter=_setPaginationBehavesLikeColumns:) BOOL _paginationBehavesLikeColumns;
     101// Set to 0 to have the page length equal the view length.
     102@property (nonatomic, setter=_setPageLength:) CGFloat _pageLength;
     103@property (nonatomic, setter=_setGapBetweenPages:) CGFloat _gapBetweenPages;
     104@property (readonly) NSUInteger _pageCount;
     105
    89106@end
    90107
  • trunk/Tools/ChangeLog

    r165816 r165817  
     12014-03-17  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Renable pagination mode in WK2 MiniBrowser
     4        https://bugs.webkit.org/show_bug.cgi?id=130374
     5
     6        Reviewed by Anders Carlsson.
     7       
     8        Put the implementation of togglePaginationMode: back, and correctly
     9        enable the menu item.
     10
     11        * MiniBrowser/mac/WK2BrowserWindowController.m:
     12        (-[WK2BrowserWindowController validateMenuItem:]):
     13        (-[WK2BrowserWindowController isPaginated]):
     14        (-[WK2BrowserWindowController togglePaginationMode:]):
     15
    1162014-03-18  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
    217
  • trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m

    r165776 r165817  
    119119        || action == @selector(resetZoom:)
    120120        || action == @selector(dumpSourceToConsole:)
    121         || action == @selector(find:)
    122         || action == @selector(togglePaginationMode:))
     121        || action == @selector(find:))
    123122        return NO;
    124123   
     
    127126    else if (action == @selector(removeReinsertWebView:))
    128127        [menuItem setTitle:[_webView window] ? @"Remove Web View" : @"Insert Web View"];
     128    else if ([menuItem action] == @selector(togglePaginationMode:))
     129        [menuItem setState:[self isPaginated] ? NSOnState : NSOffState];
    129130    else if ([menuItem action] == @selector(toggleTransparentWindow:))
    130131        [menuItem setState:[[self window] isOpaque] ? NSOffState : NSOnState];
     
    171172}
    172173
    173 - (IBAction)togglePaginationMode:(id)sender
    174 {
    175 }
    176 
    177174- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
    178175{
     
    247244    CGFloat factor = [self currentZoomFactor] / DefaultZoomFactorRatio;
    248245    [self setCurrentZoomFactor:factor];
     246}
     247
     248- (BOOL)isPaginated
     249{
     250    return _webView._paginationMode != _WKPaginationModeUnpaginated;
     251}
     252
     253- (IBAction)togglePaginationMode:(id)sender
     254{
     255    if ([self isPaginated])
     256        _webView._paginationMode = _WKPaginationModeUnpaginated;
     257    else {
     258        _webView._paginationMode = _WKPaginationModeLeftToRight;
     259        _webView._pageLength = _webView.bounds.size.width / 2;
     260        _webView._gapBetweenPages = 10;
     261    }
    249262}
    250263
Note: See TracChangeset for help on using the changeset viewer.