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

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

?? widget_numpad.c

?? ucgu最新版本 4.14
?? C
字號:
/*********************************************************************
*                SEGGER MICROCONTROLLER SYSTEME GmbH                 *
*        Solutions for real time microcontroller applications        *
**********************************************************************
*                                                                    *
*        (c) 1996 - 2007  SEGGER Microcontroller Systeme GmbH        *
*                                                                    *
*        Internet: www.segger.com    Support:  support@segger.com    *
*                                                                    *
**********************************************************************

** emWin V4.14 - Graphical user interface for embedded applications **
emWin 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 re-
distributed in any way. We appreciate your understanding and fairness.
----------------------------------------------------------------------
File        : WIDGET_NumPad.c
Purpose     : Shows how to use a numpad as input device on a touch screen
---------------------------END-OF-HEADER------------------------------
*/

#include "DIALOG.h"

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/
/* Bitmap data for arrow keys */
static GUI_CONST_STORAGE GUI_COLOR _aColorsArrow[] = {
  0xFFFFFF, 0x000000
};

static GUI_CONST_STORAGE GUI_LOGPALETTE _PalArrow = {
  2,	/* number of entries */
  1, 	/* No transparency */
  &_aColorsArrow[0]
};

static GUI_CONST_STORAGE unsigned char _acArrowRight[] = {
  ____XX__, ________,
  ____XXXX, ________,
  XXXXXXXX, XX______,
  ____XXXX, ________,
  ____XX__, ________
};

static GUI_CONST_STORAGE unsigned char _acArrowLeft[] = {
  ____XX__, ________,
  __XXXX__, ________,
  XXXXXXXX, XX______,
  __XXXX__, ________,
  ____XX__, ________
};

static GUI_CONST_STORAGE GUI_BITMAP _bmArrowRight = {
  10,           /* XSize */
  5,            /* YSize */
  2,            /* BytesPerLine */
  1,            /* BitsPerPixel */
  _acArrowRight, /* Pointer to picture data (indices) */
  &_PalArrow     /* Pointer to palette */
};

static GUI_CONST_STORAGE GUI_BITMAP _bmArrowLeft = {
  10,           /* XSize */
  5,            /* YSize */
  2,            /* BytesPerLine */
  1,            /* BitsPerPixel */
  _acArrowLeft,  /* Pointer to picture data (indices) */
  &_PalArrow     /* Pointer to palette */
};

/* Array of keys */
static int _aKey[] = {GUI_KEY_DELETE, GUI_KEY_TAB, GUI_KEY_LEFT, GUI_KEY_RIGHT};

/* Dialog resource of numpad */
static const GUI_WIDGET_CREATE_INFO _aDialogNumPad[] = {
/*  Function                 Text      Id                 Px   Py   Dx   Dy */
  { WINDOW_CreateIndirect,   0,        0,                225, 110,  95, 130},
  { BUTTON_CreateIndirect,   "7",      GUI_ID_USER +  7,   5,   5,  25,  20},
  { BUTTON_CreateIndirect,   "8",      GUI_ID_USER +  8,  35,   5,  25,  20},
  { BUTTON_CreateIndirect,   "9",      GUI_ID_USER +  9,  65,   5,  25,  20},
  { BUTTON_CreateIndirect,   "4",      GUI_ID_USER +  4,   5,  30,  25,  20},
  { BUTTON_CreateIndirect,   "5",      GUI_ID_USER +  5,  35,  30,  25,  20},
  { BUTTON_CreateIndirect,   "6",      GUI_ID_USER +  6,  65,  30,  25,  20},
  { BUTTON_CreateIndirect,   "1",      GUI_ID_USER +  1,   5,  55,  25,  20},
  { BUTTON_CreateIndirect,   "2",      GUI_ID_USER +  2,  35,  55,  25,  20},
  { BUTTON_CreateIndirect,   "3",      GUI_ID_USER +  3,  65,  55,  25,  20},
  { BUTTON_CreateIndirect,   "0",      GUI_ID_USER +  0,   5,  80,  25,  20},
  { BUTTON_CreateIndirect,   ".",      GUI_ID_USER + 10,  35,  80,  25,  20},
  { BUTTON_CreateIndirect,   "Del",    GUI_ID_USER + 11,  65,  80,  25,  20},
  { BUTTON_CreateIndirect,   "Tab",    GUI_ID_USER + 12,   5, 105,  25,  20},
  { BUTTON_CreateIndirect,   0,        GUI_ID_USER + 13,  35, 105,  25,  20},
  { BUTTON_CreateIndirect,   0,        GUI_ID_USER + 14,  65, 105,  25,  20},
};

