?? imgbutton.h
字號(hào):
//*****************************************************************************
//
// imgbutton.h - Prototypes for the image button widget.
//
// Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved.
// Software License Agreement
//
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
//
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// 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. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
//
// This is part of revision 5821 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, \
(lY) + (lHeight) - 1 \
}, \
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -