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

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

?? edithex.c

?? 一種可移植系統
?? 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        : EditHex
Purpose     : Edit hexadecimal values
---------------------------END-OF-HEADER------------------------------
*/

#include <string.h>

#include "EDIT.h"
#include "GUIDebug.h"
#include "GUI_Protected.h"
#include "EDIT_Private.h"

#if GUI_WINSUPPORT

/*********************************************************************
*
*        Defaults for config switches
*
**********************************************************************
*/
#ifndef EDIT_HEX_DIGITONLY
  #define EDIT_HEX_DIGITONLY     0
#endif

/*********************************************************************
*
*             Helpers
*
**********************************************************************
*/

static int _HexChar2Int(int Char) {
  if ((Char >= '0') && (Char <= '9'))
    return Char - '0';
  Char &= ~0x20;
  if ((Char >= 'A') && (Char <= 'F'))
    return Char - 'A' + 10;
  return -1;
}

static void _UpdateBuffer(EDIT_Obj* pObj) {
  char * s = (char*) WM_HMEM2Ptr(pObj->hpText);
  GUI_AddHex(pObj->CurrentValue, pObj->MaxLen, &s);
}

static void _EditHex(int Nibble, EDIT_Obj* pObj, EDIT_Handle hObj) {
  int Pos = pObj->MaxLen - pObj->CursorPos - 1;   /* Nibble position */
  U32 AndMask = ~(15     << (Pos << 2));
  U32 OrMask  =   Nibble << (Pos << 2);
  I32 Result  = pObj->CurrentValue & AndMask;
  Result     |= OrMask;
  EDIT_SetValue(hObj, Result);
}

#if EDIT_HEX_DIGITONLY
  static U8 _GetCurrentNibble(EDIT_Obj* pObj) {
    int Pos = pObj->MaxLen - pObj->CursorPos - 1;   /* Nibble position */
    U32 AndMask = 0xf << (Pos << 2);
    U8 Nibble = (pObj->CurrentValue & AndMask) >> (Pos << 2);
    return Nibble;
  }
#endif

static int _GetNumDigits(U32 Value) {
  int Ret;
  for (Ret = 0; Value; Value >>= 4, Ret++);
  return Ret;
}

static void _AddPosition(EDIT_Obj* pObj, EDIT_Handle hObj, int Sign) {
  int Pos;
  U32 v;
  v = 1;
  Pos = pObj->MaxLen - pObj->CursorPos-1;
  while (Pos--) {
    v <<= 4;
  }
  if (Sign <0)
    v = ~v;
  EDIT_SetValue(hObj, pObj->CurrentValue + v);
}

/*********************************************************************
*
*             Handle input
*
**********************************************************************
*/

static void AddKeyHex(EDIT_Obj* pObj, EDIT_Handle hObj, int Key) {
  if (pObj) {
    switch (Key) {
      #if EDIT_HEX_DIGITONLY
      case GUI_KEY_UP:
        {
          int Nibble = (_GetCurrentNibble(pObj) + 1) & 15;
          _EditHex(Nibble, pObj, hObj);
        }
        break;
      case GUI_KEY_DOWN:
        {
          int Nibble = (_GetCurrentNibble(pObj) + 1) & 15;
          _EditHex(Nibble, pObj, hObj);
        }
        break;
      #else
      case GUI_KEY_UP:
        _AddPosition(pObj, hObj, 1);
        break;
      case GUI_KEY_DOWN:
        _AddPosition(pObj, hObj, -1);
        break;
      #endif
      case GUI_KEY_RIGHT:
        if (pObj->CursorPos < (pObj->MaxLen - 1))
          pObj->CursorPos++;
        break;
      case GUI_KEY_LEFT:
        if (pObj->CursorPos > 0)
          pObj->CursorPos--;
        break;
      default:
        {
          int Nibble = _HexChar2Int(Key);
          if (Nibble >= 0) {
            _EditHex(Nibble, pObj, hObj);
            if (pObj->CursorPos < (pObj->MaxLen - 1))
              pObj->CursorPos++;
          }
        }
        break;
    }
  }
  _UpdateBuffer(pObj);
}

