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

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

?? widget_buttonround.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_ButtonRound.c
Purpose     : Demonstrates how to create and use a round button
---------------------------END-OF-HEADER------------------------------
*/

#include <stddef.h>
#include <string.h>

#include "WM.h"
#include "FRAMEWIN.h"
#include "BUTTON.h"
#include "BUTTON_Private.h"
#include "GUI_Protected.h"

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

static WM_CALLBACK * _pcbCallback;
static int           _Color;
static int           _Font;
static int           _Pressed;

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { FRAMEWIN_CreateIndirect, "Round button sample", 0,      50,  60, 200, 120, FRAMEWIN_CF_MOVEABLE },
  { BUTTON_CreateIndirect,   "Button",   GUI_ID_BUTTON0,   100,  10,  80,  80 },
  { BUTTON_CreateIndirect,   "Callback", GUI_ID_BUTTON1,    10,  10,  60,  20 },
  { BUTTON_CreateIndirect,   "Font",     GUI_ID_BUTTON2,    10,  30,  60,  20 },
  { BUTTON_CreateIndirect,   "Color",    GUI_ID_BUTTON3,    10,  50,  60,  20 },
  { BUTTON_CreateIndirect,   "Cancel",   GUI_ID_CANCEL,     10,  70,  60,  20 }
};

/*********************************************************************
*
*       Static functions
*
**********************************************************************
*/

/*********************************************************************
*
*       _OnPaint
*
* Purpose: Paints the owner drawn button
*/
static void _OnPaint(BUTTON_Handle hObj) {
  int Index;
  char ac[50];
  GUI_RECT Rect;
  BUTTON_Obj * pObj;
  pObj = BUTTON_H2P(hObj);
  Index = (WIDGET_GetState(hObj) & BUTTON_STATE_PRESSED) ? 1 : 0;
  WM_GetClientRect(&Rect);
  /* Draw filled ellipse with button background color */
  GUI_SetColor(BUTTON_GetBkColor(hObj, Index));
  GUI_FillEllipse(Rect.x1 / 2, Rect.y1 / 2, Rect.x1 / 2, Rect.y1 / 2);
  /* Draw black shape */
  GUI_SetColor(GUI_BLACK);
  GUI_DrawEllipse(Rect.x1 / 2, Rect.y1 / 2, Rect.x1 / 2, Rect.y1 / 2);
  /* Draw button text with widget attributes */
  GUI_SetColor(BUTTON_GetTextColor(hObj, Index));
  GUI_SetBkColor(BUTTON_GetBkColor(hObj, Index));
  GUI_SetFont(BUTTON_GetFont(hObj));
  BUTTON_GetText(hObj, ac, sizeof(ac));
  if (_Pressed) {
    strcpy(ac + strlen(ac), "\npressed");
  }
  GUI_DispStringInRect(ac, &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER);
}

/*********************************************************************
*
*       _cbButton
*
* Purpose: 
*  1. Calls the owner draw function if the WM_PAINT message has been send
*  2. Calls the original callback for further messages
*  3. After processing the messages the function evaluates the pressed-state
*     if the WM_TOUCH message has been send
*/
static void _cbButton(WM_MESSAGE *pMsg) {
  switch (pMsg->MsgId) {
    case WM_PAINT:
      _OnPaint(pMsg->hWin);
      break;
    default:
      _pcbCallback(pMsg); /* The original callback */
      break;
  }
  if (pMsg->MsgId == WM_TOUCH) {
    if (BUTTON_IsPressed(pMsg->hWin)) {
      if (!_Pressed) {
        _Pressed = 1;
      }
    } else {
      _Pressed = 0;
    }
  }
}

/*********************************************************************
*
*       _cbDialog
*
* Purpose: Dialog callback routine
*/
static void _cbDialog(WM_MESSAGE *pMsg) {
  int NCode, Id;
  WM_HWIN hDlg;
  BUTTON_Handle hButton;
  hDlg = pMsg->hWin;
  switch (pMsg->MsgId) {
    case WM_PAINT:
      WM_DefaultProc(pMsg); /* Handle dialog items */
      /* After drawing the dialog items add some user drawn items to the window */
      GUI_SetPenSize(10);
      GUI_SetColor(GUI_GREEN);
      GUI_DrawLine( 95,  5, 185, 95);
      GUI_SetColor(GUI_RED);
      GUI_DrawLine( 95, 95, 185,  5);
      break;
    case WM_INIT_DIALOG:
      hButton = WM_GetDialogItem(hDlg, GUI_ID_BUTTON0);
      WM_SetHasTrans(hButton);              /* Set transparency flag for button */
      break;
    case WM_KEY:
      switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
        case GUI_KEY_ESCAPE:
          GUI_EndDialog(hDlg, 1);
          break;
        case GUI_KEY_ENTER:
          GUI_EndDialog(hDlg, 0);
          break;
      }
      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 */
          hButton = WM_GetDialogItem(hDlg, GUI_ID_BUTTON0);
          if (Id == GUI_ID_BUTTON1) {       /* Toggle callback */
            if (_pcbCallback) {
              WM_SetCallback(hButton, _pcbCallback);
              _pcbCallback = 0;
            } else {
              _pcbCallback = WM_SetCallback(hButton, _cbButton);
            }
            WM_InvalidateWindow(hButton);
          }
          if (Id == GUI_ID_BUTTON2) {       /* Toggle font */
            if (_Font) {
              BUTTON_SetFont(hButton, &GUI_Font13_1);
            } else {
              BUTTON_SetFont(hButton, &GUI_Font8x16);
            }
            _Font ^= 1;
          }
          if (Id == GUI_ID_BUTTON3) {       /* Toggle color */
            if (_Color) {
              BUTTON_SetBkColor(hButton, 0, 0xaaaaaa);
              BUTTON_SetBkColor(hButton, 1, GUI_WHITE);
              BUTTON_SetTextColor(hButton, 0, GUI_BLACK);
              BUTTON_SetTextColor(hButton, 1, GUI_BLACK);
            } else {
              BUTTON_SetBkColor(hButton, 0, GUI_BLUE);
              BUTTON_SetBkColor(hButton, 1, GUI_RED);
              BUTTON_SetTextColor(hButton, 0, GUI_WHITE);
              BUTTON_SetTextColor(hButton, 1, GUI_YELLOW);
            }
            _Color ^= 1;
          }
          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);
  }
}

/*********************************************************************
*
*       MainTask
*
**********************************************************************
*/

