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

📄 wm_intern.h

📁 基于嵌入式实时多任务操作系统ucos-ii的GUI的源码
💻 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 + -