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

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

?? edithex.c

?? UC_GUI開發(fā)源代碼,里面含有范例,源文件
?? C
字號(hào):
/*
*********************************************************************************************************
*                                             uC/GUI V3.98
*                        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.c
Purpose     : Edit hexadecimal values
---------------------------END-OF-HEADER------------------------------
*/

#include <string.h>

#include "EDIT_Private.h"
#include "GUIDebug.h"

#if GUI_WINSUPPORT

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

/*********************************************************************
*
*             Helpers
*
**********************************************************************
*/
/*********************************************************************
*
*       _HexChar2Int
*/
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;
}

/*********************************************************************
*
*       _UpdateBuffer
*/
static void _UpdateBuffer(EDIT_Handle hObj) {
  char * s;
  EDIT_Obj * pObj;
  pObj = EDIT_H2P(hObj); /* The GUI needs not to be locked here. This function is called only from EDIT_AddKey which has already locked the GUI */
  s = (char*) GUI_ALLOC_h2p(pObj->hpText);
  GUI_AddHex(pObj->CurrentValue, pObj->MaxLen, &s);
}

/*********************************************************************
*
*       _EditHex
*/
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__SetValueUnsigned(hObj, Result);
}

/*********************************************************************
*
*       _GetCurrentNibble
*/
#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

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

/*********************************************************************
*
*       _AddPosition
*/
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 + 1;
  }
  EDIT__SetValueUnsigned(hObj, pObj->CurrentValue + v);
}

/*********************************************************************
*
*             Handle input
*
**********************************************************************
*/
/*********************************************************************
*
*       _AddKeyHex
*/
static void _AddKeyHex(EDIT_Handle hObj, int Key) {
  EDIT_Obj * pObj;
  pObj = EDIT_H2P(hObj); /* The GUI needs not to be locked here. This function is called only from EDIT_AddKey which has already locked the GUI */
  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:
        EDIT__SetCursorPos(pObj, pObj->CursorPos + 1);
        break;
      case GUI_KEY_LEFT:
        EDIT__SetCursorPos(pObj, pObj->CursorPos - 1);
        break;
      default:
        {
          int Nibble = _HexChar2Int(Key);
          if (Nibble >= 0) {
            _EditHex(Nibble, pObj, hObj);
            EDIT__SetCursorPos(pObj, pObj->CursorPos + 1);
          }
        }
        break;
    }
  }
  _UpdateBuffer(hObj);
}

/*********************************************************************
*
*             Exported routines
*
**********************************************************************
*/
/*********************************************************************
*
*       EDIT_SetHexMode
*/
void EDIT_SetHexMode(EDIT_Handle hEdit, U32 Value, U32 Min, U32 Max) {
  EDIT_Obj* pObj;
  WM_LOCK();
  if (hEdit) {
    int MaxLen;
    pObj = EDIT_H2P(hEdit);
    pObj->pfAddKeyEx = _AddKeyHex;
    pObj->pfUpdateBuffer= _UpdateBuffer;
    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(hEdit);
    WM_Invalidate(hEdit);
  }
  WM_UNLOCK();
}

#else  /* avoid empty object files */

void EditHex_C(void);
void EditHex_C(void){}

#endif /* GUI_WINSUPPORT */
	 	 			 		    	 				 	  			   	 	 	 	 	 	  	  	      	   		 	 	 		  		  	 		 	  	  			     			       	   	 			  		    	 	     	 				  	 					 	 			   	  	  			 				 		 	 	 			     			 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级xxx| 中文字幕一区二区三区四区| 亚洲国产高清aⅴ视频| 麻豆精品视频在线观看视频| 93久久精品日日躁夜夜躁欧美| 日韩精品专区在线影院重磅| 久久国产精品区| 欧美少妇性性性| 亚洲影院久久精品| 欧美影院一区二区| 亚洲最新视频在线播放| 97超碰欧美中文字幕| 日韩毛片高清在线播放| 91视频观看视频| 亚洲丝袜另类动漫二区| 成人福利视频网站| 国产精品久久影院| 在线亚洲免费视频| 亚洲与欧洲av电影| 91精品国产高清一区二区三区| 亚洲一区影音先锋| 欧美一级生活片| 精品制服美女丁香| 中文字幕欧美激情| 久久综合色综合88| 国产99久久精品| 亚洲毛片av在线| 欧美激情资源网| 9191久久久久久久久久久| 久久精品一区二区| 91美女蜜桃在线| 婷婷综合五月天| 国产精品美女久久久久高潮| 日本韩国一区二区三区视频| 美女mm1313爽爽久久久蜜臀| 国产精品不卡一区二区三区| 日本韩国欧美国产| 激情图片小说一区| 亚洲va欧美va人人爽午夜| 国产色产综合色产在线视频 | 91麻豆精品国产91| 99久久伊人网影院| 国产精品亚洲成人| 天天综合天天做天天综合| 中文字幕一区免费在线观看| 中文字幕在线观看不卡| 欧美蜜桃一区二区三区| 91日韩一区二区三区| 国产精品一区在线观看你懂的| 亚洲高清免费观看| 亚洲柠檬福利资源导航| 国产欧美日韩不卡免费| 久久青草国产手机看片福利盒子 | 欧美视频一二三区| 色哟哟一区二区| 91网页版在线| 色哟哟亚洲精品| 91高清视频免费看| 色天使色偷偷av一区二区| 久久久国际精品| 日韩一级欧美一级| 欧美成人aa大片| 久久你懂得1024| 国产亚洲精久久久久久| 亚洲国产精华液网站w| 国产精品久久99| 亚洲激情自拍视频| 亚洲电影欧美电影有声小说| 日韩高清在线观看| 国产一区二区三区电影在线观看| 国产真实乱对白精彩久久| 成人动漫一区二区| 精品视频在线免费观看| 欧美成人一区二区三区片免费| 久久人人97超碰com| 18成人在线观看| 日韩电影一二三区| a级精品国产片在线观看| 欧美色爱综合网| 国产女人18毛片水真多成人如厕 | 美腿丝袜亚洲三区| 99re66热这里只有精品3直播| 欧美乱妇一区二区三区不卡视频| 日韩一区二区三区电影| 久久er精品视频| 欧美中文字幕一区二区三区 | 一区二区国产盗摄色噜噜| 久久精品水蜜桃av综合天堂| 色天天综合色天天久久| 日韩欧美国产一区二区在线播放| 欧美国产精品劲爆| 韩国v欧美v亚洲v日本v| 欧美日高清视频| 亚洲综合久久久久| 99re视频这里只有精品| 国产精品国产馆在线真实露脸| 蜜臀久久99精品久久久久宅男| 色综合久久久久综合体 | 成人国产精品免费观看动漫| 在线播放日韩导航| 一区二区免费在线| www.亚洲免费av| 国产精品久久久久影院色老大| 日韩av午夜在线观看| 欧美精品第一页| 免费在线视频一区| 91麻豆精品国产91久久久久| 一区二区三区四区av| 欧美亚洲国产一区二区三区| 亚洲黄一区二区三区| 在线一区二区三区四区| 亚洲一区二区三区免费视频| 欧洲精品一区二区| 日韩国产欧美在线观看| 精品欧美一区二区久久| 精品中文字幕一区二区小辣椒| 欧美成人一级视频| 国产精品一区二区在线播放 | 日本不卡123| xfplay精品久久| 久久精品亚洲精品国产欧美kt∨| 国产精品一区二区在线观看不卡 | 色国产综合视频| 日本一道高清亚洲日美韩| 国产免费观看久久| 欧美丝袜第三区| 国产精品18久久久久| 亚洲最大成人网4388xx| 欧美大胆人体bbbb| 欧美性一二三区| 国产一区不卡视频| 亚洲综合色丁香婷婷六月图片| 555夜色666亚洲国产免| 成人污视频在线观看| 性感美女久久精品| 亚洲人成在线观看一区二区| 欧美一区欧美二区| 欧美专区在线观看一区| 成人av免费在线播放| 国产一区福利在线| 日韩电影在线一区二区三区| 亚洲欧美一区二区三区极速播放 | 一区二区三区在线视频播放| 久久亚洲精品国产精品紫薇| 精品视频在线视频| 欧美日产国产精品| 欧美另类变人与禽xxxxx| 在线观看日韩av先锋影音电影院| 91精品婷婷国产综合久久竹菊| 波多野结衣视频一区| 中文字幕一区av| 久久久91精品国产一区二区精品 | 亚洲天堂中文字幕| 国产日韩欧美一区二区三区综合 | 亚洲精品久久久蜜桃| 欧美日韩免费一区二区三区| 在线免费观看日韩欧美| aaa亚洲精品| 欧美午夜宅男影院| 欧美日韩国产高清一区二区| 欧美日本在线观看| 精品国产一区久久| 欧美国产日本视频| 亚洲人午夜精品天堂一二香蕉| 国产精品高潮呻吟| 亚洲成人资源网| 久久精品国产999大香线蕉| 国产精品亚洲一区二区三区在线| 高清视频一区二区| 欧美日韩在线精品一区二区三区激情| 一本久道中文字幕精品亚洲嫩| 欧美日韩精品一区视频| 精品国产乱子伦一区| 最新不卡av在线| 天堂va蜜桃一区二区三区漫画版| 成人av在线看| 欧美日韩国产三级| 国产午夜精品一区二区三区四区| 国产精品久久毛片| 奇米777欧美一区二区| 国产精品一区二区在线观看网站| 91原创在线视频| 精品日韩欧美在线| 亚洲制服欧美中文字幕中文字幕| 美国十次综合导航| 色偷偷一区二区三区| 国产日韩影视精品| 精品一区二区三区不卡| 欧美探花视频资源| 国产精品理伦片| 国产成人亚洲综合a∨婷婷图片| 欧美在线观看视频一区二区三区 | 国产美女一区二区三区| 欧美日韩精品一区二区在线播放| 日本一区二区三区dvd视频在线| 免费在线看一区| 欧美一区二区在线不卡| 天天色综合成人网| 欧美日韩国产经典色站一区二区三区| 亚洲素人一区二区|