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

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        : WIDGET.h
  16. Purpose     : emWin widget
  17. ---------------------------END-OF-HEADER------------------------------
  18. */
  19. #ifndef WIDGET_H        /* Avoid multiple inclusion  */
  20. #define WIDGET_H
  21. #include "WM.H"
  22. #if GUI_WINSUPPORT
  23. #include "SCROLLBAR.H"
  24. /*********************************************************************
  25. *
  26. *           defines
  27. *
  28. **********************************************************************
  29. */
  30. /*********************************************************************
  31. *
  32. *       States
  33. */
  34. #define WIDGET_STATE_FOCUS              (1<<0)
  35. #define WIDGET_STATE_CHILD_HAS_FOCUS    (1<<1)
  36. #define WIDGET_STATE_ENABLED            (1<<2)
  37. #define WIDGET_STATE_VERTICAL           (1<<3)
  38. #define WIDGET_STATE_FOCUSSABLE         (1<<4)
  39. #define WIDGET_STATE_USER0              (1<<8)    /* Freely available for derived widget */
  40. #define WIDGET_STATE_USER1              (1<<9)    /* Freely available for derived widget */
  41. #define WIDGET_STATE_USER2              (1<<10)   /* Freely available for derived widget */
  42. /*********************************************************************
  43. *
  44. *       Create flags
  45. */
  46. #define WIDGET_CF_VERTICAL     WIDGET_STATE_VERTICAL
  47. /*********************************************************************
  48. *
  49. *           typedefs
  50. *
  51. **********************************************************************
  52. */
  53. typedef struct {
  54.   void  (*pfDrawUp)(void);
  55.   void  (*pfDrawDown)(void);
  56.   void  (*pfDrawUpRect)  (const GUI_RECT *pRect);
  57.   void  (*pfDrawDownRect)(const GUI_RECT *pRect);
  58.   void  (*pfGetRect)(GUI_RECT *pRect);
  59.   int EffectSize;
  60. } WIDGET_EFFECT;
  61. typedef struct {
  62.   WM_Obj      Win;
  63.   const WIDGET_EFFECT* pEffect;
  64.   I16 Id;
  65.   U16 State;
  66. } WIDGET;
  67. /*********************************************************************
  68. *
  69. *           Global data
  70. *
  71. **********************************************************************
  72. */
  73. extern const WIDGET_EFFECT WIDGET_Effect_3D;
  74. extern const WIDGET_EFFECT WIDGET_Effect_None;
  75. extern const WIDGET_EFFECT WIDGET_Effect_Simple;
  76. /*********************************************************************
  77. *
  78. *           Internal API routines
  79. *
  80. **********************************************************************
  81. */
  82. GUI_COLOR WIDGET__GetBkColor(WM_HWIN hObj);
  83. void      WIDGET__GetClientRect(WIDGET* pWidget, GUI_RECT* pRect);
  84. void      WIDGET__GetInsideRect(WIDGET* pWidget, GUI_RECT* pRect);
  85. void      WIDGET__EFFECT_DrawDownRect(WIDGET* pWidget, GUI_RECT* pRect);
  86. void      WIDGET__EFFECT_DrawDown(WIDGET* pWidget);
  87. void      WIDGET__EFFECT_DrawUpRect(WIDGET* pWidget, GUI_RECT* pRect);
  88. void      WIDGET__Init(WIDGET* pWidget, U16 State);
  89. int       WIDGET__IsEnabled(WIDGET* pObj);
  90. void      WIDGET__DrawFocusRect(WIDGET* pWidget, const GUI_RECT* pRect, int Dist);
  91. void      WIDGET__DrawVLine(WIDGET* pWidget, int x, int y0, int y1);
  92. void      WIDGET__FillRectEx(WIDGET* pWidget, const GUI_RECT* pRect);
  93. int       WIDGET__GetWindowSizeX(WM_HWIN hWin);
  94. int       WIDGET__GetXSize(const WIDGET* pWidget);
  95. int       WIDGET__GetYSize(const WIDGET* pWidget);
  96. void      WIDGET__SetScrollState(WM_HWIN hWin, const WM_SCROLL_STATE* pVState, const WM_SCROLL_STATE* pState);
  97. /*********************************************************************
  98. *
  99. *           API routines
  100. *
  101. **********************************************************************
  102. */
  103. void WIDGET_SetState      (WM_HWIN hObj, int State);
  104. void WIDGET_AndState      (WM_HWIN hObj, int State);
  105. void WIDGET_OrState       (WM_HWIN hObj, int State);
  106. void WIDGET_Enable        (WM_HWIN hObj);
  107. void WIDGET_Disable       (WM_HWIN hObj);
  108. int  WIDGET_HandleActive  (WM_HWIN hObj, WM_MESSAGE* pMsg);
  109. void WIDGET_EFFECT_3D_DrawUp(void);
  110. void WIDGET_EFFECT_3D_DrawDown(void);
  111. void WIDGET_EFFECT_3D_DrawDownRect(const GUI_RECT* pRect);
  112. void WIDGET_SetDefaultEffect(const WIDGET_EFFECT* pEffect);
  113. void WIDGET_SetDefaultEffect_None(void);
  114. void WIDGET_SetDefaultEffect_3D(void);
  115. void WIDGET_SetDefaultEffect_Simple(void);
  116. #endif /* GUI_WINSUPPORT */
  117. #endif   /* SLIDER_H */