/* Dialog resource of user dialog */
static const GUI_WIDGET_CREATE_INFO _aDialogUser[] = {
/*  Function                 Text      Id                 Px   Py   Dx   Dy */
  { FRAMEWIN_CreateIndirect, "Dialog", 0,                 40,  90, 140, 115, FRAMEWIN_CF_MOVEABLE},
  { EDIT_CreateIndirect,     0,        GUI_ID_EDIT0,      10,  10, 110,  20, 0, 12},
  { EDIT_CreateIndirect,     0,        GUI_ID_EDIT1,      10,  40, 110,  20, 0, 12},
  { BUTTON_CreateIndirect,   "Ok",     GUI_ID_OK,         10,  70,  50,  20 },
  { BUTTON_CreateIndirect,   "Cancel", GUI_ID_CANCEL,     70,  70,  50,  20 },
};

/* Title of sample */
static char _aTitle[] = {"WIDGET_NumPad"};

/* Explanation of sample */
static char * _apExplain[] = {
  {"This sample shows how to use a numpad as input"},
  {"device. This can be usefull if no keyboard"},
  {"is available and the user should edit numeric"},
  {"values or text on a touch screen."},
};

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _cbDialogNumPad
*
* Purpose:
*   Callback function of the numpad.
*/
static void _cbDialogNumPad(WM_MESSAGE * pMsg) {
  GUI_RECT r;
  int i, NCode, Id, Pressed = 0;
  WM_HWIN hDlg, hItem;
  hDlg = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    WM_GetClientRect(&r);
    GUI_SetColor(0x000000);
    GUI_DrawRect(r.x0, r.y0, r.x1, r.y1);          /* Draw rectangle around it */
    /* Draw the bright sides */
    GUI_SetColor(0xffffff);
    GUI_DrawHLine(r.y0 + 1, r.x0 + 1, r.x1 - 2);   /* Draw top line */
    GUI_DrawVLine(r.x0 + 1, r.y0 + 1, r.y1 - 2);
    /* Draw the dark sides */
    GUI_SetColor(0x555555);
    GUI_DrawHLine(r.y1-1, r.x0 + 1, r.x1 - 1);
    GUI_DrawVLine(r.x1-1, r.y0 + 1, r.y1 - 2);
    break;
  case WM_INIT_DIALOG:
    for (i = 0; i < GUI_COUNTOF(_aDialogNumPad) - 1; i++) {
      hItem = WM_GetDialogItem(hDlg, GUI_ID_USER + i);
      BUTTON_SetFocussable(hItem, 0);                       /* Set all buttons non focussable */
      switch (i) {
      case 13:
        BUTTON_SetBitmapEx(hItem, 0, &_bmArrowLeft, 7, 7);  /* Set bitmap for arrow left button (unpressed) */
        BUTTON_SetBitmapEx(hItem, 1, &_bmArrowLeft, 7, 7);  /* Set bitmap for arrow left button (pressed) */
        break;
      case 14:
        BUTTON_SetBitmapEx(hItem, 0, &_bmArrowRight, 7, 7); /* Set bitmap for arrow right button (unpressed) */
        BUTTON_SetBitmapEx(hItem, 1, &_bmArrowRight, 7, 7); /* Set bitmap for arrow right button (pressed) */
        break;
      }
    }
    hItem = WM_GetDialogItem(hDlg, GUI_ID_USER + 12);
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);      /* Id of widget */
    NCode = pMsg->Data.v;                 /* Notification code */
    switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
      Pressed = 1;
    case WM_NOTIFICATION_RELEASED:
      if ((Id >= GUI_ID_USER) && (Id <= (GUI_ID_USER + GUI_COUNTOF(_aDialogNumPad) - 1))) {
        int Key;
        if (Id < GUI_ID_USER + 11) {
          char acBuffer[10];
          BUTTON_GetText(pMsg->hWinSrc, acBuffer, sizeof(acBuffer)); /* Get the text of the button */
          Key = acBuffer[0];
        } else {
          Key = _aKey[Id - GUI_ID_USER - 11];                        /* Get the text from the array */
        }
        GUI_SendKeyMsg(Key, Pressed);                                /* Send a key message to the focussed window */
      }
      break;
    }
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbDialogUser
*
* Purpose:
*   Callback function of the user dialog.
*/
static void _cbDialogUser(WM_MESSAGE * pMsg) {
  int i, NCode, Id;
  WM_HWIN hDlg, hItem;
  hDlg = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    for (i = 0; i < 2; i++) {
      hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0 + i);  /* Get the handle of the edit widget */
      EDIT_SetText(hItem, "12345678");                   /* Set text */
    }
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);      /* Id of widget */
    NCode = pMsg->Data.v;                 /* Notification code */
    switch (NCode) {
      case WM_NOTIFICATION_RELEASED:      /* React only if released */
        if (Id == GUI_ID_OK) {            /* OK Button */
          GUI_EndDialog(hDlg, 0);
        }
        if (Id == GUI_ID_CANCEL) {        /* Cancel Button */
          GUI_EndDialog(hDlg, 1);
        }
        break;
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbDesktop
*
* Purpose:
*   This routine handles the drawing of the desktop window.
*/
static void _cbDesktop(WM_MESSAGE * pMsg) {
  int i;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(GUI_RED);
    GUI_Clear();
    GUI_SetFont(&GUI_Font24_ASCII);
    GUI_DispStringHCenterAt(_aTitle, 160, 5);
    GUI_DispNextLine();
    GUI_SetFont(GUI_DEFAULT_FONT);
    GUI_DispNextLine();
    for (i = 0; i < GUI_COUNTOF(_apExplain); i++) {
      GUI_DispStringHCenterAt(_apExplain[i], 160, GUI_GetDispPosY());
      GUI_DispNextLine();
    }
    break;
  }
}

