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

📄 wm.h

📁 uc-gui.rar
💻 H
📖 第 1 页 / 共 2 页
字号:
/***********************************************************************************************************                                                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        : WM.HPurpose     : Windows manager include----------------------------------------------------------------------*/#ifndef WM_H            /* Make sure we only include it once */#ifndef GUI_H  #include "GUI.H"      /* Needed because of typedefs only */#endif#ifndef WM_H		        /* Make sure circular reference do not lead                           to multiple-inclusion problem */#define WM_H/* Make sure we actually have configured windows. If we have not,  there is no point for a windows manager and it will therefor not  generate any code !*/#if GUI_WINSUPPORT/*      *************************************************************      *                                                           *      *                 Defaults for configuration switches       *      *                                                           *      **************************************************************/#ifndef WM_ASSERT  #define WM_ASSERT(expr) GUI_DEBUG_ASSERT(expr)#endif#ifndef WM_RESULT  #define WM_RESULT void#endif#ifndef WM_SUPPORT_TOUCH  #define WM_SUPPORT_TOUCH        GUI_SUPPORT_TOUCH#endif#ifndef WM_SUPPORT_OBSTRUCT  #define WM_SUPPORT_OBSTRUCT 1#endif#ifndef WM_COMPATIBLE_MODE  #define WM_COMPATIBLE_MODE 1#endif/*      *************************************************************      *                                                           *      *               Configuration check                         *      *                                                           *      **************************************************************//*      *************************************************************      *                                                           *      *               Locking macros                              *      *                                                           *      *************************************************************  For performance reasons, the windows manager user the same locking mechanisms  as the GUI layer. The advantage is that wiht a single call to GUI_LOCK both  the graphic level and the WM level are covered.*/#define WM_LOCK()   GUI_LOCK()#define WM_UNLOCK() GUI_UNLOCK()/* Memory allocation locking is seperate from Windows managers in   order to be able to use different resource semaphores. Per	 default, the same one is used.*/#ifndef WMALLOC_LOCK  #define WMALLOC_LOCK()   WM_LOCK()  #define WMALLOC_UNLOCK() WM_UNLOCK()#endif/**************************************************************          Public data (just for inline functions*                       in form of macros)***************************************************************/extern U8 WM_IsActive;/**************************************************************          Data types***************************************************************/typedef struct {  int Key, PressedCnt;} WM_KEY_INFO;typedef struct {  int NumItems, v, PageSize;} WM_SCROLL_STATE;/*      *************************************************************      *                                                           *      *               Function replacement macros                 *      *                                                           *      **************************************************************/#define WM_GetIsActive()          WM_IsActive#define WM_GetNumWindows()        WM__NumWindows#define WM_GetNumInvalidWindows() WM__NumInvalidWindows/***********************************************************************               Messages IdsThe following is the list of windows messages.*/#ifndef _WINUSER_              /* Conflicts with winuser.h ... */#define WM_PAINT               1 /* Repaint window (because content is (partially) invalid */#define WM_COVER               2 /* Window has been partially covered. Normally, there is no reaction to this event. */#define WM_CREATE              3 /* The first message received, right after client has actually been created */#define WM_DELETE              4 /* Delete (Destroy) command: This tells the client to free its data strutures since the window                                    it is associates with no longer exists.*/#define WM_SIZE                6 /* Is sent to a window after its size has changed */#define WM_MOVE                7 /* window has been moved */#define WM_SHOW                8 /* windows has just received the show command */#define WM_HIDE                9 /* windows has just received the hide command */#define WM_FGND               10 /* window has been made top of window stack */#define WM_BGND               11 /* window has just been put to bottom of stack */#define WM_TOUCH              12 /* touch screen message */#define WM_KEY                13 /* Key has been pressed */#define WM_GETCLIENTRECT      100      /* get client rectangle in window coordinates*/#define WM_GETCLIENTRECT_ABS  101      /* get client rectangle in absolute coordinates*/#define WM_GET_INSIDE_RECT    102      /* get inside rectangle: client rectangle minus pixels lost to effect */#define WM_GETORG             104#define WM_GET_ID             105      /* Get id of widget */#define WM_GET_CLIENT_WINDOW  106      /* Get window handle of client window. Default is the same as window */#define WM_CAPTURE_RELEASED   107      /* Let window know that mouse capture is over */#define WM_INIT_DIALOG        109      /* Inform dialog that it is ready for init */#define WM_SET_FOCUS          110      /* Inform window that it has gotten or lost the focus */#define WM_GET_ACCEPT_FOCUS   111      /* Find out if window can accept the focus */#define WM_GET_FOCUSSED_CHILD 112      /* Which child currently has the focus */#define WM_GET_HAS_FOCUS      113      /* Does this window have the focus ? */#define WM_GET_BKCOLOR        114      /* Return back ground color (only frame window and similar) */#define WM_SET_ENABLE         115      /* Enable or disable widget */#define WM_GET_SCROLL_STATE   116      /* Query state of scroll bar */#define WM_ADD_SCROLLBAR      118      /* Scroller added */#define WM_SET_SCROLL_STATE   119      /* Set scroll info ... only effective for scrollbars */#define WM_NOTIFY_CHILD_HAS_FOCUS 120#define WM_NOTIFY_PARENT      121#define WM_USER              200      /* Reserved for user messages */#endif/***********************************************************************               Notification codesThe following is the list of notification codes sendwith the WM_NOTIFY message*/#define WM_NOTIFICATION_CLICKED       1#define WM_NOTIFICATION_RELEASED      2#define WM_NOTIFICATION_MOVED_OUT     3#define WM_NOTIFICATION_SEL_CHANGED   4#define WM_NOTIFICATION_VALUE_CHANGED 5/*        *******************************************************************        *                                                                 *        *              Memory management                                  *        *                                                                 *        ********************************************************************/#define WM_FREE(h)     GUI_ALLOC_FREE(h)#define WM_ALLOC(h)    GUI_ALLOC_ALLOC(h)#define WM_HWIN        GUI_HWIN#define WM_HWIN_NULL   GUI_HWIN_NULL#define WM_HMEM        GUI_HMEM#define WM_HMEM2Ptr    GUI_ALLOC_H2P#define WM_FREEPTR(ph) GUI_ALLOC_FreePtr(ph)#define WM_HMEM_NULL   GUI_HMEM_NULL#define WM_HBKWIN      1                         /* Handle of background window *//*        *******************************************************************        *                                                                 *        *           Windows manager types                                 *        *                                                                 *        ********************************************************************//* Windows create flags. These flags can be passed to the create window   function as flag-parameter. The flags are combinable using the   binary or operator.*/#define WM_CF_HASTRANS   (1<<0)  /* Has transparency. Needs to be defined                                    for windows which do not fill the entire                                    section of their (client) rectangle. */#define WM_CF_HIDE       (0<<1)  /* Hide window after creation (default !) */#define WM_CF_SHOW       (1<<1)  /* Show window after creation */#define WM_CF_FGND       (0<<2)  /* Put window in foreground after creation                                    (default !) */#define WM_CF_BGND       (1<<2)  /* Put window in background after creation */#define WM_CF_MEMDEV     (1<<3)  /* Use memory device for redraws */#define WM_CF_STAYONTOP  (1<<4)  /* Stay on top */#define WM_CF_ACTIVATE   (1<<5)  /* If automatic activation upon creation of                                    window is desired */typedef struct {  int MsgId;            /* type of message */  WM_HWIN hWin;         /* Destination window */  WM_HWIN hWinSrc;      /* Source window  */  union {    void* p;            /* Some messages need more info ... */    int v;    GUI_COLOR Color;  } Data;} WM_MESSAGE;typedef void WM_CALLBACK( WM_MESSAGE* pMsg);typedef struct WM_OBJ_struct WM_Obj;struct WM_OBJ_struct {  GUI_RECT Rect;        /* outer dimensions of window */  GUI_RECT InvalidRect; /* invalid rectangle */  WM_CALLBACK* cb;      /* ptr to notification callback */  WM_HWIN hNextLin;     /* Next window in linear list */  WM_HWIN hParent, hFirstChild, hNext;  U16 Status;	          /* Some status flags */};/*************************************************************************              General control routines************************************************************************/

⌨️ 快捷键说明

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