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

📄 widget.h

📁 ucGUI 入门例子,可以在VC++6.0平台下模拟ucGUI,让你在没有硬件基础上学习ucGUI .
💻 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        : WIDGET.h
Purpose     : emWin widget
---------------------------END-OF-HEADER------------------------------
*/

#ifndef WIDGET_H        /* Avoid multiple inclusion  */
#define WIDGET_H

#include "WM.h"

#if GUI_WINSUPPORT
#include "SCROLLBAR.h"

/*********************************************************************
*
*           defines
*
**********************************************************************
*/


/*********************************************************************
*
*       States
*/

#define WIDGET_STATE_FOCUS              (1<<0)
#define WIDGET_STATE_CHILD_HAS_FOCUS    (1<<1)
#define WIDGET_STATE_ENABLED            (1<<2)
#define WIDGET_STATE_VERTICAL           (1<<3)
#define WIDGET_STATE_FOCUSSABLE         (1<<4)

#define WIDGET_STATE_USER0              (1<<8)    /* Freely available for derived widget */
#define WIDGET_STATE_USER1              (1<<9)    /* Freely available for derived widget */
#define WIDGET_STATE_USER2              (1<<10)   /* Freely available for derived widget */

/*********************************************************************
*
*       Create flags
*/
#define WIDGET_CF_VERTICAL     WIDGET_STATE_VERTICAL



/*********************************************************************
*
*           typedefs
*
**********************************************************************
*/

typedef struct {
  void  (*pfDrawUp)(void);
  void  (*pfDrawDown)(void);
  void  (*pfDrawUpRect)  (const GUI_RECT *pRect);
  void  (*pfDrawDownRect)(const GUI_RECT *pRect);
  void  (*pfGetRect)(GUI_RECT *pRect);
  int EffectSize;
} WIDGET_EFFECT;

typedef struct {
  WM_Obj      Win;
  const WIDGET_EFFECT* pEffect;
  I16 Id;
  U16 State;
} WIDGET;

/*********************************************************************
*
*           Global data
*
**********************************************************************
*/
extern const WIDGET_EFFECT WIDGET_Effect_3D;
extern const WIDGET_EFFECT WIDGET_Effect_None;
extern const WIDGET_EFFECT WIDGET_Effect_Simple;

/*********************************************************************
*
*           Internal API routines
*
**********************************************************************
*/

GUI_COLOR WIDGET__GetBkColor(WM_HWIN hObj);
void      WIDGET__GetClientRect(WIDGET* pWidget, GUI_RECT* pRect);
void      WIDGET__GetInsideRect(WIDGET* pWidget, GUI_RECT* pRect);
void      WIDGET__EFFECT_DrawDownRect(WIDGET* pWidget, GUI_RECT* pRect);
void      WIDGET__EFFECT_DrawDown(WIDGET* pWidget);
void      WIDGET__EFFECT_DrawUpRect(WIDGET* pWidget, GUI_RECT* pRect);
void      WIDGET__Init(WIDGET* pWidget, U16 State);
int       WIDGET__IsEnabled(WIDGET* pObj);
void      WIDGET__DrawFocusRect(WIDGET* pWidget, const GUI_RECT* pRect, int Dist);
void      WIDGET__DrawVLine(WIDGET* pWidget, int x, int y0, int y1);
void      WIDGET__FillRectEx(WIDGET* pWidget, const GUI_RECT* pRect);
int       WIDGET__GetWindowSizeX(WM_HWIN hWin);
int       WIDGET__GetXSize(const WIDGET* pWidget);
int       WIDGET__GetYSize(const WIDGET* pWidget);
void      WIDGET__SetScrollState(WM_HWIN hWin, const WM_SCROLL_STATE* pVState, const WM_SCROLL_STATE* pState);

/*********************************************************************
*
*           API routines
*
**********************************************************************
*/
void WIDGET_SetState      (WM_HWIN hObj, int State);
void WIDGET_AndState      (WM_HWIN hObj, int State);
void WIDGET_OrState       (WM_HWIN hObj, int State);
void WIDGET_Enable        (WM_HWIN hObj);
void WIDGET_Disable       (WM_HWIN hObj);
int  WIDGET_HandleActive  (WM_HWIN hObj, WM_MESSAGE* pMsg);

void WIDGET_EFFECT_3D_DrawUp(void);
void WIDGET_EFFECT_3D_DrawDown(void);
void WIDGET_EFFECT_3D_DrawDownRect(const GUI_RECT* pRect);




void WIDGET_SetDefaultEffect(const WIDGET_EFFECT* pEffect);
void WIDGET_SetDefaultEffect_None(void);
void WIDGET_SetDefaultEffect_3D(void);
void WIDGET_SetDefaultEffect_Simple(void);

#endif /* GUI_WINSUPPORT */
#endif   /* SLIDER_H */




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -