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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? guidemo.c

?? ucgu最新版本 4.14
?? C
字號(hào):
/*********************************************************************
*                SEGGER MICROCONTROLLER SYSTEME GmbH                 *
*        Solutions for real time microcontroller applications        *
**********************************************************************
*                                                                    *
*        (c) 1996 - 2007  SEGGER Microcontroller Systeme GmbH        *
*                                                                    *
*        Internet: www.segger.com    Support:  support@segger.com    *
*                                                                    *
**********************************************************************

** emWin V4.14 - Graphical user interface for embedded applications **
emWin 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 re-
distributed 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 * const _apfTest[] = {
  GUIDEMO_HardwareInfo,
  GUIDEMO_Speed,
  #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,
  #if GUI_WINSUPPORT
    GUIDEMO_Dialog,
    GUIDEMO_DemoProgBar,
    GUIDEMO_DemoFrameWin,
    #if GUI_SUPPORT_TOUCH
      GUIDEMO_Touch,
    #endif
  #endif
  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(50);
    } 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(4000);
  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() + 4000;
  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 */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码国产乱码精品精可以看| 欧美综合久久久| 日本道精品一区二区三区| 日本道色综合久久| 久久99深爱久久99精品| 国模无码大尺度一区二区三区| 亚洲综合色成人| 久久综合久久鬼色| 欧美三电影在线| 亚洲最大的成人av| 国产成人夜色高潮福利影视| 亚洲综合999| 欧美日韩午夜在线视频| 亚洲成人三级小说| 亚洲欧洲精品一区二区精品久久久| 青草av.久久免费一区| 亚洲国产精品久久久久秋霞影院 | 精品国产免费一区二区三区四区 | 欧美成人bangbros| 夜夜嗨av一区二区三区网页| 久久久精品tv| 成人激情小说网站| 日产国产高清一区二区三区| 制服丝袜国产精品| gogo大胆日本视频一区| 大胆亚洲人体视频| 韩国欧美一区二区| 免费观看久久久4p| 美女视频黄免费的久久| 久久久久国产精品麻豆| www.亚洲在线| 在线观看视频91| 一本大道久久a久久综合婷婷| 性欧美疯狂xxxxbbbb| 一区二区三区不卡视频| 一区二区视频在线看| 亚洲美女视频在线观看| 9人人澡人人爽人人精品| 亚洲午夜精品在线| 亚洲国产日产av| 最近日韩中文字幕| 一区二区三区 在线观看视频| 欧美丰满嫩嫩电影| 欧美一区二区三区啪啪| 日韩一级免费一区| 久久精品夜色噜噜亚洲aⅴ| 国产精品色眯眯| 欧美国产成人精品| 色激情天天射综合网| 国产v日产∨综合v精品视频| 久久久久99精品一区| 久久超级碰视频| 成人黄色在线视频| 色噜噜狠狠色综合中国| 欧美夫妻性生活| 欧美中文字幕一二三区视频| 国产精品综合一区二区三区| 成人一区二区三区在线观看| 在线观看亚洲精品视频| 99这里只有久久精品视频| 久久精品国产久精国产| 粉嫩av一区二区三区| 奇米亚洲午夜久久精品| 一区二区高清免费观看影视大全 | 日韩国产精品久久久| 亚洲欧美偷拍卡通变态| 国产精品免费久久久久| 免费精品视频最新在线| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品黄色在线观看| 中文字幕一区二区不卡| 久久婷婷色综合| 久久久久久免费网| 亚洲免费在线观看| 国产一区二区在线电影| 欧美亚一区二区| 国产精品久久毛片av大全日韩| 亚洲国产高清在线观看视频| 久国产精品韩国三级视频| 国产麻豆精品视频| 日韩欧美一二区| 亚洲成人一区在线| 九一久久久久久| 美女视频第一区二区三区免费观看网站| 中文字幕免费不卡在线| 亚洲天堂福利av| 丁香婷婷综合色啪| 91在线观看视频| 久久久精品国产99久久精品芒果 | 欧美午夜免费电影| 亚洲天堂久久久久久久| 色综合视频一区二区三区高清| 国产精品久久久久久久久免费桃花 | 99精品国产视频| 一区二区国产视频| 久久精品国产免费看久久精品| 久久久综合网站| 丰满放荡岳乱妇91ww| 亚洲色欲色欲www| 欧美色精品在线视频| 亚洲激情中文1区| 99re热视频精品| 精品国产成人在线影院| 狠狠久久亚洲欧美| 中文字幕高清不卡| 乱中年女人伦av一区二区| 色综合久久久久| 亚洲宅男天堂在线观看无病毒| 成人av影视在线观看| 亚洲精品国产成人久久av盗摄| 国产综合色产在线精品| 欧美国产精品一区二区| 欧美亚洲自拍偷拍| 亚洲欧美综合色| 欧美日韩精品一区二区三区| 美国一区二区三区在线播放| 国产精品毛片大码女人| 欧美老年两性高潮| 亚洲aⅴ怡春院| 91福利视频网站| 亚洲欧洲日韩在线| 日韩欧美国产三级| 久久99精品久久久久久久久久久久 | 欧美日韩五月天| 成人av网在线| 久久精品国产秦先生| 国产精品的网站| 成人av网站大全| 国产日韩欧美制服另类| 成人小视频免费观看| 丝袜诱惑制服诱惑色一区在线观看| 色综合色狠狠综合色| 18欧美亚洲精品| 欧美一区二区三区婷婷月色| av一本久道久久综合久久鬼色| 国产精品美女视频| 精品国产精品网麻豆系列| 欧美三级韩国三级日本一级| 色综合久久中文字幕综合网| 日本不卡一二三区黄网| 久久精品亚洲精品国产欧美kt∨ | 欧美私人免费视频| 成人免费不卡视频| 高清不卡一区二区在线| 国产精品看片你懂得| 国产三级精品三级| 91精品欧美福利在线观看| 丁香网亚洲国际| 国产乱子伦一区二区三区国色天香| 亚洲精品在线观| 日韩区在线观看| 色婷婷久久综合| 欧洲中文字幕精品| 欧美日韩一区小说| 欧美色精品在线视频| 日韩一区二区三区免费看| 波多野洁衣一区| 一本一道综合狠狠老| 欧美日韩一级二级| 欧美电影免费观看高清完整版| www..com久久爱| 奇米综合一区二区三区精品视频| 日韩国产高清影视| 蜜臀精品一区二区三区在线观看| 精品影视av免费| 亚洲综合色自拍一区| 紧缚捆绑精品一区二区| 亚洲国产成人porn| 视频一区二区国产| 一区二区在线观看免费| 蜜臀久久99精品久久久久久9| 国产在线精品不卡| 91在线视频网址| 这里是久久伊人| 中文字幕 久热精品 视频在线| 亚洲自拍都市欧美小说| 蜜臀va亚洲va欧美va天堂| 国产乱子伦一区二区三区国色天香| 日韩成人av影视| 高清国产一区二区| 成人免费三级在线| 欧美日韩在线播放一区| 久久精品一区二区三区av | 日韩女优制服丝袜电影| 中文字幕在线观看一区| 亚洲国产aⅴ成人精品无吗| 亚洲一区二区在线观看视频 | 精品久久久久99| 欧美国产乱子伦| 亚洲视频一二三区| 精品一区二区久久久| 精品在线你懂的| 91久久精品一区二区三| 色欧美88888久久久久久影院| 欧美精品一区二区三区高清aⅴ | 国产一区二区不卡在线 | 成人午夜短视频| 成人免费看视频| 成人精品鲁一区一区二区| 欧美日韩午夜在线视频|