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

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

?? checkbox.c

?? uCGUI
?? C
字號(hào):
/*************************************************************************************************************
                                                   uC/GUI
                                               嵌入式通用圖形軟件
File        : CHECKBOX.c
Purpose     : Template for new emWin GSC widgets
************************************************************************************************************/
#include <stdlib.h>
#include <string.h>
#include "GUI_Private.H"
#include "CHECKBOX.h"
#include "Widget.h"

#if GUI_WINSUPPORT

/*********************************************************************
*
*       Private config defaults
*
**********************************************************************
*/

/* Define default fonts */
#ifndef CHECKBOX_FONT_DEFAULT
  #define CHECKBOX_FONT_DEFAULT &GUI_Font13_1
#endif

/* Support for 3D effects */
#ifndef CHECKBOX_USE_3D
  #define CHECKBOX_USE_3D 1
#endif

/* Define colors */
#ifndef CHECKBOX_BKCOLOR0_DEFAULT
  #define CHECKBOX_BKCOLOR0_DEFAULT 0x808080           /* Inactive color */
#endif

#ifndef CHECKBOX_BKCOLOR1_DEFAULT
  #define CHECKBOX_BKCOLOR1_DEFAULT GUI_WHITE          /* Active color */
#endif

#ifndef CHECKBOX_FGCOLOR0_DEFAULT
  #define CHECKBOX_FGCOLOR0_DEFAULT 0x101010
#endif

#ifndef CHECKBOX_FGCOLOR1_DEFAULT
  #define CHECKBOX_FGCOLOR1_DEFAULT GUI_BLACK
#endif


/*********************************************************************
*
*       Object definition
*
**********************************************************************
*/

typedef struct {
  WIDGET Widget;
  GUI_COLOR aBkColor[2];
  GUI_COLOR aFgColor[2];
  #if GUI_DEBUG_LEVEL >1
    int DebugId;
  #endif  
} CHECKBOX_Obj;

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

static GUI_COLOR _aColor[2];

/*********************************************************************
*
*       Static const data
*
**********************************************************************
*/
static const GUI_LOGPALETTE _PalCheck = {
  2,	/* number of entries */
  0, 	/* No transparency */
  &_aColor[0]
};

static const unsigned char _acCheck[] = {
  XXXXXXXX, XXX_____,
  XXXXXXXX, XXX_____,
  XXXXXXXX, _XX_____,
  XXXXXXX_, _XX_____,
  XX_XXX__, _XX_____,
  XX__X___, XXX_____,
  XX_____X, XXX_____,
  XXX___XX, XXX_____,
  XXXX_XXX, XXX_____,
  XXXXXXXX, XXX_____,
  XXXXXXXX, XXX_____
};

static const GUI_BITMAP _bmCheck = {
 11, /* XSize */
 11, /* YSize */
 2, /* BytesPerLine */
 1, /* BitsPerPixel */
 _acCheck,  /* Pointer to picture data (indices) */
 &_PalCheck  /* Pointer to palette */
};

/*********************************************************************
*
*       Macros for internal use
*
**********************************************************************
*/

#define CHECKBOX_ID 0x4544   /* Magic numer, should be unique if possible */

#define CHECKBOX_H2P(h) (CHECKBOX_Obj*) WM_H2P(h)

#ifdef _DEBUG
  #define CHECKBOX_ASSERT_IS_VALID_PTR(p) DEBUG_ERROROUT_IF(p->DebugId != CHECKBOX_ID, "xxx.c: Wrong handle type or Object not init'ed")
  #define CHECKBOX_INIT_ID(p)   p->DebugId = CHECKBOX_ID
  #define CHECKBOX_DEINIT_ID(p) p->DebugId = CHECKBOX_ID+1
#else
  #define CHECKBOX_ASSERT_IS_VALID_PTR(p)
  #define CHECKBOX_INIT_ID(p)
  #define CHECKBOX_DEINIT_ID(p)
#endif

/*********************************************************************
*
*       Static routines
*
**********************************************************************
*/



/*********************************************************************
*
*       _Paint
*/
static void _Paint(CHECKBOX_Obj* pObj) {
  int ColorIndex;
  ColorIndex = WIDGET__IsEnabled(&pObj->Widget);
  /* Clear inside  ... Just in case */
  GUI_SetBkColor (pObj->aBkColor[ColorIndex]);
  GUI_Clear();
  if (pObj->Widget.State & CHECKBOX_STATE_CHECKED) {
    _aColor[1] = pObj->aBkColor[ColorIndex];
    _aColor[0] = pObj->aFgColor[ColorIndex];
    GUI_DrawBitmap(&_bmCheck, 2, 2);
  }
  /* Draw the 3D effect (if configured) */
  WIDGET__EFFECT_DrawDown(&pObj->Widget);
}


/*********************************************************************
*
*       _OnTouch
*/
static void _OnTouch(CHECKBOX_Handle hObj, CHECKBOX_Obj* pObj, WM_MESSAGE*pMsg) {
  int Notification;
  int Hit = 0;
  GUI_TOUCH_tState* pState = (GUI_TOUCH_tState*)pMsg->Data.p;
  if (pMsg->Data.p) {  /* Something happened in our area (pressed or released) */
    if (pState->Pressed) {
      if (pObj->Widget.State & WIDGET_STATE_ENABLED) {
        pObj->Widget.State ^= CHECKBOX_STATE_CHECKED;
        WM_Invalidate(hObj);
        Notification = WM_NOTIFICATION_CLICKED;
        WM_SetFocus(hObj);
      }
    } else {
      Hit =1;
      Notification = WM_NOTIFICATION_RELEASED;
    }
  } else {
    Notification = WM_NOTIFICATION_MOVED_OUT;
  }
  WM_NotifyParent(hObj, Notification);
  if (Hit == 1) {
    GUI_DEBUG_LOG("CHECKBOX: Hit\n");
    GUI_StoreKey(pObj->Widget.Id);
  }
}

/*********************************************************************
*
*       _Callback
*/
static void _CHECKBOX_Callback (WM_MESSAGE *pMsg) {
  CHECKBOX_Handle hObj;
  CHECKBOX_Obj* pObj;
  hObj = pMsg->hWin;
  pObj = CHECKBOX_H2P(hObj);
  /* Let widget handle the standard messages */
  if (WIDGET_HandleActive(hObj, pMsg) == 0) {
    return;
  }
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_DEBUG_LOG("CHECKBOX: _Callback(WM_PAINT)\n");
    _Paint(pObj);
    return;
  case WM_TOUCH:
    _OnTouch(hObj, pObj, pMsg);
    break;
  }
  WM_DefaultProc(pMsg);
}

/*********************************************************************
*
*       Exported routines:  Create
*
**********************************************************************
*/

/* Note: the parameters to a create function may vary.
         Some widgets may have multiple create functions */


CHECKBOX_Handle CHECKBOX_Create (int x0, int y0, int xsize, int ysize, WM_HWIN hParent, int Id, int Flags) {
  CHECKBOX_Handle hObj;
  /* Create the window */
  WM_LOCK();
  hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent,
                                Flags, _CHECKBOX_Callback, sizeof(CHECKBOX_Obj)-sizeof(WM_Obj));
  if (hObj) {
    CHECKBOX_Obj* pObj = CHECKBOX_H2P(hObj);
    /* init widget specific variables */
    WIDGET__Init(&pObj->Widget, WIDGET_STATE_FOCUSSABLE | WIDGET_STATE_ENABLED);
    pObj->Widget.Id     = Id;
    /* init member variables */
    CHECKBOX_INIT_ID(pObj);
    pObj->aBkColor[0]   = CHECKBOX_BKCOLOR0_DEFAULT;
    pObj->aBkColor[1]   = CHECKBOX_BKCOLOR1_DEFAULT;
    pObj->aFgColor[0]   = CHECKBOX_FGCOLOR0_DEFAULT;
    pObj->aFgColor[1]   = CHECKBOX_FGCOLOR1_DEFAULT;
  } else {
    GUI_DEBUG_ERROROUT_IF(hObj==0, "CHECKBOX_Create failed")
  }
  WM_UNLOCK();
  return hObj;
}

CHECKBOX_Handle CHECKBOX_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK* cb) {
  CHECKBOX_Handle  hThis;
  GUI_USE_PARA(cb);
  hThis = CHECKBOX_Create(pCreateInfo->x0 + x0, pCreateInfo->y0 + y0, 15, 15,
                          hWinParent, pCreateInfo->Id, pCreateInfo->Flags);
  return hThis;
}

/*********************************************************************
*
*       Exported routines:  Various methods
*
**********************************************************************
*/
void CHECKBOX_Check(CHECKBOX_Handle hObj) {
  WIDGET_OrState(hObj, CHECKBOX_STATE_CHECKED);
}

void CHECKBOX_Uncheck(CHECKBOX_Handle hObj) {
  WIDGET_AndState(hObj, CHECKBOX_STATE_CHECKED);
}

/*********************************************************************
*
*       Exported routines:  Query state
*
**********************************************************************
*/

/*********************************************************************
*
*       CHECKBOX_IsChecked
*/
int CHECKBOX_IsChecked(CHECKBOX_Handle hObj) {
  int r = 0;
  CHECKBOX_Obj* pObj;
  if (hObj) {
    WM_LOCK();
    pObj = CHECKBOX_H2P(hObj);
    r = (pObj->Widget.State & CHECKBOX_STATE_CHECKED) ? 1 : 0;
    WM_UNLOCK();
  }
  return r;
}



#endif  /* #if GUI_WINSUPPORT */



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美日韩| 色综合中文字幕国产 | 久久成人羞羞网站| 视频一区免费在线观看| 亚洲国产精品影院| 性感美女久久精品| 日韩黄色一级片| 日韩精品一级二级 | 欧美日韩免费观看一区三区| 色先锋资源久久综合| 色域天天综合网| 欧美三片在线视频观看| 欧美日韩aaa| 日韩三级电影网址| 久久亚洲欧美国产精品乐播| 久久一区二区三区四区| 国产精品网站一区| 综合在线观看色| 亚洲成人黄色影院| 久久69国产一区二区蜜臀| 国产在线麻豆精品观看| 岛国精品在线观看| 欧美在线免费观看亚洲| 欧美精品v日韩精品v韩国精品v| 宅男在线国产精品| 久久影视一区二区| 亚洲视频一区在线| 亚洲成人1区2区| 久久99久久久欧美国产| 国产成人福利片| 欧洲生活片亚洲生活在线观看| 91精品国产品国语在线不卡| 欧美mv和日韩mv的网站| 中文字幕一区二区三区色视频 | 亚洲成人av免费| 精品在线亚洲视频| 99久久免费视频.com| 欧洲一区二区三区免费视频| 欧美成人a在线| 自拍偷在线精品自拍偷无码专区| 亚洲午夜日本在线观看| 激情偷乱视频一区二区三区| 99久久99久久久精品齐齐| 欧美精品免费视频| 国产精品全国免费观看高清| 亚洲国产精品综合小说图片区| 国内精品伊人久久久久影院对白| 91丝袜美女网| 精品国产人成亚洲区| 亚洲人成小说网站色在线| 免费xxxx性欧美18vr| 99久久免费视频.com| 欧美一级搡bbbb搡bbbb| 亚洲色图在线视频| 久草精品在线观看| 在线视频国内自拍亚洲视频| 久久人人爽爽爽人久久久| 亚洲精品美国一| 韩国av一区二区三区| 91激情在线视频| 久久精品亚洲乱码伦伦中文| 午夜不卡av在线| 成人av免费观看| 精品久久国产老人久久综合| 一个色在线综合| 不卡一区二区三区四区| 日韩午夜激情电影| 亚洲综合色网站| 国产精品12区| 日韩亚洲欧美综合| 亚洲尤物在线视频观看| 成人福利视频网站| 欧美tk—视频vk| 日韩精彩视频在线观看| 91福利在线看| 自拍偷拍欧美激情| 国产高清视频一区| 26uuu久久综合| 蜜桃视频免费观看一区| 欧美体内she精视频| 亚洲日本va午夜在线影院| 国产成人午夜精品5599 | 亚洲国产视频在线| 91在线一区二区| 国产精品久久国产精麻豆99网站 | 日韩你懂的电影在线观看| 午夜精品久久久| 欧美视频你懂的| 亚洲靠逼com| 91亚洲永久精品| 国产精品国产馆在线真实露脸 | 欧美性感一类影片在线播放| 亚洲图片你懂的| eeuss影院一区二区三区| 国产午夜精品久久久久久久 | 欧美在线观看一区二区| 亚洲免费av高清| 色偷偷久久人人79超碰人人澡| 中文字幕一区二区三区乱码在线| 国产中文一区二区三区| 欧美刺激午夜性久久久久久久| 日韩精品一级中文字幕精品视频免费观看| 欧洲一区二区三区免费视频| 亚洲日韩欧美一区二区在线| 91蝌蚪porny九色| 亚洲欧美另类久久久精品| 97精品久久久午夜一区二区三区| 综合久久久久久久| 日本韩国精品一区二区在线观看| 亚洲人成伊人成综合网小说| 色欧美乱欧美15图片| 一区二区三区欧美| 欧美日韩aaa| 久久精品国产色蜜蜜麻豆| 欧美mv日韩mv国产网站| 国产高清久久久久| 成人免费一区二区三区在线观看| 色综合中文综合网| 日韩一区二区三区四区| 久久精品国产免费| 久久这里只有精品6| 国产成人在线视频网站| 国产精品美女久久久久久久久| 99久久免费视频.com| 亚洲精品高清视频在线观看| 精品1区2区3区| 奇米一区二区三区| 久久婷婷国产综合国色天香| 国产成人av电影在线| 自拍偷拍国产精品| 欧美男人的天堂一二区| 韩国欧美一区二区| 亚洲人123区| 555夜色666亚洲国产免| 国产综合色在线视频区| 亚洲欧洲av在线| 欧美久久免费观看| 国产精品综合久久| 亚洲免费观看高清完整版在线观看| 欧美精品一二三| 国产精品影视网| 一片黄亚洲嫩模| 日韩欧美区一区二| 99re这里只有精品首页| 丝袜美腿亚洲一区二区图片| 国产日韩欧美不卡在线| 日本乱码高清不卡字幕| 精品亚洲国产成人av制服丝袜| 国产精品乱人伦| 91精品国产入口| 99久久国产综合精品麻豆| 蜜臀国产一区二区三区在线播放| 欧美激情一区二区三区全黄| 欧美视频在线一区二区三区| 国产一区二区日韩精品| 亚洲精品日产精品乱码不卡| 精品国产一区二区三区av性色| 色欧美片视频在线观看| 国产精品12区| 丝袜美腿亚洲一区| 国产精品久久久久aaaa| 日韩欧美一级片| 色欧美片视频在线观看| 国产精品一区二区无线| 亚洲国产人成综合网站| 欧美国产精品一区二区三区| 欧美狂野另类xxxxoooo| 91丝袜美女网| 国产suv一区二区三区88区| 日韩在线一区二区三区| 亚洲免费在线电影| 国产片一区二区三区| 日韩欧美中文字幕一区| 在线观看亚洲精品视频| 成人免费看片app下载| 免费精品视频在线| 亚洲最色的网站| 国产精品久久久久久久久晋中| 精品国产亚洲一区二区三区在线观看| 欧美主播一区二区三区美女| 白白色亚洲国产精品| 国产尤物一区二区| 麻豆精品一区二区综合av| 午夜精品一区二区三区三上悠亚| 亚洲日本一区二区三区| 日本一区二区三区久久久久久久久不 | 国产精品第五页| 久久欧美中文字幕| 欧美大片国产精品| 制服丝袜在线91| 欧美乱妇15p| 欧美色精品天天在线观看视频| 91麻豆精东视频| 本田岬高潮一区二区三区| 国产精品99久久久久久久vr| 久久99精品久久久| 日本亚洲视频在线| 日韩成人精品在线| 美女视频黄 久久| 日本欧美大码aⅴ在线播放|