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

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

?? window.c

?? ucCos移植到廣州友善nano2410
?? 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        : WINDOW.c
Purpose     : Window routines
---------------------------END-OF-HEADER------------------------------
*/


#include <stdlib.h>
#include <string.h>
#include "DIALOG.h"
#if GUI_WINSUPPORT

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

#ifndef WINDOW_BKCOLOR_DEFAULT
  #define WINDOW_BKCOLOR_DEFAULT 0xC0C0C0
#endif

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

typedef struct {
  WIDGET Widget;
  WM_CALLBACK* cb;
  WM_HWIN hFocussedChild;
  WM_DIALOG_STATUS* pDialogStatus;
} WINDOW_OBJ;

#define WINDOW_H2P(h) (WINDOW_OBJ*)WM_H2P(h)

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

GUI_COLOR WINDOW__DefaultBkColor = WINDOW_BKCOLOR_DEFAULT;

/*********************************************************************
*
*       Static routines
*
**********************************************************************
*/
/*********************************************************************
*
*       _OnChildHasFocus
*/
static void _OnChildHasFocus(WM_HWIN hWin, WINDOW_OBJ* pObj, const WM_MESSAGE* pMsg) {
  if (pMsg->Data.p) {
    const WM_NOTIFY_CHILD_HAS_FOCUS_INFO * pInfo = (const WM_NOTIFY_CHILD_HAS_FOCUS_INFO *)pMsg->Data.p;
    int IsDesc = WM__IsAncestorOrSelf(pInfo->hNew, hWin);
    if (!IsDesc) {  /* A child has received the focus, Framewindow needs to be activated */
      /* Remember the child which had the focus so we can reactive this child */
      if (WM__IsAncestor(pInfo->hOld, hWin)) {
        pObj->hFocussedChild = pInfo->hOld;
      }
    }
  }
}

/*********************************************************************
*
*       _cb
*/
static void _cb(WM_MESSAGE* pMsg) {
  WM_HWIN hObj;
  WINDOW_OBJ* pObj;
  WM_CALLBACK* cb;
  hObj = pMsg->hWin;
  pObj = WINDOW_H2P(hObj);
  cb   = pObj->cb;
  switch (pMsg->MsgId) {
  case WM_HANDLE_DIALOG_STATUS:
    if (pMsg->Data.p) {                           /* set pointer to Dialog status */
      pObj->pDialogStatus = (WM_DIALOG_STATUS*)pMsg->Data.p;
    } else {                                      /* return pointer to Dialog status */
      pMsg->Data.p = pObj->pDialogStatus;      
    }
    return;
  case WM_SET_FOCUS:
    if (pMsg->Data.v) {   /* Focus received */
      if (pObj->hFocussedChild && (pObj->hFocussedChild != hObj)) {
        WM_SetFocus(pObj->hFocussedChild);
      } else {
        pObj->hFocussedChild = WM_SetFocusOnNextChild(hObj);
      }
      pMsg->Data.v = 0;   /* Focus change accepted */
    }
    return;
  case WM_GET_ACCEPT_FOCUS:
    WIDGET_HandleActive(hObj, pMsg);
    return;
  case WM_NOTIFY_CHILD_HAS_FOCUS:
    _OnChildHasFocus(hObj, pObj, pMsg);
    return;
  case WM_KEY:
    if (((const WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt > 0) {
      int Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
      switch (Key) {
      case GUI_KEY_TAB:
        pObj->hFocussedChild = WM_SetFocusOnNextChild(hObj);
        break;                    /* Send to parent by not doing anything */
      }
    }
    break;
  case WM_PAINT:
    LCD_SetBkColor(WINDOW__DefaultBkColor);
    GUI_Clear();
    break;
  case WM_GET_BKCOLOR:
    pMsg->Data.Color = WINDOW__DefaultBkColor;
    return;                       /* Message handled */
  }  
  if (cb) {
    (*cb)(pMsg);
  } else {
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       Exported routines
*
**********************************************************************
*/
/*********************************************************************
*
*       WINDOW_CreateIndirect
*/
WM_HWIN WINDOW_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK* cb) {
  WM_HWIN hObj;
  hObj = WM_CreateWindowAsChild(
    pCreateInfo->x0 + x0, pCreateInfo->y0 + y0, pCreateInfo->xSize, pCreateInfo->ySize, hWinParent,
    pCreateInfo->Flags, _cb, sizeof(WINDOW_OBJ) - sizeof(WM_Obj));
  if (hObj) {
    WINDOW_OBJ* pObj;
    WM_LOCK();
    pObj = WINDOW_H2P(hObj);
    WIDGET__Init(&pObj->Widget, pCreateInfo->Id, WIDGET_STATE_FOCUSSABLE);
    pObj->cb             = cb;
    pObj->hFocussedChild = 0;
    WM_UNLOCK();
  }
  return hObj;
}

#else
  void WINDOW_c(void);
  void WINDOW_c(void) {} /* avoid empty object files */
#endif /* GUI_WINSUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月天视频一区| 精品国产91乱码一区二区三区 | 日韩一区二区电影网| 一区二区三区国产精华| 91国产成人在线| 亚洲综合无码一区二区| 欧美日韩久久久久久| 免费成人性网站| 精品播放一区二区| 成人h动漫精品一区二| 日韩高清不卡一区二区| 香蕉加勒比综合久久| 国产麻豆成人传媒免费观看| 精久久久久久久久久久| 91热门视频在线观看| 亚洲精品大片www| 色噜噜狠狠成人中文综合| 欧美一区二区视频免费观看| 久久久天堂av| 综合自拍亚洲综合图不卡区| 美美哒免费高清在线观看视频一区二区 | 色偷偷久久一区二区三区| 另类综合日韩欧美亚洲| 全部av―极品视觉盛宴亚洲| 99久久精品国产导航| 久久九九全国免费| 亚洲一区二区三区四区在线观看 | 经典三级在线一区| 亚洲成人激情av| 国产一区二区免费看| 色综合婷婷久久| 国产欧美精品一区aⅴ影院| 欧美另类高清zo欧美| 亚洲欧美影音先锋| 美女视频黄a大片欧美| 成人激情电影免费在线观看| 欧美日韩中文字幕精品| 欧美日韩精品系列| 久久久精品tv| 亚洲精品视频观看| 久久国产婷婷国产香蕉| 五月婷婷激情综合网| 欧美三级乱人伦电影| 亚洲三级小视频| 色哟哟亚洲精品| 日本一区二区三区在线观看| 日本成人在线不卡视频| 一区二区三区欧美在线观看| 91传媒视频在线播放| 午夜在线成人av| 在线观看亚洲精品| 亚洲同性gay激情无套| 一区二区三区资源| 国产福利精品导航| 精品成人一区二区| 色欧美乱欧美15图片| 日本不卡一区二区三区| 岛国av在线一区| 久久se这里有精品| 爽爽淫人综合网网站| 亚洲免费资源在线播放| 中文字幕久久午夜不卡| 精品久久免费看| 欧美一级理论性理论a| 欧美日韩精品专区| 91丨九色丨尤物| 豆国产96在线|亚洲| 国产传媒日韩欧美成人| 久久精品理论片| 奇米影视一区二区三区小说| 亚洲高清在线视频| 一级做a爱片久久| 亚洲免费av观看| 国产精品视频一区二区三区不卡| 2022国产精品视频| 精品福利视频一区二区三区| 日韩欧美激情四射| 欧美精品一区二区三区很污很色的| 91精品国产品国语在线不卡| 欧美精品在线视频| 欧美挠脚心视频网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 色综合中文字幕国产 | 91久久精品一区二区二区| 99在线热播精品免费| 91在线国产福利| 欧美在线免费播放| 欧美肥妇bbw| 日韩精品中午字幕| 久久色在线视频| 国产色91在线| 自拍偷拍国产亚洲| 一区二区久久久久| 视频一区欧美日韩| 久久精品国产99国产精品| 国产精品996| 99久久婷婷国产综合精品| 色拍拍在线精品视频8848| 欧美日韩免费高清一区色橹橹| 欧美日韩在线播放一区| 日韩一区国产二区欧美三区| 精品日韩一区二区| 亚洲欧洲日韩在线| 亚洲电影第三页| 黄一区二区三区| 成年人国产精品| 欧美影院精品一区| 日韩一区二区三免费高清| 久久久亚洲国产美女国产盗摄 | 免费在线观看成人| 国产麻豆视频精品| 99久久国产综合精品色伊| 欧美精品自拍偷拍动漫精品| 国产午夜精品在线观看| 99re热视频精品| 欧美一区二区三区视频免费播放 | 亚洲综合清纯丝袜自拍| 日本网站在线观看一区二区三区| 国产精品亚洲专一区二区三区| www.日本不卡| 在线播放中文字幕一区| 中文乱码免费一区二区| 午夜精品视频在线观看| 国产一区在线不卡| 在线一区二区观看| 337p日本欧洲亚洲大胆精品| 一区二区三区精品视频| 国产福利不卡视频| 欧美日本在线看| 国产精品你懂的| 国产91色综合久久免费分享| 91美女视频网站| 精品国偷自产国产一区| 亚洲精品成人悠悠色影视| 精品一区二区久久| 在线观看一区不卡| 国产精品福利影院| 久久99精品国产麻豆不卡| 欧美在线观看一区| 中文字幕av一区二区三区| 另类专区欧美蜜桃臀第一页| 在线观看不卡视频| 欧美国产欧美综合| 久久99精品久久久久久国产越南 | 日本aⅴ免费视频一区二区三区| 成人h动漫精品| 久久综合久久综合九色| 亚洲动漫第一页| 色综合久久久久久久| 欧美激情一区二区三区| 久久电影网站中文字幕| 91 com成人网| 亚洲午夜羞羞片| 色婷婷亚洲一区二区三区| 国产视频在线观看一区二区三区| 91麻豆国产福利在线观看| 中文字幕在线播放不卡一区| 日韩电影在线观看一区| 一本到三区不卡视频| 国产日韩成人精品| 国产一区二区在线观看视频| 91精品黄色片免费大全| 亚洲成人自拍一区| 欧美中文字幕一区二区三区 | 欧美一区永久视频免费观看| 亚洲制服丝袜av| 欧美在线一二三四区| 伊人色综合久久天天人手人婷| 成人激情电影免费在线观看| 日本一区二区成人| 成人白浆超碰人人人人| 国产精品麻豆视频| 成人毛片老司机大片| 国产精品美女久久久久高潮| 成人在线综合网| 国产精品久久久久久久久图文区 | 精品国产乱码久久久久久浪潮| 日产国产高清一区二区三区| 日韩欧美一卡二卡| 精品国产不卡一区二区三区| 琪琪久久久久日韩精品| 日韩欧美亚洲另类制服综合在线| 青青草97国产精品免费观看无弹窗版| 91精品免费观看| 久久成人久久爱| 久久久久久久综合色一本| 国产不卡在线视频| 成人免费在线视频观看| 91精品办公室少妇高潮对白| 亚洲sss视频在线视频| 日韩欧美成人午夜| 国产一区二区福利| 亚洲丝袜美腿综合| 欧美日韩国产综合一区二区| 奇米精品一区二区三区四区| 欧美精品一区二区在线播放| 成人黄色在线视频| 亚洲一区二区欧美| 亚洲精品在线三区| 高清在线不卡av|