Changeset 151294 in webkit


Ignore:
Timestamp:
Jun 6, 2013 3:45:41 PM (11 years ago)
Author:
Simon Fraser
Message:

Add a menu item to MiniBrowser to toggle Transparent windows
https://bugs.webkit.org/show_bug.cgi?id=117316

Reviewed by Anders Carlsson.

Add a menu item that toggles "Transparent window" mode, which is exposed
via private WebKit API and WebKit2 API.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/MiniBrowser_Prefix.pch:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController toggleTransparentWindow:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController toggleTransparentWindow:]):
(-[WK2BrowserWindowController dumpSourceToConsole:]): Fix a crash that was seen
when testing.

Location:
trunk/Tools
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r151292 r151294  
     12013-06-06  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Add a menu item to MiniBrowser to toggle Transparent windows
     4        https://bugs.webkit.org/show_bug.cgi?id=117316
     5
     6        Reviewed by Anders Carlsson.
     7       
     8        Add a menu item that toggles "Transparent window" mode, which is exposed
     9        via private WebKit API and WebKit2 API.
     10
     11        * MiniBrowser/mac/BrowserWindowController.h:
     12        * MiniBrowser/mac/MainMenu.xib:
     13        * MiniBrowser/mac/MiniBrowser_Prefix.pch:
     14        * MiniBrowser/mac/WK1BrowserWindowController.m:
     15        (-[WK1BrowserWindowController validateMenuItem:]):
     16        (-[WK1BrowserWindowController toggleTransparentWindow:]):
     17        * MiniBrowser/mac/WK2BrowserWindowController.m:
     18        (-[WK2BrowserWindowController validateMenuItem:]):
     19        (-[WK2BrowserWindowController toggleTransparentWindow:]):
     20        (-[WK2BrowserWindowController dumpSourceToConsole:]): Fix a crash that was seen
     21        when testing.
     22
    1232013-06-06  Roger Fong  <roger_fong@apple.com>
    224
  • trunk/Tools/MiniBrowser/mac/BrowserWindowController.h

    r130571 r151294  
    4747- (IBAction)togglePaginationMode:(id)sender;
    4848
     49- (IBAction)toggleTransparentWindow:(id)sender;
     50
    4951- (IBAction)dumpSourceToConsole:(id)sender;
    5052
  • trunk/Tools/MiniBrowser/mac/MainMenu.xib

    r130571 r151294  
    947947                                                                        <reference key="NSMixedImage" ref="502551668"/>
    948948                                                                </object>
     949                                                                <object class="NSMenuItem" id="489162377">
     950                                                                        <reference key="NSMenu" ref="865232259"/>
     951                                                                        <string key="NSTitle">Transparent Window</string>
     952                                                                        <string key="NSKeyEquiv"/>
     953                                                                        <int key="NSMnemonicLoc">2147483647</int>
     954                                                                        <reference key="NSOnImage" ref="35465992"/>
     955                                                                        <reference key="NSMixedImage" ref="502551668"/>
     956                                                                </object>
    949957                                                                <object class="NSMenuItem" id="624939128">
    950958                                                                        <reference key="NSMenu" ref="865232259"/>
     
    14681476                                        </object>
    14691477                                        <int key="connectionID">575</int>
     1478                                </object>
     1479                                <object class="IBConnectionRecord">
     1480                                        <object class="IBActionConnection" key="connection">
     1481                                                <string key="label">toggleTransparentWindow:</string>
     1482                                                <reference key="source" ref="1014"/>
     1483                                                <reference key="destination" ref="489162377"/>
     1484                                        </object>
     1485                                        <int key="connectionID">578</int>
    14701486                                </object>
    14711487                        </object>
     
    21432159                                                        <reference ref="624939128"/>
    21442160                                                        <reference ref="15772092"/>
     2161                                                        <reference ref="489162377"/>
    21452162                                                </object>
    21462163                                                <reference key="parent" ref="816668511"/>
     
    22152232                                                <reference key="object" ref="552626760"/>
    22162233                                                <reference key="parent" ref="720053764"/>
     2234                                        </object>
     2235                                        <object class="IBObjectRecord">
     2236                                                <int key="objectID">576</int>
     2237                                                <reference key="object" ref="489162377"/>
     2238                                                <reference key="parent" ref="865232259"/>
    22172239                                        </object>
    22182240                                </object>
     
    23182340                                        <string>571.IBPluginDependency</string>
    23192341                                        <string>573.IBPluginDependency</string>
     2342                                        <string>576.IBPluginDependency</string>
    23202343                                        <string>58.IBPluginDependency</string>
    23212344                                        <string>72.IBPluginDependency</string>
     
    24432466                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    24442467                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     2468                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    24452469                                </object>
    24462470                        </object>
     
    24572481                        </object>
    24582482                        <nil key="sourceID"/>
    2459                         <int key="maxID">575</int>
     2483                        <int key="maxID">578</int>
    24602484                </object>
    24612485                <object class="IBClassDescriber" key="IBDocument.Classes">
     
    26032627                                </object>
    26042628                                <object class="IBPartialClassDescription">
     2629                                        <string key="className">NSDocument</string>
     2630                                        <object class="NSMutableDictionary" key="actions">
     2631                                                <bool key="EncodedWithXMLCoder">YES</bool>
     2632                                                <object class="NSArray" key="dict.sortedKeys">
     2633                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     2634                                                        <string>printDocument:</string>
     2635                                                        <string>revertDocumentToSaved:</string>
     2636                                                        <string>runPageLayout:</string>
     2637                                                        <string>saveDocument:</string>
     2638                                                        <string>saveDocumentAs:</string>
     2639                                                        <string>saveDocumentTo:</string>
     2640                                                </object>
     2641                                                <object class="NSArray" key="dict.values">
     2642                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     2643                                                        <string>id</string>
     2644                                                        <string>id</string>
     2645                                                        <string>id</string>
     2646                                                        <string>id</string>
     2647                                                        <string>id</string>
     2648                                                        <string>id</string>
     2649                                                </object>
     2650                                        </object>
     2651                                        <object class="NSMutableDictionary" key="actionInfosByName">
     2652                                                <bool key="EncodedWithXMLCoder">YES</bool>
     2653                                                <object class="NSArray" key="dict.sortedKeys">
     2654                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     2655                                                        <string>printDocument:</string>
     2656                                                        <string>revertDocumentToSaved:</string>
     2657                                                        <string>runPageLayout:</string>
     2658                                                        <string>saveDocument:</string>
     2659                                                        <string>saveDocumentAs:</string>
     2660                                                        <string>saveDocumentTo:</string>
     2661                                                </object>
     2662                                                <object class="NSArray" key="dict.values">
     2663                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     2664                                                        <object class="IBActionInfo">
     2665                                                                <string key="name">printDocument:</string>
     2666                                                                <string key="candidateClassName">id</string>
     2667                                                        </object>
     2668                                                        <object class="IBActionInfo">
     2669                                                                <string key="name">revertDocumentToSaved:</string>
     2670                                                                <string key="candidateClassName">id</string>
     2671                                                        </object>
     2672                                                        <object class="IBActionInfo">
     2673                                                                <string key="name">runPageLayout:</string>
     2674                                                                <string key="candidateClassName">id</string>
     2675                                                        </object>
     2676                                                        <object class="IBActionInfo">
     2677                                                                <string key="name">saveDocument:</string>
     2678                                                                <string key="candidateClassName">id</string>
     2679                                                        </object>
     2680                                                        <object class="IBActionInfo">
     2681                                                                <string key="name">saveDocumentAs:</string>
     2682                                                                <string key="candidateClassName">id</string>
     2683                                                        </object>
     2684                                                        <object class="IBActionInfo">
     2685                                                                <string key="name">saveDocumentTo:</string>
     2686                                                                <string key="candidateClassName">id</string>
     2687                                                        </object>
     2688                                                </object>
     2689                                        </object>
     2690                                        <object class="IBClassDescriptionSource" key="sourceIdentifier">
     2691                                                <string key="majorKey">IBProjectSource</string>
     2692                                                <string key="minorKey">./Classes/NSDocument.h</string>
     2693                                        </object>
     2694                                </object>
     2695                                <object class="IBPartialClassDescription">
    26052696                                        <string key="className">NSDocumentController</string>
    26062697                                        <object class="NSMutableDictionary" key="actions">
  • trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m

    r145468 r151294  
    2727
    2828#import <WebKit/WebKit.h>
     29#import <WebKit/WebViewPrivate.h>
    2930#import "AppDelegate.h"
    3031
     
    133134    else if ([menuItem action] == @selector(togglePaginationMode:))
    134135        [menuItem setState:[self isPaginated] ? NSOnState : NSOffState];
     136    else if ([menuItem action] == @selector(toggleTransparentWindow:))
     137        [menuItem setState:[[self window] isOpaque] ? NSOffState : NSOnState];
    135138
    136139    return YES;
     
    224227}
    225228
     229- (IBAction)toggleTransparentWindow:(id)sender
     230{
     231    BOOL isTransparent = ![[self window] isOpaque];
     232    isTransparent = !isTransparent;
     233   
     234    [[self window] setOpaque:!isTransparent];
     235    [[self window] setHasShadow:!isTransparent];
     236
     237    if (isTransparent)
     238        [_webView setBackgroundColor:[NSColor clearColor]];
     239    else
     240        [_webView setBackgroundColor:[NSColor whiteColor]];
     241
     242    [[self window] display];
     243}
     244
    226245- (IBAction)find:(id)sender
    227246{
  • trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m

    r143988 r151294  
    119119    else if ([menuItem action] == @selector(togglePaginationMode:))
    120120        [menuItem setState:[self isPaginated] ? NSOnState : NSOffState];
     121    else if ([menuItem action] == @selector(toggleTransparentWindow:))
     122        [menuItem setState:[[self window] isOpaque] ? NSOffState : NSOnState];
    121123
    122124    return YES;
     
    267269}
    268270
     271- (IBAction)toggleTransparentWindow:(id)sender
     272{
     273    BOOL isTransparent = _webView.drawsTransparentBackground;
     274    isTransparent = !isTransparent;
     275
     276    [[self window] setOpaque:!isTransparent];
     277    [[self window] setHasShadow:!isTransparent];
     278
     279    _webView.drawsTransparentBackground = isTransparent;
     280
     281    [[self window] display];   
     282}
     283
    269284- (IBAction)dumpSourceToConsole:(id)sender
    270285{
    271286    WKPageGetSourceForFrame_b(_webView.pageRef, WKPageGetMainFrame(_webView.pageRef), ^(WKStringRef result, WKErrorRef error) {
     287        if (!result)
     288            return;
     289
    272290        CFStringRef cfResult = WKStringCopyCFString(0, result);
    273291        LOG(@"Main frame source\n \"%@\"", (NSString *)cfResult);
Note: See TracChangeset for help on using the changeset viewer.