📄 pushbutton.h
字号:
//*****************************************************************************
//
// pushbutton.h - Prototypes for the push buttons.
//
// 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 __PUSHBUTTON_H__
#define __PUSHBUTTON_H__
//*****************************************************************************
//
//! \addtogroup pushbutton_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 push button widget.
//
//*****************************************************************************
typedef struct
{
//
//! The generic widget information.
//
tWidget sBase;
//
//! The style for this widget. This is a set of flags defined by
//! PB_STYLE_xxx.
//
unsigned long ulStyle;
//
//! The 24-bit RGB color used to fill this push button, if PB_STYLE_FILL is
//! selected, and to use as the background color if PB_STYLE_TEXT_OPAQUE is
//! selected.
//
unsigned long ulFillColor;
//
//! The 24-bit RGB color used to fill this push button when it is pressed,
//! if PB_STYLE_FILL is selected, and to use as the background color if
//! PB_STYLE_TEXT_OPAQUE is selected.
//
unsigned long ulPressFillColor;
//
//! The 24-bit RGB color used to outline this push button, if
//! PB_STYLE_OUTLINE is selected.
//
unsigned long ulOutlineColor;
//
//! The 24-bit RGB color used to draw text on this push button, if
//! PB_STYLE_TEXT is selected.
//
unsigned long ulTextColor;
//
//! A pointer to the font used to render the push button text, if
//! PB_STYLE_TEXT is selected.
//
const tFont *pFont;
//
//! A pointer to the text to draw on this push button, if PB_STYLE_TEXT is
//! selected.
//
const char *pcText;
//
//! A pointer to the image to be drawn onto this push button, if
//! PB_STYLE_IMG is selected.
//
const unsigned char *pucImage;
//
//! A pointer to the image to be drawn onto this push button when it is
//! pressed, if PB_STYLE_IMG is selected.
//
const unsigned char *pucPressImage;
//
//! The number of pointer events to delay before starting to auto-repeat,
//! if PB_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 PB_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
//! PB_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 PB_STYLE_AUTO_REPEAT is selected.
//
void (*pfnOnClick)(tWidget *pWidget);
}
tPushButtonWidget;
//*****************************************************************************
//
//! This flag indicates that the push button should be outlined.
//
//*****************************************************************************
#define PB_STYLE_OUTLINE 0x00000001
//*****************************************************************************
//
//! This flag indicates that the push button should be filled.
//
//*****************************************************************************
#define PB_STYLE_FILL 0x00000002
//*****************************************************************************
//
//! This flag indicates that the push button should have text drawn on it.
//
//*****************************************************************************
#define PB_STYLE_TEXT 0x00000004
//*****************************************************************************
//
//! This flag indicates that the push button should have an image drawn on it.
//
//*****************************************************************************
#define PB_STYLE_IMG 0x00000008
//*****************************************************************************
//
//! This flag indicates that the push button text should be drawn opaque (in
//! other words, drawing the background pixels as well as the foreground
//! pixels).
//
//*****************************************************************************
#define PB_STYLE_TEXT_OPAQUE 0x00000010
//*****************************************************************************
//
//! This flag indicates that the push button should auto-repeat, generating
//! repeated click events while it is pressed.
//
//*****************************************************************************
#define PB_STYLE_AUTO_REPEAT 0x00000020
//*****************************************************************************
//
//! This flag indicates that the push button is pressed.
//
//*****************************************************************************
#define PB_STYLE_PRESSED 0x00000040
//*****************************************************************************
//
//! This flag indicates that the push 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 PB_STYLE_RELEASE_NOTIFY 0x00000080
//*****************************************************************************
//
//! Declares an initialized circular push 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 center of the push button.
//! \param lY is the Y coordinate of the center of the push button.
//! \param lR is the radius of the push button.
//! \param ulStyle is the style to be applied to the push button.
//! \param ulFillColor is the color used to fill in the push button.
//! \param ulPressFillColor is the color used to fill in the push button when
//! it is pressed.
//! \param ulOutlineColor is the color used to outline the push button.
//! \param ulTextColor is the color used to draw text on the push button.
//! \param pFont is a pointer to the font to be used to draw text on the push
//! button.
//! \param pcText is a pointer to the text to draw on this push button.
//! \param pucImage is a pointer to the image to draw on this push button.
//! \param pucPressImage is a pointer to the image to draw on this push button
//! when it is pressed.
//! \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 circular push 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
//! tPushButtonWidget g_sPushButton = CircularButtonStruct(...);
//! \endverbatim
//!
//! Or, in an array of variables:
//!
//! \verbatim
//! tPushButtonWidget g_psPushButtons[] =
//! {
//! CircularButtonStruct(...),
//! CircularButtonStruct(...)
//! };
//! \endverbatim
//!
//! \e ulStyle is the logical OR of the following:
//!
//! - \b #PB_STYLE_OUTLINE to indicate that the push button should be outlined.
//! - \b #PB_STYLE_FILL to indicate that the push button should be filled.
//! - \b #PB_STYLE_TEXT to indicate that the push button should have text drawn
//! on it (using \e pFont and \e pcText).
//! - \b #PB_STYLE_IMG to indicate that the push button should have an image
//! drawn on it (using \e pucImage).
//! - \b #PB_STYLE_TEXT_OPAQUE to indicate that the push button text should be
//! drawn opaque (in other words, drawing the background pixels).
//! - \b #PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used.
//! - \b #PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -