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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.cpp

?? jedit 一個小型java編譯器的源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************\
*
*  文件名:    main.cpp
*  目的:	  
*  使用說明:  在保持此程序完整性的情況下,你可以任意傳播它。你也可以修改它
*			  來為你服務(wù),如果你要將此程序用于商業(yè)目的,請告知我
*
*  版權(quán)所有	 2002  張?jiān)?*
\******************************************************************************/
#include<windows.h>
#include<tchar.h>
#include<shlobj.h>

#include<string>
#include"resource.h"
#include"interface.h"	  
#include"MDIWnd.h"   
#include"iniload.h" 

#define ID_STATUSBAR	20000
#define WM_SAVEFILE	20001

char JDKPath[MAX_PATH]="";
char APPPath[MAX_PATH]="";
char InitDir[MAX_PATH]="";
char ClassPath[MAX_PATH]="";

HWND         hwndClient ;
HWND		 hStatusBar;
DockCtrl DC;
set<MDIWnd> MDIWndContainer;
set<MDIWnd> WorkSpace;


FEdit *fdOutput;

//全局變量
HINSTANCE hInst;				
HWND Mainhwnd;
HWND hwndFrame;

HWND hwndList;
//函數(shù)聲明
LRESULT CALLBACK FrameWndProc  (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK ChildWndProc  (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK NewWndProc  (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK SettingProc  (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK OutputProc  (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK WorkSpaceProc  (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK ReplaceProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK GotoLineProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK FindProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK AboutProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);



void CreateMDIChild(char* filename);
JavaEdit* GetJEDIT(HWND hwnd);
void InitStatusBar(HWND hwnd);
void CompileProg(char *filename);
void RunProg(char *filename,bool=false);

bool ShowOpenDialog(HWND hwnd,char* filename,char *filter);
bool ShowSaveDialog(HWND hwnd,char* filename);

void GetWndRect(RECT *rect);
bool WriteFile(char* pathname,char* filename,HWND hwnd);
MDIWnd*	  GetMDIWnd(HWND hwnd);
int WINAPI WinMain (HINSTANCE hInstance,
					HINSTANCE,
                    PSTR szCmdLine, 
					int iCmdShow)
{
     HWND        hwndFrame, hwndClient ;
     MSG         Msg ;
	 HACCEL		 hAccel;
     WNDCLASSEX  wndclass ;

	 hInst=hInstance;

     // 注冊框架窗口類

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = FrameWndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON)) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1) ;
     wndclass.lpszMenuName  = MAKEINTRESOURCE(IDM_MAIN);
     wndclass.lpszClassName = _T("MdiFrame");
     wndclass.hIconSm       = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON)) ;

     RegisterClassEx (&wndclass) ;

     // 注冊子窗口類

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = ChildWndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = sizeof (HANDLE) ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (hInstance,MAKEINTRESOURCE(IDI_ICONJAVA)) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = _T("ChildClass");
     wndclass.hIconSm       = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICONJAVA)) ;

     RegisterClassEx (&wndclass) ;
     // 創(chuàng)建框架窗口

     hwndFrame = CreateWindowEx (WS_EX_CLIENTEDGE,_T("MdiFrame"), _T("JEdit"),
                               WS_CAPTION|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU| WS_CLIPCHILDREN|WS_THICKFRAME,
                               0, 0,
                               GetSystemMetrics(SM_CXSCREEN),
							   GetSystemMetrics(SM_CYSCREEN)-30,
                               NULL, NULL, hInstance, NULL) ;

    hwndClient = GetWindow (hwndFrame, GW_CHILD) ;

    ShowWindow (hwndFrame, iCmdShow) ;
    UpdateWindow (hwndFrame) ;
	Mainhwnd=hwndFrame;

	IniLoad il;
	il.Load("ini\\javaconf.ini");
	string s;
	il.Get("javahome",s);
	strcpy(JDKPath,s.c_str());
	il.Get("bgcolor",s);
	JavaEdit::hBgColor=atoi(s.c_str());
	il.Get("textcolor",s);
	JavaEdit::hTextColor=atoi(s.c_str());
	il.Get("keywordcolor",s);
	JavaEdit::KeywordColor=atoi(s.c_str());
	il.Get("commentcolor",s);
	JavaEdit::CommentColor=atoi(s.c_str());
	il.Get("initdir",s);
	strcpy(InitDir,s.c_str());
	il.Get("classpath",s);
	strcpy(ClassPath,s.c_str());
	il.Get("bgimage",s);
	strcpy(JavaEdit::BGFile,s.c_str());

	GetCurrentDirectory(MAX_PATH,APPPath);

	RECT CRect={0,0,0,22};
	DC.CreateEx(hInst,hwndFrame,CRect,0);
	DC.ShowWindow(SW_SHOW);
	DC.UpdateWindow();
	DC.Add(hInst,"輸出",0,GetSystemMetrics(SM_CYSCREEN)-102,GetSystemMetrics(SM_CXSCREEN),200,DOCK_BOTTOM,DOCK_BOTTOM,OutputProc,true);
   	DC.Add(hInst,"工作區(qū)",0,0,200,400,DOCK_LEFT,DOCK_LEFT,WorkSpaceProc,true);

    hAccel=LoadAccelerators(hInstance,_T("MAINMENU"));
   	if(hAccel==NULL)
		MessageBox(hwndFrame,_T("無法加載加速鍵"),_T("錯誤"),NULL);
	while(GetMessage(&Msg,NULL,0,0))
	{
		if(!TranslateAccelerator(hwndFrame,hAccel,&Msg))
		{
			TranslateMessage(&Msg);
			DispatchMessage(&Msg);
		}
	}
	for(int i=0;i<MDIWndContainer.length();i++)
			delete MDIWndContainer[i].JEdit;
	delete fdOutput;
	return Msg.wParam ;
}
LRESULT CALLBACK FrameWndProc (HWND hwnd, UINT iMsg, WPARAM wParam,
                                                     LPARAM lParam)
{
    CLIENTCREATESTRUCT  css;
    char FileName[MAX_PATH]="";
	int		i;
	HWND hwndChild;
	JavaEdit *JEdit;
	UINT nHitTest;
	CHOOSECOLOR cc;
	COLORREF rgbCustom[16] = {0};
	MDIWnd *mdiWnd;
	WORD x,y;
	RECT ClientRect;
    switch (iMsg)
    {
    case WM_CREATE :         

        css.hWindowMenu  = NULL ;
        css.idFirstChild = 100 ;
		//創(chuàng)建客戶區(qū)窗口
		hwndClient = CreateWindow( _T("MDICLIENT"), (LPCTSTR) NULL, 
            WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, 
            0, 0, 0, 0, hwnd, (HMENU) 0xCAC, hInst, (LPSTR) &css); 
		//顯示客戶區(qū)
        ShowWindow(hwndClient, SW_SHOW);
		EnableMenuItem(GetMenu(hwnd),IDM_UNDO,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_REDO,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_CUT,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_COPY,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_PASTE,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_DELETE,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_FIND,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_REPLACE,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_COMPILE,MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(GetMenu(hwnd),IDM_RUN,MF_BYCOMMAND|MF_GRAYED);
        hStatusBar=CreateStatusWindow(WS_CHILD|CCS_BOTTOM|WS_THICKFRAME|WS_VISIBLE,(LPCTSTR)NULL,hwnd,ID_STATUSBAR);
		InitStatusBar(hwnd);
		return 0 ;
	case WM_DWPOSCHANGED:
		hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
		mdiWnd=GetMDIWnd(hwndChild);
		if(mdiWnd!=NULL&&mdiWnd->max==true)
		{
			GetWndRect(&ClientRect);
			DC.GetRect(ClientRect);
			MoveWindow(hwndChild,ClientRect.left,ClientRect.top-GetSystemMetrics(SM_CYMIN),
				ClientRect.right-ClientRect.left,ClientRect.bottom-ClientRect.top+GetSystemMetrics(SM_CYMIN),
				true);
		}
		return 0;
	case WM_WINDOWPOSCHANGED:
		hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
		mdiWnd=GetMDIWnd(hwndChild);
		DefWindowProc(hwnd,WM_WINDOWPOSCHANGED,wParam,lParam);
		if(mdiWnd!=NULL&&mdiWnd->max==true)
		{
			GetWndRect(&ClientRect);
			DC.GetRect(ClientRect);
			MoveWindow(hwndChild,ClientRect.left,ClientRect.top-GetSystemMetrics(SM_CYMIN),
				ClientRect.right-ClientRect.left,ClientRect.bottom-ClientRect.top+GetSystemMetrics(SM_CYMIN),
				true);
		}
		nHitTest=SendMessage(hwnd,WM_NCHITTEST,wParam,lParam);
		if(nHitTest==HTMINBUTTON)
			return 0;
		if(DC.hWnd!=NULL)
		{
			SendMessage(DC.hWnd,WM_PARENTPOSCHANGED,0,0);
		}
		InitStatusBar(hwnd);
		return 0;
	case WM_NCLBUTTONDOWN:
		x=LOWORD(lParam);
		y=HIWORD(lParam);
		nHitTest=DefWindowProc(hwnd,WM_NCHITTEST,wParam,lParam);
		DefWindowProc(hwnd,WM_NCLBUTTONDOWN,wParam,lParam);
		if(nHitTest==5&&y>20&&x>GetSystemMetrics(SM_CXSCREEN)-40)
		{
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			mdiWnd=GetMDIWnd(hwndChild);
			if(mdiWnd!=NULL)
				mdiWnd->max=false;
		}
		return 0;
	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
			//新建消息
		case IDM_NEW:
			DialogBox(hInst,MAKEINTRESOURCE(IDD_NEW),hwnd,(DLGPROC)NewWndProc);
			break;
		case IDM_OPEN:
			if(ShowOpenDialog(hwnd,FileName,"Java源程序(*.JAVA)\0*.java\0"))
			{
				strcpy(InitDir,FileName);
				CreateMDIChild(FileName);
			}
			break;
		case IDM_SAVE:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			SendMessage(hwndChild,WM_SAVEFILE,0L,0L);
			break;
		case IDM_SAVEALL:
			for(i=0;i<MDIWndContainer.length();i++)
				SendMessage(MDIWndContainer[i].hwnd,WM_SAVEFILE,0L,0L);
			break;
		case IDM_SAVEAS:
			if(ShowSaveDialog(hwnd,FileName))
			{
				hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
				JEdit=GetJEDIT(hwndChild);
				strcpy(JEdit->FileName,FileName);
				JEdit->SaveFile();
				SetWindowText(hwndChild,FileName);
			}
			break;
		case IDM_COMPILE:
			if(strcmp(JDKPath,"")==0)
			{
				MessageBox(hwnd,"請指定正確的編譯器路徑!","錯誤",
					MB_OK|MB_ICONERROR);
				return 0;
			}
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			SendMessage(hwndChild,WM_SAVEFILE,0L,0L);
		
			JEdit=GetJEDIT(hwndChild);
			if(JEdit==NULL)
				return false;
			DC.PopUp("輸出");
			fdOutput->InitBuffer();
			fdOutput->Insert("正在編譯...\n");
			CompileProg(JEdit->FileName);
			break;
		case IDM_RUN:
			if(strcmp(JDKPath,"")==0)
			{
				MessageBox(hwnd,"請指定正確的編譯器路徑!","錯誤",
					MB_OK|MB_ICONERROR);
				return 0;
			}
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			SendMessage(hwndChild,WM_SAVEFILE,0L,0L);
		
			JEdit=GetJEDIT(hwndChild);
			if(JEdit==NULL)
				return false;
			RunProg(JEdit->FileName);
			break;
		case IDM_RUNAPPLET:
			if(strcmp(JDKPath,"")==0)
			{
				MessageBox(hwnd,"請指定正確的編譯器路徑!","錯誤",
					MB_OK|MB_ICONERROR);
				return 0;
			}
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			SendMessage(hwndChild,WM_SAVEFILE,0L,0L);
		
			JEdit=GetJEDIT(hwndChild);
			if(JEdit==NULL)
				return false;
			RunProg(JEdit->FileName,true);
			break;
		case IDM_SETTING:
			DialogBox(hInst,MAKEINTRESOURCE(IDD_SETTING),hwnd,(DLGPROC)SettingProc);
			break;
			//窗口重疊
		case IDM_CASCADE:
			SendMessage(hwndClient,WM_MDICASCADE,0,0L);
			break;
			//窗口并列
		case IDM_TILE:
			SendMessage(hwndClient,WM_MDITILE,0,0L);
			break;
			//激活下一個窗口
		case IDM_NEXT:
			SendMessage(hwndClient,WM_MDINEXT,0,0L);
			break;
			//關(guān)閉當(dāng)前窗口
		case IDM_CLOSE:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			SendMessage(hwndClient,WM_MDINEXT,(WPARAM)hwndChild,0L);
			SendMessage(hwndClient,WM_MDIDESTROY,(WPARAM)hwndChild,0L);
			break;
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUT), hwnd, (DLGPROC)AboutProc );
			break;
		case IDM_QUIT:
			PostQuitMessage(0);
			break;
		case IDM_TEXTCOLOR:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			memset(&cc,0,sizeof(cc));
			cc.lStructSize=sizeof(CHOOSECOLOR);
			cc.hwndOwner=hwnd;
			cc.rgbResult=JavaEdit::hTextColor;
			cc.Flags=CC_FULLOPEN|CC_RGBINIT;
			cc.lpCustColors=rgbCustom;
			if(ChooseColor(&cc))
			{
				JavaEdit::hTextColor=cc.rgbResult;
				if(JEdit!=NULL)
					InvalidateRect(JEdit->m_hWnd,NULL,false);
			}
			break;
		case IDM_KWCOLOR:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			memset(&cc,0,sizeof(cc));
			cc.lStructSize=sizeof(CHOOSECOLOR);
			cc.hwndOwner=hwnd;
			cc.rgbResult=JavaEdit::KeywordColor;
			cc.Flags=CC_FULLOPEN|CC_RGBINIT;
			cc.lpCustColors=rgbCustom;
			if(ChooseColor(&cc))
			{
				JavaEdit::KeywordColor=cc.rgbResult;
				if(JEdit!=NULL)
					InvalidateRect(JEdit->m_hWnd,NULL,false);
			}
			break;
		case IDM_COMMENTCOLOR:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			memset(&cc,0,sizeof(cc));
			cc.lStructSize=sizeof(CHOOSECOLOR);
			cc.hwndOwner=hwnd;
			cc.rgbResult=JavaEdit::CommentColor;
			cc.Flags=CC_FULLOPEN|CC_RGBINIT;
			cc.lpCustColors=rgbCustom;
			if(ChooseColor(&cc))
			{
				JavaEdit::CommentColor=cc.rgbResult;
				if(JEdit!=NULL)
					InvalidateRect(JEdit->m_hWnd,NULL,false);
			}
			break;
		case IDM_BGCOLOR:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			memset(&cc,0,sizeof(cc));
			cc.lStructSize=sizeof(CHOOSECOLOR);
			cc.hwndOwner=hwnd;
			cc.rgbResult=JavaEdit::hBgColor;
			cc.Flags=CC_FULLOPEN|CC_RGBINIT;
			cc.lpCustColors=rgbCustom;
			if(ChooseColor(&cc))
			{
				JavaEdit::hBgColor=cc.rgbResult;
				JavaEdit::hBackGround=NULL;
				strcpy(JavaEdit::BGFile,"");
				if(JEdit!=NULL)
					InvalidateRect(JEdit->m_hWnd,NULL,false);
			}
			break;
		case IDM_BGPIC:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(ShowOpenDialog(hwnd,JavaEdit::BGFile,"位圖文件(*.BMP)\0*.bmp\0"))
			{
				if(JavaEdit::hBackGround!=NULL)
					DeleteObject(JavaEdit::hBackGround);
				JavaEdit::hBackGround=(HBITMAP)LoadImage(hInst,
					JavaEdit::BGFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
				if(JavaEdit::hBackGround==NULL)
					MessageBox(hwnd,"無法讀取指定文件!","錯誤",MB_OK);
				if(JEdit!=NULL)
					InvalidateRect(JEdit->m_hWnd,NULL,false);
			}
			break;
		case IDM_DEFAULT:
			JavaEdit::hTextColor=RGB(0,0,0);
			JavaEdit::hBgColor=RGB(255,255,255);
			JavaEdit::KeywordColor=RGB(0,0,255);
			JavaEdit::CommentColor=RGB(0,128,0);
			strcpy(JavaEdit::BGFile,"");
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(JEdit!=NULL)
					InvalidateRect(JEdit->m_hWnd,NULL,false);
			break;
		case IDM_GOTOLINE:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_GOTOLINE), hwnd, (DLGPROC)GotoLineProc );
			break;
		case IDM_FIND:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_FIND), hwnd, (DLGPROC)FindProc );
			break;
		case IDM_REPLACE:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_REPLACE), hwnd, (DLGPROC)ReplaceProc );
			break;
		case IDM_UNDO:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(JEdit)
				JEdit->Undo();
			break;
		case IDM_REDO:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(JEdit)
				JEdit->Redo();
			break;
		case IDM_CUT:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(JEdit)
			{
				JEdit->CopySel();
				JEdit->DeleteSel();
			}
			SendMessage(hwndChild,WM_LCCHANGED,0,0);
			break;
		case IDM_COPY:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(JEdit)
				JEdit->CopySel();
			break;
		case IDM_PASTE:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);
			if(JEdit)
			{
				JEdit->DeleteSel();
				JEdit->PasteChar();
			}
			SendMessage(hwndChild,WM_LCCHANGED,0,0);
			break;
		case IDM_DELETE:
			hwndChild=(HWND)SendMessage(hwndClient,WM_MDIGETACTIVE,0,0L);
			JEdit=GetJEDIT(hwndChild);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99国产精品免费| 美女国产一区二区三区| 91超碰这里只有精品国产| 老司机精品视频导航| 日韩一区欧美一区| 精品国产免费人成在线观看| 91免费在线视频观看| 麻豆国产精品视频| 一区二区三区在线免费| 久久久久国产免费免费| 欧美日韩精品一区二区| 成a人片亚洲日本久久| 麻豆精品视频在线观看| 亚洲综合久久av| 中文在线一区二区| 欧美电视剧在线观看完整版| 欧美亚洲综合网| 成人白浆超碰人人人人| 国产综合色精品一区二区三区| 亚洲一区视频在线| 亚洲视频在线一区观看| 久久精品一区二区| 日韩欧美精品在线视频| 欧美老人xxxx18| 日本大香伊一区二区三区| 成人激情开心网| 国产高清成人在线| 麻豆精品新av中文字幕| 视频一区欧美日韩| 性做久久久久久免费观看| 亚洲免费观看高清在线观看| 国产精品你懂的| 欧美国产欧美综合| 中文字幕欧美区| 国产亚洲一区二区三区四区 | 国产精品性做久久久久久| 日韩综合一区二区| 婷婷成人综合网| 亚洲第一二三四区| 亚洲国产视频在线| 亚洲成av人片在线| 日韩黄色免费网站| 日本不卡的三区四区五区| 丝袜诱惑亚洲看片| 日韩精品亚洲专区| 免费看欧美女人艹b| 美洲天堂一区二卡三卡四卡视频| 免费观看在线色综合| 精品亚洲成av人在线观看| 国产美女主播视频一区| 国产美女av一区二区三区| 国产精品123区| 成人手机电影网| 色综合网站在线| 久久久三级国产网站| 精品国产乱码久久久久久夜甘婷婷| 日韩一区国产二区欧美三区| 精品国产免费久久| 欧美经典三级视频一区二区三区| 中文字幕不卡在线播放| 亚洲视频精选在线| 亚洲国产日韩精品| 久久成人久久爱| 顶级嫩模精品视频在线看| 91在线丨porny丨国产| 欧洲激情一区二区| 日韩欧美国产小视频| 国产亚洲一区字幕| 亚洲男人都懂的| 偷拍与自拍一区| 国产成人在线观看免费网站| 91蜜桃视频在线| 欧美一区二区在线播放| 久久你懂得1024| 亚洲午夜一区二区三区| 激情av综合网| 色视频欧美一区二区三区| 正在播放亚洲一区| 国产日韩欧美精品一区| 亚洲精品久久7777| 久久99精品久久久久久久久久久久| 国产成人精品免费一区二区| 91国产丝袜在线播放| 日韩精品一区二区三区中文精品| 国产精品丝袜在线| 午夜久久久久久电影| 风间由美性色一区二区三区| 在线观看三级视频欧美| 久久综合色播五月| 一二三四区精品视频| 国产一区二区三区在线观看免费视频| av在线不卡免费看| 日韩午夜激情视频| 亚洲精品国产一区二区精华液 | 久久久久久影视| 亚洲一区二区三区爽爽爽爽爽| 国产一区二区三区| 欧美丝袜丝交足nylons图片| 国产日韩av一区二区| 日韩精品1区2区3区| 97久久精品人人澡人人爽| 欧美成人免费网站| 亚洲激情校园春色| 国产成人综合网站| 欧美一区二区在线不卡| 一区二区久久久| 成人丝袜高跟foot| 欧美tk丨vk视频| 亚洲va在线va天堂| 一本色道亚洲精品aⅴ| 久久久99久久| 卡一卡二国产精品| 欧美日韩一区中文字幕| 亚洲天堂精品视频| 国产成人av自拍| 久久综合狠狠综合久久激情 | 亚洲免费在线视频一区 二区| 极品美女销魂一区二区三区| 欧美三级日韩三级| 亚洲伦在线观看| jiyouzz国产精品久久| 国产日本亚洲高清| 国产麻豆精品theporn| 欧美videossexotv100| 轻轻草成人在线| 884aa四虎影成人精品一区| 亚洲午夜久久久久久久久久久| 99国产精品国产精品久久| 中文一区二区在线观看| 国产一区二区精品在线观看| 日韩一级片网址| 蜜臀av性久久久久av蜜臀妖精| 欧美日本在线播放| 午夜精品久久久久久久久| 欧美三电影在线| 夜夜嗨av一区二区三区中文字幕| 99免费精品视频| 亚洲人午夜精品天堂一二香蕉| 91女神在线视频| 亚洲精品菠萝久久久久久久| 色婷婷av一区二区三区软件| 亚洲欧美一区二区三区孕妇| 99精品欧美一区| 亚洲免费观看高清完整版在线观看熊| 91亚洲精品乱码久久久久久蜜桃| 亚洲欧洲精品天堂一级| 色综合久久久久网| 亚洲精品国产无天堂网2021| 欧美性受极品xxxx喷水| 石原莉奈在线亚洲二区| 欧美一级午夜免费电影| 精品一区二区在线免费观看| 欧美成人在线直播| 国内不卡的二区三区中文字幕| 精品99999| 波多野结衣在线aⅴ中文字幕不卡| 国产精品福利一区二区三区| 色域天天综合网| 日韩国产一二三区| 久久亚洲精精品中文字幕早川悠里| 国产精品综合久久| 国产精品久久久爽爽爽麻豆色哟哟| 91免费看片在线观看| 亚洲一区二区三区激情| 欧美一二三区精品| 岛国一区二区三区| 一级精品视频在线观看宜春院| 3atv在线一区二区三区| 国产高清久久久| 一区二区三区高清在线| 欧美一区二区视频免费观看| 国产精品99久| 一区二区三区精密机械公司| 欧美一区二区三区影视| 国产精品99久| 亚洲国产综合91精品麻豆| 精品久久久久久久久久久久包黑料 | 欧美一区二区三区四区高清| 国产资源在线一区| 亚洲老司机在线| 日韩欧美在线不卡| av在线不卡电影| 日本欧美大码aⅴ在线播放| 国产精品丝袜久久久久久app| 欧美无乱码久久久免费午夜一区| 精品一区二区免费| 一区二区在线观看免费| 欧美精品一区二区久久婷婷| 91麻豆免费观看| 极品少妇xxxx精品少妇偷拍| 亚洲欧美偷拍三级| 欧美videos中文字幕| 91国偷自产一区二区三区观看| 九九精品视频在线看| 一区二区成人在线视频| 久久久久久久久久看片| 欧美日韩在线观看一区二区| 成人污污视频在线观看| 久久国产精品一区二区| 亚洲一卡二卡三卡四卡无卡久久|