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

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

?? terminal.c

?? 一個(gè)在44b0上移植成功的ucgui
?? C
字號(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        : TEMPLATE.c
Purpose     : 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;
  }
}

#else

void WIDGET_Terminal(void) {} /* avoid empty object files */

#endif   /* if GUI_WINSUPPORT */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产岛国毛片在线| 欧美精品亚洲一区二区在线播放| 国产一区二区三区久久悠悠色av| 五月婷婷久久丁香| 久草在线在线精品观看| 国产凹凸在线观看一区二区| av色综合久久天堂av综合| 欧美特级限制片免费在线观看| 欧美午夜理伦三级在线观看| 在线成人免费观看| 国产欧美日韩视频在线观看| 国产精品网站在线播放| 日韩高清中文字幕一区| 国产精品亚洲午夜一区二区三区| 色综合久久综合网欧美综合网| 欧美欧美午夜aⅴ在线观看| 久久青草国产手机看片福利盒子| 一区二区三区资源| 国产乱国产乱300精品| 欧美日韩欧美一区二区| 中文字幕亚洲不卡| youjizz国产精品| 日韩欧美国产一区在线观看| 亚洲精品国产无天堂网2021 | 国产真实精品久久二三区| 欧美三级乱人伦电影| 国产精品情趣视频| 国产馆精品极品| 精品盗摄一区二区三区| 久久精品免费看| 日韩美女天天操| 日本美女视频一区二区| 日韩视频不卡中文| 蜜臂av日日欢夜夜爽一区| 欧美日韩高清影院| 亚洲成av人**亚洲成av**| 欧美性xxxxxx少妇| 天天影视网天天综合色在线播放| 欧美日韩精品三区| 久久精品国产亚洲高清剧情介绍| 制服丝袜成人动漫| 激情小说欧美图片| 国产精品国产三级国产专播品爱网 | 一区二区在线看| 欧美日韩第一区日日骚| 麻豆精品国产91久久久久久| 久久精品人人爽人人爽| 色偷偷久久人人79超碰人人澡| 一区二区三区精品在线观看| 91美女在线看| 国产精品一区免费视频| 亚洲人吸女人奶水| 日韩一级黄色大片| 成人avav影音| 青青青伊人色综合久久| 亚洲欧洲国产专区| 欧美大胆人体bbbb| 欧洲亚洲精品在线| 不卡的av中国片| 免费在线视频一区| 一级日本不卡的影视| 久久一区二区三区国产精品| 欧美军同video69gay| 成人黄色a**站在线观看| 青青草国产成人av片免费| 亚洲精品中文在线观看| 国产欧美一区二区精品久导航| 欧美日韩一区三区四区| 99久久精品国产麻豆演员表| 韩国女主播成人在线| 日韩电影免费在线观看网站| 综合在线观看色| 日本一区二区三区四区 | 国产精品一区久久久久| 美女视频黄a大片欧美| 日韩国产成人精品| 美女在线视频一区| 欧美aaaaaa午夜精品| 日韩高清电影一区| 蜜臀av在线播放一区二区三区| 性做久久久久久久免费看| 亚洲观看高清完整版在线观看| 亚洲乱码国产乱码精品精98午夜 | 国产精品―色哟哟| 精品捆绑美女sm三区| 91精品国产手机| 91 com成人网| 日韩视频永久免费| 日韩一区二区三区在线视频| 制服丝袜在线91| 日韩视频一区二区三区 | 亚洲综合成人在线视频| 精品国产不卡一区二区三区| 日韩欧美国产电影| 在线欧美一区二区| 欧美视频在线不卡| 国产精品久久看| 一区二区三区精品视频| 日韩成人一级大片| 国产a视频精品免费观看| 成人激情午夜影院| 99视频精品免费视频| 91精品国产福利| 久久新电视剧免费观看| 最新国产成人在线观看| 一区二区三区成人| 亚洲一区av在线| 视频一区二区国产| 国产91在线看| 欧美性猛交xxxxxx富婆| 久久天天做天天爱综合色| 久久久一区二区| 日韩主播视频在线| 国产成人一区二区精品非洲| 日本伦理一区二区| 久久久久久久精| 日韩中文欧美在线| 欧美吞精做爰啪啪高潮| 久久综合网色—综合色88| 成人v精品蜜桃久久一区| 欧美日韩国产欧美日美国产精品| 国产精品三级视频| 亚洲.国产.中文慕字在线| 福利一区二区在线观看| 欧美mv日韩mv国产网站app| 亚洲永久精品大片| 99国产精品视频免费观看| 欧美一区二区三区白人| 一区二区三区四区视频精品免费| 国产精品一区二区三区99| 日韩一区二区三区精品视频| 亚洲自拍偷拍欧美| 91丨九色丨尤物| 亚洲男人的天堂网| 欧美日韩国产色站一区二区三区| 中文字幕在线观看一区| 一本高清dvd不卡在线观看| 亚洲欧美激情视频在线观看一区二区三区| 国产iv一区二区三区| 欧美激情一区二区三区全黄| 91亚洲精品久久久蜜桃| 亚洲欧美日韩综合aⅴ视频| 欧美这里有精品| 美日韩一区二区| 亚洲精品一区二区三区精华液| 国产九九视频一区二区三区| 国产视频一区在线观看| 97精品久久久久中文字幕| 亚洲欧美一区二区在线观看| 欧美午夜片在线看| 国产揄拍国内精品对白| 国产精品激情偷乱一区二区∴| 91久久线看在观草草青青 | 亚洲欧美另类综合偷拍| 精品日产卡一卡二卡麻豆| 色偷偷一区二区三区| 久久99精品久久久久久动态图| 国产欧美1区2区3区| 欧美精品乱人伦久久久久久| 经典三级在线一区| 亚洲高清在线视频| 亚洲人成网站影音先锋播放| 日韩你懂的在线播放| 91久久国产最好的精华液| 国产一区二区不卡在线| 亚洲欧洲综合另类在线| 国产精品久久久久四虎| 欧美色网一区二区| 在线中文字幕一区| 成人av网在线| 风间由美中文字幕在线看视频国产欧美| 亚洲高清中文字幕| 一区二区三区在线视频观看| 欧美国产欧美亚州国产日韩mv天天看完整| 91国偷自产一区二区开放时间| 国产一区二区三区| 国产精品1区2区3区在线观看| 天天综合色天天综合色h| 国产精品污网站| 亚洲特黄一级片| 国产精品美女久久久久久 | 欧美一区二区三区婷婷月色| 91搞黄在线观看| 在线观看国产日韩| 欧美电影一区二区| 日韩一区二区三区电影在线观看| 波多野结衣视频一区| 91美女在线看| 777午夜精品免费视频| 国产亚洲成年网址在线观看| 国产精品久99| 精品亚洲欧美一区| 色婷婷久久一区二区三区麻豆| 欧美一级高清片在线观看| 国产欧美一区二区三区网站| 五月天亚洲婷婷| 国产精品夜夜嗨| 欧美午夜精品久久久久久孕妇| 欧美日韩的一区二区| 欧美大黄免费观看|