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

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

?? terminal.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        : TEMPLATE.cPurpose     : Template for new emWin GSC widgets----------------------------------------------------------------------Version-Date---Author-Explanation----------------------------------------------------------------------0.0     yymmdd RS     Start of development----------------------------------------------------------------------Known problems or limitations with current version----------------------------------------------------------------------None.----------------------------------------------------------------------Open issues----------------------------------------------------------------------None---------------------------END-OF-HEADER------------------------------*/#include <stdlib.h>#include <string.h>#include "GUI.h"#if GUI_WINSUPPORT#include "TERMINAL.h"#include "GUIDebug.h"/***********************************************************************              Private config defaults************************************************************************//* None *//***********************************************************************                 Object definition************************************************************************/typedef struct {  WM_Obj WMObj;  WM_HMEM hpText;  I16 MaxLen;  const GUI_FONT* pFont;  int Flags;  #if GUI_DEBUG_LEVEL >1    int DebugId;  #endif  } TERMINAL_Obj;/***********************************************************************              Static data************************************************************************//* None *//***********************************************************************                 Macros for internal use************************************************************************/#define TERMINAL_H2P(h) ((TERMINAL_Obj*)WM_HMEM2Ptr(h))#define Invalidate(h) WM_InvalidateWindow(h)#if GUI_DEBUG_LEVEL >1  #define OBJECT_ID 0x5565   /* Magic numer, should be unique if possible */  #define ASSERT_IS_VALID_PTR(p) GUI_DEBUG_ERROROUT_IF(p->DebugId != OBJECT_ID, "EDIT.C: Wrong handle type or Object not init'ed")  #define INIT_ID(p)   p->DebugId = OBJECT_ID  #define DEINIT_ID(p) p->DebugId = 0#else  #define ASSERT_IS_VALID_PTR(p)  #define INIT_ID(p)  #define DEINIT_ID(p)#endif/***********************************************************************                 Static routines************************************************************************/static void Paint(TERMINAL_Obj* pObj/*, GUI_RECT*pRect*/) {  char*s = (char*) WM_HMEM2Ptr(pObj->hpText);  GUI_RECT rClient;  GUI_DEBUG_LOG("TERMINAL: Paint(..)\n");  GUI_GetClientRect(&rClient);/* Draw background */  GUI_SetBkColor (GUI_WHITE/*pObj->aBkColor[0]*/);  GUI_SetColor   (GUI_BLACK /*pObj->aTextColor[0]*/);  GUI_Clear();/* Draw the text */    {    GUI_RECT rText = rClient;    rText.x0 +=3;//    GUI_SetFont    (pObj->pFont);    GUI_DispStringInRect(s, &rText, GUI_TA_LEFT);  }}static void Delete(TERMINAL_Obj* pObj) {  if (pObj->hpText) {    GUI_ALLOC_Free(pObj->hpText);    pObj->hpText = 0;    GUI_DEBUG_LOG("TERMINAL: Delete: Deleting attached string\n");  }}static WM_RESULT _TERMINAL_Callback (/*const*/ WM_MESSAGE*pMsg) {  TERMINAL_Handle hObj = pMsg->hWin;  TERMINAL_Obj* pObj = TERMINAL_H2P(hObj);  switch (pMsg->MsgId) {  case WM_PAINT:    GUI_DEBUG_LOG("BUTTON: _Callback(WM_PAINT)\n");    Paint(pObj/*, (GUI_RECT*)pMsg->Data.p*/);    return;  case WM_DELETE:    GUI_DEBUG_LOG("EDIT: _Callback(WM_DELETE)\n");    Delete(pObj);    break;       /* No return here ... WM_DefaultProc needs to be called */  }  WM_DefaultProc(pMsg);}/***********************************************************************           Exported routines:  Create************************************************************************//* Note: the parameters to a create function may vary.         Some widgets may have multiple create functions */TERMINAL_Handle TERMINAL_CreateAsChild( int x0, int y0, int xsize, int ysize, WM_HWIN hWinParent, int MaxLen, int Flags) {  TERMINAL_Handle hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hWinParent,                        Flags, _TERMINAL_Callback,                       sizeof(TERMINAL_Obj)-sizeof(WM_Obj));  if (hObj) {    TERMINAL_Obj* pObj = TERMINAL_H2P(hObj);    pObj->hpText = WM_ALLOC(MaxLen+1);    /* init member variables */    if (pObj->hpText ==0) {      GUI_DEBUG_ERROROUT("TERMINAL_Create failed to alloc buffer");      TERMINAL_Delete(hObj);      hObj =0;    }    pObj->MaxLen = MaxLen;  } else {    GUI_DEBUG_ERROROUT_IF(hObj==0, "TERMINAL_Create failed")  }  return hObj;}TERMINAL_Handle TERMINAL_Create(int x0, int y0, int xsize, int ysize, int MaxLen, int Flags) {  return TERMINAL_CreateAsChild(x0, y0, xsize, ysize, 0/* hWinParent */,  MaxLen, Flags);}TERMINAL_Handle TERMINAL_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK* cb) {  TERMINAL_Handle  hThis;  GUI_USE_PARA(cb);  hThis = TERMINAL_CreateAsChild(pCreateInfo->x0 + x0, pCreateInfo->y0 + y0, pCreateInfo->xSize, pCreateInfo->ySize,                                 hWinParent, pCreateInfo->Id, pCreateInfo->Flags);  return hThis;}/***********************************************************************        Exported routines:  Various methods************************************************************************/void TERMINAL_SetFont(TERMINAL_Handle hObj, const GUI_FONT* pfont) {  TERMINAL_Obj* pObj = TERMINAL_H2P(hObj);  pObj->pFont = pfont;  Invalidate(hObj);}void TERMINAL_Add(TERMINAL_Handle hObj, const char* sAdd) {  if (!sAdd) {    GUI_DEBUG_WARN("TERMINAL_Add: NULL pointer passed");    return;  }  if (hObj) {    TERMINAL_Obj* pObj = TERMINAL_H2P(hObj);    char* sBuffer = (char*) WM_HMEM2Ptr(pObj->hpText);    int AddLen = strlen(sAdd);    int NewLen = AddLen+strlen(sBuffer);    if (AddLen > pObj->MaxLen) {      GUI_DEBUG_WARN("TERMINAL_Add: String longer than buffer !");      return;    }    /* Make space in buffer if necessary */    if (NewLen > pObj->MaxLen) {      *sBuffer =0;    }    sBuffer+= strlen(sBuffer);     memcpy(sBuffer, sAdd, AddLen);    *(sBuffer+AddLen) = 0;    Invalidate(hObj);  }}void TERMINAL_GetText(TERMINAL_Handle hObj, char* sDest, int MaxLen) {  TERMINAL_Obj* pObj = TERMINAL_H2P(hObj);  if (pObj) {    char * sSource = (char*) WM_HMEM2Ptr(pObj->hpText);    int Len = strlen(sSource);    if (Len > (MaxLen - 1))      Len = MaxLen - 1;    memcpy((void *)sDest, (const void *)sSource, Len);    *(sDest+Len) = 0;  }}#elsevoid WIDGET_Terminal(void) {} /* avoid empty object files */#endif   /* if GUI_WINSUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区蜜桃网| 日韩精品一区在线观看| 亚洲日穴在线视频| 99精品久久99久久久久| 一区二区三区中文字幕| 欧美日韩精品三区| 日产欧产美韩系列久久99| 精品久久久久99| 国产福利91精品一区| 亚洲天堂2014| 91麻豆精品国产综合久久久久久| 日产欧产美韩系列久久99| 精品理论电影在线| 不卡电影免费在线播放一区| 亚洲第一主播视频| 欧美大黄免费观看| 波多野结衣中文字幕一区| 亚洲在线成人精品| 欧美成人精品1314www| 福利一区二区在线观看| 亚洲主播在线播放| 精品国产一区二区三区忘忧草| 丰满少妇久久久久久久| 亚洲高清免费视频| 精品精品国产高清a毛片牛牛| 久久爱www久久做| 亚洲三级在线播放| 日韩午夜电影在线观看| 成人黄页毛片网站| 日韩主播视频在线| 国产精品毛片久久久久久| 欧美日韩国产小视频在线观看| 精品中文字幕一区二区| 亚洲欧洲日韩女同| 欧美电视剧免费观看| 色天天综合久久久久综合片| 久久精品国产网站| 夜夜爽夜夜爽精品视频| 久久久电影一区二区三区| 日本韩国一区二区| 国产麻豆精品视频| 日韩国产在线观看| 亚洲综合丝袜美腿| 日本一区二区免费在线| 日韩精品一区二区三区视频在线观看 | 国产精品久久久久久久岛一牛影视| 欧美日韩国产首页| 99re这里只有精品6| 国产曰批免费观看久久久| 亚洲福利视频一区| 综合av第一页| 国产午夜精品一区二区三区视频| 91精品国产入口在线| 色综合久久精品| 成人一区二区三区视频在线观看| 捆绑紧缚一区二区三区视频 | 4438成人网| 91美女片黄在线观看| 国产成人一区二区精品非洲| 久久精品久久精品| 日韩不卡一区二区| 五月天久久比比资源色| 亚洲午夜精品在线| 亚洲午夜免费视频| 亚洲一区二区三区自拍| 亚洲欧美激情插| 中文字幕在线不卡一区二区三区| 国产日韩一级二级三级| 精品国产精品网麻豆系列| 91精品啪在线观看国产60岁| 精品视频免费看| aaa国产一区| 国产麻豆视频一区| 极品美女销魂一区二区三区免费| 日韩中文字幕区一区有砖一区| 一区二区三区四区精品在线视频 | 日韩精品中文字幕在线一区| 欧美精三区欧美精三区| 欧美亚日韩国产aⅴ精品中极品| 色偷偷久久人人79超碰人人澡| 色婷婷久久99综合精品jk白丝| 在线观看日韩电影| 欧美三级一区二区| 在线播放日韩导航| 精品国产91久久久久久久妲己| 欧美日韩精品综合在线| 欧美老女人在线| 欧美一级日韩不卡播放免费| 日韩一区二区三区免费看| 欧美成人综合网站| 久久久久久久av麻豆果冻| 国产精品国产三级国产aⅴ入口| 国产精品免费av| 一区二区三区欧美视频| 日本女优在线视频一区二区| 成人精品国产一区二区4080| 亚洲色欲色欲www| 亚洲免费视频中文字幕| 亚洲妇熟xx妇色黄| 精品一区二区三区欧美| 成人激情小说网站| 色成年激情久久综合| 91麻豆精品91久久久久久清纯| 精品美女在线观看| 亚洲视频图片小说| 午夜精品久久久久久久蜜桃app| 久久国产福利国产秒拍| 成人一级片网址| 欧美日韩视频在线第一区| 3atv在线一区二区三区| 国产欧美精品一区二区色综合| 亚洲女同一区二区| 久久精品国产精品亚洲综合| 成av人片一区二区| 日韩一本二本av| 亚洲欧美精品午睡沙发| 美女视频第一区二区三区免费观看网站| 国产精品中文有码| 欧美日韩五月天| 国产精品电影一区二区| 免费亚洲电影在线| 色妹子一区二区| 久久精品国产精品亚洲综合| 国产精品正在播放| 在线观看精品一区| 久久亚洲精精品中文字幕早川悠里 | 亚洲欧洲精品天堂一级 | 91福利视频久久久久| 欧美成人一级视频| 亚洲一区中文日韩| 成+人+亚洲+综合天堂| 日韩免费福利电影在线观看| 一区二区三区四区高清精品免费观看| 久久国产日韩欧美精品| 欧美写真视频网站| 亚洲天堂久久久久久久| 国产一区二区三区在线观看免费| 欧美手机在线视频| 亚洲男人的天堂av| 国产成人免费xxxxxxxx| 日韩免费观看高清完整版在线观看| 综合网在线视频| 成人激情小说乱人伦| 国产精品一区二区视频| 亚洲成人综合视频| av一本久道久久综合久久鬼色| 日韩精品在线一区二区| 亚洲一区影音先锋| 成人av网站在线| 久久久久久久久伊人| 蜜臀国产一区二区三区在线播放| 在线视频一区二区三区| 综合欧美一区二区三区| 丁香六月综合激情| 久久精品人人爽人人爽| 久久99国产精品久久99果冻传媒| 欧美日韩专区在线| 亚洲一线二线三线久久久| 一本色道久久综合亚洲精品按摩| 国产欧美一区二区精品性色 | 韩国在线一区二区| 欧美一级夜夜爽| 日本sm残虐另类| 日韩一本二本av| 久久国产精品72免费观看| 日韩欧美一级在线播放| 日韩1区2区3区| 日韩午夜在线观看视频| 久久99国内精品| 久久欧美中文字幕| 懂色av一区二区三区蜜臀| 久久先锋影音av| 风间由美一区二区三区在线观看| 欧美激情在线一区二区| 成人一区二区三区| 中文字幕色av一区二区三区| 成人性生交大片免费看中文| 日韩美女久久久| 欧美视频一区在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩一卡二卡三卡国产欧美| 久久av资源网| 国产精品伦理在线| 色婷婷香蕉在线一区二区| 日韩精品电影在线| 欧美一级欧美三级| 国产专区综合网| 国产精品色在线| 在线精品视频免费观看| 日韩二区三区四区| 国产午夜久久久久| 99国产精品国产精品毛片| 一区二区三区四区在线| 欧美一区二区三区在| 国产剧情av麻豆香蕉精品| 亚洲人妖av一区二区| 欧美一区二区二区| 成人99免费视频| 奇米影视一区二区三区| 国产清纯在线一区二区www|