WM_GetWindowSize.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:3k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                uC/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : WM_GetWindowSize.c
  16. Purpose     : Implementation of WM_GetWindowSizeX,Y
  17. ----------------------------------------------------------------------
  18. */
  19. #include "WM_Intern.h"
  20. #if GUI_WINSUPPORT    /* If 0, WM will not generate any code */
  21. /*******************************************************************
  22. *
  23. *       Static routines
  24. *
  25. ********************************************************************
  26. */
  27. /*******************************************************************
  28. *
  29. *
  30.   When drawing, we have to start at the bottom window !
  31. */
  32. static WM_HWIN _GetDefaultWin(WM_HWIN hWin) {
  33.   if (!hWin)
  34.     hWin = WM_GetActiveWindow();
  35.   return hWin;
  36. }
  37. /*********************************************************************
  38. *
  39. *             Module internal routines
  40. *
  41. **********************************************************************
  42. */
  43. /*******************************************************************
  44. *
  45. *       WM__GetWindowSizeX
  46.   Return width of window in pixels
  47. */
  48. int WM__GetWindowSizeX(WM_Obj* pWin) {
  49.   return pWin->Rect.x1 - pWin->Rect.x0 +1;
  50. }
  51. /*******************************************************************
  52. *
  53. *       WM__GetWindowSizeY
  54.   Return height of window in pixels
  55. */
  56. int WM__GetWindowSizeY(WM_Obj* pWin) {
  57.   return pWin->Rect.y1 - pWin->Rect.y0 +1;
  58. }
  59. /*********************************************************************
  60. *
  61. *      Public API code
  62. *
  63. **********************************************************************
  64. */
  65. /*******************************************************************
  66. *
  67. *       WM_GetWindowSizeX
  68.   Return width of window in pixels
  69. */
  70. int WM_GetWindowSizeX(WM_HWIN hWin) {
  71.   int r;
  72.   WM_Obj* pWin;
  73.   WM_LOCK();
  74.   hWin = _GetDefaultWin(hWin);
  75.   pWin = WM_H2P(hWin);
  76.   r = WM__GetWindowSizeX(pWin);
  77.   WM_UNLOCK();
  78.   return r;
  79. }
  80. /*******************************************************************
  81. *
  82. *       WM_GetWindowSizeY
  83.   Return height of window in pixels
  84. */
  85. int WM_GetWindowSizeY(WM_HWIN hWin) {
  86.   int r;
  87.   WM_Obj* pWin;
  88.   WM_LOCK();
  89.   hWin = _GetDefaultWin(hWin);
  90.   pWin = WM_H2P(hWin);
  91.   r = WM__GetWindowSizeY(pWin);
  92.   WM_UNLOCK();
  93.   return r;
  94. }
  95. #else
  96. void WM_GetWindowSize_C(void) {} /* avoid empty object files */
  97. #endif /* WM_MAX_WINDOW */