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

📄 checkbox.h

📁 基于TI公司Cortex-M3的uart超级通信开发
💻 H
📖 第 1 页 / 共 2 页
字号:
//*****************************************************************************
//
// checkbox.h - Prototypes for the check box widget.
//
// Copyright (c) 2008-2009 Luminary Micro, Inc.  All rights reserved.
// Software License Agreement
// 
// Luminary Micro, Inc. (LMI) is supplying this software for use solely and
// exclusively on LMI's microcontroller products.
// 
// The software is owned by LMI and/or its suppliers, and is protected under
// applicable copyright laws.  All rights are reserved.  You may not combine
// this software with "viral" open-source software in order to form a larger
// program.  Any use in violation of the foregoing restrictions may subject
// the user to criminal sanctions under applicable laws, as well as to civil
// liability for the breach of the terms and conditions of this license.
// 
// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
// 
// This is part of revision 5228 of the Stellaris Graphics Library.
//
//*****************************************************************************

#ifndef __CHECKBOX_H__
#define __CHECKBOX_H__

//*****************************************************************************
//
//! \addtogroup checkbox_api
//! @{
//
//*****************************************************************************

//*****************************************************************************
//
// If building with a C++ compiler, make all of the definitions in this header
// have a C binding.
//
//*****************************************************************************
#ifdef __cplusplus
extern "C"
{
#endif

//*****************************************************************************
//
//! The structure that describes a check box widget.
//
//*****************************************************************************
typedef struct
{
    //
    //! The generic widget information.
    //
    tWidget sBase;

    //
    //! The style for this check box.  This is a set of flags defined by
    //! CB_STYLE_xxx.
    //
    unsigned short usStyle;

    //
    //! The size of the check box itself, not including the text and/or image
    //! that accompanies it (in other words, the size of the actual box that is
    //! checked or unchecked).
    //
    unsigned short usBoxSize;

    //
    //! The 24-bit RGB color used to fill this check box, if CB_STYLE_FILL is
    //! selected, and to use as the background color if CB_STYLE_TEXT_OPAQUE is
    //! selected.
    //
    unsigned long ulFillColor;

    //
    //! The 24-bit RGB color used to outline this check box, if
    //! CB_STYLE_OUTLINE is selected.
    //
    unsigned long ulOutlineColor;

    //
    //! The 24-bit RGB color used to draw text on this check box, if
    //! CB_STYLE_TEXT is selected.
    //
    unsigned long ulTextColor;

    //
    //! The font used to draw the check box text, if CB_STYLE_TEXT is selected.
    //
    const tFont *pFont;

    //
    //! A pointer to the text to draw on this check box, if CB_STYLE_TEXT is
    //! selected.
    //
    const char *pcText;

    //
    //! A pointer to the image to be drawn onto this check box, if CB_STYLE_IMG
    //! is selected.
    //
    const unsigned char *pucImage;

    //
    //! A pointer to the function to be called when the check box is pressed.
    //! This function is called when the state of the check box is changed.
    //
    void (*pfnOnChange)(tWidget *pWidget, unsigned long bSelected);
}
tCheckBoxWidget;

//*****************************************************************************
//
//! This flag indicates that the check box should be outlined.
//
//*****************************************************************************
#define CB_STYLE_OUTLINE        0x0001

//*****************************************************************************
//
//! This flag indicates that the check box should be filled.
//
//*****************************************************************************
#define CB_STYLE_FILL           0x0002

//*****************************************************************************
//
//! This flag indicates that the check box should have text drawn on it.
//
//*****************************************************************************
#define CB_STYLE_TEXT           0x0004

//*****************************************************************************
//
//! This flag indicates that the check box should have an image drawn on it.
//
//*****************************************************************************
#define CB_STYLE_IMG            0x0008

//*****************************************************************************
//
//! This flag indicates that the check box text should be drawn opaque (in
//! other words, drawing the background pixels as well as the foreground
//! pixels).
//
//*****************************************************************************
#define CB_STYLE_TEXT_OPAQUE    0x0010

//*****************************************************************************
//
//! This flag indicates that the check box is selected.
//
//*****************************************************************************
#define CB_STYLE_SELECTED       0x0020

//*****************************************************************************
//
//! Declares an initialized check box widget data structure.
//!
//! \param pParent is a pointer to the parent widget.
//! \param pNext is a pointer to the sibling widget.
//! \param pChild is a pointer to the first child widget.
//! \param pDisplay is a pointer to the display on which to draw the check box.
//! \param lX is the X coordinate of the upper left corner of the check box.
//! \param lY is the Y coordinate of the upper left corner of the check box.
//! \param lWidth is the width of the check box.
//! \param lHeight is the height of the check box.
//! \param usStyle is the style to be applied to this check box.
//! \param usBoxSize is the size of the box that is checked.
//! \param ulFillColor is the color used to fill in the check box.
//! \param ulOutlineColor is the color used to outline the check box.
//! \param ulTextColor is the color used to draw text on the check box.
//! \param pFont is a pointer to the font to be used to draw text on the check
//! box.
//! \param pcText is a pointer to the text to draw on this check box.
//! \param pucImage is a pointer to the image to draw on this check box.
//! \param pfnOnChange is a pointer to the function that is called when the
//! check box is pressed.
//!
//! This macro provides an initialized check box widget data structure, which
//! can be used to construct the widget tree at compile time in global
//! variables (as opposed to run-time via function calls).  This must be
//! assigned to a variable, such as:
//!
//! \verbatim
//!     tCheckBoxWidget g_sCheckBox = CheckBoxStruct(...);
//! \endverbatim
//!
//! Or, in an array of variables:
//!
//! \verbatim
//!     tCheckBoxWidget g_psCheckBoxes[] =
//!     {
//!         CheckBoxStruct(...),
//!         CheckBoxStruct(...)
//!     };
//! \endverbatim
//!
//! \e usStyle is the logical OR of the following:
//!
//! - \b #CB_STYLE_OUTLINE to indicate that the check box should be outlined.
//! - \b #CB_STYLE_FILL to indicate that the check box should be filled.
//! - \b #CB_STYLE_TEXT to indicate that the check box should have text drawn
//!   on it (using \e pFont and \e pcText).
//! - \b #CB_STYLE_IMG to indicate that the check box should have an image
//!   drawn on it (using \e pucImage).
//! - \b #CB_STYLE_TEXT_OPAQUE to indicate that the check box text should be
//!   drawn opaque (in other words, drawing the background pixels).
//! - \b #CB_STYLE_SELECTED to indicate that the check box is selected.
//!
//! \return Nothing; this is not a function.
//
//*****************************************************************************
#define CheckBoxStruct(pParent, pNext, pChild, pDisplay, lX, lY, lWidth,     \
                       lHeight, usStyle, usBoxSize, ulFillColor,             \
                       ulOutlineColor, ulTextColor, pFont, pcText, pucImage, \
                       pfnOnChange)                                          \
        {                                                                    \
            {                                                                \
                sizeof(tCheckBoxWidget),                                     \
                (tWidget *)(pParent),                                        \
                (tWidget *)(pNext),                                          \
                (tWidget *)(pChild),                                         \
                pDisplay,                                                    \
                {                                                            \
                    lX,                                                      \
                    lY,                                                      \
                    (lX) + (lWidth) - 1,                                     \
                    (lY) + (lHeight) - 1                                     \
                },                                                           \
                CheckBoxMsgProc                                              \
            },                                                               \
            usStyle,                                                         \
            usBoxSize,                                                       \
            ulFillColor,                                                     \
            ulOutlineColor,                                                  \
            ulTextColor,                                                     \
            pFont,                                                           \
            pcText,                                                          \
            pucImage,                                                        \
            pfnOnChange                                                      \
        }

