Hack for font background when we cannot read from the LCD; Candidate fix for ILI9325 LCD
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4763 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
0c093cee78
commit
357e4b55dd
@ -144,3 +144,11 @@
|
|||||||
example.
|
example.
|
||||||
* NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
|
* NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
|
||||||
method. The code was correct as it was before.
|
method. The code was correct as it was before.
|
||||||
|
* NXWidgets::CButtonArray and NXWidgets::CGraphicsPort: There is
|
||||||
|
a kludge in there to handle the case where we cannot read the
|
||||||
|
background data because the LCD does not support read operations.
|
||||||
|
In that case, we just use the default background color. However,
|
||||||
|
that doesn't work either for the case where the background color
|
||||||
|
changes when the widget is selected. Thenthe background color
|
||||||
|
in the font is wrong. Fixed in CButtonArrary, but the problem
|
||||||
|
probably exists in other places as well.
|
||||||
|
15
TODO.txt
15
TODO.txt
@ -127,3 +127,18 @@ o Platform specific issues
|
|||||||
The fixed version is available in SVN but won't be in a released
|
The fixed version is available in SVN but won't be in a released
|
||||||
version until NuttX-6.198 is released.
|
version until NuttX-6.198 is released.
|
||||||
Priorioty: Low, but really annoying.
|
Priorioty: Low, but really annoying.
|
||||||
|
|
||||||
|
Title: BUGS WHEN CANNOT READ FROM LCD
|
||||||
|
Description: There is a kludge in there to handle the case where we cannot
|
||||||
|
read the background data because the LCD does not support read
|
||||||
|
operations. You cannot read from the STM3240G-EVAL LCD right
|
||||||
|
now (it might be possible, but I have not figured out how yet).
|
||||||
|
|
||||||
|
In that case, we just use the default background color. However,
|
||||||
|
that doesn't work either for the case where the background color
|
||||||
|
changes when the widget is selected. Then the background color
|
||||||
|
in the font is wrong. There is a hack in in CButtonArrary that
|
||||||
|
fixed this problem, but the problem certainly exists in other
|
||||||
|
places as well and begs for a better solution.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium-Low
|
||||||
|
@ -151,6 +151,36 @@ namespace NXWidgets
|
|||||||
|
|
||||||
const nxgl_coord_t getY(void) const;
|
const nxgl_coord_t getY(void) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the background color that will be used to fill in the spaces
|
||||||
|
* when rendering fonts. This background color is ONLY used if the
|
||||||
|
* LCD device does not support reading GRAM contents.
|
||||||
|
*
|
||||||
|
* @return. The current background color being used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
nxgl_mxpixel_t getBackColor(void) const
|
||||||
|
{
|
||||||
|
return m_backColor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the background color that will be used to fill in the spaces
|
||||||
|
* when rendering fonts. This background color is ONLY used if the
|
||||||
|
* LCD device does not support reading GRAM contents.
|
||||||
|
*
|
||||||
|
* @return. The current background color being used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
void setBackColor(nxgl_mxpixel_t backColor)
|
||||||
|
{
|
||||||
|
m_backColor = backColor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw a pixel into the window.
|
* Draw a pixel into the window.
|
||||||
*
|
*
|
||||||
|
@ -519,9 +519,25 @@ void CButtonArray::drawButton(CGraphicsPort *port, int column, int row, bool use
|
|||||||
pos.x = x + alignX;
|
pos.x = x + alignX;
|
||||||
pos.y = y + alignY;
|
pos.y = y + alignY;
|
||||||
|
|
||||||
// And draw the button text
|
// Set the CGraphicsControl background to match the selected background color.
|
||||||
|
// This is only necessary if we cannot read from the LCD. If we cannot read
|
||||||
|
// from then the font background is set to this background color.
|
||||||
|
// REVISIT: This begs for a more generalized solution.
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
nxgl_mxpixel_t saveColor = port->getBackColor();
|
||||||
|
port->setBackColor(backColor);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// And draw the button text.
|
||||||
|
|
||||||
port->drawText(&pos, &rect, getFont(), *text, 0, text->getLength(), textColor);
|
port->drawText(&pos, &rect, getFont(), *text, 0, text->getLength(), textColor);
|
||||||
|
|
||||||
|
// Restore the default background color
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
port->setBackColor(saveColor);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user