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

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

?? main.m

?? linux下開源瀏覽器WebKit的源碼,市面上的很多商用瀏覽器都是移植自WebKit
?? M
?? 第 1 頁 / 共 2 頁
字號:
                                                                rectCount:&rectCount];                [[NSColor blackColor] set];        for (unsigned i = 0; i < rectCount; i++) {            NSRect rect = rectArray[i];            rect.origin.x += obj->textFieldRect.origin.x;            rect.origin.y += obj->textFieldRect.origin.y;                        [NSBezierPath strokeRect:rect];        }            }        [NSGraphicsContext setCurrentContext:oldContext];}static void invalidatePlugin(PluginObject *obj){    NPRect rect;    rect.left = 0;    rect.top = 0;    rect.right = obj->window.width;    rect.bottom = obj->window.height;        browser->invalidaterect(obj->npp, &rect);    }static void handleFocusChanged(NPCocoaEvent *cocoaEvent, PluginObject *obj){    obj->pluginHasFocus = cocoaEvent->event.focus.hasFocus;        invalidatePlugin(obj);}static void handleMouseMoved(NPCocoaEvent *cocoaEvent, PluginObject *obj){    NSPoint point = NSMakePoint(cocoaEvent->event.mouse.pluginX, cocoaEvent->event.mouse.pluginY);        if (NSPointInRect(point, obj->textFieldRect))        [[NSCursor IBeamCursor] set];    else        [[NSCursor arrowCursor] set];}static void handleMouseDown(NPCocoaEvent *cocoaEvent, PluginObject *obj) {    NSPoint point = NSMakePoint(cocoaEvent->event.mouse.pluginX, cocoaEvent->event.mouse.pluginY);        obj->textFieldHasFocus = NSPointInRect(point, obj->textFieldRect);        invalidatePlugin(obj);}int16 NPP_HandleEvent(NPP instance, void* event){    PluginObject *obj = instance->pdata;    NPCocoaEvent *cocoaEvent = event;        switch (cocoaEvent->type) {        case NPCocoaEventDrawRect:            handleDraw(obj);            return 1;        case NPCocoaEventFocusChanged:            handleFocusChanged(cocoaEvent, obj);            return 1;        case NPCocoaEventMouseMoved:            handleMouseMoved(cocoaEvent, obj);            return 1;        case NPCocoaEventMouseDown:            handleMouseDown(cocoaEvent, obj);            return 1;        case NPCocoaEventKeyDown:            // If the text field has focus we ignore the event, causing it            // to be sent to the input manager.            if (obj->textFieldHasFocus)                return 0;            else                return 1;                    }        return 0;}void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData){}static NSRange selectionRange(PluginObject *obj){    if (obj->markedRange.location != NSNotFound)        return obj->markedRange;    else        return obj->selectedRange;}/* Text Input */void NPP_InsertText(NPP npp, id aString){    PluginObject *obj = npp->pdata;        NSRange range = selectionRange(obj);        // Get rid of the marked text    if (NPP_HasMarkedText(npp)) {        [obj->textStorage deleteCharactersInRange:obj->markedRange];        range.length = 0;    }        [obj->textStorage replaceCharactersInRange:range withString:aString];        obj->selectedRange.location = range.location + [aString length];    obj->selectedRange.length = 0;        obj->markedRange = NSMakeRange(NSNotFound, 0);    invalidatePlugin(obj);}void NPP_DoCommandBySelector(NPP npp, SEL aSelector){    PluginObject *obj = npp->pdata;    if (aSelector == @selector(moveRight:)) {        if (obj->selectedRange.location == [obj->textStorage length])            return;                obj->selectedRange.location++;          invalidatePlugin(obj);    } else if (aSelector == @selector(moveLeft:)) {        if (obj->selectedRange.location == 0)            return;                obj->selectedRange.location--;        invalidatePlugin(obj);    }}static NSDictionary *markedTextAttributes(){    static NSDictionary *markedTextAttributes = nil;    if (!markedTextAttributes) {        NSTextView *tv = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];        markedTextAttributes = [[tv markedTextAttributes] retain];        [tv release];    }        return markedTextAttributes;}void NPP_SetMarkedText(NPP npp, id aString, NSRange selRange){    PluginObject *obj = npp->pdata;    BOOL isAttributedString = [aString isKindOfClass:[NSAttributedString class]];        NSRange range = selectionRange(obj);        if (!isAttributedString)                aString = [[[NSAttributedString alloc] initWithString:aString attributes:markedTextAttributes()] autorelease];        [obj->textStorage replaceCharactersInRange:range withAttributedString:aString];        obj->selectedRange.location = range.location + selRange.location;    obj->selectedRange.length = selRange.length;        obj->markedRange = NSMakeRange(range.location, [aString length]);        invalidatePlugin(obj);}void NPP_UnmarkText(NPP npp){}BOOL NPP_HasMarkedText(NPP npp){    PluginObject *obj = npp->pdata;    return obj->markedRange.location != NSNotFound;}NSAttributedString *NPP_AttributedSubstringFromRange(NPP npp, NSRange theRange){    return nil;}NSRange NPP_MarkedRange(NPP npp){    PluginObject *obj = npp->pdata;    return obj->markedRange;}NSRange NPP_SelectedRange(NPP npp){    PluginObject *obj = npp->pdata;        return obj->selectedRange;}NSRect NPP_FirstRectForCharacterRange(NPP npp, NSRange theRange){    PluginObject *obj = npp->pdata;    NSUInteger rectCount;    NSRect *rectArray = [obj->layoutManager rectArrayForCharacterRange:theRange                                     withinSelectedCharacterRange:theRange                                                  inTextContainer:obj->textContainer                                                        rectCount:&rectCount];        return rectArray[0];}static NPPluginTextInputFuncs* pluginTextInputFuncs(){    static NPPluginTextInputFuncs textInputFuncs;    static bool initialized = false;        if (!initialized) {        textInputFuncs.version = 0;        textInputFuncs.size = sizeof(textInputFuncs);        textInputFuncs.insertText = NPP_InsertText;        textInputFuncs.doCommandBySelector = NPP_DoCommandBySelector;        textInputFuncs.setMarkedText = NPP_SetMarkedText;        textInputFuncs.unmarkText = NPP_UnmarkText;        textInputFuncs.hasMarkedText = NPP_HasMarkedText;        textInputFuncs.attributedSubstringFromRange = NPP_AttributedSubstringFromRange;        textInputFuncs.markedRange = NPP_MarkedRange;        textInputFuncs.selectedRange = NPP_SelectedRange;        textInputFuncs.firstRectForCharacterRange = NPP_FirstRectForCharacterRange;        initialized = true;    }        return &textInputFuncs;}NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value){    switch (variable) {        case NPPVpluginTextInputFuncs:            *(NPPluginTextInputFuncs**)value = pluginTextInputFuncs();                        return NPERR_NO_ERROR;    }        return NPERR_GENERIC_ERROR;}NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value){    return NPERR_GENERIC_ERROR;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲捆绑美女| 亚洲欧美日韩综合aⅴ视频| 国产拍欧美日韩视频二区| 国产精品久久久久久妇女6080| 一片黄亚洲嫩模| 国产精品99久久久久| 欧美日韩dvd在线观看| 亚洲欧美一区二区久久| 欧美片网站yy| 亚洲欧洲日产国产综合网| 亚洲欧美日韩精品久久久久| 激情久久五月天| 蜜臀av亚洲一区中文字幕| 亚洲精品乱码久久久久久| 欧美日韩在线播放三区四区| 91精品蜜臀在线一区尤物| 一区二区欧美在线观看| 国产传媒欧美日韩成人| 日韩片之四级片| 亚洲18色成人| 91久久香蕉国产日韩欧美9色| 久久久99久久精品欧美| 美国av一区二区| 欧美一级艳片视频免费观看| 亚洲综合激情另类小说区| 色综合天天做天天爱| 国产精品福利电影一区二区三区四区| 麻豆精品视频在线观看视频| 91麻豆精品国产91久久久更新时间 | 欧美综合一区二区| 亚洲欧洲日产国码二区| 99久久精品国产网站| 中文成人综合网| 国产v日产∨综合v精品视频| 久久精品欧美日韩| 国产成人精品网址| 国产精品婷婷午夜在线观看| 国产精品夜夜爽| 日本一区二区三区久久久久久久久不 | 午夜日韩在线电影| 欧美日韩高清一区二区不卡| 亚洲韩国一区二区三区| 欧美少妇性性性| 日韩av中文在线观看| 精品毛片乱码1区2区3区| 精品一区二区三区欧美| 久久久亚洲精品一区二区三区| 国产一区二区三区高清播放| 久久久久久久久久美女| 成人黄色777网| 一区二区在线免费| 91精品国模一区二区三区| 麻豆精品视频在线观看免费| 久久综合999| av欧美精品.com| 亚洲最大成人综合| 日韩写真欧美这视频| 国产一区二区美女诱惑| 韩国精品主播一区二区在线观看| 国产网站一区二区| 色综合久久久久综合| 天天亚洲美女在线视频| www国产精品av| 92国产精品观看| 蜜桃av一区二区在线观看| 久久女同精品一区二区| 95精品视频在线| 免费成人美女在线观看| 国产欧美日韩在线| 在线观看视频一区二区| 久久精品国产一区二区三| 中文字幕五月欧美| 日韩欧美高清在线| 国产91综合网| 日本va欧美va精品发布| 国产精品理论片在线观看| 69堂精品视频| 99天天综合性| 久久99精品国产麻豆不卡| 国产精品国产自产拍高清av| 7878成人国产在线观看| 成人免费高清视频| 免费成人在线观看| 亚洲福利一二三区| 毛片一区二区三区| 亚洲另类在线制服丝袜| 久久影院午夜论| 欧美男男青年gay1069videost| 成人一区二区三区视频在线观看 | 粉嫩一区二区三区性色av| 三级在线观看一区二区| 日韩一区有码在线| 久久综合久久综合亚洲| 欧美亚洲国产一区二区三区| 国产成人av影院| 精品一区二区在线看| 亚洲国产成人porn| 亚洲欧美电影一区二区| 国产视频一区在线观看| 日韩欧美国产电影| 欧美一区二区视频网站| 欧美亚洲国产bt| 一本大道综合伊人精品热热| 懂色av一区二区三区蜜臀| 国产资源在线一区| 久久国产生活片100| 秋霞电影一区二区| 三级久久三级久久| 性欧美大战久久久久久久久| 夜夜爽夜夜爽精品视频| 亚洲欧美一区二区久久| 综合中文字幕亚洲| 成人免费一区二区三区在线观看| 国产午夜精品久久| 欧美国产精品久久| 国产精品午夜免费| 国产精品免费人成网站| 国产中文一区二区三区| 免费成人av在线| 日韩国产欧美一区二区三区| 亚洲aⅴ怡春院| 日韩av一区二区三区| 蜜桃av噜噜一区| 国产一区二区调教| 国产91富婆露脸刺激对白| 成人av网站在线观看免费| jlzzjlzz亚洲女人18| 99久久精品费精品国产一区二区| 97久久久精品综合88久久| 91丨porny丨首页| 欧美日韩激情一区二区三区| 欧美精品在线一区二区| 日韩一级精品视频在线观看| 欧美一激情一区二区三区| 欧美成人乱码一区二区三区| 日韩一级大片在线| 久久久午夜电影| 中文字幕中文在线不卡住| 亚洲综合av网| 老司机免费视频一区二区 | 精品国产91亚洲一区二区三区婷婷| 欧美肥妇bbw| 国产午夜一区二区三区| 亚洲视频在线一区观看| 香蕉乱码成人久久天堂爱免费| 久久99热狠狠色一区二区| 成人爱爱电影网址| 欧美日韩的一区二区| 精品区一区二区| 亚洲美女屁股眼交| 久久精品国内一区二区三区| 不卡免费追剧大全电视剧网站| 欧美三级韩国三级日本三斤| 精品国产三级a在线观看| ㊣最新国产の精品bt伙计久久| 亚洲成a人片在线不卡一二三区| 伦理电影国产精品| 91最新地址在线播放| 精品美女在线播放| 一区二区在线观看av| 久久国产夜色精品鲁鲁99| 91亚洲精华国产精华精华液| 91精品国产综合久久久久| 国产精品久久久久久福利一牛影视 | 亚洲女人****多毛耸耸8| 日本中文在线一区| 色综合久久久久网| 久久先锋影音av| 日韩国产欧美一区二区三区| 不卡的av电影在线观看| 日韩一级免费一区| 亚洲h动漫在线| 99久久国产免费看| 欧美精品一区二区不卡| 亚洲综合男人的天堂| 岛国一区二区三区| 欧美电影免费提供在线观看| 亚洲精品国久久99热| 国产成人精品一区二区三区四区| 欧美浪妇xxxx高跟鞋交| 亚洲色欲色欲www| 成人午夜在线免费| 久久一区二区视频| 毛片av中文字幕一区二区| 欧美日韩在线免费视频| 亚洲欧美成人一区二区三区| 丁香婷婷综合激情五月色| 精品久久久久一区| 麻豆精品国产传媒mv男同| 欧美日韩国产免费| 亚洲丝袜精品丝袜在线| 99久久免费精品高清特色大片| 久久久亚洲精品一区二区三区| 麻豆国产精品一区二区三区| 亚洲欧美国产毛片在线| 99久久综合99久久综合网站| 国产精品视频一二三区| 国产成人亚洲精品狼色在线| 久久九九久精品国产免费直播| 久久99这里只有精品|