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

📄 imgbutton.h

📁 基于TI公司Cortex-M3的uart超级通信开发
💻 H
📖 第 1 页 / 共 3 页
字号:
//*****************************************************************************
//
// imgbutton.h - Prototypes for the image button 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 __IMGBUTTON_H__
#define __IMGBUTTON_H__

//*****************************************************************************
//
//! \addtogroup imgbutton_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 image button widget.
//
//*****************************************************************************
typedef struct
{
    //
    //! The generic widget information.
    //
    tWidget sBase;

    //
    //! The style for this widget.  This is a set of flags defined by
    //! IB_STYLE_xxx.
    //
    unsigned long ulStyle;

    //
    //! The color to use for foreground pixels when a 1bpp image or text is in
    //! use.  This value is ignored for all other image bit depths.
    //
    unsigned long ulForegroundColor;

    //
    //! The color to use for background pixels when the button is pressed
    //! and a 1bpp image is in use.  This value is ignored for all other image
    //! bit depths.  If IB_STYLE_FILL is specified, this is also the color that
    //! will be used to fill the widget when it is in the pressed state.
    //
    unsigned long ulPressedColor;

    //
    //! The color to use for background pixels when the button is released
    //! and a 1bpp image is in use.  This value is ignored for all other image
    //! bit depths.  If IB_STYLE_FILL is specified, this is also the color that
    //! will be used to fill the widget when it is in the unpressed state.
    //
    unsigned long ulBackgroundColor;

    //
    //! A pointer to the font used to render the button text, if
    //! IB_STYLE_TEXT is selected.
    //
    const tFont *pFont;

    //
    //! A pointer to the text to draw on this push button, if IB_STYLE_TEXT is
    //! selected.
    //
    const char *pcText;

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

    //
    //! A pointer to the image to be drawn onto this image button when it is
    //! pressed.
    //
    const unsigned char *pucPressImage;

    //
    //! A pointer to the image to be drawn above the background image for
    //! the button.
    //
    const unsigned char *pucKeycapImage;

    //! The number of pixels to move the keycap image horizontally when the
    //! button is drawn in its pressed state.
    //
    short sXOffset;

    //
    //! The number of pixels to move the keycap image vertically when the
    //! button is drawn in its pressed state.
    //
    short sYOffset;

    //
    //! The number of pointer events to delay before starting to auto-repeat,
    //! if IB_STYLE_AUTO_REPEAT is selected.  The amount of time to which this
    //! corresponds is dependent upon the rate at which pointer events are
    //! generated by the pointer driver.
    //
    unsigned short usAutoRepeatDelay;

    //
    //! The number of pointer events between button presses generated by the
    //! auto-repeat function, if IB_STYLE_AUTO_REPEAT is selected.  The amount
    //! of time to which this corresponds is dependent up on the rate at which
    //! pointer events are generated by the pointer driver.
    //
    unsigned short usAutoRepeatRate;

    //
    //! The number of pointer events that have occurred.  This is used when
    //! IB_STYLE_AUTO_REPEAT is selected to generate the auto-repeat events.
    //
    unsigned long ulAutoRepeatCount;

    //
    //! A pointer to the function to be called when the button is pressed.
    //! This is repeatedly called when IB_STYLE_AUTO_REPEAT is selected.
    //
    void (*pfnOnClick)(tWidget *pWidget);
}
tImageButtonWidget;

//*****************************************************************************
//
//! This flag indicates that the image button should be filled.
//
//*****************************************************************************
#define IB_STYLE_FILL           0x00000002

//*****************************************************************************
//
//! This flag indicates that the image button should have text drawn on it.
//
//*****************************************************************************
#define IB_STYLE_TEXT           0x00000004

//*****************************************************************************
//
//! This flag indicates that the background image is to be disabled.
//
//*****************************************************************************
#define IB_STYLE_IMAGE_OFF      0x00000008

//*****************************************************************************
//
//! This flag indicates that the keycap image is to be disabled.
//
//*****************************************************************************
#define IB_STYLE_KEYCAP_OFF     0x00000010

//*****************************************************************************
//
//! This flag indicates that the image button should auto-repeat, generating
//! repeated click events while it is pressed.
//
//*****************************************************************************
#define IB_STYLE_AUTO_REPEAT    0x00000020

