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

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

?? dialog.c

?? DOS環境下圖形用戶界面支持系統
?? C
?? 第 1 頁 / 共 5 頁
字號:
// Dialog.c The implementation file of dialog.
//
// This file include functions that handle
// dialog box procedures, message box procedure etc.
//
// Copyright (c) 1994.8 ~ 1998.4, Mr. Wei Yongming.
//
// Last modified date: 1998.04.15.

#include <stdio.h>
#include <conio.h> 
#include <io.h>
#include <dos.h>
#include <bios.h>
#include <process.h>
#include <time.h>
#include <stddef.h>
#include <stdlib.h>
#include <malloc.h>
#include <graph.h>
#include <memory.h>
#include <Vmemory.h>
#include <string.h>
#include <direct.h>
#include <ctype.h>
#include <float.h>
#include <math.h>

#include "Common.h"
#include "Support.h"
#include "MainGUI.h"
#include "Dialog.h"

extern struct _videoconfig vc;
extern BOOL fNewKb;
extern void (__interrupt __far *oldvect)();

static MSGBOXDATA MsgBoxData;
static int CtrlIndex;
static BOOL fAlreadyUp;
    
static void CheckCtrl( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData );
static void PushButton(PCTRLDATA pCurCtrl, BOOL uCheck);
static void DrawBox( short lx, short ty, short rx, short by );
static void DrawFocus(PCTRLDATA pCtrlData);
static void CheckButtonDown(BOOL fDlg, PDLGHEADER pDlgHeader, PMSG pMsg);
static void CheckButtonUp(BOOL fDlg, PDLGHEADER pDlgHeader, PMSG pMsg, int CtrlIndex);

static BOOL StartDialog( PDLGHEADER pDlgHeader );
static BOOL CreateDialog( PDLGHEADER pDlgHeader, int (FAR *DlgProc)() );
static void EndDialog( PDLGHEADER pDlgHeader );

static PCTRLDATA GetNextTabstop( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData );
static PCTRLDATA GetLastTabstop( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData );
static PCTRLDATA GetNextItemInGroup( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData );
static PCTRLDATA GetLastItemInGroup( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData );

static BOOL HaveCancelButton( PDLGHEADER pDlgHeader );

static void DrawListBoxItem( PCTRLDATA pCtrlData, int iOffset, int iIndex, BOOL fSel );
static void ScrollListBox(PCTRLDATA pCtrlData, WORD uAction);
static void SetVScrollPosition(PCTRLDATA pCtrlData, BOOL fErase);

// 系統“有關……”對話框
static DLGHEADER  SysAboutDlg = {WS_BORDER|WS_POPUP|WS_CAPTION, 17, 70,100,490,274, NULL, "有關MINIGUI--圖形用戶界面支持系統"};
// 系統文件打開/保存對話框
static DLGHEADER  OpenFileDlg = {WS_BORDER|WS_POPUP|WS_CAPTION, 8, 100,100,416,230, NULL, NULL};
// 系統簡單文件打開/保存對話框,此對話框只能完成在特定目錄下的文件打開和保存功能。
static DLGHEADER  SimpleOpenFileDlg = {WS_BORDER|WS_POPUP|WS_CAPTION, 7, 70, 80, 354, 244, NULL, "選擇要打開的文件"};

