//***************************************************************************** // // imgbutton.h - Prototypes for the image button widget. // // Copyright (c) 2008-2014 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 2.1.0.12573 of the Tiva 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. // uint32_t ui32Style; // //! 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. // uint32_t ui32ForegroundColor; // //! 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. // uint32_t ui32PressedColor; // //! 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. // uint32_t ui32BackgroundColor; // //! A pointer to the font used to render the button text, if //! IB_STYLE_TEXT is selected. // const tFont *psFont; // //! 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 uint8_t *pui8Image; // //! A pointer to the image to be drawn onto this image button when it is //! pressed. // const uint8_t *pui8PressImage; // //! A pointer to the image to be drawn above the background image for //! the button. // const uint8_t *pui8KeycapImage; //! The number of pixels to move the keycap image horizontally when the //! button is drawn in its pressed state. // int16_t i16XOffset; // //! The number of pixels to move the keycap image vertically when the //! button is drawn in its pressed state. // int16_t i16YOffset; // //! 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. // uint16_t ui16AutoRepeatDelay; // //! 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. // uint16_t ui16AutoRepeatRate; // //! The number of pointer events that have occurred. This is used when //! IB_STYLE_AUTO_REPEAT is selected to generate the auto-repeat events. // uint32_t ui32AutoRepeatCount; // //! 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 *psWidget); } 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 psParent is a pointer to the parent widget. //! \param psNext is a pointer to the sibling widget. //! \param psChild is a pointer to the first child widget. //! \param psDisplay is a pointer to the display on which to draw the push //! button. //! \param i32X is the X coordinate of the upper left corner of the image //! button. //! \param i32Y is the Y coordinate of the upper left corner of the image //! button. //! \param i32Width is the width of the image button. //! \param i32Height is the height of the image button. //! \param ui32Style is the style to be applied to the image button. //! \param ui32ForeColor 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 ui32PressColor 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 ui32BackColor 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 psFont 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 pui8Image is a pointer to the image to draw on the background of //! this image button when it is in the released state. //! \param pui8PressImage is a pointer to the image to draw on the background //! of this image button when it is in the pressed state. //! \param pui8KeycapImage 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 i16XOff is the horizontal offset to apply when drawing the keycap //! image on the button when in the pressed state. //! \param i16YOff is the vertical offset to apply when drawing the keycap //! image on the button when in the pressed state. //! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. //! \param ui16AutoRepeatRate 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 ui32Style 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(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ i32Width, i32Height, ui32Style, ui32ForeColor, \ ui32PressColor, ui32BackColor, psFont, pcText, \ pui8Image, pui8PressImage, pui8KeycapImage, \ i16XOff, i16YOff, ui16AutoRepeatDelay, \ ui16AutoRepeatRate, pfnOnClick) \ { \ { \ sizeof(tImageButtonWidget), \ (tWidget *)(psParent), \ (tWidget *)(psNext), \ (tWidget *)(psChild), \ psDisplay, \ { \ i32X, \ i32Y, \ (i32X) + (i32Width) - 1, \ (i32Y) + (i32Height) - 1 \ }, \ ImageButtonMsgProc \ }, \ ui32Style, \ ui32ForeColor, \ ui32PressColor, \ ui32BackColor, \ psFont, \ pcText, \ pui8Image, \ pui8PressImage, \ pui8KeycapImage, \ i16XOff, \ i16YOff, \ ui16AutoRepeatDelay, \ ui16AutoRepeatRate, \ 0, \ pfnOnClick \ } //***************************************************************************** // //! Declares an initialized variable containing a image button widget data //! structure. //! //! \param sName is the name of the variable to be declared. //! \param psParent is a pointer to the parent widget. //! \param psNext is a pointer to the sibling widget. //! \param psChild is a pointer to the first child widget. //! \param psDisplay is a pointer to the display on which to draw the push //! button. //! \param i32X is the X coordinate of the upper left corner of the image //! button. //! \param i32Y is the Y coordinate of the upper left corner of the image //! button. //! \param i32Width is the width of the image button. //! \param i32Height is the height of the image button. //! \param ui32Style is the style to be applied to the image button. //! \param ui32ForeColor is the color to be used for foreground pixels when //! a 1bpp image is being drawn. It is ignored for all other image bit depths. //! \param ui32PressColor 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 ui32BackColor 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 psFont 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 pui8Image is a pointer to the image to draw on the background of //! this image button when it is in the released state. //! \param pui8PressImage is a pointer to the image to draw on the background //! of this image button when it is in the pressed state. //! \param pui8KeycapImage 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 i16XOff is the horizontal offset to apply when drawing the keycap //! image on the button when in the pressed state. //! \param i16YOff is the vertical offset to apply when drawing the keycap //! image on the button when in the pressed state. //! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. //! \param ui16AutoRepeatRate 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). //! //! \e ui32Style 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 ImageButton(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ i32Width, i32Height, ui32Style, ui32ForeColor, \ ui32PressColor, ui32BackColor, psFont, pcText, pui8Image, \ pui8PressImage, pui8KeycapImage, i16XOff, i16YOff, \ ui16AutoRepeatDelay, ui16AutoRepeatRate, pfnOnClick) \ tImageButtonWidget sName = \ ImageButtonStruct(psParent, psNext, psChild, psDisplay, i32X, \ i32Y, i32Width, i32Height, ui32Style, \ ui32ForeColor, ui32PressColor, ui32BackColor, \ psFont, pcText, pui8Image, pui8PressImage, \ pui8KeycapImage, i16XOff, i16YOff, \ ui16AutoRepeatDelay, ui16AutoRepeatRate, \ pfnOnClick) //***************************************************************************** // //! Sets the auto-repeat delay for a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! \param ui16Delay is the number of pointer events before auto-repeat starts. //! //! This function sets the delay before auto-repeat begins. Unpredictable //! behavior will occur if this is called while the image button is pressed. //! //! \return None. // //***************************************************************************** #define ImageButtonAutoRepeatDelaySet(psWidget, ui16Delay) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui16AutoRepeatDelay = ui16Delay; \ } \ while(0) //***************************************************************************** // //! Disables auto-repeat for a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function disables the auto-repeat behavior of a image button. //! //! \return None. // //***************************************************************************** #define ImageButtonAutoRepeatOff(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style &= ~(IB_STYLE_AUTO_REPEAT); \ } \ while(0) //***************************************************************************** // //! Enables auto-repeat for a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function enables the auto-repeat behavior of a image button. //! Unpredictable behavior will occur if this is called while the image button //! is pressed. //! //! \return None. // //***************************************************************************** #define ImageButtonAutoRepeatOn(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style |= IB_STYLE_AUTO_REPEAT; \ } \ while(0) //***************************************************************************** // //! Sets the auto-repeat rate for a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! \param ui16Rate is the number of pointer events between auto-repeat events. //! //! This function sets the rate at which auto-repeat events occur. //! Unpredictable behavior will occur if this is called while the image button //! is pressed. //! //! \return None. // //***************************************************************************** #define ImageButtonAutoRepeatRateSet(psWidget, ui16Rate) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui16AutoRepeatRate = ui16Rate; \ } \ while(0) //***************************************************************************** // //! Sets the function to call when this image button widget is pressed. //! //! \param psWidget is a pointer to the image button widget to modify. //! \param pfnOnClik is a pointer to the function to call. //! //! This function sets the function to be called when this image button is //! pressed. The supplied function is called when the image button is first //! pressed, and then repeated while the image button is pressed if auto-repeat //! is enabled. //! //! \return None. // //***************************************************************************** #define ImageButtonCallbackSet(psWidget, pfnOnClik) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->pfnOnClick = pfnOnClik; \ } \ while(0) //***************************************************************************** // //! Sets the fill color of a image button widget. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param ui32Color is the 24-bit RGB color to use to fill the image button. //! //! This function changes the color used to fill the background of the image //! button on the display. This is a duplicate of //! ImageButtonBackgroundColorSet which is left for backwards compatibility. //! The display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonFillColorSet(psWidget, ui32Color) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32BackgroundColor = ui32Color; \ } \ while(0) //***************************************************************************** // //! Disables filling of a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function disables the filling of a image button widget. The display //! is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonFillOff(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style &= ~(IB_STYLE_FILL); \ } \ while(0) //***************************************************************************** // //! Enables filling of a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function enables the filling of a image button widget. The display is //! not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonFillOn(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style |= IB_STYLE_FILL; \ } \ while(0) //***************************************************************************** // //! Enables the background image for an image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function enables the drawing of the background image on an image //! button widget. The display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonImageOn(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style &= ~(IB_STYLE_IMAGE_OFF); \ } \ while(0) //***************************************************************************** // //! Disables the background image for an image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function disables the drawing of the background image on an image //! button widget. The display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonImageOff(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style |= IB_STYLE_IMAGE_OFF; \ } \ while(0) //***************************************************************************** // //! Enables the keycap image for an image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function enables the drawing of the keycap image on an image button //! widget. The display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonKeycapOn(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style &= ~(IB_STYLE_KEYCAP_OFF); \ } \ while(0) //***************************************************************************** // //! Disables the keycap image for an image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function disables the drawing of the keycap image on an image button //! widget. The display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonKeycapOff(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style |= IB_STYLE_KEYCAP_OFF; \ } \ while(0) //***************************************************************************** // //! Changes the image drawn on a image button widget. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param pImg is a pointer to the image to draw onto the image button. //! //! This function changes the image that is drawn onto the background of the //! image button in its unpressed state. The display is not updated until the //! next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonImageSet(psWidget, pImg) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ const uint8_t *pI = pImg; \ psW->pui8Image = pI; \ } \ while(0) //***************************************************************************** // //! Changes the image drawn on a image button widget when it is pressed. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param pImg is a pointer to the image to draw onto the image button when it //! is pressed. //! //! This function changes the image that is drawn onto the background of the //! image button in its pressed state. The display is not updated until the //! next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonImagePressedSet(psWidget, pImg) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ const uint8_t *pI = pImg; \ psW->pui8PressImage = pI; \ } \ while(0) //***************************************************************************** // //! Changes the keycap image drawn on a image button widget. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param pImg is a pointer to the image to draw onto the image button. //! //! This function changes the image that is drawn onto the top of the push //! button. The display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonImageKeycapSet(psWidget, pImg) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ const uint8_t *pI = (pImg); \ psW->pui8KeycapImage = pI; \ } \ while(0) //***************************************************************************** // //! Changes the keycap image offset position on an image button widget. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param i16X is the signed horizontal position offset for the keycap image //! when the image button is pressed. Positive values move the image right. //! \param i16Y is the signed vertical position offset for the keycap image //! when the image button is pressed. Positive values move the image down. //! //! This function changes the position that the keycap image is drawn at when //! the image button is pressed. The keycap image is moved iX pixels right and //! iY pixels down from the center position if the image button is pressed. //! This feature can be used to support 3D buttons. The display is not //! updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonKeycapOffsetSet(psWidget, i16X, i16Y) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->i16XOffset = (int16_t)(i16X); \ psW->i16YOffset = (int16_t)(i16Y); \ } \ while(0) //***************************************************************************** // //! Sets the color of background pixels when using 1bpp images. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param ui32Color is the background color to use. //! //! This function changes the color that is used to draw background pixels when //! a 1bpp image is rendered on the button and the button is in the released //! state. The value is ignored for all other image bit depths. The display //! is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonBackgroundColorSet(psWidget, ui32Color) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32BackgroundColor = (ui32Color); \ } \ while(0) //***************************************************************************** // //! Sets the color of foreground pixels when using 1bpp images. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param ui32Color is the foreground color to use. //! //! This function changes the color that is used to draw foreground pixels when //! a 1bpp image or text string is rendered on the button. The value is //! ignored for all other image bit depths. The display is not updated until //! the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonForegroundColorSet(psWidget, ui32Color) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32ForegroundColor = (ui32Color); \ } \ while(0) //***************************************************************************** // //! Sets the color of foreground pixels when the button is pressed and when //! using 1bpp images. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param ui32Color is the pressed foreground color to use. //! //! This function changes the color that is used to draw foreground pixels when //! a 1bpp image is rendered on the button and the button is in the pressed //! state. The value is ignored for all other image bit depths. The display //! is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonPressedColorSet(psWidget, ui32Color) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32PressedColor = (ui32Color); \ } \ while(0) //***************************************************************************** // //! Changes the text drawn on a image button widget. //! //! \param psWidget is a pointer to the image button widget to be modified. //! \param pcTxt is a pointer to the text to draw onto the image button. //! //! This function changes the text that is drawn onto the image button. The //! display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonTextSet(psWidget, pcTxt) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ const char *pcT = pcTxt; \ psW->pcText = pcT; \ } \ while(0) //***************************************************************************** // //! Disables the text on a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function disables the drawing of text on a image button widget. The //! display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonTextOff(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style &= ~(IB_STYLE_TEXT); \ } \ while(0) //***************************************************************************** // //! Enables the text on a image button widget. //! //! \param psWidget is a pointer to the image button widget to modify. //! //! This function enables the drawing of text on a image button widget. The //! display is not updated until the next paint request. //! //! \return None. // //***************************************************************************** #define ImageButtonTextOn(psWidget) \ do \ { \ tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ psW->ui32Style |= IB_STYLE_TEXT; \ } \ while(0) //***************************************************************************** // // Prototypes for the image button widget APIs. // //***************************************************************************** extern int32_t ImageButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, uint32_t ui32Param2); extern void ImageButtonInit(tImageButtonWidget *psWidget, const tDisplay *psDisplay, int32_t i32X, int32_t i32Y, int32_t i32Width, int32_t i32Height); //***************************************************************************** // // Mark the end of the C bindings section for C++ compilers. // //***************************************************************************** #ifdef __cplusplus } #endif //***************************************************************************** // // Close the Doxygen group. //! @} // //***************************************************************************** #endif // __IMGBUTTON_H__