//*****************************************************************************
//
//! This flag indicates that the image button is pressed.
//
//*****************************************************************************
#define IB_STYLE_PRESSED        0x00000040

//*****************************************************************************
//
//! This flag indicates that the image button callback should be made when
//! the button is released rather than when it is pressed.  This does not
//! affect the operation of auto repeat buttons.
//
//*****************************************************************************
#define IB_STYLE_RELEASE_NOTIFY 0x00000080

//*****************************************************************************
//
//! Declares an initialized image button 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 push
//! button.
//! \param lX is the X coordinate of the upper left corner of the image button.
//! \param lY is the Y coordinate of the upper left corner of the image button.
//! \param lWidth is the width of the image button.
//! \param lHeight is the height of the image button.
//! \param ulStyle is the style to be applied to the image button.
//! \param ulForeColor is the color to be used for foreground pixels when
//! a 1bpp image or text is being drawn.  It is ignored for all other image bit
//! depths.
//! \param ulPressColor is the color to be used for foreground pixels when
//! the button is pressed and a 1bpp image is being drawn.  It is ignored for
//! all other image bit depths.
//! \param ulBackColor is the color to be used for background pixels when
//! the button is released and a 1bpp image is being drawn.  It is ignored for
//! all other image bit depths.
//! \param pFont is a pointer to the font to be used to draw text on the button.
//! \param pcText is a pointer to the text to draw on this button.
//! \param pucImage is a pointer to the image to draw on the background of
//! this image button when it is in the released state.
//! \param pucPressImage is a pointer to the image to draw on the background of
//! this image button when it is in the pressed state.
//! \param pucKeycapImage is a pointer to the image to draw as the keycap of the
//! on top of the image button, on top of the background image.
//! \param sXOff is the horizontal offset to apply when drawing the keycap image
//! on the button when in the pressed state.
//! \param sYOff is the vertical offset to apply when drawing the keycap image
//! on the button when in the pressed state.
//! \param usAutoRepeatDelay is the delay before starting auto-repeat.
//! \param usAutoRepeatRate is the rate at which auto-repeat events are
//! generated.
//! \param pfnOnClick is a pointer to the function that is called when the push
//! button is pressed.
//!
//! This macro provides an initialized image button 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
//!     tImageButtonWidget g_sImageButton = ImageButtonStruct(...);
//! \endverbatim
//!
//! Or, in an array of variables:
//!
//! \verbatim
//!     tImageButtonWidget g_psImageButtons[] =
//!     {
//!         ImageButtonStruct(...),
//!         ImageButtonStruct(...)
//!     };
//! \endverbatim
//!
//! \e ulStyle is the logical OR of the following:
//!
//! - \b #IB_STYLE_TEXT to indicate that text should be drawn on the button.
//! - \b #IB_STYLE_FILL to indicate that the background of the button should
//!   be filled with color.
//! - \b #IB_STYLE_KEYCAP_OFF to indicate that the keycap image should not be
//!   drawn.
//! - \b #IB_STYLE_IMAGE_OFF to indicate that the background image should not be
//!   drawn.
//! - \b #IB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used.
//! - \b #IB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made
//!   when the button is released.  If absent, the callback is called when the
//!   button is initially pressed.
//!
//! \return Nothing; this is not a function.
//
//*****************************************************************************
#define ImageButtonStruct(pParent, pNext, pChild, pDisplay, lX, lY,          \
                          lWidth, lHeight, ulStyle, ulForeColor,             \
                          ulPressColor, ulBackColor, pFont, pcText, pucImage,\
                          pucPressImage, pucKeycapImage, sXOff, sYOff,       \
                          usAutoRepeatDelay, usAutoRepeatRate, pfnOnClick)   \
        {                                                                    \
            {                                                                \
                sizeof(tImageButtonWidget),                                  \
                (tWidget *)(pParent),                                        \
                (tWidget *)(pNext),                                          \
                (tWidget *)(pChild),                                         \
                pDisplay,                                                    \
                {                                                            \
                    lX,                                                      \
                    lY,                                                      \
                    (lX) + (lWidth) - 1,                                     \

⌨️ 快捷键说明

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