static CTRLDATA   SysDlgCtrl[]={
        // About Box's controls
        {SS_OWNER, 12, 10,84,84, IDC_ICON, STATIC, NULL, NULL},
        {SS_LEFT, 106, 8, 340, 16, IDC_STATIC, STATIC, "MINIGUI--圖形用戶界面支持系統  版本3.0", NULL},
        {SS_LEFT, 106, 26, 370, 16, IDC_STATIC, STATIC, "版權 (C) 1995~1998 清華大學魏永明", NULL},
        {SS_LEFT, 106, 44, 370, 16, IDC_STATIC, STATIC, "部分版權 (C) 清華大學李鐵民", NULL},
        {SS_LEFT, 106, 72, 340, 16, IDC_STATIC, STATIC, "本支持系統的合法使用者是", NULL},
        {SS_LEFT, 106, 96, 340, 16, IDC_STATIC, STATIC, "清華大學", NULL},
        {SS_LEFT, 106, 116, 340, 16, IDC_STATIC, STATIC, "精儀系科協", NULL},
        {SS_BLACKRECT, 106, 138, 374, 2, IDC_STATIC, STATIC, NULL,NULL},
        {SS_LEFT, 106, 152, 130, 16, IDC_STATIC, STATIC, "近堆中可用內存:", NULL},
        {SS_LEFT, 106, 174, 130, 16, IDC_STATIC, STATIC, "遠堆最大內存塊:", NULL},
        {SS_LEFT, 106, 196, 114, 16, IDC_STATIC, STATIC, "數學協處理器:", NULL},
        {SS_LEFT, 106, 218, 114, 16, IDC_STATIC, STATIC, "剩余磁盤空間:", NULL},
        {SS_OWNER, 250, 152, 114, 16, IDC_MEMORY, STATIC, NULL, NULL},
        {SS_OWNER, 250, 174, 114, 16, IDC_FARMEMORY, STATIC, NULL, NULL},
        {SS_OWNER, 250, 196, 114, 16, IDC_MATH, STATIC, NULL, NULL},
        {SS_OWNER, 250, 218, 114, 16, IDC_DISK, STATIC, NULL, NULL},
        {BS_PUSHBUTTON | WS_TABSTOP, 390,167,80,30, IDOK, BUTTON, "確定", NULL},

        // Open and Save As Box's controls
        {SS_LEFT, 14, 16, 92, 18, IDC_STATIC, STATIC, "文件名:", NULL},
        {SS_LEFT, 160, 16, 160, 18, IDC_STATIC, STATIC, "目錄/驅動器:", NULL},
        {ES_LEFT | WS_TABSTOP,  14,40,127,20, IDC_FILENAME, EDIT, NULL, NULL},
        {SS_OWNER, 160, 42, 240, 18, IDC_DIRECTORY, STATIC, NULL, NULL},
        {WS_VSCROLL | WS_BORDER | WS_TABSTOP, 14, 74, 128, 112, IDC_FILE, LISTBOX, NULL, NULL},
        {WS_VSCROLL | WS_BORDER | WS_TABSTOP, 160, 74, 128, 112, IDC_DIR, LISTBOX, NULL, NULL},
        {BS_PUSHBUTTON | WS_TABSTOP, 300,108,100,28, IDOK, BUTTON, "確定", NULL},
        {BS_PUSHBUTTON | WS_TABSTOP, 300,150,100,28, IDCANCEL, BUTTON, "取消", NULL},
        
        // Simple Open and Save file dialog
        {SS_LEFT,  14,12,132,18, IDC_STATIC, STATIC, "當前目錄/驅動器:", NULL},
        {SS_OWNER, 14,36,328,18, IDC_DIRECTORY, STATIC, NULL, NULL},
        {SS_LEFT,  14,60,68,18, IDC_STATIC, STATIC, "文件名:", NULL},
        {ES_LEFT | WS_TABSTOP,  84,60,134,18, IDC_FILENAME, EDIT, NULL, NULL},
        {WS_VSCROLL | WS_BORDER | WS_TABSTOP, 84,94,134,112, IDC_FILE, LISTBOX, NULL, NULL},
        {BS_PUSHBUTTON | WS_TABSTOP, 240,56,100,28, IDOK, BUTTON, "確定", NULL},
        {BS_PUSHBUTTON | WS_TABSTOP, 240,94,100,28, IDCANCEL, BUTTON, "取消", NULL},
    };