//*****************************************************************************
//
//! Declares an initialized variable containing a check box widget data
//! structure.
//!
//! \param sName is the name of the variable to be declared.
//! \param pParent is a pointer to the parent widget.
//! \param pNext is a pointer to the sibling widget.
//! \param pChild is a pointer to the first child widget.
//! \param pDisplay is a pointer to the display on which to draw the check box.
//! \param lX is the X coordinate of the upper left corner of the check box.
//! \param lY is the Y coordinate of the upper left corner of the check box.
//! \param lWidth is the width of the check box.
//! \param lHeight is the height of the check box.
//! \param usStyle is the style to be applied to this check box.
//! \param usBoxSize is the size of the box that is checked.
//! \param ulFillColor is the color used to fill in the check box.
//! \param ulOutlineColor is the color used to outline the check box.
//! \param ulTextColor is the color used to draw text on the check box.
//! \param pFont is a pointer to the font to be used to draw text on the check
//! box.
//! \param pcText is a pointer to the text to draw on this check box.
//! \param pucImage is a pointer to the image to draw on this check box.
//! \param pfnOnChange is a pointer to the function that is called when the
//! check box is pressed.
//!
//! This macro provides an initialized check box widget data structure, which
//! can be used to construct the widget tree at compile time in global
//! variables (as opposed to run-time via function calls).
//!
//! \e usStyle is the logical OR of the following:
//!
//! - \b #CB_STYLE_OUTLINE to indicate that the check box should be outlined.
//! - \b #CB_STYLE_FILL to indicate that the check box should be filled.
//! - \b #CB_STYLE_TEXT to indicate that the check box should have text drawn
//!   on it (using \e pFont and \e pcText).
//! - \b #CB_STYLE_IMG to indicate that the check box should have an image
//!   drawn on it (using \e pucImage).
//! - \b #CB_STYLE_TEXT_OPAQUE to indicate that the check box text should be
//!   drawn opaque (in other words, drawing the background pixels).
//! - \b #CB_STYLE_SELECTED to indicate that the check box is selected.
//!
//! \return Nothing; this is not a function.
//
//*****************************************************************************
#define CheckBox(sName, pParent, pNext, pChild, pDisplay, lX, lY, lWidth,    \
                 lHeight, usStyle, usBoxSize, ulFillColor, ulOutlineColor,   \
                 ulTextColor, pFont, pcText, pucImage, pfnOnChange)          \
        tCheckBoxWidget sName =                                              \
            CheckBoxStruct(pParent, pNext, pChild, pDisplay, lX, lY, lWidth, \
                           lHeight, usStyle, usBoxSize, ulFillColor,         \
                           ulOutlineColor, ulTextColor, pFont, pcText,       \
                           pucImage, pfnOnChange)

