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

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

?? guidemo.c

?? LPC2368驅動淘寶上27元錢的TFT的代碼
?? C
字號:
/*
*********************************************************************************************************
*   											 uC/GUI
*   					 Universal graphic software for embedded applications
*
*   					(c) Copyright 2002, Micrium Inc., Weston, FL
*   					(c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*   		   礐/GUI is protected by international copyright laws. Knowledge of the
*   		   source code may not be used to write a similar product. This file may
*   		   only be used in accordance with a license and should not be redistributed
*   		   in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File		: GUIDEMO.c
Purpose 	: Several GUIDEMO routines
----------------------------------------------------------------------
*/

#include <stddef.h>
#include "GUI.h"
#if GUI_WINSUPPORT
#include "PROGBAR.h"
#include "LISTBOX.h"
#include "FRAMEWIN.h"
#include "BUTTON.h"
#endif
#include "GUIDEMO.h"

/*********************************************************************
*
*   	Static variables
*
**********************************************************************
*/

#if GUI_WINSUPPORT
static BUTTON_Handle   _ahButton[2];
static FRAMEWIN_Handle _ahFrameWin[3];
static int  		   _ButtonSizeX,	  _ButtonSizeY;
#if GUIDEMO_LARGE
static FRAMEWIN_Handle _ahInfoWin[2];
static const char* _sInfo;
#endif
#endif

static int  	   _iTest, _iTestMinor;
static char 	   _CmdNext;
static const char* _sExplain;

#define countof(Obj) (sizeof(Obj)/sizeof(Obj[0]))

/*********************************************************************
*
*   	Routine table
*
**********************************************************************

  The routines to be called are listed here. The advantage to calling
  directly is that we can execute some code before and after.
*/

typedef void fVoidVoid(void);

static fVoidVoid * _apfTest[] = {

GUIDEMO_HardwareInfo,
GUIDEMO_Speed,

#if GUI_WINSUPPORT

GUIDEMO_Dialog,
GUIDEMO_DemoProgBar,
GUIDEMO_DemoFrameWin,

#if GUI_SUPPORT_TOUCH
GUIDEMO_Touch,
#endif

#endif

#if GUI_SUPPORT_MEMDEV
GUIDEMO_Graph,
#endif

GUIDEMO_Bitmap,
GUIDEMO_Cursor,
GUIDEMO_ShowInternationalFonts,
GUIDEMO_ShowColorBar,
GUIDEMO_ShowColorList,
GUIDEMO_DemoLUT,
GUIDEMO_DemoPolygon,
GUIDEMO_Circle,
GUIDEMO_Automotive,
GUIDEMO_Navigation,

0
};

/*********************************************************************
*
*   	Static routines
*
**********************************************************************
*/

static void _UpdateCmdWin(void)
{
#if GUI_WINSUPPORT && GUIDEMO_LARGE
	WM_InvalidateWindow(_ahInfoWin[1]);
#endif
}

#if (GUI_WINSUPPORT && GUIDEMO_LARGE)
static void _cbCmdWin(WM_MESSAGE *pMsg)
{
	switch (pMsg->MsgId)
	{
		case WM_PAINT:
			/* Update info in command window */
			GUI_SetBkColor(GUI_GRAY);
			GUI_Clear();
			GUI_DispStringAt("Demo ", 0, 0);
			GUI_DispDecMin(_iTest + 1);
			GUI_DispString(".");
			GUI_DispDecMin(_iTestMinor);
			GUI_DispString("/");
			GUI_DispDecMin(countof(_apfTest));
		default:
			WM_DefaultProc(pMsg);
	}
}
#endif

static void _UpdateInfoWin(void)
{
#if GUI_WINSUPPORT && GUIDEMO_LARGE
	GUI_RECT rClient;
	WM_HWIN hWin;
	GUI_CONTEXT ContextOld;
	GUI_SaveContext(&ContextOld);
	/* Update info  window */
	WM_ShowWindow(_ahInfoWin[0]);
	WM_ShowWindow(_ahFrameWin[0]);
	hWin = WM_SelectWindow(_ahInfoWin[0]);
	GUI_GetClientRect(&rClient);
	GUI_SetBkColor(GUI_WHITE);
	GUI_Clear();
	GUI_SetColor(GUI_BLACK);
	GUI_SetFont(&GUI_Font13_1);
	GUI_SetTextAlign(GUI_TA_HCENTER);
	GUI_DispStringHCenterAt(_sInfo, (rClient.x1 - rClient.x0) / 2, 0);
	GUI_SetTextAlign(GUI_TA_LEFT);
	GUI_SetFont(&GUI_Font8_ASCII);
	GUI_DispStringAt(_sExplain, 0, 20);
	WM_SelectWindow(hWin);
	GUI_RestoreContext(&ContextOld);
#endif
}

/*********************************************************************
*
*   	Exported routines
*
**********************************************************************
*/

GUI_COLOR GUIDEMO_SetBkColor(GUI_COLOR Color)
{
	GUI_COLOR r;
	if (GUI_ColorIsAvailable(GUI_RED))
	{
		r = Color;
	}
	else
	{
		r = GUI_BLACK;
	}
	GUI_SetBkColor(r);
	return r;
}

GUI_COLOR GUIDEMO_SetColor(GUI_COLOR Color)
{
	GUI_COLOR r;
	if (GUI_ColorIsAvailable(GUI_RED))
	{
		r = Color;
	}
	else
	{
		r = GUI_WHITE;
	}
	GUI_SetColor(r);
	return r;
}

int GUIDEMO_Delay(int t)
{
	int r = 0;
#if GUI_WINSUPPORT
	U32 value, tm;
#if GUIDEMO_LARGE
	PROGBAR_Handle hProg;
#endif
	WM_SetForegroundWindow(_ahButton[0]);
#if GUIDEMO_LARGE
	hProg = (t > 100) ? PROGBAR_CreateAsChild(10, 10, 60, 7, _ahInfoWin[1], 0, WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV) : 0;
	PROGBAR_SetMinMax(hProg, 0, t);
#endif
	tm = GUI_GetTime();
	do
	{
		value = GUI_GetTime() - tm;
#if GUIDEMO_LARGE
		PROGBAR_SetValue(hProg, value);
		WM_ExecIdle();
#endif
		GUI_Delay(10);
	}
	while ((value < (U32) t) && !GUIDEMO_CheckCancel());
#if GUIDEMO_LARGE
	PROGBAR_Delete(hProg);
#endif
	_UpdateCmdWin();
	WM_ExecIdle();
#else
	GUI_Delay(t);
#endif
	return r;
}

void GUIDEMO_Wait(void)
{
	GUIDEMO_Delay(1000);
	GUIDEMO_NotifyStartNext();
}

int GUIDEMO_CheckCancel(void)
{
	int c = GUI_GetKey();
#if GUI_WINSUPPORT
	WM_ExecIdle();
#endif
	if ((c == 'n') || (c == 'N'))
	{
		_CmdNext = 1;
	}
	if ((c == 'h') || (c == 'H'))
	{
		GUI_Delay(500);
		do
		{
			GUI_Delay(10);
#if GUI_WINSUPPORT
			WM_ExecIdle();
#endif
			c = GUI_GetKey();
		}
		while (!c);
	}
	return _CmdNext;
}

void GUIDEMO_ShowInfo(const char *s)
{
	_sExplain = s;
	_UpdateInfoWin();
}

void GUIDEMO_HideInfoWin(void)
{
#if GUI_WINSUPPORT
	WM_HideWindow(_ahFrameWin[0]);
#endif
}


void GUIDEMO_NotifyStartNext(void)
{
	_CmdNext = 0;
	_UpdateCmdWin();
	_iTestMinor++;
}

int GUIDEMO_WaitKey(void)
{
	int r = 0;
	U32 tMax = GUI_GetTime() + 1000;
	U32 tDiff; 
#if GUI_WINSUPPORT
	PROGBAR_Handle hProg = PROGBAR_Create(LCD_GetXSize() - 70, LCD_GetYSize() - 40, 80, 5, WM_CF_SHOW);
#endif
	while (tDiff = tMax - GUI_GetTime(), (tDiff > 0) && !GUIDEMO_CheckCancel())
	{
		if ((r = GUI_GetKey()) != 0)
		{
			break;
		}
	}
#if GUI_WINSUPPORT
	PROGBAR_Delete(hProg);
	WM_ExecIdle();
#endif
	return r;
}

void GUIDEMO_ShowIntro(const char *s, const char *sExp)
{
	GUI_CONTEXT ContextOld;
	GUI_SaveContext(&ContextOld);
#if GUI_WINSUPPORT && GUIDEMO_LARGE
	_sInfo = s;
#endif
	_sExplain = sExp;
	GUI_SetDefault();
	GUIDEMO_HideInfoWin();
	GUIDEMO_SetBkColor(GUI_BLUE);
	GUI_SetColor(GUI_WHITE);
	GUI_Clear();
#if !(GUIDEMO_TINY)
	GUI_SetFont(&GUI_FontComic18B_ASCII);
	GUI_DispStringHCenterAt(s, LCD_GET_XSIZE() / 2, LCD_GET_YSIZE() / 3 - 10);
#else
	GUI_SetFont(&GUI_Font13B_ASCII);
	GUI_DispStringHCenterAt(s, LCD_GET_XSIZE() / 2, LCD_GET_YSIZE() / 3 - 18);
#endif
	if (_sExplain)
	{
		GUI_SetFont(&GUI_Font8_ASCII);
#if !(GUIDEMO_TINY)
		GUI_DispStringHCenterAt(_sExplain, LCD_GET_XSIZE() / 2, LCD_GET_YSIZE() / 2 - 10);
#else
		GUI_DispStringHCenterAt(_sExplain, LCD_GET_XSIZE() / 2, LCD_GET_YSIZE() / 2 - 14);
#endif
	}
	GUIDEMO_Delay(_sExplain ? 2000 : 4000);
#if GUI_WINSUPPORT
	_UpdateInfoWin();
	_UpdateCmdWin();
#endif
	GUI_RestoreContext(&ContextOld);
#if GUI_WINSUPPORT
	WM_ExecIdle();
#endif
	GUIDEMO_NotifyStartNext();
	GUIDEMO_SetBkColor(GUI_RED);
	GUI_Clear();
}

/*********************************************************************
*
*   	GUIDEMO_main(): Large version of the demo
*
**********************************************************************
*/

#if GUIDEMO_LARGE

void GUIDEMO_main(void)
{
#if GUI_WINSUPPORT
	int i;
	int xSize, ySize, xPos, yPos;
#endif
#if (GUI_SUPPORT_CURSOR|GUI_SUPPORT_TOUCH)
	GUI_CURSOR_Show();
#endif
	GUI_Clear();
#if GUI_WINSUPPORT
#if GUI_NUM_LAYERS > 1
	_ahFrameWin[2] = FRAMEWIN_CreateAsChild(10, 10, 100, 100, WM_GetDesktopWindowEx(1), "Display 1", NULL, WM_CF_SHOW);
	WM_SetDesktopColorEx(GUI_RED, 1);
	GUI_Delay(1000);
#endif
	WM_SetCreateFlags(WM_CF_MEMDEV);  /* Automatically use memory devices on all windows */
	/* Calculate position and size of FrameWin[1] */
	_ButtonSizeX = 30;
	_ButtonSizeY = 20;
	/* Create the control window incl. buttons */
	_ahFrameWin[1] = FRAMEWIN_Create("Control", &_cbCmdWin, WM_CF_SHOW | WM_CF_STAYONTOP, LCD_GetXSize() - 80, LCD_GetYSize() - 60, 80, 60);
	_ahInfoWin[1] = WM_GetClientWindow(_ahFrameWin[1]);
	_ahButton[0] = BUTTON_CreateAsChild(4, 20, _ButtonSizeX, _ButtonSizeY, _ahInfoWin[1], 'H', WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV);
	_ahButton[1] = BUTTON_CreateAsChild(40, 20, _ButtonSizeX, _ButtonSizeY, _ahInfoWin[1], 'N', WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV);
	BUTTON_SetText(_ahButton[0], "Halt");
	BUTTON_SetText(_ahButton[1], "Next");
	_UpdateCmdWin();
	WM_ExecIdle();
#endif
	/* Show Intro */
	GUIDEMO_Intro();
#if GUI_WINSUPPORT
	/* Calculate position and size of FrameWin[0] */
	xSize = LCD_GetXSize() / 2;
	ySize = 65;
	xPos = LCD_GetXSize() - xSize;
	yPos = 0;
	/* Create info window and run the individual demos */
	_ahFrameWin[0] = FRAMEWIN_Create("emWin Demo", NULL, WM_CF_STAYONTOP, xPos, yPos, xSize, ySize);
	//    _ahInfoWin[0] = WM_GetFirstChild(_ahFrameWin[0]);
	_ahInfoWin[0] = WM_CreateWindowAsChild(0, 0, 0, 0, WM_GetFirstChild(_ahFrameWin[0]), WM_CF_SHOW | WM_CF_STAYONTOP, 0, 0);
	WM_ExecIdle();
#endif
	/* Run the individual demos !  */
	for (_iTest = 0; _apfTest[_iTest]; _iTest++)
	{
		GUI_CONTEXT ContextOld;
		GUI_SaveContext(&ContextOld);
		_iTestMinor = 0;
		_UpdateCmdWin();
		(*_apfTest[_iTest]) ();
		_CmdNext = 0;
		GUI_RestoreContext(&ContextOld);
	}
	/* Cleanup */
#if GUI_WINSUPPORT
	for (i = 0; i < countof(_ahFrameWin); i++)
	{
		WM_DeleteWindow(_ahFrameWin[i]);
	}
#endif
}

