亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.m

?? linux下開源瀏覽器WebKit的源碼,市面上的很多商用瀏覽器都是移植自WebKit
?? M
?? 第 1 頁 / 共 2 頁
字號:
/* IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in consideration of your agreement to the following terms, and your use, installation,  modification or redistribution of this Apple software constitutes acceptance of these  terms.  If you do not agree with these terms, please do not use, install, modify or  redistribute this Apple software.  In consideration of your agreement to abide by the following terms, and subject to these  terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in  this original Apple software (the "Apple Software"), to use, reproduce, modify and  redistribute the Apple Software, with or without modifications, in source and/or binary  forms; provided that if you redistribute the Apple Software in its entirety and without  modifications, you must retain this notice and the following text and disclaimers in all  such redistributions of the Apple Software.  Neither the name, trademarks, service marks  or logos of Apple Computer, Inc. may be used to endorse or promote products derived from  the Apple Software without specific prior written permission from Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your  derivative works or by other works in which the Apple Software may be incorporated.  The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO WARRANTIES,  EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS  USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.  IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,  REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND  WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR  OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#import <WebKit/npapi.h>#import <WebKit/npfunctions.h>#import <WebKit/npruntime.h>#import <WebKit/nptextinput.h>#import <Cocoa/Cocoa.h>// Browser function tablestatic NPNetscapeFuncs* browser;// Structure for per-instance storagetypedef struct PluginObject{    NPP npp;        NPWindow window;        bool pluginHasFocus;        bool textFieldHasFocus;    NSRect textFieldRect;        NSRange markedRange;    NSRange selectedRange;    NSTextStorage *textStorage;    NSLayoutManager *layoutManager;    NSTextContainer *textContainer;    } PluginObject;NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved);NPError NPP_Destroy(NPP instance, NPSavedData** save);NPError NPP_SetWindow(NPP instance, NPWindow* window);NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype);NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason);int32 NPP_WriteReady(NPP instance, NPStream* stream);int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer);void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname);void NPP_Print(NPP instance, NPPrint* platformPrint);int16 NPP_HandleEvent(NPP instance, void* event);void NPP_URLNotify(NPP instance, const char* URL, NPReason reason, void* notifyData);NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value);NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value);#pragma export on// Mach-o entry pointsNPError NP_Initialize(NPNetscapeFuncs *browserFuncs);NPError NP_GetEntryPoints(NPPluginFuncs *pluginFuncs);void NP_Shutdown(void);#pragma export offNPError NP_Initialize(NPNetscapeFuncs* browserFuncs){    browser = browserFuncs;    return NPERR_NO_ERROR;}NPError NP_GetEntryPoints(NPPluginFuncs* pluginFuncs){    pluginFuncs->version = 11;    pluginFuncs->size = sizeof(pluginFuncs);    pluginFuncs->newp = NPP_New;    pluginFuncs->destroy = NPP_Destroy;    pluginFuncs->setwindow = NPP_SetWindow;    pluginFuncs->newstream = NPP_NewStream;    pluginFuncs->destroystream = NPP_DestroyStream;    pluginFuncs->asfile = NPP_StreamAsFile;    pluginFuncs->writeready = NPP_WriteReady;    pluginFuncs->write = (NPP_WriteProcPtr)NPP_Write;    pluginFuncs->print = NPP_Print;    pluginFuncs->event = NPP_HandleEvent;    pluginFuncs->urlnotify = NPP_URLNotify;    pluginFuncs->getvalue = NPP_GetValue;    pluginFuncs->setvalue = NPP_SetValue;        return NPERR_NO_ERROR;}void NP_Shutdown(void){}NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved){    // Create per-instance storage    PluginObject *obj = (PluginObject *)malloc(sizeof(PluginObject));    bzero(obj, sizeof(PluginObject));        obj->npp = instance;    instance->pdata = obj;        // Ask the browser if it supports the CoreGraphics drawing model    NPBool supportsCoreGraphics;    if (browser->getvalue(instance, NPNVsupportsCoreGraphicsBool, &supportsCoreGraphics) != NPERR_NO_ERROR)        supportsCoreGraphics = FALSE;        if (!supportsCoreGraphics)        return NPERR_INCOMPATIBLE_VERSION_ERROR;        // If the browser supports the CoreGraphics drawing model, enable it.    browser->setvalue(instance, NPPVpluginDrawingModel, (void *)NPDrawingModelCoreGraphics);    // If the browser supports the Cocoa event model, enable it.    NPBool supportsCocoa;    if (browser->getvalue(instance, NPNVsupportsCocoaBool, &supportsCocoa) != NPERR_NO_ERROR)        supportsCocoa = FALSE;        if (!supportsCocoa)        return NPERR_INCOMPATIBLE_VERSION_ERROR;        browser->setvalue(instance, NPPVpluginEventModel, (void *)NPEventModelCocoa);    obj->textFieldRect = NSMakeRect(10, 10, 200, 100);    obj->textStorage = [[NSTextStorage alloc] initWithString:@""];    obj->layoutManager = [[NSLayoutManager alloc] init];    [obj->textStorage addLayoutManager:obj->layoutManager];        obj->textContainer = [[NSTextContainer alloc] initWithContainerSize:obj->textFieldRect.size];    [obj->layoutManager addTextContainer:obj->textContainer];    obj->selectedRange.location = [obj->textStorage length];        obj->markedRange = NSMakeRange(NSNotFound, 0);    return NPERR_NO_ERROR;}NPError NPP_Destroy(NPP instance, NPSavedData** save){    // Free per-instance storage    PluginObject *obj = instance->pdata;        [obj->textStorage release];    [obj->layoutManager release];        free(obj);        return NPERR_NO_ERROR;}NPError NPP_SetWindow(NPP instance, NPWindow* window){    PluginObject *obj = instance->pdata;    obj->window = *window;    return NPERR_NO_ERROR;} NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype){    *stype = NP_ASFILEONLY;    return NPERR_NO_ERROR;}NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason){    return NPERR_NO_ERROR;}int32 NPP_WriteReady(NPP instance, NPStream* stream){    return 0;}int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer){    return 0;}void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname){}void NPP_Print(NPP instance, NPPrint* platformPrint){}static void handleDraw(PluginObject *obj){    NSGraphicsContext *oldContext = [[NSGraphicsContext currentContext] retain];        NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithGraphicsPort:((NP_CGContext *)obj->window.window)->context                                                                            flipped:YES];    [NSGraphicsContext setCurrentContext:context];        NSRect rect = NSMakeRect(0, 0, obj->window.width, obj->window.height);        [[NSColor lightGrayColor] set];    [NSBezierPath fillRect:rect];    if (obj->pluginHasFocus) {        [[NSColor blackColor] set];        [NSBezierPath strokeRect:rect];    }        [[NSColor whiteColor] set];    [NSBezierPath fillRect:obj->textFieldRect];    // Draw the text    NSRange glyphRange = [obj->layoutManager glyphRangeForTextContainer:obj->textContainer];    if (glyphRange.length > 0) {        [obj->layoutManager drawBackgroundForGlyphRange:glyphRange atPoint:obj->textFieldRect.origin];        [obj->layoutManager drawGlyphsForGlyphRange:glyphRange atPoint:obj->textFieldRect.origin];    }        NSBezierPath *textInputBorder = [NSBezierPath bezierPathWithRect:obj->textFieldRect];    [[NSColor blackColor] set];        if (obj->pluginHasFocus && obj->textFieldHasFocus)        [textInputBorder setLineWidth:2];    else        [textInputBorder setLineWidth:1];        [textInputBorder stroke];        if (obj->pluginHasFocus && obj->textFieldHasFocus) {        NSUInteger rectCount;        NSRect *rectArray = [obj->layoutManager rectArrayForCharacterRange:obj->selectedRange                                            withinSelectedCharacterRange:obj->selectedRange                                                        inTextContainer:obj->textContainer

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区高清 | 日韩一区二区免费在线观看| 一区二区三区高清| 99v久久综合狠狠综合久久| 国产精品传媒入口麻豆| 99精品视频中文字幕| 成人免费视频在线观看| 91一区一区三区| 亚洲欧美日韩综合aⅴ视频| 在线中文字幕一区| 亚洲成人在线网站| 在线播放中文一区| 日本不卡视频一二三区| 日韩精品一区二区三区四区| 久久99国产精品久久99| 久久人人爽爽爽人久久久| 国产成人综合网站| 成人永久看片免费视频天堂| 欧美国产日韩一二三区| av在线不卡免费看| 亚洲一区二区四区蜜桃| 在线观看91av| 国产毛片精品一区| 国产精品久久久久三级| 91国产精品成人| 亚洲一区二区三区在线看| 91精品婷婷国产综合久久性色 | 国产伦精一区二区三区| 国产日产欧美一区| 欧美色窝79yyyycom| 韩国成人精品a∨在线观看| 自拍偷拍亚洲激情| 欧美一区二区三区在线电影| 成人综合婷婷国产精品久久蜜臀| 一区二区三区中文字幕精品精品| 欧美一级爆毛片| 成人福利视频网站| 日本免费在线视频不卡一不卡二| 中文无字幕一区二区三区| 欧美日韩国产小视频| 粉嫩欧美一区二区三区高清影视| 亚洲18影院在线观看| 中文天堂在线一区| 91精品蜜臀在线一区尤物| av网站一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品激情偷乱一区二区∴| 91精品在线麻豆| 91老师片黄在线观看| 狠狠色丁香婷综合久久| 亚洲高清视频中文字幕| 韩国av一区二区| 亚洲一区二区欧美| 国产精品天天摸av网| 日韩一区二区在线观看视频 | 亚洲第一福利视频在线| 欧美国产一区二区| 日韩欧美中文字幕精品| 在线欧美日韩精品| 东方欧美亚洲色图在线| 麻豆精品在线播放| 亚洲影视资源网| 国产精品三级电影| 337p粉嫩大胆色噜噜噜噜亚洲 | 中文字幕乱码日本亚洲一区二区| 制服丝袜日韩国产| 色综合久久九月婷婷色综合| 国产传媒欧美日韩成人| 日韩av不卡一区二区| 一区二区三区欧美| 国产精品免费久久| 久久久精品蜜桃| 欧美一区二区三区思思人| 欧美亚洲一区三区| 91网站在线观看视频| 国产一区二区不卡在线| 奇米一区二区三区| 午夜电影网亚洲视频| 一级精品视频在线观看宜春院 | 国产成人免费高清| 久久国产麻豆精品| 日韩黄色片在线观看| 亚洲在线中文字幕| 亚洲欧美一区二区三区孕妇| 国产精品视频yy9299一区| 久久亚洲精精品中文字幕早川悠里 | 欧美精品日韩精品| 在线免费观看日本一区| 91麻豆蜜桃一区二区三区| 成人av在线资源网站| 成人午夜免费av| 国产成人精品www牛牛影视| 国产专区欧美精品| 国内久久婷婷综合| 狠狠色综合播放一区二区| 久久精品国产亚洲一区二区三区| 日韩中文字幕区一区有砖一区| 亚洲国产精品久久人人爱蜜臀| 一区二区三区四区视频精品免费 | 欧美日韩国产区一| 欧美图区在线视频| 欧美色图天堂网| 欧美三级在线视频| 欧美亚洲尤物久久| 在线观看区一区二| 欧美在线视频你懂得| 在线视频欧美精品| 欧美午夜寂寞影院| 欧美日韩一二三区| 91精品国产综合久久久久久久| 91麻豆精品国产91久久久久| 日韩一区二区三区视频| 欧美大片国产精品| 久久影院电视剧免费观看| 久久精品男人的天堂| 国产欧美日韩在线| 成人欧美一区二区三区小说 | 国产日韩欧美制服另类| 中文字幕免费不卡| 亚洲日本va午夜在线影院| 亚洲精品菠萝久久久久久久| 一区二区三区在线免费视频| 亚洲无人区一区| 日韩—二三区免费观看av| 精品一区二区日韩| 粉嫩高潮美女一区二区三区 | 在线视频欧美区| 欧美乱熟臀69xxxxxx| 91精品国产乱码久久蜜臀| 精品日产卡一卡二卡麻豆| 国产日产欧产精品推荐色| 日韩毛片精品高清免费| 亚洲综合区在线| 欧美a级一区二区| 国产裸体歌舞团一区二区| 99久免费精品视频在线观看 | 欧美日韩aaaaaa| 日韩免费福利电影在线观看| 国产日韩欧美亚洲| 亚洲嫩草精品久久| 日韩精品电影在线观看| 激情欧美日韩一区二区| 99久久婷婷国产| 欧美天天综合网| 精品少妇一区二区三区在线播放 | 亚洲一区二区三区不卡国产欧美| 日韩精品欧美精品| 国产精品一色哟哟哟| 99久久精品免费看国产| 7777精品伊人久久久大香线蕉超级流畅| 欧美tickle裸体挠脚心vk| 中文字幕一区二区三中文字幕| 亚洲成人动漫av| 国产精一品亚洲二区在线视频| 91在线免费视频观看| 欧美一卡2卡三卡4卡5免费| 欧美激情在线观看视频免费| 亚洲自拍欧美精品| 国产精品影视在线| 欧美少妇xxx| 国产日韩一级二级三级| 亚洲国产精品视频| 国产一二三精品| 欧美视频在线一区| 国产九色精品成人porny| 91小视频免费看| 欧美白人最猛性xxxxx69交| 亚洲美腿欧美偷拍| 激情欧美日韩一区二区| 91久久免费观看| 精品国产乱码91久久久久久网站| 自拍av一区二区三区| 青青草97国产精品免费观看| 99视频一区二区三区| 日韩欧美国产一二三区| 亚洲人一二三区| 国产又粗又猛又爽又黄91精品| 日本黄色一区二区| 国产欧美一区视频| 青青草97国产精品免费观看无弹窗版 | 男男gaygay亚洲| 一本一道久久a久久精品综合蜜臀| 精品捆绑美女sm三区| 亚洲一区二区欧美| 不卡一区二区在线| 日韩精品中文字幕在线不卡尤物| 亚洲欧美另类图片小说| 国产一区二区久久| 欧美一区二区三区喷汁尤物| 亚洲你懂的在线视频| 国产成人午夜高潮毛片| 欧美一激情一区二区三区| 亚洲免费观看高清在线观看| 国产精品一区二区三区乱码 | 日韩一区二区三区四区| 伊人开心综合网| 国产麻豆9l精品三级站| 日韩欧美在线影院| 亚洲成人动漫一区| 91久久精品一区二区|