void MainTask(void) {
  GUI_Init();
  /* Use memory devices for all windows */
  WM_SetCreateFlags(WM_CF_MEMDEV);
  WM_EnableMemdev(WM_HBKWIN);
  WM_SetDesktopColor(GUI_GREEN);
  while(1) {
    _Font = 0;
    _Color = 0;
    _pcbCallback = 0;
    GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, 0, 0, 0);
    GUI_Delay(1000);
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人禁用看黄a在线| 国产成人午夜视频| 亚洲日本青草视频在线怡红院 | 亚洲黄色免费电影| 久久久精品人体av艺术| 欧美日韩一区二区三区在线| 国产一区欧美一区| 日本在线不卡视频一二三区| 亚洲综合图片区| 亚洲精品老司机| 亚洲精品五月天| 一区二区三区久久| 亚洲女爱视频在线| 一级日本不卡的影视| 亚洲桃色在线一区| 亚洲激情av在线| 一区二区三区av电影 | 午夜精品福利久久久| 亚洲午夜影视影院在线观看| 亚洲精品自拍动漫在线| 国产精品国产三级国产aⅴ入口| 国产精品视频一二三区| 国产精品久久久久aaaa| 亚洲摸摸操操av| 亚洲444eee在线观看| 午夜激情久久久| 国内精品在线播放| 91天堂素人约啪| 欧美日韩一区在线观看| 欧美va亚洲va在线观看蝴蝶网| 久久精品人人爽人人爽| 亚洲素人一区二区| 老鸭窝一区二区久久精品| 国产成人在线色| 欧美日韩一区三区四区| 精品久久久久一区| 亚洲欧美一区二区三区孕妇| 亚洲成av人影院| 国产成人aaa| 欧美精品日韩一区| 国产精品久久免费看| 蜜桃传媒麻豆第一区在线观看| 成人av午夜影院| 日韩一区国产二区欧美三区| 国产精品国产三级国产普通话蜜臀| 亚洲午夜久久久| 粉嫩av一区二区三区在线播放| 欧美日韩在线免费视频| 国产精品的网站| 国产资源精品在线观看| 欧美亚男人的天堂| 欧美韩国日本综合| 免费欧美高清视频| 欧美视频在线播放| 一区二区三区四区中文字幕| 国产东北露脸精品视频| 8x8x8国产精品| 亚洲成人手机在线| 欧美精品一二三| 一区二区三区国产精华| bt7086福利一区国产| 久久精品水蜜桃av综合天堂| 国产一区999| 日韩欧美国产成人一区二区| 五月天视频一区| 欧美老肥妇做.爰bbww视频| 亚洲国产精品天堂| 欧美日韩的一区二区| 轻轻草成人在线| 制服丝袜中文字幕一区| 日本不卡一区二区三区高清视频| 91精品国产欧美一区二区成人 | 无吗不卡中文字幕| 欧美日韩dvd在线观看| 日本不卡中文字幕| 久久亚洲精品国产精品紫薇| 国产一区二区视频在线| 国产精品另类一区| 色偷偷88欧美精品久久久| 亚洲精品写真福利| 精品乱码亚洲一区二区不卡| 国产成人一级电影| 亚洲精品国产品国语在线app| 91国产成人在线| 欧美aⅴ一区二区三区视频| 久久综合成人精品亚洲另类欧美| 国产精品一区二区免费不卡 | 国产精品12区| 亚洲免费在线视频| 久久免费看少妇高潮| 91亚洲精品久久久蜜桃网站| 亚洲国产精品麻豆| 久久精品人人做人人综合| 91成人网在线| 99久久国产免费看| 免费xxxx性欧美18vr| 亚洲美女免费视频| 久久久久国产精品免费免费搜索| 色婷婷国产精品| 国产二区国产一区在线观看| 日韩黄色一级片| 亚洲一区二区美女| 麻豆精品视频在线观看| 午夜精品久久久久久久蜜桃app| 亚洲欧洲色图综合| 国产偷国产偷亚洲高清人白洁| 日韩欧美国产一区二区三区| 欧美性猛交一区二区三区精品| 激情深爱一区二区| 久草这里只有精品视频| 日韩av二区在线播放| 亚洲夂夂婷婷色拍ww47 | 久久久久国产精品人| 欧美成va人片在线观看| 欧美电影免费观看高清完整版 | 精品日韩欧美在线| 精品免费一区二区三区| 日韩一区二区免费视频| 91精品国产高清一区二区三区| 欧美日韩一二三区| 日韩欧美亚洲另类制服综合在线| 91麻豆国产福利在线观看| a4yy欧美一区二区三区| 成人国产精品免费| 色婷婷综合久久久久中文 | 一本到一区二区三区| 欧美色男人天堂| 日韩视频不卡中文| 久久综合一区二区| 国产精品天干天干在线综合| 亚洲天堂2016| 五月婷婷综合网| 国内欧美视频一区二区| 成人av午夜影院| 欧美精品 国产精品| 91精品国产欧美一区二区18 | 91精品国产欧美一区二区| 国产三级欧美三级| 亚洲色图欧美偷拍| 久久精品国产精品亚洲综合| 国产精品一区久久久久| 欧美丝袜丝交足nylons图片| 欧美一二三四区在线| 国产精品午夜久久| 日韩一区精品视频| 成人精品在线视频观看| 欧美日韩激情一区| 中文字幕一区二区三区四区不卡 | 亚洲一区二区三区中文字幕 | 久久日韩精品一区二区五区| 中文字幕第一页久久| 亚洲国产精品自拍| 成人av资源站| 精品播放一区二区| 肉色丝袜一区二区| 91毛片在线观看| 国产欧美综合色| 免费在线看一区| 欧美性大战xxxxx久久久| 国产欧美一区二区三区鸳鸯浴| 久久精品国产99| 欧美男男青年gay1069videost| 国产精品网站一区| 黄色资源网久久资源365| 欧美一级欧美一级在线播放| 一区二区三区精品视频在线| 97se亚洲国产综合自在线| 中文字幕av一区二区三区高 | 欧美在线免费观看视频| 欧美激情一区三区| 丁香婷婷综合色啪| 国产精品久久福利| 9人人澡人人爽人人精品| 中文字幕精品三区| 99精品视频中文字幕| 亚洲在线视频网站| 亚洲国产aⅴ成人精品无吗| 99久久久久久| 粉嫩蜜臀av国产精品网站| 一区二区三区在线观看网站| 欧美成人乱码一区二区三区| 色哟哟在线观看一区二区三区| 国产精品久线在线观看| 色婷婷亚洲精品| 麻豆成人久久精品二区三区小说| 欧美成人福利视频| 色哟哟精品一区| 成人激情免费电影网址| 一区二区三区日韩精品视频| 欧美一区二区在线看| 成人av先锋影音| 免费久久99精品国产| 亚洲欧洲制服丝袜| 久久嫩草精品久久久精品一| 91久久久免费一区二区| 国产真实乱偷精品视频免| 午夜婷婷国产麻豆精品| 亚洲少妇最新在线视频| 欧美精品v国产精品v日韩精品| 高清国产一区二区三区|