📄 wm.h
字号:
struct WM_MESSAGE {
int MsgId; /* type of message */
WM_HWIN hWin; /* Destination window */
WM_HWIN hWinSrc; /* Source window */
union {
const void* p; /* Some messages need more info ... Pointer is declared "const" because some systems (M16C) have 4 byte const, byte 2 byte default ptrs */
int v;
GUI_COLOR Color;
} Data;
};
struct WM_Obj {
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;
WM_HWIN hFirstChild;
WM_HWIN hNext;
U16 Status; /* Some status flags */
};
struct WM_OBJ_X { /* For debugging only if a pointer-based memory management is used */
int Dummy;
struct WM_Obj Win;
};
typedef void WM_tfPollPID(void);
typedef void WM_tfForEach(WM_HWIN hWin, void * pData);
/*
**********************************************************************
*
* General control routines
*
**********************************************************************
*/
void WM_Activate (void);
void WM_Deactivate(void);
void WM_Init (void);
int WM_Exec (void); /* Execute all jobs ... Return 0 if nothing was done. */
int WM_Exec1 (void); /* Execute one job ... Return 0 if nothing was done. */
U16 WM_SetCreateFlags(U16 Flags);
WM_tfPollPID* WM_SetpfPollPID(WM_tfPollPID* pf);
void WM_SetCapture(WM_HWIN hObj, int AutoRelease);
void WM_SetCaptureMove(WM_HWIN hWin, const GUI_PID_STATE* pState, int MinVisibility, int LimitTop); /* Not yet documented */
void WM_ReleaseCapture(void);
/*********************************************************************
*
* Window manager interface
*
**********************************************************************
*/
void WM_AttachWindow (WM_HWIN hWin, WM_HWIN hParent);
void WM_AttachWindowAt (WM_HWIN hWin, WM_HWIN hParent, int x, int y);
int WM_CheckScrollPos (WM_SCROLL_STATE* pScrollState, int Pos, int LowerDist, int UpperDist); /* not to be documented (may change in future version) */
void WM_ClrHasTrans (WM_HWIN hWin);
WM_HWIN WM_CreateWindow (int x0, int y0, int xSize, int ySize, U16 Style, WM_CALLBACK* cb, int NumExtraBytes);
WM_HWIN WM_CreateWindowAsChild (int x0, int y0, int xSize, int ySize, WM_HWIN hWinParent, U16 Style, WM_CALLBACK* cb, int NumExtraBytes);
void WM_DeleteWindow (WM_HWIN hWin);
void WM_DetachWindow (WM_HWIN hWin);
int WM_GetHasTrans (WM_HWIN hWin);
WM_HWIN WM_GetFocussedWindow (void);
void WM_HideWindow (WM_HWIN hWin);
void WM_InvalidateArea (const GUI_RECT* pRect);
void WM_InvalidateRect (WM_HWIN hWin, const GUI_RECT*pRect);
void WM_InvalidateWindow (WM_HWIN hWin);
void WM_InvalidateWindowAndDescsEx(WM_HWIN hWin, const GUI_RECT * pInvalidRect);
void WM_InvalidateWindowAndDescs (WM_HWIN hWin); /* not to be documented (may change in future version) */
int WM_IsEnabled (WM_HWIN hObj);
int WM_IsFocussable (WM_HWIN hWin);
int WM_IsVisible (WM_HWIN hWin);
int WM_IsWindow (WM_HWIN hWin); /* Check validity */
char WM_IsCompletelyVisible (WM_HWIN hWin); /* Is the window completely visible ? */
void WM_SetHasTrans (WM_HWIN hWin);
void WM_SetId (WM_HWIN hObj, int Id);
void WM_SetTransState (WM_HWIN hWin, unsigned State);
void WM_ShowWindow (WM_HWIN hWin);
void WM_ValidateRect (WM_HWIN hWin, const GUI_RECT*pRect);
void WM_ValidateWindow (WM_HWIN hWin);
int WM_GetInvalidRect (WM_HWIN hWin, GUI_RECT * pRect);
void WM_SetStayOnTop (WM_HWIN hWin, int OnOff);
int WM_GetStayOnTop (WM_HWIN hWin);
void WM_SetAnchor (WM_HWIN hWin, U16 AnchorFlags);
/* Move/resize windows */
void WM_MoveWindow (WM_HWIN hWin, int dx, int dy);
void WM_ResizeWindow (WM_HWIN hWin, int dx, int dy);
void WM_MoveTo (WM_HWIN hWin, int x, int y);
void WM_MoveChildTo (WM_HWIN hWin, int x, int y);
void WM_SetSize (WM_HWIN hWin, int XSize, int YSize);
void WM_SetWindowPos (WM_HWIN hWin, int xPos, int yPos, int xSize, int ySize);
int WM_SetXSize (WM_HWIN hWin, int xSize);
int WM_SetYSize (WM_HWIN hWin, int ySize);
int WM_CreateTimer (WM_HWIN hWin, int UserID, int Period, int Mode); /* not to be documented (may change in future version) */
void WM_DeleteTimer (WM_HWIN hWin, int UserId); /* not to be documented (may change in future version) */
int WM_SetScrollbarH (WM_HWIN hWin, int OnOff); /* not to be documented (may change in future version) */
int WM_SetScrollbarV (WM_HWIN hWin, int OnOff); /* not to be documented (may change in future version) */
/* Diagnostics */
int WM_GetNumWindows(void);
int WM_GetNumInvalidWindows(void);
/* Scroll state related functions */
void WM_CheckScrollBounds(WM_SCROLL_STATE* pScrollState); /* not to be documented (may change in future version) */
int WM_GetScrollPosH (WM_HWIN hWin);
int WM_GetScrollPosV (WM_HWIN hWin);
void WM_SetScrollPosH (WM_HWIN hWin, unsigned ScrollPos);
void WM_SetScrollPosV (WM_HWIN hWin, unsigned ScrollPos);
int WM_SetScrollValue (WM_SCROLL_STATE* pScrollState, int v); /* not to be documented (may change in future version) */
/* Get / Set (new) callback function */
WM_CALLBACK * WM_SetCallback(WM_HWIN hWin, WM_CALLBACK * cb);
WM_CALLBACK * WM_GetCallback(WM_HWIN hWin);
/* Get size/origin of a window */
void WM_GetClientRect (GUI_RECT* pRect);
void WM_GetClientRectEx (WM_HWIN hWin, GUI_RECT* pRect);
void WM_GetInsideRect (GUI_RECT* pRect);
void WM_GetInsideRectEx (WM_HWIN hWin, GUI_RECT* pRect);
void WM_GetInsideRectExScrollbar (WM_HWIN hWin, GUI_RECT* pRect); /* not to be documented (may change in future version) */
void WM_GetWindowRect (GUI_RECT* pRect);
void WM_GetWindowRectEx (WM_HWIN hWin, GUI_RECT* pRect);
int WM_GetOrgX (void);
int WM_GetOrgY (void);
int WM_GetWindowOrgX (WM_HWIN hWin);
int WM_GetWindowOrgY (WM_HWIN hWin);
int WM_GetWindowSizeX (WM_HWIN hWin);
int WM_GetWindowSizeY (WM_HWIN hWin);
WM_HWIN WM_GetFirstChild (WM_HWIN hWin);
WM_HWIN WM_GetNextSibling (WM_HWIN hWin);
WM_HWIN WM_GetParent (WM_HWIN hWin);
WM_HWIN WM_GetPrevSibling (WM_HWIN hWin);
int WM_GetId (WM_HWIN hWin);
WM_HWIN WM_GetScrollbarV (WM_HWIN hWin);
WM_HWIN WM_GetScrollbarH (WM_HWIN hWin);
WM_HWIN WM_GetScrollPartner (WM_HWIN hWin);
WM_HWIN WM_GetClientWindow (WM_HWIN hObj);
GUI_COLOR WM_GetBkColor (WM_HWIN hObj);
/* Change Z-Order of windows */
void WM_BringToBottom(WM_HWIN hWin);
void WM_BringToTop(WM_HWIN hWin);
GUI_COLOR WM_SetDesktopColor(GUI_COLOR Color);
GUI_COLOR WM_SetDesktopColorEx(GUI_COLOR Color, unsigned int LayerIndex);
void WM_SetDesktopColors(GUI_COLOR Color);
/* Select window used for drawing operations */
WM_HWIN WM_SelectWindow (WM_HWIN hWin);
WM_HWIN WM_GetActiveWindow (void);
void WM_Paint (WM_HWIN hObj);
void WM_Update (WM_HWIN hWin);
void WM_PaintWindowAndDescs (WM_HWIN hWin);
void WM_UpdateWindowAndDescs (WM_HWIN hWin);
/* Get foreground/background windows */
WM_HWIN WM_GetDesktopWindow (void);
WM_HWIN WM_GetDesktopWindowEx (unsigned int LayerIndex);
/* Reduce clipping area of a window */
const GUI_RECT* WM_SetUserClipRect(const GUI_RECT* pRect);
void WM_SetDefault (void);
/* Use of memory devices */
void WM_EnableMemdev (WM_HWIN hWin);
void WM_DisableMemdev (WM_HWIN hWin);
int WM_OnKey(int Key, int Pressed);
void WM_MakeModal(WM_HWIN hWin);
/******************************************************************
*
* Message related funcions
*
*******************************************************************
Please note that some of these functions do not yet show up in the
documentation, as they should not be required by application program.
*/
void WM_NotifyParent (WM_HWIN hWin, int Notification);
void WM_SendMessage (WM_HWIN hWin, WM_MESSAGE* p);
void WM_SendMessageNoPara (WM_HWIN hWin, int MsgId); /* not to be documented (may change in future versionumented */
void WM_DefaultProc (WM_MESSAGE* pMsg);
int WM_BroadcastMessage (WM_MESSAGE* pMsg);
void WM_SetScrollState (WM_HWIN hWin, const WM_SCROLL_STATE* pState);
void WM_SetEnableState (WM_HWIN hItem, int State);
void WM_SendToParent (WM_HWIN hWin, WM_MESSAGE* pMsg);
int WM_HasCaptured (WM_HWIN hWin);
int WM_HasFocus (WM_HWIN hWin);
int WM_SetFocus (WM_HWIN hWin);
WM_HWIN WM_SetFocusOnNextChild (WM_HWIN hParent); /* Set the focus to the next child */
WM_HWIN WM_SetFocusOnPrevChild (WM_HWIN hParent); /* Set the focus to the previous child */
WM_HWIN WM_GetDialogItem (WM_HWIN hWin, int Id);
void WM_EnableWindow (WM_HWIN hWin);
void WM_DisableWindow (WM_HWIN hWin);
void WM_GetScrollState (WM_HWIN hObj, WM_SCROLL_STATE* pScrollState);
int WM_GetUserData (WM_HWIN hWin, void* pDest, int SizeOfBuffer);
int WM_SetUserData (WM_HWIN hWin, const void* pSrc, int SizeOfBuffer);
/*********************************************************************
*
* Misc routines
*/
int WM_HandlePID (void);
WM_HWIN WM_Screen2hWin (int x, int y);
WM_HWIN WM_Screen2hWinEx (WM_HWIN hStop, int x, int y);
void WM_ForEachDesc (WM_HWIN hWin, WM_tfForEach * pcb, void * pData);
void WM_SetScreenSize (int xSize, int ySize);
int WM_PollSimMsg (void);
/*********************************************************************
*
* Diagnostics routines
*/
#if (WM_SUPPORT_DIAG)
void WM_DIAG_EnableInvalidationColoring(int OnOff);
#endif
/*
*************************************************
* *
* Macros for compatibility with older versions *
* *
*************************************************
*/
#if WM_COMPATIBLE_MODE
#define HBWIN WM_HWIN
#define HBWIN_NULL WM_HWIN_NULL
#define WM_HideWin WM_HideWindow
#define WM_ShowWin WM_ShowWindow
#define WM_GetKey GUI_GetKey
#define WM_WaitKey GUI_WaitKey
#define WM_ExecIdle WM_Exec
#define WM_ExecIdle1 WM_Exec1
#define WM_Invalidate WM_InvalidateWindow
#define WM_GetWinRect WM_GetWindowRect
#define WM_GetWinOrgX WM_GetWindowOrgX
#define WM_GetWinOrgY WM_GetWindowOrgY
#define WM_GetWinSizeX WM_GetWindowSizeX
#define WM_GetWinSizeY WM_GetWindowSizeY
#define WM_GetXSize WM_GetWindowSizeX
#define WM_GetYSize WM_GetWindowSizeY
#define WM_SelWin WM_SelectWindow
#define WM_GetBackgroundWindow WM_GetDesktopWindow
#define WM_GetForegroundWindow 0
#define WM_SetForegroundWindow WM_BringToTop
#define WM_SetUserClipArea WM_SetUserClipRect
#define WM_Start()
#define WM_Stop()
#define WM_SetBkWindowColor(Color) WM_SetDesktopColor(Color)
#endif
#endif /* GUI_WINSUPPORT */
#if defined(__cplusplus)
}
#endif
#endif /* WM_H */
/*************************** End of file ****************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -