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

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

?? guicurs.c

?? uCOS/uCGUI在2440上的移植
?? 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        : GUICurs.CPurpose     : Cursor routines of the graphics library---------------------------END-OF-HEADER------------------------------*/#include <stddef.h>           /* needed for definition of NULL */#include "GUI_Private.h"#if GUI_SUPPORT_CURSOR/*********************************************************************       Types**********************************************************************/void   (*_cbShowCursor)(void);void   (*_cbHideCursor)(void);/*********************************************************************       static data**********************************************************************/static  GUI_HMEM _hBuffer;static  GUI_RECT _Rect;static  char _CursorOn;static  const GUI_BITMAP* _pBM;static  U8   _CursorDeActCnt;static  int  _AllocSize;/*********************************************************************                  static Show / Hide*********************************************************************Purpose:  Show / Hide cursor.*/static void Hide(void) {  GUI_RECT r;  r = GUI_Context.ClipRect;  LCD_SetClipRectMax();  if (_cbHideCursor)    _cbHideCursor();  GUI_Context.ClipRect = r;}static void Show(void) {  GUI_RECT r;  r = GUI_Context.ClipRect;  LCD_SetClipRectMax();  if (_cbShowCursor)    _cbShowCursor();  GUI_Context.ClipRect = r;}static void  _CalcRect(void) {  if (_pBM) {    _Rect.x1 = _Rect.x0 + _pBM->XSize - 1;    _Rect.y1 = _Rect.y0 + _pBM->YSize - 1;  }}/*********************************************************************                  Activate / Deactivate*********************************************************************Purpose:  Allows activation or deactivation of cursor. Can be used to make  cursor flash.*/void GUI_CURSOR_Activate(void) {  GUI_LOCK();  if ((--_CursorDeActCnt) ==0) {    Show();  }  GUI_UNLOCK();}void GUI_CURSOR_Deactivate(void) {  GUI_LOCK();  if (_CursorDeActCnt-- ==0)    Hide();  GUI_UNLOCK();}/*********************************************************************                  static: SetCursor*********************************************************************Purpose:  Show cursor.*/static void _SetCursor(const GUI_BITMAP* pBM, void (*cbShow)(void), void (*cbHide)(void)) {  Hide();  /* Make sure the old cursor (if there was an old one) is history */  _CursorOn = 1;  _pBM = pBM;  _cbShowCursor = cbShow;  _cbHideCursor = cbHide;  Show();}/*********************************************************************                  Cursor*********************************************************************Purpose:*/static void _Draw(void) {  int x, y, xSize, ySize;  LCD_PIXELINDEX* pData;  GUI_LOCK();  /* Save bitmap data */  pData = GUI_ALLOC_h2p(_hBuffer);  xSize = _Rect.x1 - _Rect.x0 + 1;  ySize = _Rect.y1 - _Rect.y0 + 1;  for (y = 0; y < ySize; y++) {    for (x = 0; x < xSize; x++) {      *(pData + x) = LCD_GetPixelIndex(_Rect.x0 + x, _Rect.y0 + y);    }    pData += _pBM->XSize;  }  GUI_UNLOCK();  /* Draw bitmap */  GL_DrawBitmap(_pBM, _Rect.x0, _Rect.y0);}static void _Undraw(void) {  int x, y, xSize, ySize;  LCD_PIXELINDEX* pData;  /* Save bitmap data */  GUI_LOCK();  pData = GUI_ALLOC_h2p(_hBuffer);  xSize = _Rect.x1 - _Rect.x0 + 1;  ySize = _Rect.y1 - _Rect.y0 + 1;  for (y = 0; y < ySize; y++) {    for (x = 0; x < xSize; x++) {      LCD_SetPixelIndex(x + _Rect.x0, y + _Rect.y0, *(pData + x));    }    pData += _pBM->XSize;  }  GUI_UNLOCK();}void GUI_CURSOR_Select(const GUI_BITMAP* pBM) {  int AllocSize;  GUI_LOCK();  if (pBM != _pBM) {    AllocSize = pBM->XSize * pBM->YSize * sizeof(LCD_PIXELINDEX);    if (AllocSize != _AllocSize) {      GUI_ALLOC_FreePtr(&_hBuffer);    }    _hBuffer = GUI_ALLOC_Alloc(AllocSize);    _SetCursor(pBM, _Draw, _Undraw);    _pBM = pBM;    _CalcRect();  }  GUI_UNLOCK();}/*********************************************************************                  GUI_CURSOR_TempHide*********************************************************************Purpose:  Hide cursor if a part of the given rectangle is located in the  rectangle used for the cursor. This routine is called automatically  by the window manager. This way the window manager can  automatically make sure that the cursor is always displayed  correctly.Params:  pRect   Rectangle under consideration*/void GUI_CURSOR_TempHide(const GUI_RECT* pRect) {  if (_CursorOn) {    if (_CursorDeActCnt==0) {      if ((pRect == NULL) | GUI_RectsIntersect(pRect, &_Rect)) {        Hide();      }    }  }}void GUI_CURSOR_TempUnhide(const GUI_RECT* pRect) {  if (_CursorOn) {    if (_CursorDeActCnt==0) {      if ((pRect == NULL) | GUI_RectsIntersect(pRect, &_Rect)) {        Show();      }    }  }}/*********************************************************************                  GUI_CURSOR_Clear*********************************************************************Purpose:  Clears cursor.*/void GUI_CURSOR_Clear(void) {  GUI_LOCK();  Hide();  _CursorOn = 0;  /* Set function pointer which window manager can use */  GUI_CURSOR_pfTempHide   = NULL;  GUI_CURSOR_pfTempUnhide = NULL;  GUI_UNLOCK();}/*********************************************************************                  GUI_CURSOR_Show*********************************************************************Purpose:  Shows cursor.*/void GUI_CURSOR_Show(void) {  GUI_LOCK();  Hide();  _CursorOn = 1;  if (!_pBM) {    GUI_CURSOR_Select(&GUI_MouseArrow);  }  /* Set function pointer which window manager can use */  GUI_CURSOR_pfTempHide   = GUI_CURSOR_TempHide;  GUI_CURSOR_pfTempUnhide = GUI_CURSOR_TempUnhide;  GUI_UNLOCK();}/*********************************************************************                  GUI_CURSOR_SetPosition*********************************************************************Purpose:  Sets position of cursor.*/void GUI_CURSOR_SetPosition(int x, int y) {  GUI_LOCK();  if ((_Rect.x0 != x) | (_Rect.y0 != y)) {    if (_CursorOn) {      Hide();    }    _Rect.x0 = x;    _Rect.y0 = y;    _CalcRect();    if (_CursorOn) {      Show();    }  }  GUI_UNLOCK();}#elsevoid GUICurs_C(void) {} /* avoid empty object files */#endif   /* GUI_SUPPORT_CURSOR */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕制服丝袜一区二区三区| 国产精品中文有码| 免费在线观看日韩欧美| 不卡电影一区二区三区| 久久久蜜臀国产一区二区| 午夜精品视频一区| 91亚洲午夜精品久久久久久| 精品第一国产综合精品aⅴ| 亚洲高清视频中文字幕| 91视频国产观看| 久久久久久亚洲综合影院红桃| 无吗不卡中文字幕| 欧美一a一片一级一片| 日本一区二区三区在线观看| 国产资源在线一区| 欧美大胆人体bbbb| 麻豆精品久久久| 日韩一区二区三区免费观看| 视频在线观看91| 在线看国产日韩| 亚洲自拍偷拍图区| 日本韩国欧美国产| 依依成人综合视频| 在线看一区二区| 亚洲成人tv网| 在线成人av影院| 日韩成人一区二区| 日韩一级片在线播放| 蜜桃久久久久久| 精品国产百合女同互慰| 国产一区二区三区久久久| 26uuu另类欧美亚洲曰本| 精品亚洲成av人在线观看| 精品国产第一区二区三区观看体验| 免费一级片91| 精品久久国产字幕高潮| 国内精品伊人久久久久av影院| 欧美成人女星排名| 国产乱码精品一区二区三区av| 精品剧情在线观看| 国产丶欧美丶日本不卡视频| 久久久久国产精品麻豆ai换脸 | 91网站最新网址| 国产精品视频yy9299一区| aaa国产一区| 亚洲美女在线一区| 欧美精品一卡二卡| 国产一区二区毛片| 亚洲欧美日韩中文字幕一区二区三区 | 91蝌蚪porny九色| 一区二区三区四区不卡在线| 精品视频在线免费观看| 麻豆专区一区二区三区四区五区| 久久综合色之久久综合| 99国产精品一区| 日韩国产欧美视频| 欧美国产精品中文字幕| 欧美综合色免费| 麻豆精品新av中文字幕| 亚洲欧洲性图库| 欧美精品乱人伦久久久久久| 国产中文字幕精品| 亚洲免费视频中文字幕| 精品欧美黑人一区二区三区| 99视频一区二区| 日韩vs国产vs欧美| 中文字幕精品一区二区精品绿巨人| 日本高清不卡aⅴ免费网站| 日本欧美加勒比视频| 国产精品欧美久久久久一区二区| 色婷婷精品大在线视频 | 日韩一二三四区| 成人av免费在线| 丝袜亚洲另类丝袜在线| 久久久精品免费免费| 欧美日韩一区 二区 三区 久久精品| 久久 天天综合| 亚洲第一精品在线| 亚洲国产精品传媒在线观看| 欧美精品自拍偷拍| 一本大道av伊人久久综合| 精彩视频一区二区三区| 五月天视频一区| 最新热久久免费视频| 久久久久久久综合狠狠综合| 欧美日韩免费在线视频| 色综合激情五月| av电影在线观看完整版一区二区| 日本不卡高清视频| 一区二区三区av电影| 中文字幕在线免费不卡| 国产欧美视频在线观看| 日韩欧美一区二区视频| 777a∨成人精品桃花网| 精品视频在线看| 欧美亚一区二区| 91香蕉视频mp4| 94色蜜桃网一区二区三区| 国产高清精品在线| 久草热8精品视频在线观看| 视频一区二区三区中文字幕| 亚洲在线视频网站| 一区二区三区在线视频观看58| 国产嫩草影院久久久久| 久久精品欧美一区二区三区不卡| 日韩三级免费观看| 精品久久久久av影院| 精品国产欧美一区二区| 久久先锋影音av| 久久精品视频一区二区三区| 精品国产91乱码一区二区三区| 日韩欧美电影在线| 欧美成人猛片aaaaaaa| www成人在线观看| 久久久久久久久久久久久夜| 国产日韩精品一区| 国产精品毛片无遮挡高清| 国产欧美日韩另类视频免费观看| 国产欧美综合在线| 亚洲视频在线观看三级| 亚洲曰韩产成在线| 日韩精品成人一区二区三区| 日韩国产在线一| 另类综合日韩欧美亚洲| 激情图区综合网| 粉嫩aⅴ一区二区三区四区 | 欧美日韩国产成人在线免费| 欧美日韩一区 二区 三区 久久精品| 欧美96一区二区免费视频| 一区二区三区蜜桃| 亚洲.国产.中文慕字在线| 人人超碰91尤物精品国产| 激情五月婷婷综合网| 懂色av中文一区二区三区| 成人激情动漫在线观看| 91浏览器在线视频| 日韩精品一区在线| 国产精品久久久久毛片软件| 亚洲在线视频免费观看| 免费日韩伦理电影| 成人av资源在线观看| 欧美挠脚心视频网站| 国产亚洲一本大道中文在线| 综合分类小说区另类春色亚洲小说欧美 | 亚洲精品一线二线三线| 国产欧美日韩不卡免费| 亚洲国产aⅴ成人精品无吗| 精品一区二区三区av| 成人黄色av电影| 欧美二区三区91| 国产欧美中文在线| 国产精品一区二区在线观看网站 | 国产一区二区三区免费观看| 91蝌蚪porny| 欧美精品一区二| 一区二区三区不卡在线观看| 国产精品原创巨作av| 欧美日韩欧美一区二区| 国产精品美女久久久久久久久| 天堂一区二区在线| 99久久婷婷国产精品综合| 日韩欧美一级二级三级| 一个色妞综合视频在线观看| 国产精品自拍三区| 777精品伊人久久久久大香线蕉| 国产精品素人视频| 六月婷婷色综合| 欧美日韩国产影片| 国产精品成人一区二区三区夜夜夜| 日本aⅴ亚洲精品中文乱码| 色婷婷久久综合| 国产精品毛片大码女人| 国产一区二区三区av电影| 欧美一区日韩一区| 亚洲国产wwwccc36天堂| 99久久综合色| 中文字幕欧美三区| 国精产品一区一区三区mba视频| 欧美精品在线视频| 亚洲风情在线资源站| 在线免费亚洲电影| 亚洲人123区| 91小视频在线| 国产精品免费免费| 成人综合日日夜夜| 亚洲综合色区另类av| 91精品国产综合久久久久久久| 久久精品av麻豆的观看方式| 国产精品一区二区在线播放| 91精品国产综合久久久久久久久久| 亚洲一二三区在线观看| 一本色道久久综合精品竹菊| 亚洲三级在线免费| 97se亚洲国产综合自在线| 中文字幕在线不卡一区二区三区| 国产69精品久久777的优势| 中文一区二区在线观看| a4yy欧美一区二区三区| 亚洲摸摸操操av| 欧美视频在线播放|