PDLGHEADER GUIAPI GetSysDlgHeader(int iID)
{
    int j;
    switch(iID)
    {
        case IDD_SYSABOUTDLG:
            if(SysAboutDlg.pCtrlData == NULL)
            {
                SysAboutDlg.pCtrlData = SysDlgCtrl;

                SysAboutDlg.rx += SysAboutDlg.lx;
                SysAboutDlg.by += SysAboutDlg.ty;
                for(j=0; j<SysAboutDlg.NumOfItems; j++)
                {
                    (SysAboutDlg.pCtrlData + j)->lx = (SysAboutDlg.pCtrlData + j)->lx
                        + SysAboutDlg.lx;
                    (SysAboutDlg.pCtrlData + j)->rx = (SysAboutDlg.pCtrlData + j)->rx
                        + (SysAboutDlg.pCtrlData + j)->lx;
                    (SysAboutDlg.pCtrlData + j)->ty = (SysAboutDlg.pCtrlData + j)->ty
                        + SysAboutDlg.ty + 25;
                    (SysAboutDlg.pCtrlData + j)->by = (SysAboutDlg.pCtrlData + j)->by
                        + (SysAboutDlg.pCtrlData + j)->ty;
                }
            }
            return &SysAboutDlg;
            
        case IDD_OPENFILEDLG:
            if(OpenFileDlg.pCtrlData == NULL)
            {
                OpenFileDlg.pCtrlData = SysDlgCtrl + 17;

                OpenFileDlg.rx += OpenFileDlg.lx;
                OpenFileDlg.by += OpenFileDlg.ty;
                for(j=0; j<OpenFileDlg.NumOfItems; j++)
                {
                    (OpenFileDlg.pCtrlData + j)->lx = (OpenFileDlg.pCtrlData + j)->lx
                        + OpenFileDlg.lx;
                    (OpenFileDlg.pCtrlData + j)->rx = (OpenFileDlg.pCtrlData + j)->rx
                        + (OpenFileDlg.pCtrlData + j)->lx;
                    (OpenFileDlg.pCtrlData + j)->ty = (OpenFileDlg.pCtrlData + j)->ty
                        + OpenFileDlg.ty + 25;
                    (OpenFileDlg.pCtrlData + j)->by = (OpenFileDlg.pCtrlData + j)->by
                        + (OpenFileDlg.pCtrlData + j)->ty;
                }
            }
            return &OpenFileDlg;
            
        case IDD_SIMPLEOPENFILEDLG:
            if(SimpleOpenFileDlg.pCtrlData == NULL)
            {
                SimpleOpenFileDlg.pCtrlData = SysDlgCtrl + 25;

                SimpleOpenFileDlg.rx += SimpleOpenFileDlg.lx;
                SimpleOpenFileDlg.by += SimpleOpenFileDlg.ty;
                for(j=0; j<SimpleOpenFileDlg.NumOfItems; j++)
                {
                    (SimpleOpenFileDlg.pCtrlData + j)->lx = (SimpleOpenFileDlg.pCtrlData + j)->lx
                        + SimpleOpenFileDlg.lx;
                    (SimpleOpenFileDlg.pCtrlData + j)->rx = (SimpleOpenFileDlg.pCtrlData + j)->rx
                        + (SimpleOpenFileDlg.pCtrlData + j)->lx;
                    (SimpleOpenFileDlg.pCtrlData + j)->ty = (SimpleOpenFileDlg.pCtrlData + j)->ty
                        + SimpleOpenFileDlg.ty + 25;
                    (SimpleOpenFileDlg.pCtrlData + j)->by = (SimpleOpenFileDlg.pCtrlData + j)->by
                        + (SimpleOpenFileDlg.pCtrlData + j)->ty;
                }
            }
            return &SimpleOpenFileDlg;
    }
    
    return NULL;
}

/*
 * Function: int FAR SysAboutBoxProc( PDLGHEADER pDlgHeader, UINT uAction, PCTRLDATA pCtrlData, LONG lParam ).
 *      This function process the system about dialog box.
 * Parameters:
 *      pDlgHeader: the pointer to DLGHEADER structure.
 *      uAction: the Message given by DialogBoxParam function;
 *      pCtrlData: the control that have input focus;
 *      lParam: the LONG type parameter.
 * Return: 
 *      DEFAULT: for current action, to handle with a default procdure;
 *      OWNER  : for current action, not to handle with default;
 *      COLSE  : close dialog;
 *      NOCLOSE: do not close dialog.
 */
