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

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

?? guidemo_wm.c

?? 基于三星ARM44BO的GUIUC/OS-
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
*********************************************************************************************************
*                                                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        : WM_Sample.c
Purpose     : Demonstrates the window manager
----------------------------------------------------------------------
*/

#include <string.h>
#include "GUI.h"
#include "GUIDEMO.h"
#include "WM.h"


/*******************************************************************
*
*       defines
*
********************************************************************
*/

#define MSG_CHANGE_TEXT WM_USER+0

#define SPEED 1250

/*******************************************************************
*
*       static variables
*
********************************************************************
*/

static char _acInfoText[40];

static GUI_COLOR _WindowColor1  = GUI_GREEN;
static GUI_COLOR _WindowColor2  = GUI_RED;
static GUI_COLOR _ChildColor    = GUI_YELLOW;

static WM_CALLBACK* _cbBkWindowOld;

static WM_HWIN _hWindow1;
static WM_HWIN _hWindow2;
static WM_HWIN _hChild;

/*******************************************************************
*
*       static code, helper functions
*
********************************************************************
*/

/*******************************************************************
*
*       _ChangeInfoText

  Sends a message to the background window and invalidate it, so
  the callback of the background window display the new text.
*/
static void _ChangeInfoText(char* pStr) {
  WM_MESSAGE Message;
  Message.MsgId  = MSG_CHANGE_TEXT;
  Message.Data.p = pStr;
  WM_SendMessage(WM_HBKWIN, &Message);
  WM_InvalidateWindow(WM_HBKWIN);
}

/*******************************************************************
*
*       _DrawInfoText

  Drawes the info text directly on the display. This function is for
  the moments when no callback is set.
*/
static void _DrawInfoText(char* pStr) {
  GUI_SetColor(GUI_WHITE);
  GUI_SetFont(&GUI_Font24_ASCII);
  GUI_DispStringHCenterAt("WindowManager - Sample", 160, 5);
  GUI_SetFont(&GUI_Font8x16);
  GUI_DispStringAtCEOL(pStr, 5, 40);
}

/*******************************************************************
*
*       _LiftUp
*/
static void _LiftUp(int dy) {
  int i, tm;
  for (i = 0; i < (dy/4); i++) {
    tm = GUI_GetTime();
    WM_MoveWindow(_hWindow1, 0, -4);
    WM_MoveWindow(_hWindow2, 0, -4);
    while ((GUI_GetTime() - tm) < 20) {
      WM_Exec();
    }
  }
}

/*******************************************************************
*
*       _LiftDown
*/
static void _LiftDown(int dy) {
  int i, tm;
  for (i = 0; i < (dy/4); i++) {
    tm = GUI_GetTime();
    WM_MoveWindow(_hWindow1, 0, 4);
    WM_MoveWindow(_hWindow2, 0, 4);
    while ((GUI_GetTime() - tm) < 20) {
      WM_Exec();
    }
  }
}

/*******************************************************************
*
*       static code, callbacks for windows
*
********************************************************************
*/

/*******************************************************************
*
*       _cbBkWindow
*/
static void _cbBkWindow(WM_MESSAGE* pMsg) {
  switch (pMsg->MsgId) {
  case MSG_CHANGE_TEXT:
    strcpy(_acInfoText, pMsg->Data.p);
  case WM_PAINT:
    GUI_SetBkColor(GUI_BLACK);
    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font24_ASCII);
    GUI_DispStringHCenterAt("WindowManager - Sample", 160, 5);
    GUI_SetFont(&GUI_Font8x16);
    GUI_DispStringAt(_acInfoText, 5, 40);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*******************************************************************
*
*       _cbWindow1
*/
static void _cbWindow1(WM_MESSAGE* pMsg) {
  int x, y;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(_WindowColor1);
    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font24_ASCII);
    x = WM_GetWindowSizeX(pMsg->hWin);
    y = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Window 1", x / 2, (y / 2) - 12);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*******************************************************************
*
*       _cbWindow2
*/
static void _cbWindow2(WM_MESSAGE* pMsg) {
  int x, y;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(_WindowColor2);
    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font24_ASCII);
    x = WM_GetWindowSizeX(pMsg->hWin);
    y = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Window 2", x / 2, (y / 4) - 12);
    break;
  case WM_SIZE:
    WM_InvalidateWindow(_hChild);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*******************************************************************
*
*       _cbChild
*/
static void _cbChild(WM_MESSAGE* pMsg) {
  int x, y;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(_ChildColor);
    GUI_Clear();
    GUI_SetColor(GUI_RED);
    GUI_SetFont(&GUI_Font24_ASCII);
    x = WM_GetWindowSizeX(pMsg->hWin);
    y = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Child window", x / 2, (y / 2) - 12);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*******************************************************************
*
*       _cbDemoCallback1
*/
static void _cbDemoCallback1(WM_MESSAGE* pMsg) {
  int x, y;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(GUI_GREEN);
    GUI_Clear();
    GUI_SetColor(GUI_RED);
    GUI_SetFont(&GUI_FontComic18B_1);
    x = WM_GetWindowSizeX(pMsg->hWin);
    y = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Window 1\nanother Callback", x / 2, (y / 2) - 18);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*******************************************************************
*
*       _cbDemoCallback2
*/
static void _cbDemoCallback2(WM_MESSAGE* pMsg) {
  int x, y;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(GUI_MAGENTA);
    GUI_Clear();
    GUI_SetColor(GUI_YELLOW);
    GUI_SetFont(&GUI_FontComic18B_1);
    x = WM_GetWindowSizeX(pMsg->hWin);
    y = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Window 2\nanother Callback", x / 2, (y / 4) - 18);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*******************************************************************
*
*       static code, functions for demo
*
********************************************************************
*/

/*******************************************************************
*
*       _DemoSetDesktopColor

  Demonstrates the use of WM_SetDesktopColor
*/
static void _DemoSetDesktopColor(void) {
  GUI_SetBkColor(GUI_BLUE);
  GUI_Clear();
  _DrawInfoText("WM_SetDesktopColor()");
//  GUIDEMO_Delay(SPEED*2);
  WM_SetDesktopColor(GUI_BLACK);
  GUIDEMO_Delay(SPEED/2);
  /* Set background color and invalidate desktop color.
     This is needed for the later redrawing demo. */
  GUI_SetBkColor(GUI_BLACK);
  WM_SetDesktopColor(GUI_INVALID_COLOR);
  GUIDEMO_NotifyStartNext();
}

/*******************************************************************
*
*       _DemoCreateWindow

  Demonstrates the use of WM_CreateWindow
*/
static void _DemoCreateWindow(void) {
  /* Set callback for background window */
  _cbBkWindowOld = WM_SetCallback(WM_HBKWIN, _cbBkWindow);
  /* Create windows */
  _ChangeInfoText("WM_CreateWindow()");
//  GUIDEMO_Delay(SPEED);
  _hWindow1 = WM_CreateWindow( 50,  70, 165, 100, WM_CF_SHOW | WM_CF_MEMDEV, _cbWindow1, 0);
  GUIDEMO_Delay(SPEED/3);
  _hWindow2 = WM_CreateWindow(105, 125, 165, 100, WM_CF_SHOW | WM_CF_MEMDEV, _cbWindow2, 0);
  GUIDEMO_Delay(SPEED);
  GUIDEMO_NotifyStartNext();
}

/*******************************************************************
*
*       _DemoCreateWindowAsChild

  Demonstrates the use of WM_CreateWindowAsChild
*/
static void _DemoCreateWindowAsChild(void) {
  /* Create windows */
  _ChangeInfoText("WM_CreateWindowAsChild()");
//  GUIDEMO_Delay(SPEED);
/*  _hMEdit = MULTIEDIT_Create(10, 50,
  							 145, 40, 
                             _hWindow2, 10, WM_CF_SHOW | WM_CF_MEMDEV,
                             MULTIEDIT_CF_AUTOSCROLLBAR_V, "This is a test of multi edit box\n",
                             200);
*/
  //  MULTIEDIT_SetAutoScrollV(_hMEdit, 1);
  _hChild = WM_CreateWindowAsChild(10, 50, 145, 40, _hWindow2, WM_CF_SHOW | WM_CF_MEMDEV, _cbChild, 0);
  GUIDEMO_Delay(SPEED);
  GUIDEMO_NotifyStartNext();
}

/*******************************************************************
*
*       _DemoInvalidateWindow

  Demonstrates the use of WM_InvalidateWindow
*/
static void _DemoInvalidateWindow(void) {
  _ChangeInfoText("WM_InvalidateWindow()");
  _WindowColor1 = GUI_BLUE;
//  GUIDEMO_Delay(SPEED);
  WM_InvalidateWindow(_hWindow1);
  GUIDEMO_Delay(SPEED);
  GUIDEMO_NotifyStartNext();
}

/*******************************************************************
*

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美黄色影院| 亚洲欧美电影一区二区| 91麻豆福利精品推荐| 日韩电影免费在线看| 久久久久久久电影| 欧美精品黑人性xxxx| av男人天堂一区| 久久精品99国产国产精| 亚洲精品成人悠悠色影视| 精品成人佐山爱一区二区| 欧美视频中文字幕| 福利91精品一区二区三区| 日本大胆欧美人术艺术动态| 亚洲视频网在线直播| 久久久久久一级片| 91精品免费在线| 日本伦理一区二区| 波多野结衣中文字幕一区二区三区 | 亚洲男人的天堂一区二区| 精品久久久久久久久久久久久久久久久 | 久久精品国内一区二区三区| 亚洲免费成人av| 国产精品三级av| 久久久精品黄色| 久久夜色精品国产噜噜av| 欧美一区二区三区免费大片| 欧美日韩美女一区二区| 在线精品视频小说1| 97超碰欧美中文字幕| 高清不卡在线观看| 粉嫩嫩av羞羞动漫久久久| 国产一区二区精品久久| 麻豆精品精品国产自在97香蕉| 丝袜美腿高跟呻吟高潮一区| 亚洲一区二区三区三| 亚洲精品自拍动漫在线| 亚洲精品视频一区| 中文字幕一区二区三区av| 国产精品传媒在线| 国产精品国产三级国产aⅴ入口| 久久久精品国产免费观看同学| 久久一区二区三区国产精品| 精品国产精品网麻豆系列| 日韩美女视频在线| 精品国产91乱码一区二区三区 | 精品少妇一区二区| 精品99一区二区| 久久久久99精品国产片| 国产欧美一区二区精品忘忧草| 久久久不卡影院| 中文字幕第一区第二区| 国产女同互慰高潮91漫画| 国产精品国产a| 亚洲精品国产第一综合99久久| 夜夜嗨av一区二区三区中文字幕| 亚洲国产视频一区| 日本sm残虐另类| 精品亚洲aⅴ乱码一区二区三区| 国产乱人伦偷精品视频免下载| 成人免费看的视频| 色婷婷av一区二区三区gif| 欧美少妇bbb| 精品少妇一区二区三区免费观看| 久久网这里都是精品| 中文字幕一区二区三区四区不卡| 亚洲黄色小说网站| 免费成人在线视频观看| 国产精品一色哟哟哟| 91麻豆国产福利精品| 69堂成人精品免费视频| 国产丝袜欧美中文另类| 亚洲免费资源在线播放| 偷拍日韩校园综合在线| 国模一区二区三区白浆| www.成人在线| 欧美日韩国产中文| 久久久99久久精品欧美| 亚洲少妇30p| 蜜桃精品在线观看| 99免费精品视频| 91精品欧美综合在线观看最新| 国产亚洲欧美日韩日本| 亚洲自拍与偷拍| 国产精品99久久久久| 欧美午夜电影一区| 国产偷国产偷精品高清尤物| 亚洲午夜久久久久久久久电影网 | 国产欧美一二三区| 天堂va蜜桃一区二区三区漫画版 | 日本成人在线一区| 99在线视频精品| 777xxx欧美| 国产精品美女www爽爽爽| 天堂精品中文字幕在线| 91在线小视频| 26uuu亚洲综合色欧美| 亚洲一区二区免费视频| 成人手机在线视频| 日韩免费在线观看| 亚洲午夜久久久久久久久电影网| 国产成人自拍网| 欧美一区三区二区| 一区二区久久久| 福利电影一区二区三区| 欧美一卡二卡三卡| 亚洲在线视频免费观看| 成人国产精品免费观看| 日韩视频免费观看高清完整版| 亚洲视频一区二区在线观看| 国产九色sp调教91| 日韩欧美在线综合网| 亚洲电影视频在线| 色婷婷综合中文久久一本| 国产日韩亚洲欧美综合| 免费成人结看片| 3751色影院一区二区三区| 亚洲激情自拍偷拍| 色综合一个色综合| 国产精品女主播在线观看| 国产精品乡下勾搭老头1| 日韩免费高清视频| 免费成人在线播放| 5566中文字幕一区二区电影| 亚洲图片一区二区| 欧美在线视频你懂得| 亚洲免费视频成人| 色婷婷久久99综合精品jk白丝| 国产精品久久夜| 成人精品视频.| 国产日韩综合av| 国产精品资源网站| 国产色综合久久| 国产91在线|亚洲| 国产色产综合色产在线视频| 国产高清一区日本| 国产精品亲子伦对白| 国产91精品露脸国语对白| 久久精品夜色噜噜亚洲a∨| 经典三级在线一区| 2024国产精品| 国产乱对白刺激视频不卡| 久久久精品欧美丰满| 顶级嫩模精品视频在线看| 国产精品乱人伦中文| 99re成人精品视频| 亚洲午夜久久久久中文字幕久| 欧美日韩aaaaa| 久久精品国产网站| 精品sm捆绑视频| www.色精品| 亚洲图片自拍偷拍| 日韩欧美国产高清| 丁香一区二区三区| 亚洲区小说区图片区qvod| 在线视频中文字幕一区二区| 五月综合激情日本mⅴ| 精品久久人人做人人爰| 国产白丝精品91爽爽久久| 亚洲免费看黄网站| 在线播放一区二区三区| 久久精品国产在热久久| 亚洲国产精品v| 91视频xxxx| 日韩av电影天堂| 久久美女高清视频| 色婷婷久久久久swag精品| 爽好久久久欧美精品| 久久色在线观看| 91老司机福利 在线| 免费成人深夜小野草| 欧美国产日韩精品免费观看| 99久久精品费精品国产一区二区| 亚洲在线观看免费视频| 精品久久久久香蕉网| av高清久久久| 免费成人深夜小野草| 1000部国产精品成人观看| 欧美高清hd18日本| 粉嫩嫩av羞羞动漫久久久| 亚洲高清一区二区三区| 国产欧美精品日韩区二区麻豆天美| 日本高清无吗v一区| 国产美女娇喘av呻吟久久| 亚洲激情在线激情| 久久久精品黄色| 欧美人xxxx| 91视频com| 国产精品自产自拍| 日韩电影网1区2区| 日韩理论片在线| 精品蜜桃在线看| 欧美在线免费播放| 懂色av一区二区三区免费看| 日本在线不卡视频一二三区| 亚洲日本电影在线| 国产视频在线观看一区二区三区| 欧美精品九九99久久| 91麻豆成人久久精品二区三区| 国模一区二区三区白浆| 日韩和欧美的一区|