#else /* GUIDEMO_LARGE */

/*********************************************************************
*
*   	GUIDEMO_main(): Small version of the demo
*
**********************************************************************
*/
void GUIDEMO_main(void)
{
#if GUI_WINSUPPORT
	int i;
#endif
#if GUI_WINSUPPORT
#if GUI_NUM_LAYERS > 1
	FRAMEWIN_CreateAsChild(10, 10, 100, 100, WM_GetDesktopWindowEx(1), "Display 1", NULL, WM_CF_SHOW);
	GUI_Delay(1000);
#endif
	WM_SetCreateFlags(WM_CF_MEMDEV);  /* Automatically use memory devices on all windows */
	_ButtonSizeX = 27;
	_ButtonSizeY = 14;
	_ahButton[0] = BUTTON_Create(LCD_GetXSize() - _ButtonSizeX * 2 - 4, LCD_GetYSize() - _ButtonSizeY - 2, _ButtonSizeX, _ButtonSizeY, 'H', WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV);
	_ahButton[1] = BUTTON_Create(LCD_GetXSize() - _ButtonSizeX - 2, LCD_GetYSize() - _ButtonSizeY - 2, _ButtonSizeX, _ButtonSizeY, 'N', WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV);
	BUTTON_SetFont(_ahButton[0], &GUI_Font8_ASCII);
	BUTTON_SetFont(_ahButton[1], &GUI_Font8_ASCII);
	BUTTON_SetText(_ahButton[0], "Halt");
	BUTTON_SetText(_ahButton[1], "Next");
	_UpdateCmdWin();
	WM_ExecIdle();
#endif
	/* Show Intro */
	GUIDEMO_Intro();
	/* Run the individual demos !  */
	for (_iTest = 0; _apfTest[_iTest]; _iTest++)
	{
		GUI_CONTEXT ContextOld;
		GUI_SaveContext(&ContextOld);
		_iTestMinor = 0;
		_UpdateCmdWin();
		(*_apfTest[_iTest]) ();
		_CmdNext = 0;
		GUI_RestoreContext(&ContextOld);
	}
	/* Cleanup */
#if GUI_WINSUPPORT
	for (i = 0; i < countof(_ahButton); i++)
	{
		BUTTON_Delete(_ahButton[i]);
	}
#endif
}

#endif /* GUIDEMO_LARGE */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级三级三级爽爽爽| 欧美激情一区二区三区四区| 欧美成人国产一区二区| 亚洲丝袜精品丝袜在线| 美女免费视频一区| 色综合天天性综合| 国产视频视频一区| 日韩黄色免费电影| 91久久精品一区二区三区| 久久久精品tv| 国内精品嫩模私拍在线| 欧美人伦禁忌dvd放荡欲情| 亚洲日本在线视频观看| 国产毛片精品国产一区二区三区| 欧美性淫爽ww久久久久无| 中文字幕一区二区三区精华液| 国产永久精品大片wwwapp| 欧美美女一区二区在线观看| 亚洲视频狠狠干| av电影天堂一区二区在线 | 91在线你懂得| 欧美国产成人在线| 国产专区综合网| 精品国产一区二区三区av性色| 亚洲第一久久影院| 欧美视频一区在线观看| 亚洲综合在线免费观看| 91捆绑美女网站| 亚洲精品中文字幕乱码三区| 91亚洲大成网污www| 中文字幕在线观看不卡| 成人18视频在线播放| 中文字幕中文字幕中文字幕亚洲无线 | 国产日韩精品一区二区三区| 精品一区二区三区在线视频| 欧美一三区三区四区免费在线看| 亚洲电影一区二区| 欧美浪妇xxxx高跟鞋交| 日韩国产一二三区| 在线成人高清不卡| 日本不卡视频在线| wwww国产精品欧美| 粉嫩高潮美女一区二区三区| 国产精品欧美久久久久一区二区| 成人ar影院免费观看视频| 国产精品国产三级国产普通话蜜臀| 成人97人人超碰人人99| 亚洲激情图片小说视频| 欧美日韩电影在线播放| 久久99久国产精品黄毛片色诱| 精品国产亚洲一区二区三区在线观看| 美女一区二区三区在线观看| 国产亚洲欧美色| 91丝袜美女网| 婷婷六月综合亚洲| 久久在线免费观看| 91麻豆精品秘密| 日本亚洲天堂网| 日本一区二区不卡视频| 欧美系列在线观看| 国产一区二区三区综合| 亚洲同性同志一二三专区| 欧美日韩一级二级| 国产福利电影一区二区三区| 一区二区激情小说| 精品捆绑美女sm三区| 99国产精品久久久久| 日韩精品一区第一页| 日本一区二区三区四区在线视频| 91片在线免费观看| 麻豆国产精品官网| 一区二区三区欧美在线观看| 精品久久久久一区| 欧美午夜免费电影| 成人午夜私人影院| 日韩精品视频网站| 亚洲日穴在线视频| www国产成人免费观看视频 深夜成人网| 97精品国产露脸对白| 蜜臀av亚洲一区中文字幕| 国产精品美女久久久久久| 欧美一区二区三区免费在线看| 成人av在线一区二区三区| 奇米影视一区二区三区| 亚洲免费在线看| 久久精品日产第一区二区三区高清版 | 亚洲乱码国产乱码精品精可以看| 精品成人在线观看| 欧美亚洲精品一区| 99久久精品一区二区| 国产在线不卡一区| 日本在线不卡视频一二三区| 一区二区三区在线视频免费 | 国产91精品入口| 日韩不卡在线观看日韩不卡视频| 亚洲欧美日韩系列| 中文字幕在线不卡视频| 国产视频一区在线观看| wwwwxxxxx欧美| 日韩欧美卡一卡二| 欧美日韩免费在线视频| 91成人免费在线| av电影在线观看不卡| 成人国产精品免费观看视频| 国产一区二区网址| 韩国三级在线一区| 国产自产高清不卡| 狠狠色丁香久久婷婷综| 精品中文字幕一区二区小辣椒| 免费观看在线综合色| 日韩高清在线一区| 日韩专区欧美专区| 天天操天天色综合| 天使萌一区二区三区免费观看| 亚洲一区二区三区激情| 亚洲一区二区精品久久av| 亚洲欧美日韩在线播放| 亚洲精品水蜜桃| 一区二区三区四区蜜桃| 亚洲五码中文字幕| 亚洲妇熟xx妇色黄| 蜜桃视频在线观看一区| 久久精品免费观看| 国产美女一区二区三区| 国产成人免费视频网站高清观看视频 | 色综合天天在线| 欧美中文字幕一区二区三区| 欧美日韩中字一区| 91精品国产全国免费观看| 日韩一区二区高清| 久久久久久电影| ...xxx性欧美| 亚洲成人av一区| 久久99国产精品久久| 高清视频一区二区| 99久久精品国产毛片| 欧美精品三级在线观看| 日韩免费一区二区三区在线播放| 久久久久久久综合日本| 国产精品国产三级国产有无不卡| 亚洲最新在线观看| 久久精品国产99| 不卡的看片网站| 欧美日韩精品一区二区天天拍小说| 日韩精品一区二区三区三区免费 | 亚洲午夜久久久久中文字幕久| 丝袜国产日韩另类美女| 国产剧情av麻豆香蕉精品| 色综合中文综合网| 99精品久久久久久| 在线播放亚洲一区| 欧美激情在线看| 亚洲高清在线视频| 国产高清精品久久久久| 欧美性猛交xxxxxx富婆| 2023国产精品| 一区二区在线观看视频在线观看| 久久精品理论片| 色婷婷精品大在线视频| 欧美tickling挠脚心丨vk| 亚洲精品免费一二三区| 韩国av一区二区| 欧美在线免费观看亚洲| 国产亚洲欧美中文| 日韩av不卡一区二区| 99精品一区二区三区| 欧美成人r级一区二区三区| 亚洲欧美日韩系列| 国产精品一级片| 欧美日韩高清一区| 亚洲激情av在线| 国产精品一区二区三区乱码| 欧美丰满少妇xxxbbb| 亚洲三级小视频| 国产成人综合亚洲网站| 欧美一级二级三级蜜桃| 亚洲综合av网| 99精品国产一区二区三区不卡| 国产婷婷一区二区| 精品一区二区三区香蕉蜜桃| 欧美日韩成人在线| 亚洲乱码精品一二三四区日韩在线| 国产乱码精品一区二区三 | 欧美裸体bbwbbwbbw| 亚洲美女视频在线| www.亚洲色图.com| 久久久综合九色合综国产精品| 日本三级韩国三级欧美三级| 欧美午夜宅男影院| 一区二区国产视频| 色婷婷av一区二区三区gif| 中文av字幕一区| 懂色av中文一区二区三区| 久久久91精品国产一区二区精品| 美女免费视频一区| 欧美一级视频精品观看| 裸体健美xxxx欧美裸体表演| 欧美精品在欧美一区二区少妇| 午夜精品福利一区二区蜜股av | 暴力调教一区二区三区|