| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906 |
- //*****************************************************************************
- //
- // 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 6288 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 int 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 int 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 int 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 int 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 int 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 \
- }, \
- ImageButtonMsgProc \
- }, \
- ulStyle, \
- ulForeColor, \
- ulPressColor, \
- ulBackColor, \
- pFont, \
- pcText, \
- pucImage, \
- pucPressImage, \
- pucKeycapImage, \
- sXOff, \
- sYOff, \
- usAutoRepeatDelay, \
- usAutoRepeatRate, \
- 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 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 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).
- //!
- //! \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 ImageButton(sName, pParent, pNext, pChild, pDisplay, lX, lY, \
- lWidth, lHeight, ulStyle, ulForeColor, ulPressColor, \
- ulBackColor, pFont, pcText, pucImage, pucPressImage, \
- pucKeycapImage, sXOff, sYOff, usAutoRepeatDelay, \
- usAutoRepeatRate, pfnOnClick) \
- tImageButtonWidget sName = \
- ImageButtonStruct(pParent, pNext, pChild, pDisplay, lX, lY, \
- lWidth, lHeight, ulStyle, ulForeColor, \
- ulPressColor, ulBackColor, pFont, pcText, \
- pucImage, pucPressImage, pucKeycapImage, \
- sXOff, sYOff, usAutoRepeatDelay, \
- usAutoRepeatRate, pfnOnClick)
- //*****************************************************************************
- //
- //! Sets the auto-repeat delay for a image button widget.
- //!
- //! \param pWidget is a pointer to the image button widget to modify.
- //! \param usDelay 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(pWidget, usDelay) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->usAutoRepeatDelay = usDelay; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Disables auto-repeat for a image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle &= ~(IB_STYLE_AUTO_REPEAT); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Enables auto-repeat for a image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle |= IB_STYLE_AUTO_REPEAT; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Sets the auto-repeat rate for a image button widget.
- //!
- //! \param pWidget is a pointer to the image button widget to modify.
- //! \param usRate 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(pWidget, usRate) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->usAutoRepeatRate = usRate; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Sets the function to call when this image button widget is pressed.
- //!
- //! \param pWidget 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(pWidget, pfnOnClik) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->pfnOnClick = pfnOnClik; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Sets the fill color of a image button widget.
- //!
- //! \param pWidget is a pointer to the image button widget to be modified.
- //! \param ulColor 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(pWidget, ulColor) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulBackgroundColor = ulColor; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Disables filling of a image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle &= ~(IB_STYLE_FILL); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Enables filling of a image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle |= IB_STYLE_FILL; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Enables the background image for an image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle &= ~(IB_STYLE_IMAGE_OFF); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Disables the background image for an image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle |= IB_STYLE_IMAGE_OFF; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Enables the keycap image for an image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle &= ~(IB_STYLE_KEYCAP_OFF); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Disables the keycap image for an image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle |= IB_STYLE_KEYCAP_OFF; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Changes the image drawn on a image button widget.
- //!
- //! \param pWidget 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(pWidget, pImg) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- const unsigned char *pI = pImg; \
- pW->pucImage = pI; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Changes the image drawn on a image button widget when it is pressed.
- //!
- //! \param pWidget 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(pWidget, pImg) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- const unsigned char *pI = pImg; \
- pW->pucPressImage = pI; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Changes the keycap image drawn on a image button widget.
- //!
- //! \param pWidget 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(pWidget, pImg) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- const unsigned char *pI = (pImg); \
- pW->pucKeycapImage = pI; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Changes the keycap image offset position on an image button widget.
- //!
- //! \param pWidget is a pointer to the image button widget to be modified.
- //! \param sX is the signed horizontal position offset for the keycap image
- //! when the image button is pressed. Positive values move the image right.
- //! \param sY 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(pWidget, sX, sY) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->sXOffset = (short)(sX); \
- pW->sYOffset = (short)(sY); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Sets the color of background pixels when using 1bpp images.
- //!
- //! \param pWidget is a pointer to the image button widget to be modified.
- //! \param ulColor 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(pWidget, ulColor) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulBackgroundColor = (ulColor); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Sets the color of foreground pixels when using 1bpp images.
- //!
- //! \param pWidget is a pointer to the image button widget to be modified.
- //! \param ulColor 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(pWidget, ulColor) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulForegroundColor = (ulColor); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Sets the color of foreground pixels when the button is pressed and when
- //! using 1bpp images.
- //!
- //! \param pWidget is a pointer to the image button widget to be modified.
- //! \param ulColor 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(pWidget, ulColor) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulPressedColor = (ulColor); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Changes the text drawn on a image button widget.
- //!
- //! \param pWidget 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(pWidget, pcTxt) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- const char *pcT = pcTxt; \
- pW->pcText = pcT; \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Disables the text on a image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle &= ~(IB_STYLE_TEXT); \
- } \
- while(0)
- //*****************************************************************************
- //
- //! Enables the text on a image button widget.
- //!
- //! \param pWidget 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(pWidget) \
- do \
- { \
- tImageButtonWidget *pW = (tImageButtonWidget *)(pWidget); \
- pW->ulStyle |= IB_STYLE_TEXT; \
- } \
- while(0)
- //*****************************************************************************
- //
- // Prototypes for the image button widget APIs.
- //
- //*****************************************************************************
- extern int ImageButtonMsgProc(tWidget *pWidget, unsigned int ulMsg,
- unsigned int ulParam1,
- unsigned int ulParam2);
- extern void ImageButtonInit(tImageButtonWidget *pWidget,
- const tDisplay *pDisplay, int lX, int lY,
- int lWidth, int lHeight);
- //*****************************************************************************
- //
- // Mark the end of the C bindings section for C++ compilers.
- //
- //*****************************************************************************
- #ifdef __cplusplus
- }
- #endif
- //*****************************************************************************
- //
- // Close the Doxygen group.
- //! @}
- //
- //*****************************************************************************
- #endif // __IMGBUTTON_H__
|