//*****************************************************************************
//
//! Sets size of the box to be checked.
//!
//! \param pWidget is a pointer to the check box widget to modify.
//! \param usSize is the size of the box, in pixels.
//!
//! This function sets the size of the box that is drawn as part of the check
//! box.
//!
//! \return None.
//
//*****************************************************************************
#define CheckBoxBoxSizeSet(pWidget, usSize) \
        do                                  \
        {                                   \
            tCheckBoxWidget *pW = pWidget;  \
            pW->usBoxSize = usSize;         \
        }                                   \
        while(0)

//*****************************************************************************
//
//! Sets the function to call when this check box widget is toggled.
//!
//! \param pWidget is a pointer to the check box widget to modify.
//! \param pfnOnChg is a pointer to the function to call.
//!
//! This function sets the function to be called when this check box is
//! toggled.
//!
//! \return None.
//
//*****************************************************************************
#define CheckBoxCallbackSet(pWidget, pfnOnChg) \
        do                                     \
        {                                      \
            tCheckBoxWidget *pW = pWidget;     \
            pW->pfnOnChange = pfnOnChg;        \
        }                                      \
        while(0)

//*****************************************************************************
//
//! Sets the fill color of a check box widget.
//!
//! \param pWidget is a pointer to the check box widget to be modified.
//! \param ulColor is the 24-bit RGB color to use to fill the check box.
//!
//! This function changes the color used to fill the check box on the display.

⌨️ 快捷键说明

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