int FAR SysAboutBoxProc( PDLGHEADER pDlgHeader, UINT uAction, WORD wID, LONG lParam )
{
    char strBuffer[40];
    unsigned maxsize;
    
    switch(uAction)
    {
        case INITDIALOG:
        return DEFAULT;
        
        case COMMAND:
            switch(wID)
            {
                case IDOK:
                case IDCANCEL:
                return CLOSE;
                
                default:
                return DEFAULT;
            }
        break;

        case DRAWCTRL:
            if(wID == IDC_ICON)
            {
                Bitmap((LPSTR)".\\bin\\minigui1.bmp", 14, ((PCTRLDATA)lParam)->lx, ((PCTRLDATA)lParam)->by);
                Bitmap((LPSTR)".\\bin\\minigui2.bmp", 8, ((PCTRLDATA)lParam)->lx, ((PCTRLDATA)lParam)->by);
                return OWNER;
            }
        return DEFAULT;
        
        case DRAWTEXT:
            switch( wID )
            {
                case IDC_MEMORY:
                    sprintf(strBuffer, "%d Kb", _memavl()/1024);
                    cc_wt16(strBuffer, ((PCTRLDATA)lParam)->lx, ((PCTRLDATA)lParam)->ty);
                    return OWNER;
                    
                case IDC_FARMEMORY:
                    _dos_allocmem(0xFFFF, &maxsize);
                    sprintf(strBuffer, "%d Kb", maxsize/64);
                    cc_wt16(strBuffer, ((PCTRLDATA)lParam)->lx, ((PCTRLDATA)lParam)->ty);
                    return OWNER;
                    
                case IDC_MATH:
                    if(_bios_equiplist() & 0x0002)
                        strcpy(strBuffer, "已安裝");
                    else
                        strcpy(strBuffer, "未安裝");
                    cc_wt16(strBuffer, ((PCTRLDATA)lParam)->lx, ((PCTRLDATA)lParam)->ty);
                    return OWNER;
                    
                case IDC_DISK:
                {
                    // fill disk free information
                    struct _diskfree_t diskfree;
                    if (_dos_getdiskfree(_getdrive(), &diskfree) == 0)
                    {
                        sprintf(strBuffer, "%ld Kb",
                            (DWORD)diskfree.avail_clusters *
                            (DWORD)diskfree.sectors_per_cluster *
                            (DWORD)diskfree.bytes_per_sector / (DWORD)1024L);
                    }
                    else
                        strcpy(strBuffer, "無可用空間");
                    cc_wt16(strBuffer, ((PCTRLDATA)lParam)->lx, ((PCTRLDATA)lParam)->ty);
                    return OWNER;
                }
                
            }
        return DEFAULT;
            
        default:
        return DEFAULT;
    }
    return DEFAULT;
}

// static functions used by OpenBoxProc
static void FillFileListBox(PDLGHEADER pDlgHeader, WORD wID, PSTR pFileName)
{
    struct find_t c_file;
    
    if(_dos_findfirst(pFileName, _A_NORMAL, &c_file) == 0)
    {
        if(!(c_file.attrib & _A_SUBDIR))
            AddListBoxItem(pDlgHeader, wID, c_file.name);
    }
    else
        return;

    while( _dos_findnext(&c_file) == 0)
        if(!(c_file.attrib & _A_SUBDIR))
            AddListBoxItem(pDlgHeader, wID, c_file.name);
}

static void FillDirListBox(PDLGHEADER pDlgHeader, WORD wID)
{
    struct find_t c_file;
    
    if(_dos_findfirst("*.*", _A_SUBDIR, &c_file) == 0)
    {
        if(c_file.attrib & _A_SUBDIR)
            if(strcmp(c_file.name, ".") != 0)
                AddListBoxItem(pDlgHeader, wID, c_file.name);
    }
    else
        goto adddrive;
    
    while( _dos_findnext(&c_file) == 0)
    {
        if(c_file.attrib & _A_SUBDIR)
            AddListBoxItem(pDlgHeader, wID, c_file.name);
    }
    
adddrive:
    AddListBoxItem(pDlgHeader, IDC_DIR, "[D]");
    AddListBoxItem(pDlgHeader, IDC_DIR, "[C]");
}