/*********************************************************************
*
*       Exported code
*
**********************************************************************
*/
/*********************************************************************
*
*       MainTask
*/
void MainTask(void) {
  WM_HWIN hNumPad;
  GUI_Init();
  WM_SetCallback(WM_HBKWIN, _cbDesktop);
  hNumPad = GUI_CreateDialogBox(_aDialogNumPad, 
                                GUI_COUNTOF(_aDialogNumPad), 
                                _cbDialogNumPad, WM_HBKWIN, 0, 0); /* Create the numpad dialog */
  WM_SetStayOnTop(hNumPad, 1);
  while (1) {
    GUI_ExecDialogBox(_aDialogUser, 
                      GUI_COUNTOF(_aDialogUser), 
                      _cbDialogUser, WM_HBKWIN, 0, 0);             /* Execute the user dialog */
    GUI_Delay(1000);
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品国产麻豆婷婷| 一区二区在线观看av| 欧美日韩电影在线| av一二三不卡影片| 成人免费高清在线| av不卡在线播放| 一本大道久久a久久精品综合| 波多野结衣亚洲一区| 97精品超碰一区二区三区| 91偷拍与自偷拍精品| 91色视频在线| 欧美日韩一级大片网址| 日韩免费高清视频| 欧美国产在线观看| 亚洲欧美国产三级| 爽好多水快深点欧美视频| 美女视频网站黄色亚洲| 国产精品18久久久久久久久| thepron国产精品| 在线影院国内精品| 精品国产精品一区二区夜夜嗨| 久久美女高清视频| 亚洲精品免费看| 日韩激情一二三区| 国产成人激情av| 国产成人99久久亚洲综合精品| 一本一道久久a久久精品综合蜜臀| 在线影院国内精品| 久久久无码精品亚洲日韩按摩| 国产精品麻豆99久久久久久| 午夜视频一区二区| 国产盗摄一区二区| 欧美视频中文字幕| 国产日韩欧美一区二区三区乱码 | 成人av资源网站| 欧美私人免费视频| 国产日产欧美一区二区视频| 一区二区三区美女| 国产成人av一区二区三区在线观看| 色婷婷激情综合| 久久久久久99精品| 婷婷成人激情在线网| 不卡视频一二三| 精品久久久久久久久久久久包黑料 | 91丝袜国产在线播放| 精品区一区二区| 一区二区三区国产豹纹内裤在线| 韩国在线一区二区| 51精品国自产在线| 亚洲一区视频在线| 成人动漫av在线| 久久免费国产精品| 久久精品国产澳门| 91精品欧美福利在线观看| 一区二区三区免费| 色悠悠久久综合| 中文字幕一区二区三区蜜月| 国产在线精品一区在线观看麻豆| 9191久久久久久久久久久| 夜夜嗨av一区二区三区网页 | 日韩中文字幕不卡| 日本丰满少妇一区二区三区| 国产精品美女久久久久高潮| 国产一区激情在线| 日韩欧美国产一区二区三区| 日韩高清中文字幕一区| 在线观看视频一区| 亚洲自拍另类综合| 欧美三级乱人伦电影| 亚洲一区在线看| 欧美三级日韩在线| 婷婷综合另类小说色区| 欧美麻豆精品久久久久久| 香蕉av福利精品导航| 欧美精品九九99久久| 全部av―极品视觉盛宴亚洲| 欧美一级欧美三级在线观看 | 久久精品视频在线看| 国产真实精品久久二三区| 亚洲精品在线三区| 国产另类ts人妖一区二区| 国产日韩欧美精品电影三级在线 | 亚洲精选免费视频| 色悠悠亚洲一区二区| 亚洲国产视频a| 51精品国自产在线| 国产精品资源站在线| 国产精品国产自产拍高清av| 色综合久久久久综合体桃花网| 亚洲男人的天堂在线观看| 欧美日韩一区二区在线视频| 天堂一区二区在线免费观看| 精品对白一区国产伦| 粉嫩高潮美女一区二区三区| 亚洲色图在线播放| 欧美乱妇20p| 国产激情一区二区三区| 一区二区三区电影在线播| 日韩一区二区三区视频在线| 国产不卡在线视频| 亚洲成人av在线电影| 精品国产乱码久久久久久久| av一区二区三区黑人| 免费三级欧美电影| 中文字幕一区二区日韩精品绯色| 欧美日韩免费在线视频| 国产精品影视天天线| 亚洲国产精品一区二区尤物区| 精品国产污污免费网站入口 | 99在线精品观看| 婷婷中文字幕一区三区| 国产区在线观看成人精品| 欧美精品三级日韩久久| 成人毛片视频在线观看| 日日摸夜夜添夜夜添精品视频| 欧美经典三级视频一区二区三区| 欧美午夜精品免费| 高清不卡一二三区| 日本不卡视频在线| 一区二区在线看| 国产精品私人影院| 欧美刺激脚交jootjob| 91久久精品网| 不卡电影免费在线播放一区| 久久成人羞羞网站| 天天影视色香欲综合网老头| 亚洲三级免费观看| 国产日韩精品视频一区| 日韩精品资源二区在线| 欧美福利电影网| 色综合色综合色综合| 国产成人亚洲精品青草天美| 蜜臀久久99精品久久久久宅男| 一区二区三区.www| 亚洲日本韩国一区| 国产精品久久久久天堂| 欧美激情一区不卡| 国产午夜精品一区二区三区嫩草| 91精品国产aⅴ一区二区| 欧美日韩国产综合草草| 在线观看视频91| 欧美系列亚洲系列| 欧美亚洲动漫精品| 色综合欧美在线视频区| av在线播放一区二区三区| 成人高清在线视频| 不卡一二三区首页| 91欧美激情一区二区三区成人| 国产成人鲁色资源国产91色综| 激情伊人五月天久久综合| 另类小说综合欧美亚洲| 国模娜娜一区二区三区| 狠狠色丁香九九婷婷综合五月| 黄色小说综合网站| 国产成人免费视频网站| 成人av电影免费观看| 色婷婷av一区二区| 欧美日韩一区二区欧美激情| 欧美一区二区三区在线| 精品久久国产老人久久综合| 26uuu欧美| 国产精品毛片高清在线完整版| 国产精品国产三级国产普通话蜜臀 | 精品av综合导航| 欧美国产一区二区| 亚洲精品欧美专区| 天堂久久一区二区三区| 久久av中文字幕片| 暴力调教一区二区三区| 99精品久久99久久久久| 欧美日韩中文精品| 精品999在线播放| 国产精品久久久久久亚洲伦| 亚洲主播在线播放| 久久国产麻豆精品| av影院午夜一区| 在线成人小视频| 亚洲国产精品99久久久久久久久| 自拍偷拍国产亚洲| 免费在线观看日韩欧美| 不卡一区二区在线| 精品视频免费看| 国产亚洲视频系列| 亚洲成人免费视频| 国产suv精品一区二区三区| 欧美在线999| 国产色婷婷亚洲99精品小说| 亚洲综合色成人| 国产精品综合二区| 在线成人免费观看| 欧美激情一区三区| 欧美aa在线视频| 91麻豆swag| 国产日韩欧美不卡| 日韩av一二三| 色菇凉天天综合网| 中文字幕国产一区| 久久爱www久久做| 欧美日韩一二三| 亚洲男人天堂一区|