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

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

?? progbar.c

?? Samsung ARM7 s3c44b0 + uC-OSii + uC-GUI 完美的綜合到了一起
?? 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        : ProgBar.cPurpose     : Progress bar for emWin GSC---------------------------END-OF-HEADER------------------------------*/#include <stdlib.h>#include <string.h>#include "GUI_Private.h"#include "ProgBar.h"#include "Widget.h"#if GUI_WINSUPPORT/***********************************************************************       Private config defaults************************************************************************/#ifndef PROGBAR_DEFAULT_FONT  #define PROGBAR_DEFAULT_FONT GUI_DEFAULT_FONT#endif#ifndef PROGBAR_DEFAULT_BARCOLOR0  #define PROGBAR_DEFAULT_BARCOLOR0 0x555555#endif#ifndef PROGBAR_DEFAULT_BARCOLOR1  #define PROGBAR_DEFAULT_BARCOLOR1 0xAAAAAA#endif#ifndef PROGBAR_DEFAULT_TEXTCOLOR0  #define PROGBAR_DEFAULT_TEXTCOLOR0 0xFFFFFF#endif#ifndef PROGBAR_DEFAULT_TEXTCOLOR1  #define PROGBAR_DEFAULT_TEXTCOLOR1 0x000000#endif/***********************************************************************       Object definition************************************************************************/typedef struct {  WIDGET Widget;  int v;  const GUI_FONT* pFont;  GUI_COLOR BarColor[2];  GUI_COLOR TextColor[2];  WM_HMEM hpText;  I16 XOff, YOff;  I16 TextAlign;  int Min, Max;/*  I16 Options; */  #if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL    int DebugId;  #endif  } PROGBAR_Obj;/***********************************************************************       Static data************************************************************************//* None *//***********************************************************************       Macros for internal use************************************************************************/#define Invalidate(h) WM_InvalidateWindow(h)#if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL  #define OBJECT_ID 0x4569   /* Magic nubmer, should be unique if possible */  #define INIT_ID(p)   p->DebugId = OBJECT_ID  #define DEINIT_ID(p) p->DebugId = OBJECT_ID+1#else  #define INIT_ID(p)  #define DEINIT_ID(p)#endif/***********************************************************************       Static routines************************************************************************/#if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL  PROGBAR_Obj* PROGBAR_h2p(PROGBAR_Handle h) {    PROGBAR_Obj* p = (PROGBAR_Obj*)WM_HMEM2Ptr(h);    if (p) {      if (p->DebugId != OBJECT_ID) {        GUI_DEBUG_ERROROUT("PROGBAR.C: Wrong handle type or Object not init'ed");        return 0;      }    }    return p;  }  #define PROGBAR_H2P(h) PROGBAR_h2p(h)#else  #define PROGBAR_H2P(h) (PROGBAR_Obj*) WM_HMEM2Ptr(h)#endif/***********************************************************************       _FreeText*/static void _FreeText(PROGBAR_Handle hObj) {  PROGBAR_Obj* pObj = PROGBAR_H2P(hObj);  WM_FREEPTR(&pObj->hpText);}/***********************************************************************       _Value2X*/static int _Value2X(PROGBAR_Handle hObj, int v) {  PROGBAR_Obj* pObj = PROGBAR_H2P(hObj);  int xsize  = WM_GetWindowSizeX(hObj);  int Min = pObj->Min;  int Max = pObj->Max;  if (v<Min)	  v = Min;  if (v> Max)	  v = Max;  return (xsize* (I32)(v-Min)) / (Max-Min);}/***********************************************************************       _DrawPart*/static void _DrawPart(PROGBAR_Obj* pThis,                     int Index,										 int xText, int yText,										 const char* pText){    GUI_SetBkColor(pThis->BarColor[Index]);    GUI_SetColor(pThis->TextColor[Index]);    GUI_Clear();    GUI_GotoXY(xText,yText);		GUI_DispString(pText);}/***********************************************************************       _Paint*/static void _Paint(PROGBAR_Handle hObj) {  PROGBAR_Obj* pObj = PROGBAR_H2P(hObj);  WM_HWIN hWin = hObj;  int xsize = WM_GetWindowSizeX(hWin);  int ysize = WM_GetWindowSizeY(hWin);  int tm;  GUI_SetFont(pObj->pFont);  {    int x1;    int FontSizeY = GUI_GetFontSizeY();    int xText;    int yText = (ysize-FontSizeY)/2;    GUI_RECT r;    int XSizeChar;    char ac[5];   /* Just enough for the percentage */    char*s = ac;    const char* pText;    if (pObj->hpText != WM_HMEM_NULL) {      pText = (const char*) WM_HMEM2Ptr(pObj->hpText);    } else {      GUI_AddDecMin((100*(I32)(pObj->v-pObj->Min))/(pObj->Max-pObj->Min), &s);      *s = '%';			*(s+1) =0;			pText = &ac[0];		}/* Calculate text positions */    XSizeChar = GUI_GetStringDistX(pText);    x1 = _Value2X(hObj, pObj->v);    switch (pObj->TextAlign &GUI_TA_HORIZONTAL) {    case GUI_TA_CENTER:      xText  = (xsize-XSizeChar)/2;			break;    case GUI_TA_LEFT:      xText  = 0;			break;    case GUI_TA_RIGHT:      xText  = xsize-XSizeChar-1;			break;		}    xText += pObj->XOff;    yText += pObj->YOff;    tm = GUI_SetTextMode(GUI_TM_TRANS);/* Draw left bar */    r.x0=0; r.x1=x1-1; r.y0=0; r.y1 = GUI_YMAX;    WM_SetUserClipArea(&r);    _DrawPart(pObj, 0, xText, yText, pText);/* Draw right bar */    r.x0=r.x1+1; r.x1=GUI_XMAX;    WM_SetUserClipArea(&r);    _DrawPart(pObj, 1, xText, yText, pText);  }  WM_SetUserClipArea(NULL);  GUI_SetTextMode(tm);}/***********************************************************************       _Delete*/void _Delete(PROGBAR_Handle hObj) {  _FreeText(hObj);  DEINIT_ID(PROGBAR_H2P(hObj));}/***********************************************************************       _Callback*/static void _Callback (WM_MESSAGE*pMsg) {  PROGBAR_Handle hObj = (PROGBAR_Handle)pMsg->hWin;  switch (pMsg->MsgId) {  case WM_PAINT:    _Paint(hObj);    return;  case WM_DELETE:    _Delete(hObj);    break;  }  WM_DefaultProc(pMsg);}/***********************************************************************       Exported routines:  Create************************************************************************/PROGBAR_Handle PROGBAR_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent, int Id, int Flags) {  /* Create the window */  PROGBAR_Handle hObj =WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent,                                               Flags, _Callback, sizeof(PROGBAR_Obj) - sizeof(WM_Obj));  if (hObj) {    PROGBAR_Obj* pObj = (PROGBAR_Obj*) WM_HMEM2Ptr(hObj);    INIT_ID(pObj);    pObj->Widget.Id       = Id;    /* init member variables */    pObj->pFont =GUI_DEFAULT_FONT;    pObj->BarColor[0] = 0x555555;    pObj->BarColor[1] = 0xaaaaaa;    pObj->TextColor[0] = 0xffffff;    pObj->TextColor[1] = 0x000000;    pObj->TextAlign    = GUI_TA_CENTER;    pObj->Max =100;    pObj->Min =0;  }  return hObj;}PROGBAR_Handle PROGBAR_Create(int x0, int y0, int xsize, int ysize, int Flags) {  return PROGBAR_CreateEx(x0, y0, xsize, ysize, 0, 0, Flags) ;}PROGBAR_Handle  PROGBAR_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK* cb) {  PROGBAR_Handle  hThis;  GUI_USE_PARA(cb);  hThis = PROGBAR_CreateEx(    pCreateInfo->x0 + x0, pCreateInfo->y0 + y0, pCreateInfo->xSize, pCreateInfo->ySize,    hWinParent, pCreateInfo->Id, pCreateInfo->Flags);  return hThis;}/***********************************************************************       Exported routines:  Various methods************************************************************************/void PROGBAR_SetValue(PROGBAR_Handle hObj, int v) {  PROGBAR_Obj* pObj;  GUI_RECT r;  if (hObj) {    WM_LOCK();    pObj= PROGBAR_H2P(hObj);    /* Put v into legal range */    if (v < pObj->Min)	    v = pObj->Min;    if (v > pObj->Max)	    v = pObj->Max;    if (pObj->v != v) {      /* Invalidate */      if (pObj->hpText) {        /* Calculate invalid area */        r.x0 = _Value2X(hObj, pObj->v);        r.x1 = _Value2X(hObj, v);        /* Make sure x0 <= x1 */		    if (r.x0 > r.x1) {			    int t = r.x0;			    r.x0 = r.x1;			    r.x1 = t;		    }		    r.y0 =0;		    r.y1 =4095;        WM_InvalidateRect(hObj,&r);	    } else {        Invalidate(hObj);	    }      pObj->v = v;                         /* Update stored value */    }    WM_UNLOCK();  }}void PROGBAR_SetFont(PROGBAR_Handle hObj, const GUI_FONT* pfont) {  PROGBAR_Obj* pObj;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    pObj->pFont = pfont;    Invalidate(hObj);    WM_UNLOCK();  }}void PROGBAR_SetBarColor(PROGBAR_Handle hObj, int index, GUI_COLOR color) {  PROGBAR_Obj* pObj;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    pObj->BarColor[index] = color;    Invalidate(hObj);    WM_UNLOCK();  }}void PROGBAR_SetTextColor(PROGBAR_Handle hObj, int index, GUI_COLOR color) {  PROGBAR_Obj* pObj;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    pObj->TextColor[index] = color;    Invalidate(hObj);    WM_UNLOCK();  }}void PROGBAR_SetText(PROGBAR_Handle hObj, const char* s) {  PROGBAR_Obj* pObj;  WM_HMEM hMem;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    _FreeText(hObj);    hMem = WM_ALLOC(strlen(s)+1);    strcpy((char *) WM_HMEM2Ptr(hMem), s);    pObj->hpText = hMem;    Invalidate(hObj);    WM_UNLOCK();  }}void PROGBAR_SetTextAlign(PROGBAR_Handle hObj, int Align) {  PROGBAR_Obj* pObj;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    pObj->TextAlign = Align;    Invalidate(hObj);    WM_UNLOCK();  }}void PROGBAR_SetTextPos(PROGBAR_Handle hObj, int XOff, int YOff) {  PROGBAR_Obj* pObj;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    pObj->XOff = XOff;    pObj->YOff = YOff;    Invalidate(hObj);    WM_UNLOCK();  }}void PROGBAR_SetMinMax(PROGBAR_Handle hObj, int Min, int Max) {  PROGBAR_Obj* pObj;  if (hObj) {    WM_LOCK();    pObj = PROGBAR_H2P(hObj);    if (Max > Min) {      if ((Max != pObj->Max) || (Min != pObj->Min)) {        pObj->Min = Min;        pObj->Max = Max;        Invalidate(hObj);      }    }    WM_UNLOCK();  }}#elsevoid WIDGET_Progbar(void) {} /* avoid empty object files */#endif /* GUI_WINSUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲不卡| 亚洲国产精品一区二区www| 亚洲资源在线观看| 国产在线播精品第三| 911精品产国品一二三产区| 中文字幕乱码日本亚洲一区二区| 婷婷综合在线观看| 91麻豆精品在线观看| 国产免费观看久久| 久久黄色级2电影| 91精品国产日韩91久久久久久| 亚洲少妇30p| youjizz久久| 国产偷国产偷精品高清尤物| 蜜臀va亚洲va欧美va天堂| 欧美性猛交一区二区三区精品| 国产精品久久久久久亚洲伦| 国产乱子轮精品视频| 日韩欧美国产高清| 午夜久久久久久久久| 欧美少妇一区二区| 一区二区国产盗摄色噜噜| 99精品国产99久久久久久白柏| 日本一区二区三区国色天香 | 一本久道中文字幕精品亚洲嫩| 精品国产91九色蝌蚪| 蜜桃一区二区三区在线| 777色狠狠一区二区三区| 亚洲chinese男男1069| 欧美色图在线观看| 青椒成人免费视频| 日韩视频中午一区| 久久精品国内一区二区三区| 日韩区在线观看| 精品一区二区在线免费观看| 日韩精品中文字幕一区二区三区| 日本女优在线视频一区二区| 日韩天堂在线观看| 国产精品99久久久久久有的能看| 国产亚洲一二三区| 成人97人人超碰人人99| 最新欧美精品一区二区三区| 91在线精品一区二区三区| 一区二区三区在线免费观看| 欧美日韩成人高清| 国产美女视频一区| 国产精品久久久久久久久动漫| 色www精品视频在线观看| 亚洲国产成人av网| 精品国产一区二区在线观看| 国产精品911| 一区二区三区高清不卡| 欧美一区二区三区视频在线观看| 国产一区二区视频在线| 亚洲色图制服丝袜| 91精品国产综合久久香蕉麻豆| 狠狠色丁香久久婷婷综合_中 | 日韩天堂在线观看| 粉嫩一区二区三区性色av| 亚洲视频一区二区在线观看| 欧美高清一级片在线| 国产精品一区一区三区| 亚洲另类中文字| 精品99一区二区三区| 色综合视频在线观看| 日本美女一区二区三区视频| 亚洲国产高清在线观看视频| 欧美日韩电影在线| 成人动漫在线一区| 日韩av在线免费观看不卡| 国产精品久久久久影院亚瑟| 日韩一卡二卡三卡四卡| 国产69精品久久久久777| 日日夜夜精品视频天天综合网| 久久久国产综合精品女国产盗摄| 色8久久人人97超碰香蕉987| 久久狠狠亚洲综合| 亚洲精品国产a久久久久久| 欧美电影免费观看高清完整版在| 色综合久久久久久久久| 久久疯狂做爰流白浆xx| 亚洲黄色性网站| 欧美激情一区二区三区不卡| 欧美丰满少妇xxxxx高潮对白| 国产91丝袜在线播放| 免费在线成人网| 一区二区三区四区高清精品免费观看| 久久久久九九视频| 欧美一区国产二区| 欧美亚洲动漫制服丝袜| 懂色av中文字幕一区二区三区| 午夜av一区二区| 亚洲国产一区在线观看| 国产精品久久久久国产精品日日 | 国产在线精品一区二区三区不卡 | 日本视频在线一区| 亚洲一区二区欧美激情| 亚洲另类中文字| 亚洲色图欧美偷拍| 日韩一区在线看| 日本一区二区三区久久久久久久久不| 日韩欧美中文一区| 欧美一级xxx| 777a∨成人精品桃花网| 欧美视频一区二| 欧美无乱码久久久免费午夜一区| 91蜜桃在线观看| 色激情天天射综合网| 色综合久久综合中文综合网| av午夜精品一区二区三区| 成人av在线播放网站| www.日本不卡| 91丝袜呻吟高潮美腿白嫩在线观看| 高清视频一区二区| 丁香啪啪综合成人亚洲小说| 成人一级视频在线观看| 成人av在线播放网站| 91丨九色丨蝌蚪丨老版| 91美女片黄在线观看91美女| 91成人网在线| 7777精品伊人久久久大香线蕉最新版 | 欧美日韩高清影院| 欧美区一区二区三区| 日韩一级大片在线| 久久中文字幕电影| 国产精品理论片| 亚洲精品乱码久久久久久黑人| 亚洲国产另类av| 日本成人中文字幕| 国产一区中文字幕| 91猫先生在线| 日韩写真欧美这视频| 久久精子c满五个校花| 国产精品家庭影院| 同产精品九九九| 国产成人啪免费观看软件| 95精品视频在线| 91 com成人网| 亚洲国产电影在线观看| 亚洲电影第三页| 国产老肥熟一区二区三区| 99久久婷婷国产综合精品电影| 日本高清不卡aⅴ免费网站| 欧美丰满一区二区免费视频| 欧美经典一区二区三区| 亚洲永久精品大片| 国产麻豆成人精品| 欧美日韩精品欧美日韩精品一| 精品sm在线观看| 亚洲国产一区二区a毛片| 久久99精品国产麻豆不卡| 色丁香久综合在线久综合在线观看| 日韩免费看的电影| 亚洲免费电影在线| 另类人妖一区二区av| 色噜噜狠狠成人中文综合| 精品免费视频一区二区| 一区二区三区毛片| 成人爽a毛片一区二区免费| 欧美久久久久久蜜桃| 综合色天天鬼久久鬼色| 狠狠色丁香婷婷综合| 欧美日韩一区高清| 中文字幕一区二区三区乱码在线| 蜜臀av一区二区在线免费观看| 99精品视频一区二区三区| 久久日韩精品一区二区五区| 午夜一区二区三区视频| 91香蕉国产在线观看软件| 精品国产凹凸成av人导航| 日韩中文字幕不卡| 一本久久a久久精品亚洲| 国产欧美日韩另类视频免费观看| 日韩精品一二三四| 在线观看区一区二| 综合久久国产九一剧情麻豆| 国产福利91精品一区二区三区| 3d成人h动漫网站入口| 亚洲一区二区欧美日韩| 一本久久a久久免费精品不卡| 国产精品欧美极品| 国产精品一区一区三区| 精品国产乱码久久久久久1区2区| 亚洲午夜激情网站| 欧美三级资源在线| 亚洲午夜久久久久| 欧美伊人精品成人久久综合97| 亚洲欧洲韩国日本视频| 99精品欧美一区| 成人欧美一区二区三区1314| 成人一区在线看| 亚洲国产精品t66y| 成人免费视频播放| 国产精品第一页第二页第三页| 成人一级片在线观看| 国产精品亲子乱子伦xxxx裸| 成人三级在线视频| 国产精品久久精品日日| 99v久久综合狠狠综合久久| 国产精品传媒在线|