📄 wm_intern.h
字号:
/*
*********************************************************************************************************
* 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_Intern.h
Purpose : Windows manager internal include
----------------------------------------------------------------------
*/
#ifndef WM_INTERN_H /* Make sure we only include it once */
#define WM_INTERN_H /* Make sure we only include it once */
#include "WM.h"
#include "GUI_Protected.h" /* For GUI_Context */
#if GUI_WINSUPPORT
typedef void WM_DELETE_WINDOW_HOOK( WM_HWIN hWin);
extern WM_DELETE_WINDOW_HOOK* WM__pfDeleteWindowHook;
extern U16 WM__CreateFlags;
extern WM_HWIN WM__hCapture;
extern WM_HWIN WM__hWinFocus;
extern char WM__CaptureReleaseAuto;
extern WM_tfPollPID* WM_pfPollPID;
#if WM_SUPPORT_TRANSPARENCY
extern int WM__TransWindowCnt;
extern WM_HWIN WM__hATransWindow;
#endif
/*
*************************************************************
* *
* Module internals *
* *
*************************************************************
The following datastructure(s) and routines are mentioned in the
documentation and not explained at this point here in any detail,
as they are just needed internally to iterate in drawing routines
in order over all invalid rectangles.
*/
void WM__Client2Screen (const WM_Obj* pWin, GUI_RECT *pRect);
void WM__GetClientRectWin(const WM_Obj* pWin, GUI_RECT* pRect);
WM_HWIN WM__GetFocussedChild(WM_HWIN hWin);
int WM__GetHasFocus (WM_HWIN hWin);
WM_HWIN WM__GetLastSibling (WM_HWIN hWin);
WM_HWIN WM__GetPrevSibling (WM_HWIN hWin);
int WM__GetWindowSizeX (const WM_Obj* pWin);
int WM__GetWindowSizeY (const WM_Obj* pWin);
void WM__InvalidateAreaBelow(const GUI_RECT* pRect, WM_HWIN StopWin);
void WM__InvalidateTransAreaAbove(const GUI_RECT* pRect, WM_HWIN StopWin);
int WM__IntersectRect(GUI_RECT* pDest, const GUI_RECT* pr0, const GUI_RECT* pr1);
int WM__IsWindow(WM_HWIN hWin);
int WM__IsInWindow(WM_Obj * pWin, int x, int y);
int WM__IsChild(WM_HWIN hWin, WM_HWIN hParent);
void WM__LeaveIVRSearch(void);
void WM__MoveTo(WM_HWIN hWin, int x, int y);
void WM__MoveBWin(WM_Obj* pWin, int dx, int dy);
void WM__MoveWindow(WM_HWIN hWin, int dx, int dy);
int WM__RectIsNZ(const GUI_RECT* pr);
void WM__RemoveFromLinList(WM_HWIN hWin);
void WM__Screen2Client(const WM_Obj* pWin, GUI_RECT *pRect);
void WM__SendMsgNoData(WM_HWIN hWin, U8 MsgId);
void WM__SendMessage(WM_HWIN hWin, WM_MESSAGE* pm);
void WM__SendMessageNoPara(WM_HWIN hWin, int MsgId);
WM_HWIN WM__GetFirstSibling(WM_HWIN hWin);
void WM__AttachWindow(WM_HWIN hChild, WM_HWIN hParent);
void WM__DetachWindow(WM_HWIN hChild);
U16 WM_GetFlags(WM_HWIN hWin);
/*********************************************************************
*
* Internal types and declarations
*
**********************************************************************
The following could be placed in a file of its own as it is not
used outside of the window manager
*/
/* Basic Windows status flags.
For module-internally use only !
*/
#define WM_SF_HASTRANS (1<<0)
#define WM_SF_INVALID (1<<1)
#define WM_SF_MEMDEV (1<<3)
#define WM_SF_STAYONTOP WM_CF_STAYONTOP
#define WM_SF_RIGHTANKER WM_CF_RIGHTANKER
#define WM_SF_BOTTOMANKER WM_CF_BOTTOMANKER
#define WM_SF_ISVIS (1<<7) /* Is visible flag */
#define WM_HANDLE2PTR(hWin) ((WM_Obj*)GUI_ALLOC_h2p(hWin)) /* older form ... to be eliminated */
#define WM_H2P(hWin) ((WM_Obj*)GUI_ALLOC_h2p(hWin))
/*
*****************************************************************
*
* WM_ module internal data
*
*****************************************************************
*/
#ifdef WM_C
#define EXTERN
#else
#define EXTERN extern
#endif
EXTERN U16 WM__NumWindows;
EXTERN U16 WM__NumInvalidWindows;
EXTERN WM_HWIN WM__FirstWin;
#undef EXTERN
#endif /* GUI_WINSUPPORT */
#endif /* WM_INTERN_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -