久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
基于ucgui的計(jì)算器界面 含部分源碼
[打印本頁(yè)]
作者:
51hei學(xué)習(xí)技術(shù)中
時(shí)間:
2016-10-11 17:47
標(biāo)題:
基于ucgui的計(jì)算器界面 含部分源碼
0.png
(239.2 KB, 下載次數(shù): 35)
下載附件
2016-10-11 17:46 上傳
#include "stm32f10x.h"
#include <stdio.h>
#include "tsc2046.h"
#include "GUI.h"
#include "Time.h"
#include "WM.h"
#include "BUTTON.h"
#include "EDIT.h"
#include "FRAMEWIN.h"
#include <stddef.h>
#include <string.h>
#include "DIALOG.h"
#include <stdlib.h>
#include "Calculator.h"
#define GUI_ID_BUTTON10 GUI_ID_USER+1
#define GUI_ID_BUTTON11 GUI_ID_USER+2
#define GUI_ID_BUTTON12 GUI_ID_USER+3
#define GUI_ID_BUTTON13 GUI_ID_USER+4
#define GUI_ID_BUTTON14 GUI_ID_USER+5
#define GUI_ID_BUTTON15 GUI_ID_USER+6
#define GUI_ID_BUTTON16 GUI_ID_USER+7
#define GUI_ID_BUTTON17 GUI_ID_USER+8
#define GUI_ID_BUTTON18 GUI_ID_USER+9
#define GUI_ID_BUTTON19 GUI_ID_USER+10
char DisplayContent[100];
WM_HWIN CalculatorDlg;
void OperateLeftToRight(char *buf);
typedef struct{
double operate1; //第一個(gè)操作數(shù)
double operate2; //第二個(gè)操作數(shù)
double result; //操作結(jié)果
uint8_t operatenum; //當(dāng)前操作數(shù)
#define ADD 0x01 //加法
#define SUB 0x02 //減法
#define MUL 0x04 //乘法
#define DIV 0x08 //除法
#define EQUAL 0x10 //等于
#define NUMBER 0x20 //數(shù)字
#define OPERATE 0x40 //運(yùn)算符
#define DOT 0x80 //小數(shù)點(diǎn)
uint8_t pressedsymbol; //當(dāng)前按下的符號(hào)
uint8_t IllegalExpression; //是否是合法的表達(dá)式
char keyval; //當(dāng)前按下的按鈕
uint8_t close;
}CALCULATE;
CALCULATE Calculate={
0,
0,
0,
0,
0,
0,
0,
0,
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ FRAMEWIN_CreateIndirect, "Calculator", 0, 0, 0, 240,320,FRAMEWIN_CF_ACTIVE,0},
{ BUTTON_CreateIndirect, "7", GUI_ID_BUTTON0, 10, 100, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "8", GUI_ID_BUTTON1, 65, 100, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "9", GUI_ID_BUTTON2, 120, 100, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "*", GUI_ID_BUTTON3, 175, 100, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "4", GUI_ID_BUTTON4, 10, 140, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "5", GUI_ID_BUTTON5, 65, 140, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "6", GUI_ID_BUTTON6, 120, 140, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "/", GUI_ID_BUTTON7, 175, 140, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "1", GUI_ID_BUTTON8, 10, 180, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "2", GUI_ID_BUTTON9, 65, 180, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "3", GUI_ID_BUTTON10, 120, 180, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "+", GUI_ID_BUTTON11, 175, 180, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "0", GUI_ID_BUTTON12, 10, 220, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "=", GUI_ID_BUTTON13, 65, 220, 45, 25, 0,0},
{ BUTTON_CreateIndirect, ".", GUI_ID_BUTTON14, 120, 220, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "-", GUI_ID_BUTTON15, 175, 220, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "Ac", GUI_ID_BUTTON16, 10,260,45, 25, 0,0},
{ BUTTON_CreateIndirect, "", GUI_ID_BUTTON17, 65, 260, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "", GUI_ID_BUTTON18, 120, 260, 45, 25, 0,0},
{ BUTTON_CreateIndirect, "", GUI_ID_BUTTON19, 175,260,45, 25, 0,0},
{ EDIT_CreateIndirect, 0, GUI_ID_EDIT0, 16, 3, 200,38, 0,0}
};
static void InitDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
//FRAMEWIN
FRAMEWIN_SetClientColor(hWin,GUI_GREEN);
FRAMEWIN_SetFont(hWin,&GUI_FontComic18B_1);
FRAMEWIN_SetTextAlign(hWin,GUI_TA_VCENTER|GUI_TA_CENTER);
FRAMEWIN_AddCloseButton(hWin,FRAMEWIN_BUTTON_RIGHT,10);
FRAMEWIN_SetTitleHeight(hWin,18);
//GUI_ID_BUTTON0
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_FontComic24B_1);
//GUI_ID_BUTTON1
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),&GUI_FontComic24B_1);
//GUI_ID_BUTTON2
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),&GUI_FontComic24B_1);
//GUI_ID_BUTTON3
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_RED);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),&GUI_FontComic24B_1);
//GUI_ID_BUTTON4
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),&GUI_FontComic24B_1);
//GUI_ID_BUTTON5
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),&GUI_FontComic24B_1);
//GUI_ID_BUTTON6
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON6),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON6),&GUI_FontComic24B_1);
//GUI_ID_BUTTON7
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON7),BUTTON_CI_UNPRESSED,GUI_RED);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON7),&GUI_FontComic24B_1);
//GUI_ID_BUTTON8
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON8),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON8),&GUI_FontComic24B_1);
//GUI_ID_BUTTON9
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON9),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON9),&GUI_FontComic24B_1);
//GUI_ID_BUTTON10
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON10),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON10),&GUI_FontComic24B_1);
//GUI_ID_BUTTON11
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON11),BUTTON_CI_UNPRESSED,GUI_RED);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON11),&GUI_FontComic24B_1);
//GUI_ID_BUTTON12
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON12),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON12),&GUI_FontComic24B_1);
//GUI_ID_BUTTON13
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON13),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON13),&GUI_FontComic24B_1);
//GUI_ID_BUTTON14
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON14),BUTTON_CI_UNPRESSED,GUI_CYAN);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON14),&GUI_FontComic24B_1);
//GUI_ID_BUTTON15
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON15),BUTTON_CI_UNPRESSED,GUI_RED);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON15),&GUI_FontComic24B_1);
//GUI_ID_BUTTON16
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON16),BUTTON_CI_UNPRESSED,GUI_RED);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON16),&GUI_FontComic24B_1);
//GUI_ID_EDIT0
EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT0),100);
EDIT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_EDIT0),EDIT_CI_ENABLED,GUI_WHITE);
EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT0),&GUI_FontComic18B_1);
EDIT_SetTextAlign(WM_GetDialogItem(hWin,GUI_ID_EDIT0),GUI_TA_VCENTER|GUI_TA_RIGHT);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),DisplayContent);
}
static void _cbCallback(WM_MESSAGE * pMsg)
{
uint16_t NCode, Id;
char str[8];
uint8_t i;
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_DELETE:
Calculate.close=1;
break;
case WM_INIT_DIALOG:
InitDialog(pMsg);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc); //控件的id
NCode = pMsg->Data.v; //通知代碼
switch (Id)
{
case GUI_ID_OK:
if(NCode==WM_NOTIFICATION_RELEASED){
GUI_EndDialog(hWin, 0);
}
break;
case GUI_ID_CANCEL:
if(NCode==WM_NOTIFICATION_RELEASED){
GUI_EndDialog(hWin, 1);
}
break;
case GUI_ID_BUTTON0: // 7
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='7';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON1: // 8
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='8';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON2:// 9
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='9';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON4: // 4
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='4';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON5: //5
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='5';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON6:// 6
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='6';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON8://1
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='1';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON9://2
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='2';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON10://3
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='3';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON12://0
if(NCode==WM_NOTIFICATION_RELEASED){
Calculate.keyval='0';
Calculate.pressedsymbol |= NUMBER;
}
break;
case GUI_ID_BUTTON14:// .
if(NCode==WM_NOTIFICATION_RELEASED){
if((Calculate.pressedsymbol&NUMBER)==NUMBER&&(Calculate.pressedsymbol&DOT)!=DOT){
Calculate.keyval='.';
Calculate.pressedsymbol |= DOT;
Calculate.pressedsymbol &= ~NUMBER;
strcat(DisplayContent,&Calculate.keyval);
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.keyval=0;
}
}
break;
case GUI_ID_BUTTON7:// /
if(NCode==WM_NOTIFICATION_RELEASED){
if((Calculate.pressedsymbol&NUMBER)==NUMBER&&(Calculate.pressedsymbol&OPERATE)!=OPERATE){
Calculate.keyval='/';
Calculate.pressedsymbol |= OPERATE;
Calculate.pressedsymbol &= ~NUMBER;
Calculate.pressedsymbol &= ~DOT; //接下來(lái)可以輸入小數(shù)點(diǎn)
strcat(DisplayContent,&Calculate.keyval);
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.keyval=0;
}
}
break;
case GUI_ID_BUTTON3:// *
if(NCode==WM_NOTIFICATION_RELEASED){
if((Calculate.pressedsymbol&NUMBER)==NUMBER&&(Calculate.pressedsymbol&OPERATE)!=OPERATE){
Calculate.keyval='*';
Calculate.pressedsymbol |= OPERATE;
Calculate.pressedsymbol &= ~NUMBER;
Calculate.pressedsymbol &= ~DOT; //接下來(lái)可以輸入小數(shù)點(diǎn)
strcat(DisplayContent,&Calculate.keyval);
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.keyval=0;
}
}
break;
case GUI_ID_BUTTON15:// -
if(NCode==WM_NOTIFICATION_RELEASED){
if((Calculate.pressedsymbol&NUMBER)==NUMBER&&(Calculate.pressedsymbol&OPERATE)!=OPERATE){
Calculate.keyval='-';
Calculate.pressedsymbol |= OPERATE;
Calculate.pressedsymbol &= ~NUMBER;
Calculate.pressedsymbol &= ~DOT; //接下來(lái)可以輸入小數(shù)點(diǎn)
strcat(DisplayContent,&Calculate.keyval);
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.keyval=0;
}
}
break;
case GUI_ID_BUTTON11:// +
if(NCode==WM_NOTIFICATION_RELEASED){
if((Calculate.pressedsymbol&NUMBER)==NUMBER&&(Calculate.pressedsymbol&OPERATE)!=OPERATE){
Calculate.keyval='+';
Calculate.pressedsymbol |= OPERATE;
Calculate.pressedsymbol &= ~NUMBER;
Calculate.pressedsymbol &= ~DOT; //接下來(lái)可以輸入小數(shù)點(diǎn)
strcat(DisplayContent,&Calculate.keyval);
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.keyval=0;
}
}
break;
case GUI_ID_BUTTON16:// c
if(NCode==WM_NOTIFICATION_RELEASED){
strcpy(DisplayContent,"");
Calculate.result=0;
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.pressedsymbol &= ~NUMBER;
Calculate.keyval=0;
}
break;
case GUI_ID_BUTTON13:// =
if(NCode==WM_NOTIFICATION_RELEASED)
{
if(strlen(DisplayContent)>0)
{
OperateLeftToRight(DisplayContent);
if((Calculate.result-(uint16_t)Calculate.result)!=0)
{
strcpy(DisplayContent,"");
sprintf(DisplayContent,"%d",(uint16_t)Calculate.result);
strcat(DisplayContent,".");
sprintf(str,"%d",(uint16_t)((Calculate.result-(uint16_t)Calculate.result)*100000));
strcat(DisplayContent,str);
for(i=strlen(DisplayContent)-1;i>=0;i--) //將小數(shù)點(diǎn)后多余的0去掉
{
if(DisplayContent[i]!='0')
{
DisplayContent[i+1]='\0';
break;
}
}
}
else
{
strcpy(DisplayContent,"");
sprintf(DisplayContent,"%d",(uint16_t)Calculate.result);
}
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.pressedsymbol &= ~DOT; //接下來(lái)可以輸入小數(shù)點(diǎn)
Calculate.keyval=0;
}
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
void Operate(double numb1,double numb2,char symbol)
{
switch(symbol)
{
case '+':
numb1 += numb2;
Calculate.result=numb1;
//printf("Calculate.result:%f\r\n",result);
break;
case '-':
numb1 -= numb2;
Calculate.result=numb1;
//printf("Calculate.result:%f\r\n",result);
break;
case '*':
numb1 *= numb2;
Calculate.result=numb1;
//printf("Calculate.result:%f\r\n",result);
break;
case '/':
if(numb2==0)
{
Calculate.IllegalExpression = 1;
}else
{
numb1 = (double)numb1/(double)numb2;
Calculate.result=numb1;
//printf("Calculate.result:%f\r\n",result);
}
break;
default:
break;
}
}
/*
***************************************************************
*函數(shù)名:IsOperator
*功能: 判斷此字符是不是運(yùn)算符
*參數(shù):
*返回值:0:是 1:不是
****************************************************************
*/
static uint8_t IsOperator(char opt)
{
if(opt=='+'||opt=='-'||opt=='*'||opt=='/')
{
return 0;
}
return 1;
}
/*
***************************************************************
*函數(shù)名:OperateLeftToRight
*功能: 從左到右計(jì)算表達(dá)式,不考慮優(yōu)先級(jí) 輸入的表達(dá)式必須合法
*參數(shù):
*返回值:
****************************************************************
*/
void OperateLeftToRight(char *buf)
{
char Operatesym;
double tmpnum1=1,tmpnum2=1,output1=0,output2=0;
uint8_t i=0;
//temp = (char*)mem_malloc(100);
while(*buf)
{
if(!IsOperator(*buf)) //判斷是不是運(yùn)算符
{
i++;
Operatesym = *buf; //得到操作符
buf++;
}
else
{
if(i==0) //第一個(gè)操作數(shù)
{
while(*buf>='0' && *buf<='9')
output1=output1*10+(*buf++)-'0'; //整數(shù)部分
if(*buf=='.')
{
buf++;
while(*buf>='0' && *buf<='9') //*str 是數(shù)字
{
tmpnum1/=10;
output1=output1+((*buf++)-'0')*tmpnum1;//小數(shù)部分
}
}
}
if(i==1) //第二個(gè)操作數(shù)
{
i=0;
while(*buf>='0' && *buf<='9')
output2=output2*10+(*buf++)-'0'; //整數(shù)部分
if(*buf=='.')
{
buf++;
while(*buf>='0' && *buf<='9') //*str 是數(shù)字
{
tmpnum2/=10;
output2=output2+((*buf++)-'0')*tmpnum2;//小數(shù)部分
}
}
}
}//else
}//while
Operate(output1,output2,Operatesym);
//mem_free(temp);
}
/*
***************************************************************
*函數(shù)名:Calculator
*功能: 計(jì)算器功能
*參數(shù): 無(wú)
*返回值:無(wú)
****************************************************************
*/
void Calculator(void)
{
strcpy(DisplayContent,"");
//WM_SetCreateFlags(WM_CF_MEMDEV); ////后面加的
CalculatorDlg = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback,0, 0, 0);
while(1){
if((Calculate.pressedsymbol&NUMBER)==NUMBER)
{
strcat(DisplayContent,&Calculate.keyval);
EDIT_SetText(WM_GetDialogItem(CalculatorDlg,GUI_ID_EDIT0),DisplayContent);
Calculate.keyval=0;
Calculate.pressedsymbol &= ~OPERATE;
}
if(Calculate.close){
Calculate.close = 0;
break;
}
GUI_Delay(10);
}
}
復(fù)制代碼
作者:
wbx2017
時(shí)間:
2019-10-12 21:20
騙積分的吧,整個(gè)就一個(gè)c文件。差評(píng)
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91精品国产综合久久婷婷香蕉
|
一区二区在线免费播放
|
久久久久久久久综合
|
久久噜
|
日韩电影一区二区三区
|
亚洲性视频网站
|
夜夜骑首页
|
91视频在线观看免费
|
久久精品一区
|
av官网在线
|
成人欧美一区二区三区色青冈
|
在线观看黄色大片
|
免费一级做a爰片久久毛片潮喷
|
国产精品毛片久久久久久
|
日韩成人在线观看
|
国产一区久久久
|
精品国产欧美一区二区三区成人
|
久久久久久黄
|
亚洲视频在线看
|
色嗨嗨
|
亚洲欧美在线一区
|
欧美精品在线一区二区三区
|
拍拍无遮挡人做人爱视频免费观看
|
七七婷婷婷婷精品国产
|
国产一区91精品张津瑜
|
日韩欧美在线一区二区
|
亚洲天堂精品一区
|
在线免费观看日本视频
|
国产福利在线
|
av一级久久
|
日韩a
|
免费视频二区
|
韩国久久
|
九九精品在线
|
午夜视频一区二区三区
|
欧美日高清视频
|
免费观看一级毛片
|
久久亚洲高清
|
日本欧美在线观看视频
|
亚洲综合视频
|
国产精品高潮呻吟久久
|