/*********************************************************************
*
*             Exported routines
*
**********************************************************************
*/

void EDIT_SetHexMode(EDIT_Handle hEdit, U32 Value, U32 Min, U32 Max) {
  EDIT_Obj* pObj;
  int MaxLen;
  WM_LOCK();
  pObj = EDIT_H2P(hEdit);
  pObj->pfAddKeyEx = AddKeyHex;
  pObj->CurrentValue = Value;
  pObj->CursorPos = 0;
  MaxLen = pObj->MaxLen;
  if (MaxLen <= 0 ) {
    MaxLen = _GetNumDigits(Max);
  }
  if (MaxLen > 8) {
    MaxLen = 8;
  }
  if (MaxLen != pObj->MaxLen) {
    EDIT_SetMaxLen(hEdit, MaxLen);
  }
  pObj->Min = Min;
  pObj->Max = Max;
  pObj->EditMode = GUI_EDIT_MODE_OVERWRITE;
  _UpdateBuffer(pObj);
  WM_UNLOCK();
}

#else  /* avoid empty object files */

void EditHex_C(void);

#endif /* GUI_WINSUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品男人天堂av| 成人动漫一区二区三区| 亚洲综合色视频| 亚洲欧洲日韩一区二区三区| 26uuu国产一区二区三区| 精品视频在线看| 欧美高清性hdvideosex| 欧美色涩在线第一页| 欧美群妇大交群的观看方式| 欧美日韩dvd在线观看| 日韩一区二区三区免费看 | 91免费版在线| 91视频免费看| 欧美日韩国产一级片| 欧美日韩在线精品一区二区三区激情| 波多野结衣中文字幕一区二区三区| 成人看片黄a免费看在线| 91蜜桃视频在线| 欧美挠脚心视频网站| 日韩一区二区三区在线视频| 26uuu欧美日本| 综合精品久久久| 日精品一区二区| 国产精品自在欧美一区| 99re这里都是精品| 欧美一区二区成人| 日本一区二区三区四区在线视频| 亚洲精品高清在线观看| 日本欧美加勒比视频| 风间由美性色一区二区三区| 色拍拍在线精品视频8848| 日韩欧美黄色影院| 亚洲品质自拍视频| 久久99国产精品麻豆| 92国产精品观看| 26uuu色噜噜精品一区| 亚洲午夜精品久久久久久久久| 亚洲成av人在线观看| 成人小视频在线观看| 欧美一区二区三区四区五区| 国产精品久久久久一区二区三区 | 老司机午夜精品| 色婷婷综合久久| 国产亚洲午夜高清国产拍精品 | 欧美日韩精品综合在线| 久久理论电影网| 午夜欧美大尺度福利影院在线看| 丰满白嫩尤物一区二区| 欧美日韩高清一区| 亚洲六月丁香色婷婷综合久久| 狠狠色丁香婷综合久久| 678五月天丁香亚洲综合网| 亚洲精品亚洲人成人网在线播放| 国内精品久久久久影院薰衣草 | 国产精品久久久久毛片软件| 日产精品久久久久久久性色| 在线精品视频免费播放| 亚洲国产精品高清| 国产一区二区日韩精品| 欧美丰满嫩嫩电影| 亚洲精品欧美在线| 91色九色蝌蚪| 国产精品久久久久久久裸模| 国产精品自拍av| 亚洲精品一线二线三线无人区| 亚洲福利视频三区| 欧美日韩亚洲高清一区二区| 亚洲欧美激情小说另类| 国产在线乱码一区二区三区| 日韩一卡二卡三卡四卡| 自拍偷自拍亚洲精品播放| 国产剧情一区在线| 91精品国产综合久久婷婷香蕉| 亚洲欧美日韩久久| 色噜噜狠狠一区二区三区果冻| 国产精品麻豆视频| www.性欧美| 亚洲男人的天堂一区二区| 在线观看一区日韩| 亚洲少妇30p| 91美女片黄在线观看91美女| 一区二区三区加勒比av| 91日韩精品一区| 亚洲一区二区三区国产| 欧美一区二区女人| 狠狠色丁香久久婷婷综| 国产精品视频看| 91国偷自产一区二区开放时间| 亚洲一区二区欧美| 欧美一级理论片| 国产高清成人在线| 一区二区三区精品视频在线| 欧美一区二区三区不卡| 国产一区二区三区久久久| 国产精品福利一区| 在线亚洲一区二区| 男女男精品视频| 欧美国产日韩一二三区| 欧美在线观看禁18| 久久国产精品99精品国产| 国产三级精品视频| 欧美三区在线视频| 国产精品一线二线三线精华| 中文字幕综合网| 欧美一区二区三区在线| 成人免费视频caoporn| 亚洲高清在线视频| 国产午夜精品一区二区三区视频| 日本久久电影网| 韩国精品在线观看| 夜夜爽夜夜爽精品视频| 精品av久久707| 欧美在线视频你懂得| 国产乱妇无码大片在线观看| 一区二区三区加勒比av| 久久久久久夜精品精品免费| 欧美日韩一区二区三区不卡 | 91麻豆精东视频| 蜜臀va亚洲va欧美va天堂| 亚洲天堂久久久久久久| 欧美xxxx老人做受| 欧美日韩另类一区| 国产成人欧美日韩在线电影| 秋霞午夜av一区二区三区| 《视频一区视频二区| 久久久久国产精品麻豆| 欧美日韩免费视频| 91久久精品一区二区| 国产成人精品免费| 国产真实乱偷精品视频免| 性感美女久久精品| 亚洲视频一区二区在线| 国产亚洲污的网站| 精品精品国产高清a毛片牛牛| 欧美三级视频在线| 色婷婷精品大视频在线蜜桃视频| 国产成人超碰人人澡人人澡| 麻豆中文一区二区| 日韩成人伦理电影在线观看| 亚洲成人av一区二区| 亚洲夂夂婷婷色拍ww47| 亚洲精品精品亚洲| 亚洲精品视频自拍| 亚洲欧美日韩一区二区三区在线观看| 国产女主播一区| 日本一区二区视频在线观看| 精品国产一区二区亚洲人成毛片| 欧美老女人在线| 欧美精品视频www在线观看| 欧美亚洲另类激情小说| 欧美色爱综合网| 在线成人av网站| 日韩精品一区二区三区四区视频 | 91麻豆福利精品推荐| 国产成人精品www牛牛影视| 国产精品一区专区| 国产成人亚洲综合色影视| 成人午夜视频网站| 99久久免费视频.com| 色欧美片视频在线观看| 欧美性大战久久久久久久| 欧美日韩不卡一区| 欧美成人综合网站| 久久精品亚洲精品国产欧美 | 久久久久成人黄色影片| 久久女同性恋中文字幕| 国产精品水嫩水嫩| 亚洲一二三四在线观看| 日韩av一区二区在线影视| 久久草av在线| 国产999精品久久久久久 | 亚洲成年人网站在线观看| 天堂午夜影视日韩欧美一区二区| 毛片av中文字幕一区二区| 国产精品1024| 欧美亚洲高清一区二区三区不卡| 精品视频123区在线观看| 欧美成人精品福利| 成人免费一区二区三区视频 | 成人av免费网站| 欧美人动与zoxxxx乱| 久久久精品免费免费| 成人欧美一区二区三区白人 | 精品久久久久久久久久久久久久久| 久久久久亚洲综合| 一二三四区精品视频| 国产中文字幕精品| 在线观看国产精品网站| 久久只精品国产| 亚洲图片欧美色图| 国产电影一区在线| 这里只有精品免费| 中文字幕视频一区| 久久精品国产亚洲一区二区三区| caoporn国产精品| 精品国产百合女同互慰| 亚洲二区视频在线| 国产白丝网站精品污在线入口| 欧美日韩精品欧美日韩精品一综合| 久久久99久久|