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

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

?? macscreen.c

?? zip壓縮
?? C
字號:
/*  Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.  See the accompanying file LICENSE, version 2000-Apr-09 or later  (the contents of which are also included in unzip.h) for terms of use.  If, for some reason, all these files are missing, the Info-ZIP license  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html*//*---------------------------------------------------------------------------  macscreen.c  This file is only linked into the standalone version (not SIOUX) of unzip.  Macintosh-GUI routines.  ---------------------------------------------------------------------------*//*****************************************************************************//*  Includes                                                                 *//*****************************************************************************/#include <QuickDraw.h>#include <stdio.h>#include <stdarg.h>#include <string.h>/*****************************************************************************//*  Macros, typedefs                                                         *//*****************************************************************************/#define bufferSize      4096#define screenWindow    128#define pauseOption     0x0001#define scrollOption    0x0002/*****************************************************************************//*  Module level Vars                                                        *//*****************************************************************************/static Rect scrollRect, pauseRect;static WindowPtr theWindow;static RgnHandle scrollRgn;static short fontHeight, fontWidth, screenHeight, screenWidth;static short currentPosition, maxPosition, pausePosition;static short *screenLength, startLine, endLine;static char *screenImage, **screenLine;static int screenOptions;/*****************************************************************************//*  Prototypes                                                               *//*****************************************************************************/void screenOpen(char *);void screenControl(char *, int);void screenClose(void);void screenUpdate(WindowPtr);void screenDisplay(char *);void screenDump(char *, long);char *macfgets(char *, int, FILE *);int  macfprintf(FILE *, char *, ...);int  macprintf(char *, ...);int  macgetch(void);/*****************************************************************************//*  Functions                                                                *//*****************************************************************************/void screenOpen(char *Title) {    FontInfo fontInfo;    int n;    short       fontFamID;    theWindow = GetNewWindow(screenWindow, nil, (WindowPtr)(-1));    if ((Title != NULL) && (*Title != '\0')) {        c2pstr(Title);        SetWTitle(theWindow, (StringPtr)Title);        p2cstr((StringPtr)Title);    }    ShowWindow(theWindow);    SetPort(theWindow);    GetFNum( "\pMonaco", &fontFamID );    TextFont(fontFamID);    TextSize(9);    GetFontInfo(&fontInfo);    fontHeight = fontInfo.ascent + fontInfo.descent + fontInfo.leading;    fontWidth = fontInfo.widMax;    scrollRgn = NewRgn();    screenWidth = (theWindow->portRect.right - theWindow->portRect.left - 10) /        fontWidth;    screenHeight = (theWindow->portRect.bottom - theWindow->portRect.top) /        fontHeight;    maxPosition = screenHeight * fontHeight;    pausePosition = maxPosition - (currentPosition = fontHeight);    SetRect(&scrollRect, theWindow->portRect.left,            theWindow->portRect.top + fontInfo.descent,            theWindow->portRect.right,            theWindow->portRect.bottom);    SetRect(&pauseRect, theWindow->portRect.left,            pausePosition + fontInfo.descent,            theWindow->portRect.right,            theWindow->portRect.bottom);    MoveTo(5, currentPosition);    n = (sizeof(char *) + sizeof(short) + screenWidth) * screenHeight;    screenLine = (char **)NewPtr(n);    screenLength = (short *)&screenLine[screenHeight];    screenImage = (char *)&screenLength[screenHeight];    for (n = 0; n < screenHeight; n++) {        screenLine[n] = &screenImage[n * screenWidth];        screenLength[n] = 0;    }    startLine = endLine = 0;    screenOptions = 0;    return;}void screenControl(char *options, int setting) {    int n = 0;    while (*options) {        switch (*options) {        case 'p':            n |= pauseOption;            break;        case 's':            n |= scrollOption;            break;        default:            break;        }        options += 1;    }    if (setting == 0)        screenOptions &= (n ^ (-1));    else        screenOptions |= n;    if ((pausePosition = maxPosition - currentPosition) == 0)        pausePosition = maxPosition - fontHeight;    return;}void screenClose(void) {    DisposePtr((Ptr)screenLine);    DisposeWindow(theWindow);    return;}void screenUpdate(WindowPtr window) {    GrafPort *savePort;    int m, n;    if (window == theWindow) {        BeginUpdate(window);        if (!EmptyRgn(window->visRgn)) {            GetPort(&savePort);            SetPort(window);            n = startLine;            for (m = 1; ; m++) {                MoveTo(5, m * fontHeight);                if (screenLength[n] != 0)                    DrawText(screenLine[n], 0, screenLength[n]);                if (n == endLine) break;                if ((n += 1) == screenHeight) n = 0;            }            SetPort(savePort);        }        EndUpdate(window);    }    return;}static void screenNewline(void) {    MoveTo(5, currentPosition += fontHeight);    if (currentPosition > maxPosition) {        if (screenOptions & scrollOption) {            ScrollRect(&scrollRect, 0, -fontHeight, scrollRgn);            MoveTo(5, currentPosition = maxPosition);            if ((startLine += 1) == screenHeight) startLine = 0;        } else {            ScrollRect(&scrollRect, 0, -maxPosition + fontHeight, scrollRgn);            MoveTo(5, currentPosition = fontHeight + fontHeight);            startLine = endLine;        }    }    pausePosition -= fontHeight;    if ((endLine += 1) == screenHeight) endLine = 0;    screenLength[endLine] = 0;    return;}static char waitChar(void) {    WindowPtr whichWindow;    EventRecord theEvent;    for ( ; ; ) {        SystemTask();        if (GetNextEvent(everyEvent, &theEvent)) {            switch (theEvent.what) {            case keyDown:                if ((theEvent.modifiers & cmdKey) &&                    ((theEvent.message & charCodeMask) == '.'))                    ExitToShell();                return(theEvent.message & charCodeMask);            case mouseDown:                if (FindWindow(theEvent.where, &whichWindow) == inSysWindow)                    SystemClick(&theEvent, whichWindow);                break;            case updateEvt:                screenUpdate((WindowPtr)theEvent.message);                break;            }        }    }}static void screenPause(void) {    if (pausePosition == 0) {        if (screenOptions & pauseOption) {            DrawText("Press any key to continue ...", 0, 29);            memcpy(screenLine[endLine], "Press any key to continue ...", 29);            screenLength[endLine] = 29;            (void)waitChar();            EraseRect(&pauseRect);            MoveTo(5, currentPosition);            screenLength[endLine] = 0;        }        pausePosition = maxPosition - fontHeight;    }    return;}void screenDisplay(char *s) {    GrafPort *savePort;    int m, n;    char *t;    GetPort(&savePort);    SetPort(theWindow);    while (*s) {        screenPause();        for (t = s; (*s) && (*s != '\n') && (*s != '\r'); s++)            ;  /* empty body */        if ((n = s - t) > (m = screenWidth - screenLength[endLine])) n = m;        if (n > 0) {            DrawText(t, 0, n);            memcpy(screenLine[endLine] + screenLength[endLine], t, n);            screenLength[endLine] += n;        }        if ((*s == '\n') || (*s == '\r')) {            screenNewline();            s += 1;        }    }    SetPort(savePort);    return;}void screenDump(char *s, long n) {    GrafPort *savePort;    int k, m;    char *t;    GetPort(&savePort);    SetPort(theWindow);    while (n) {        screenPause();        for (t = s; (n) && (*s != '\n') && (*s != '\r'); s++, n--)            ;  /* empty body */        if ((k = s - t) > (m = screenWidth - screenLength[endLine])) k = m;        if (k > 0) {            DrawText(t, 0, k);            memcpy(screenLine[endLine] + screenLength[endLine], t, k);            screenLength[endLine] += k;        }        if ((*s == '\n') || (*s == '\r')) {            screenNewline();            s += 1;            n -= 1;        }    }    SetPort(savePort);    return;}char *macfgets(char *s, int n, FILE *stream) {    GrafPort *savePort;    char c, *t = s;    stream = stream;    GetPort(&savePort);    SetPort(theWindow);    for (n -= 1; (n > 0) && ((c = waitChar()) != '\r'); n -= 1) {        DrawChar(*t++ = c);        if (screenLength[endLine] < screenWidth)            screenLine[endLine][screenLength[endLine]++] = c;    }    if (c == '\r') screenNewline();    *t = '\0';    SetPort(savePort);    return(s);}int macfprintf(FILE *stream, char *format, ...){    char buffer[bufferSize];    va_list ap;    int rc;    stream = stream;    va_start(ap, format);    rc = vsprintf(buffer, format, ap);    va_end(ap);    screenDisplay(buffer);    return rc;}int macprintf(char *format, ...){    char buffer[bufferSize];    va_list ap;    int rc;    va_start(ap, format);    rc = vsprintf(buffer, format, ap);    va_end(ap);    screenDisplay(buffer);    return rc;}/***********************//* Function macgetch() *//***********************/int macgetch(void){    WindowPtr whichWindow;    EventRecord theEvent;    char c;                     /* one-byte buffer for read() to use */    do {        SystemTask();        if (!GetNextEvent(everyEvent, &theEvent))            theEvent.what = nullEvent;        else {            switch (theEvent.what) {            case keyDown:                c = theEvent.message & charCodeMask;                break;            case mouseDown:                if (FindWindow(theEvent.where, &whichWindow) ==                    inSysWindow)                    SystemClick(&theEvent, whichWindow);                break;            case updateEvt:                screenUpdate((WindowPtr)theEvent.message);                break;            }        }    } while (theEvent.what != keyDown);    macprintf("*");    return (int)c;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人av资源网| 日韩一卡二卡三卡国产欧美| 国产91精品露脸国语对白| 另类小说图片综合网| 亚洲成人自拍一区| 五月天激情综合网| 午夜精品123| 日韩影院精彩在线| 男人的j进女人的j一区| 久久精品国产一区二区三| 精品一区二区在线免费观看| 国产一区二区三区观看| 色菇凉天天综合网| 91成人在线精品| 欧美乱熟臀69xxxxxx| 欧美日韩国产在线播放网站| 91精品视频网| 久久在线免费观看| 中文字幕亚洲在| 亚洲资源中文字幕| 热久久国产精品| 国产一区二区三区在线看麻豆| 国产乱色国产精品免费视频| 成人精品国产免费网站| 一本久久a久久精品亚洲| 欧美吞精做爰啪啪高潮| 日韩一区国产二区欧美三区| 国产无遮挡一区二区三区毛片日本| 欧美激情一区在线| 亚洲电影第三页| 国产一区在线观看麻豆| 91麻豆成人久久精品二区三区| 欧美亚洲自拍偷拍| 精品国产乱码久久久久久1区2区 | 不卡电影免费在线播放一区| 97se亚洲国产综合自在线| 欧美情侣在线播放| 久久久久久一二三区| 亚洲黄色av一区| 麻豆精品精品国产自在97香蕉| 成人免费毛片片v| 欧美精品一级二级三级| 欧美韩国日本不卡| 三级一区在线视频先锋 | 国产成人免费视频网站| 色狠狠色狠狠综合| 欧美精品一区二| 一级精品视频在线观看宜春院 | 色天使色偷偷av一区二区| 欧美一区二区三区免费大片 | 国产乱码精品一区二区三| 日本二三区不卡| 精品日韩一区二区三区| 伊人开心综合网| 国模大尺度一区二区三区| 91激情五月电影| 国产欧美日韩综合精品一区二区| 亚洲在线一区二区三区| 一本久道久久综合中文字幕| 91精品国产91久久综合桃花| 日韩毛片视频在线看| 久久狠狠亚洲综合| 欧美午夜精品电影| 国产精品视频线看| 精品一区二区在线视频| 欧美日韩视频专区在线播放| 国产校园另类小说区| 日本欧洲一区二区| 色欧美乱欧美15图片| 久久久精品天堂| 久久国产精品一区二区| 欧美巨大另类极品videosbest | 三级在线观看一区二区| 色综合色狠狠综合色| 久久久精品中文字幕麻豆发布| 三级不卡在线观看| 色婷婷综合久久久久中文一区二区| 久久女同精品一区二区| 看片网站欧美日韩| 欧美电影在哪看比较好| 亚洲一级在线观看| 99r国产精品| 中国av一区二区三区| 国产一区不卡在线| 91精品国产一区二区三区香蕉| 亚洲一区二区三区在线播放| www.欧美.com| 一区精品在线播放| 成人精品小蝌蚪| 国产欧美日韩卡一| 国产剧情一区在线| 久久综合网色—综合色88| 蜜桃视频在线一区| 日韩欧美一卡二卡| 麻豆一区二区三区| 日韩女优毛片在线| 免费亚洲电影在线| 日韩欧美国产午夜精品| 久久精品国产亚洲aⅴ| 日韩精品一区二区在线| 久久99国内精品| 欧美精品一区二区三区高清aⅴ| 一区二区三区四区亚洲| 91福利国产成人精品照片| 亚洲高清视频在线| 精品国产一区二区三区忘忧草 | 美女视频黄 久久| 91精品国产综合久久久久久漫画| 蜜臀精品久久久久久蜜臀| 欧美三级日韩三级| 精品一区二区在线视频| 国产精品不卡视频| 67194成人在线观看| 国产精品123区| 水野朝阳av一区二区三区| 久久久久久电影| 91精品国产综合久久精品图片| 精品一区二区三区影院在线午夜 | 色天使久久综合网天天| 色综合久久六月婷婷中文字幕| 日本不卡123| 日本一区二区高清| 成人免费高清视频在线观看| 亚洲午夜免费电影| 欧美激情综合五月色丁香 | 国产精品乱人伦中文| 激情久久久久久久久久久久久久久久| 一本色道综合亚洲| 亚洲国产日韩a在线播放性色| 欧美无砖专区一中文字| 麻豆成人久久精品二区三区红| 国产人伦精品一区二区| 色悠悠久久综合| 蜜臀99久久精品久久久久久软件| 26uuu色噜噜精品一区二区| 北岛玲一区二区三区四区| 一区二区三区中文字幕电影 | 亚洲图片一区二区| 欧美电影免费提供在线观看| 国产成人亚洲精品狼色在线| 亚洲乱码国产乱码精品精98午夜 | 日韩一区二区在线看| 懂色av一区二区三区免费观看| 一个色在线综合| 久久综合九色综合97婷婷女人 | 欧美一区二区三区免费大片| 国产精品亚洲午夜一区二区三区 | 免费看欧美女人艹b| 欧美激情一区二区| 在线电影一区二区三区| 国产福利不卡视频| 性做久久久久久久免费看| 久久久五月婷婷| 欧美视频日韩视频在线观看| 国产精品资源网| 天天色综合天天| 中文字幕一区二区三区在线观看| 日韩一级视频免费观看在线| 99精品久久久久久| 国产一区久久久| 日韩精品久久理论片| 中文字幕日韩精品一区| 日韩精品一区在线| 欧美色综合网站| 99久久精品久久久久久清纯| 经典三级在线一区| 午夜成人免费电影| 亚洲色图制服丝袜| 国产欧美日产一区| 日韩欧美国产wwwww| 欧美日韩国产片| 91麻豆免费在线观看| 国产黑丝在线一区二区三区| 午夜成人在线视频| 一区二区三区91| 国产精品久久精品日日| 久久精品视频免费| 欧美mv和日韩mv的网站| 欧美日韩免费在线视频| 99在线精品视频| 粉嫩在线一区二区三区视频| 久久精品国产精品亚洲精品| 午夜精品视频一区| 亚洲一区二区四区蜜桃| 国产精品不卡在线| 亚洲国产精品高清| 久久久久亚洲综合| 26uuu国产在线精品一区二区| 制服丝袜激情欧洲亚洲| 欧美无乱码久久久免费午夜一区 | 国产欧美va欧美不卡在线| 日韩女优电影在线观看| 欧美系列亚洲系列| 国产福利精品导航| 国产一二精品视频| 国产美女精品人人做人人爽| 美女视频网站久久| 日韩不卡免费视频| 亚洲成人综合在线| 天堂午夜影视日韩欧美一区二区|