⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawtestdocument.m

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 M
字号:
/* * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved. * Copyright (C) 2006 Nefaur Khandker <nefaurk@gmail.com>  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  */#import "DrawTestDocument.h"#import "DrawTestView.h"#import "DrawTestToolbarController.h"#import <WebKit/WebView.h>#import <WebKit/WebFrame.h>#import <WebKit/WebDataSource.h>@implementation DrawTestDocument- (id)initWithType:(NSString *)typeName error:(NSError **)outError{    if (outError) {        NSDictionary *errorInfo = [NSDictionary dictionaryWithObjectsAndKeys:            @"No document could be created.", NSLocalizedDescriptionKey,            @"New document creation not yet supported.", NSLocalizedFailureReasonErrorKey,            nil];        *outError = [NSError errorWithDomain:NSCocoaErrorDomain code:0 userInfo:errorInfo];    }    [self release];    return nil;}- (void)dealloc{    [toolbarController release];    [super dealloc];}- (NSString *)windowNibName{    return @"DrawTestDocument";}- (BOOL)readFromFile:(NSString *)filename ofType:(NSString *)docType{    // TODO: Check the validity of the document before returning YES.    return YES;}- (void)windowControllerDidLoadNib:(NSWindowController *)aController{    [super windowControllerDidLoadNib:aController];    toolbarController = [[DrawTestToolbarController alloc] initWithDrawView:drawView];    [drawView setDocument:[self fileURL]];}- (IBAction)dumpSVGToConsole:(id)sender{    WebDataSource* dataSource = [[drawView mainFrame] dataSource];    NSLog(@"SVG Markup for file %@:\n%@", [self fileURL], [[dataSource representation] documentSource]);}- (IBAction)openSourceForSelection:(id)sender{    // TODO: The "path" message (below) will not produce a valid pathname if we are dealing with a remote file.    NSString *filename = [[self fileURL] path];    [[NSWorkspace sharedWorkspace] openFile:filename withApplication:@"TextEdit"];}- (NSData *)dataRepresentationOfType:(NSString *)aType{    WebDataSource* dataSource = [[drawView mainFrame] dataSource];    return [dataSource data];}#pragma mark -#pragma mark Debug Methods- (IBAction)toggleDebugDrawer:(id)sender{    [debugDrawer toggle:sender];}- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item{    return nil;}- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item{    return NO;}- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item{    return 0;}- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item{    return nil;}- (IBAction)runWindowResizeTest:(id)sender{    NSWindow *window = [drawView window];    NSScreen *screen = [window screen];    float screenHeight = [screen visibleFrame].size.height;    NSRect originalFrame = [window frame];    // initial setup    BOOL toolbarVisible = [[window toolbar] isVisible];    if (toolbarVisible) [window toggleToolbarShown:self];    [window setFrame:NSMakeRect(0,screenHeight-100,100,100) display:YES];        // grab time.    CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();        // run test    for (int x = 0; x < 3; x++) {        for (float size = 100; size < 500.f; size += 20.f) {            [window setFrame:NSMakeRect(0, screenHeight-size, size, size) display:YES];        }    }        double elapsed = CFAbsoluteTimeGetCurrent() - start;        // log    NSLog(@"Window resize test: %fs", elapsed);        // restore    if (toolbarVisible) [window toggleToolbarShown:self];    [window setFrame:originalFrame display:YES];}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -