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

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        : BUTTON.c
  16. Purpose     : emWin GSC button widget
  17. ---------------------------END-OF-HEADER------------------------------
  18. */
  19. #include <stdlib.h>
  20. #include <string.h>
  21. #include "WIDGET.h"
  22. #include "GUIDebug.h"
  23. #include "GUI.h"
  24. #include "GUI_Protected.h"
  25. #include "WM_Intern.h"
  26. #if GUI_WINSUPPORT
  27. /*********************************************************************
  28. *
  29. *       Private config defaults
  30. *
  31. **********************************************************************
  32. */
  33. /*********************************************************************
  34. *
  35. *       Object definition
  36. *
  37. **********************************************************************
  38. */
  39. /*********************************************************************
  40. *
  41. *       Static data
  42. *
  43. **********************************************************************
  44. */
  45. /*********************************************************************
  46. *
  47. *       Macros for internal use
  48. *
  49. **********************************************************************
  50. */
  51. #define WIDGET_H2P(hWin)        ((WIDGET*)WM_HMEM2Ptr(hWin))
  52. /*********************************************************************
  53. *
  54. *       Static routines
  55. *
  56. **********************************************************************
  57. */
  58. /*********************************************************************
  59. *
  60. *       Public routines
  61. *
  62. **********************************************************************
  63. */
  64. /*********************************************************************
  65. *
  66. *       WIDGET_DrawSimpleFrame
  67. */
  68. void WIDGET_EFFECT_Simple_DrawUpRect(const GUI_RECT* pRect) {
  69.   GUI_CONTEXT Context;
  70.   GUI_SaveContext(&Context);
  71.   GUI_SetColor(GUI_BLACK);
  72.   GUI_DrawRect(pRect->x0, pRect->y0, pRect->x1, pRect->y1);          /* Draw rectangle around it */
  73.   GUI_RestoreContext(&Context);
  74. }
  75. /*********************************************************************
  76. *
  77. *       WIDGET_EFFECT_Simple_DrawUp
  78. */
  79. void WIDGET_EFFECT_Simple_DrawUp(void) {
  80.   GUI_RECT r;
  81.   WM_GetClientRect(&r);
  82.   WIDGET_EFFECT_Simple_DrawUpRect(&r);
  83. }
  84. /*********************************************************************
  85. *
  86. *       WIDGET_EFFECT_Simple_DrawDown
  87. */
  88. void WIDGET_EFFECT_Simple_DrawDownRect(const GUI_RECT* pRect) {
  89.   GUI_CONTEXT Context;
  90.   GUI_SaveContext(&Context);
  91.   GUI_SetColor(GUI_BLACK);
  92.   GUI_DrawRect(pRect->x0, pRect->y0, pRect->x1, pRect->y1);          /* Draw rectangle around it */
  93.   GUI_RestoreContext(&Context);
  94. }
  95. void WIDGET_EFFECT_Simple_DrawDown(void) {
  96.   GUI_RECT r;
  97.   WM_GetClientRect(&r);
  98.   WIDGET_EFFECT_Simple_DrawDownRect(&r);
  99. }
  100. /*********************************************************************
  101. *
  102. *       WIDGET_EFFECT_Simple_GetRect
  103. */
  104. void WIDGET_EFFECT_Simple_GetRect(GUI_RECT* pRect) {
  105.   WM_GetClientRect(pRect);
  106.   GUI__ReduceRect(pRect, pRect, 1);
  107. }
  108. /*********************************************************************
  109. *
  110. *       Effect tables --- Mainly function pointers
  111. *
  112. **********************************************************************
  113. */
  114. const WIDGET_EFFECT WIDGET_Effect_Simple = {
  115.   WIDGET_EFFECT_Simple_DrawUp, WIDGET_EFFECT_Simple_DrawDown,
  116.   WIDGET_EFFECT_Simple_DrawUpRect, WIDGET_EFFECT_Simple_DrawDownRect,
  117.   WIDGET_EFFECT_Simple_GetRect, 1
  118. };
  119. void WIDGET_SetDefaultEffect_Simple(void) {
  120.   WIDGET_SetDefaultEffect(&WIDGET_Effect_Simple);
  121. }
  122. #else                            /* Avoid problems with empty object modules */
  123.   void WIDGET_Simple_C(void) {}
  124. #endif /* GUI_WINSUPPORT */