static BOOL CheckFileName(BOOL fOpen, PSTR filename)
{
    if(fOpen)
    {
        if(_access(filename, 0) == -1)
        {
            MessageBox(NULL, "無法找到給定的文件!", "文件打開", MB_OK);
            return FALSE;
        }
    }
    else
    {
        if(_access(filename, 0) == 0)
        {
            if(MessageBox(NULL, "給定的文件已存在,是否替換?", "文件另存為", 
                    MB_YESNO | MB_ICONQUESTION) == IDNO)
            return FALSE;
        }
        if(strpbrk(filename," #%;/\\") != NULL)
        {
            MessageBox(NULL, "由于給定的文件名中有歧義字符,\n無法用給定的文件名創建文件!", "文件另存為", 
                    MB_OK);
            return FALSE;
        }
        {
            char* spExtName;
            int iWholeL, iExtL, iNameL;
                            
            iWholeL = strlen(filename);
            spExtName = strchr(filename, '.');
            if(spExtName == NULL)
            {
                iExtL = 0;
                iNameL = iWholeL - iExtL;
            }
            else
            {
                iExtL = strlen(spExtName + 1);
                iNameL = iWholeL - iExtL - 1;
            }
                
            if(iExtL > 3 || iNameL > 8)
            {
                MessageBox(NULL, "給定的文件名(或后綴名)太長!", "文件另存為",
                    MB_OK);
                return FALSE;
            }
        }
    }
    
    return TRUE;
}

/*
 * Function: int FAR OpenBoxProc( PDLGHEADER pDlgHeader, UINT uAction, PCTRLDATA pCtrlData, LONG lParam ).
 *      This function Process the open file dialog box.
 * Parameters:
 *      pDlgHeader: the pointer to DLGHEADER structure.
 *      uAction: the Message given by DialogBoxParam function;
 *      pCtrlData: the control that have input focus;
 *      lParam: the LONG type parameter.
 * Return: 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影精品一区二区 | 韩国一区二区视频| www.欧美日韩| 欧美一级二级三级蜜桃| 亚洲日本护士毛茸茸| 美女视频黄 久久| 欧美三级蜜桃2在线观看| 久久久另类综合| 热久久国产精品| 91成人免费网站| 国产精品的网站| 国产91在线|亚洲| 欧美成人精品1314www| 亚洲第一久久影院| 成人av免费在线| 国产午夜精品一区二区三区四区| 亚洲成人激情av| 在线观看日韩av先锋影音电影院| 国产亚洲一本大道中文在线| 日本免费新一区视频| 欧亚一区二区三区| 亚洲精品免费看| 99久久伊人久久99| 久久久精品免费网站| 日韩主播视频在线| 91免费在线播放| 国产精品久久久久久亚洲毛片| 激情欧美一区二区| 日韩欧美国产精品一区| 日日夜夜精品视频免费| 欧美亚一区二区| 亚洲午夜电影网| 在线观看欧美精品| 亚洲地区一二三色| 欧美精品丝袜中出| 视频一区二区中文字幕| 在线播放中文字幕一区| 爽好久久久欧美精品| 欧美日韩精品系列| 日韩国产欧美视频| 精品国一区二区三区| 国内偷窥港台综合视频在线播放| 精品日产卡一卡二卡麻豆| 久久精品理论片| 久久九九久精品国产免费直播| 经典三级视频一区| 国产精品色呦呦| 91美女视频网站| 亚洲午夜久久久久久久久电影院| 欧美私人免费视频| 日韩成人一级片| 精品国产一区二区三区忘忧草| 久久99精品久久久久婷婷| 久久久精品黄色| 91麻豆精东视频| 午夜欧美大尺度福利影院在线看| 欧美一区二区在线免费播放 | 久久中文娱乐网| 成人免费视频国产在线观看| 国产精品久久一级| 欧美午夜宅男影院| 九九视频精品免费| 一区二区中文视频| 欧美精品亚洲二区| 高清国产午夜精品久久久久久| 亚洲精品中文字幕在线观看| 欧美日韩国产电影| 成人午夜视频在线观看| 亚洲精品视频在线看| 日韩写真欧美这视频| 福利视频网站一区二区三区| 一区二区三区在线视频播放| 欧美一区二区三区四区久久| 国产精品综合一区二区| 一区二区三区中文字幕| ww亚洲ww在线观看国产| 一本久久精品一区二区| 另类综合日韩欧美亚洲| 亚洲欧美另类小说| 欧美精品一区二区三区高清aⅴ| 99久久亚洲一区二区三区青草| 日韩高清在线不卡| 1024成人网色www| 日韩欧美综合在线| 色屁屁一区二区| 国产成人免费在线观看| 天堂蜜桃91精品| 亚洲色图一区二区| 国产日韩v精品一区二区| 欧洲一区二区三区免费视频| 国产精品亚洲专一区二区三区| 亚洲国产成人av| 亚洲色图欧美在线| 国产欧美日韩久久| 欧美成人精品二区三区99精品| 欧洲视频一区二区| 97久久精品人人澡人人爽| 久久69国产一区二区蜜臀| 亚洲风情在线资源站| 亚洲激情男女视频| 国产精品国产三级国产| 2023国产精品自拍| 日韩欧美色综合| 欧美日韩国产精品成人| 在线亚洲人成电影网站色www| 成人av综合在线| 国产成人免费在线观看不卡| 精品亚洲porn| 久久99日本精品| 美国欧美日韩国产在线播放| 日日嗨av一区二区三区四区| 亚洲综合激情另类小说区| 亚洲特黄一级片| 中文字幕一区日韩精品欧美| 亚洲国产高清不卡| 国产人妖乱国产精品人妖| 精品福利在线导航| 久久久久久久电影| 国产亚洲精品中文字幕| 国产农村妇女毛片精品久久麻豆| 久久久久久久电影| 中文字幕av免费专区久久| 国产日本一区二区| 亚洲丝袜另类动漫二区| 亚洲激情中文1区| 婷婷国产v国产偷v亚洲高清| 性做久久久久久久久| 日韩电影网1区2区| 国产一区二区三区免费播放| 国产老女人精品毛片久久| 国产91在线观看丝袜| 99久精品国产| 欧美日韩一区二区三区不卡| 678五月天丁香亚洲综合网| 67194成人在线观看| 2021中文字幕一区亚洲| 国产精品美女久久久久aⅴ | 久久精品国产第一区二区三区| 美女网站一区二区| 国产99久久久国产精品免费看 | 捆绑调教一区二区三区| 国产精品资源在线看| 成人性色生活片| 欧美性色aⅴ视频一区日韩精品| 欧美日韩美女一区二区| 精品久久久久久久久久久久久久久久久| 久久综合色8888| 中文字幕在线一区| 视频精品一区二区| 国产成人综合精品三级| 91啪九色porn原创视频在线观看| 欧美日韩黄色影视| 国产亚洲欧美一区在线观看| 亚洲精品日韩综合观看成人91| 免费精品视频在线| 99久久免费精品| 欧美电影免费观看高清完整版在线观看 | 日韩美女视频一区二区在线观看| 久久精品一区二区三区av| 亚洲精品一二三| 国产又粗又猛又爽又黄91精品| 色综合天天综合网天天狠天天 | 亚洲va欧美va人人爽| 粉嫩嫩av羞羞动漫久久久 | 成人精品免费网站| 日韩午夜在线播放| 亚洲激情网站免费观看| 精品一区二区三区在线播放视频| 99精品黄色片免费大全| 欧美一级日韩一级| 一区二区高清视频在线观看| 国产一区二区三区不卡在线观看| 欧美三级日韩三级国产三级| 中文字幕精品一区| 精品在线你懂的| 欧美人妇做爰xxxⅹ性高电影| 国产精品乱人伦| 精品夜夜嗨av一区二区三区| 欧美日韩综合色| 欧美图区在线视频| 7777精品伊人久久久大香线蕉的| 国产精品嫩草影院av蜜臀| 裸体在线国模精品偷拍| 欧美日韩一区二区在线观看| 亚洲欧美日韩久久精品| 国产精品一区二区黑丝| 欧美变态tickle挠乳网站| 亚洲成人一区在线| 色综合天天综合网天天狠天天| 久久久精品黄色| 国产美女在线观看一区| 精品对白一区国产伦| 另类小说综合欧美亚洲| 欧美区视频在线观看| 亚洲一区二区高清| 欧美性生交片4| 亚洲bt欧美bt精品| 欧美色图激情小说| 亚洲无人区一区| 欧美日韩你懂的|