⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog.c

📁 ucgui在ARM44B0目标板上的移植代码支持16级灰度
💻 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        : Purpose     : Dialog box include----------------------------------------------------------------------Open items:None--------------------END-OF-HEADER-------------------------------------*/#include <stddef.h>           /* needed for definition of NULL */#include "Dialog.h"#include "Widget.h"#include "WM_Intern.h"#if GUI_WINSUPPORT/***********************************************************************       Private config defaults************************************************************************//* Define colors */#ifndef DIALOG_BKCOLOR0_DEFAULT  #define DIALOG_BKCOLOR0_DEFAULT 0xc0c0c0#endif/***********************************************************************           static data;************************************************************************/static WM_CALLBACK* _cb;static int _r;static LCD_COLOR _BkColor = DIALOG_BKCOLOR0_DEFAULT;/***********************************************************************           static code: API functions************************************************************************//**************************************************************           _cbDialog  This callback is hooked before the user callback in order to be  able to intercept some messages.*/static void _cbDialog(WM_MESSAGE* pMsg) {  if (_cb) {    (*_cb)(pMsg);  }}/***********************************************************************           Public code: API functions************************************************************************//**************************************************************           GUI_CreateDialogbox*/WM_HWIN GUI_CreateDialogBox(const GUI_WIDGET_CREATE_INFO* paWidget, int NumWidgets, WM_CALLBACK* cb, WM_HWIN hParent,                            int x0, int y0){  WM_HWIN hDialog = paWidget->pfCreateIndirect(paWidget, hParent, x0, y0, cb);     /* Create parent window */  WM_HWIN hDialogClient = WM_GetClientWindow(hDialog);  WIDGET_OrState(hDialog, paWidget->Flags);  WM_ShowWindow(hDialog);  WM_ShowWindow(hDialogClient);  while (--NumWidgets > 0) {    WM_HWIN hChild;    paWidget++;    hChild = paWidget->pfCreateIndirect(paWidget, hDialogClient, 0, 0, 0);     /* Create child window */    WM_ShowWindow(hChild);  }  WM_SetFocusOnNextChild(hDialog);     /* Set the focus to the first child */  WM__SendMessageNoPara(hDialogClient, WM_INIT_DIALOG);  return hDialog;}/**************************************************************           GUI_EndDialog*/void GUI_EndDialog(WM_HWIN hWin, int r) {  _cb = NULL;  _r = r;  WM_DeleteWindow(hWin);}/**************************************************************           DIALOG_GetBkColor()*/LCD_COLOR DIALOG_GetBkColor(void) {  return _BkColor;}/**************************************************************           DIALOG_SetBkColor()*/LCD_COLOR DIALOG_SetBkColor(LCD_COLOR BkColor) {  LCD_COLOR r;  r = _BkColor;  _BkColor = BkColor;  return r;}/**************************************************************           GUI_ExecDialogbox*/int     GUI_ExecDialogBox(const GUI_WIDGET_CREATE_INFO* paWidget,                          int NumWidgets, WM_CALLBACK* cb, WM_HWIN hParent,                          int x0, int y0){  _cb = cb;  GUI_CreateDialogBox(paWidget, NumWidgets, _cbDialog, hParent, x0, y0);  while (_cb) {    if (!GUI_Exec())      GUI_X_ExecIdle();  }  return _r;}#else  void Dialog_c(void);    /* Avoid problems with empty object modules */#endif   /* GUI_WINSUPPORT */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -