More NX Console fixes... good progress but still not ready for prime time
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4533 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
28752af7d4
commit
638dcbf1b5
@ -1,59 +1,67 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>NxWidgets</title>
|
<title>NxWidgets</title>
|
||||||
</head>
|
</head>
|
||||||
<body background="backgd.gif">
|
<body background="backgd.gif">
|
||||||
<hr><hr>
|
<hr><hr>
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
<tr align="center" bgcolor="#e4e4e4">
|
<tr align="center" bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
<h1><big><font color="#3c34ec"><i>NxWidgets</i></font></big></h1>
|
<h1><big><font color="#3c34ec"><i>NxWidgets</i></font></big></h1>
|
||||||
<p>Last Updated: March 24, 2012</p>
|
<p>Last Updated: March 27, 2012</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<h1>NXWidgets</h1>
|
<h1>NXWidgets</h1>
|
||||||
<p>
|
<p>
|
||||||
In order to better support NuttX based platforms, a special graphical userinterface has been created called NXWidgets.
|
In order to better support NuttX based platforms, a special graphical userinterface has been created called NXWidgets.
|
||||||
NXWidgets is written in C++ and integrates seamlessly with the NuttX <a href="NXGraphicsSubsystem.html">NX graphics subsystem</a> in order to provide graphic objects, or "widgets," in the NX Graphics Subsystem
|
NXWidgets is written in C++ and integrates seamlessly with the NuttX <a href="NXGraphicsSubsystem.html">NX graphics subsystem</a> in order to provide graphic objects, or "widgets," in the NX Graphics Subsystem
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Some of the features of NXWidgets include:
|
Some of the features of NXWidgets include:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>Conservative C++</b>.
|
<li><b>Conservative C++</b>.
|
||||||
NXWidgets is written entirely in C++ but using only selected "embedded friendly" C++ constructs that are fully supported under NuttX.
|
NXWidgets is written entirely in C++ but using only selected "embedded friendly" C++ constructs that are fully supported under NuttX.
|
||||||
No additional C++ support libraries are required.
|
No additional C++ support libraries are required.
|
||||||
</li>
|
</li>
|
||||||
<li><b>NX Integration</b>.
|
<li><b>NX Integration</b>.
|
||||||
NXWidgets integrate seamlessly with the <a href="NXGraphicsSubsystem.html">NX graphics subsystem</a>.
|
NXWidgets integrate seamlessly with the <a href="NXGraphicsSubsystem.html">NX graphics subsystem</a>.
|
||||||
Think of the X server under Linux … the NX graphics system is like a tiny X server that provides windowing under NuttX.
|
Think of the X server under Linux … the NX graphics system is like a tiny X server that provides windowing under NuttX.
|
||||||
By adding NXWidgets, you can support graphics objects like buttons and text boxes in the NX windows and toolbars.
|
By adding NXWidgets, you can support graphics objects like buttons and text boxes in the NX windows and toolbars.
|
||||||
</li>
|
</li>
|
||||||
<li><b>Small Footprint</b>.
|
<li><b>Small Footprint</b>.
|
||||||
NXWidgets is tailored for use MCUs in embedded applications.
|
NXWidgets is tailored for use MCUs in embedded applications.
|
||||||
It is ideally suited for mid- and upper-range of most MCU families.
|
It is ideally suited for mid- and upper-range of most MCU families.
|
||||||
A complete NXWidgets is possible in as little as 40Kb of FLASH and maybe 4Kb of SRAM.
|
A complete NXWidgets is possible in as little as 40Kb of FLASH and maybe 4Kb of SRAM.
|
||||||
</li>
|
</li>
|
||||||
<li><b>Output Devices</b>.
|
<li><b>Output Devices</b>.
|
||||||
NXWidgets will work on the high-end frame buffer devices as well as on LCDs connected via serial or parallel ports to a small MCU.
|
NXWidgets will work on the high-end frame buffer devices as well as on LCDs connected via serial or parallel ports to a small MCU.
|
||||||
</li>
|
</li>
|
||||||
<li><b>Input Devices</b>.
|
<li><b>Input Devices</b>.
|
||||||
NXWidgets will accept position and selection inputs from a mouse or a touchscreen.
|
NXWidgets will accept position and selection inputs from a mouse or a touchscreen.
|
||||||
It will also support character input from a keyboard such as a USB keyboard.
|
It will also support character input from a keyboard such as a USB keyboard.
|
||||||
NXWidgets supports on very special widget called CKeypad that will provide keyboard input via an on-screen keypad that can be operated via mouse or touchscreen inputs.
|
NXWidgets supports on very special widget called CKeypad that will provide keyboard input via an on-screen keypad that can be operated via mouse or touchscreen inputs.
|
||||||
</li>
|
</li>
|
||||||
<li><b>Many Graphic Objects</b>.
|
<li><b>Many Graphic Objects</b>.
|
||||||
Some of the graphic objects supported by NXWidgets include labels, buttons, text boxes, button arrays, check boxes, cycle buttons, images, sliders, scrollable list boxes, progress bars, and more.
|
Some of the graphic objects supported by NXWidgets include labels, buttons, text boxes, button arrays, check boxes, cycle buttons, images, sliders, scrollable list boxes, progress bars, and more.
|
||||||
</li>
|
</li>
|
||||||
<li><b>DOxygen Documentation</ba>
|
<li><b>DOxygen Documentation</b>
|
||||||
DOxygen documentation is available.
|
DOxygen documentation is available.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
Note: Many of the fundamental classed in NxWidgets derive from the Antony
|
Note: Many of the fundamental classed in NxWidgets derive from the Antony
|
||||||
Dzeryn's "Woopsi" project: http://woopsi.org/ which also has a BSD style
|
Dzeryn's "Woopsi" project: http://woopsi.org/ which also has a BSD style
|
||||||
license. See the COPYING file for details.
|
license. See the COPYING file for details.
|
||||||
</p>
|
</p>
|
||||||
</body>
|
<h1>NXWidgets DOxygen Documentation</h1>
|
||||||
</html>
|
<p>
|
||||||
|
DOxygen documentation for the NxWidgets-1.0 is now available online at <a href="http://www.nx-engineering.com/nxwidgets_v1_0/">this location</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Thanks go to Jose Pablo Carballo for contributing this!
|
||||||
|
</p>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
@ -135,16 +135,11 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Offset the rectangle and image origin by the window origin */
|
|
||||||
|
|
||||||
nxgl_rectoffset(&bounds, dest, wnd->bounds.pt1.x, wnd->bounds.pt1.y);
|
|
||||||
nxgl_vectoradd(&offset, origin, &wnd->bounds.pt1);
|
|
||||||
|
|
||||||
/* Verify that the destination rectangle begins "below" and to the "right"
|
/* Verify that the destination rectangle begins "below" and to the "right"
|
||||||
* of the origin
|
* of the origin
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (bounds.pt1.x < origin->x || bounds.pt1.y < origin->y)
|
if (dest->pt1.x < origin->x || dest->pt1.y < origin->y)
|
||||||
{
|
{
|
||||||
gdbg("Bad dest start position\n");
|
gdbg("Bad dest start position\n");
|
||||||
return;
|
return;
|
||||||
@ -154,13 +149,18 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de
|
|||||||
* width of the source bitmap data (taking into account the bitmap origin)
|
* width of the source bitmap data (taking into account the bitmap origin)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
deststride = (((bounds.pt2.x - origin->x + 1) * wnd->be->plane[0].pinfo.bpp + 7) >> 3);
|
deststride = (((dest->pt2.x - origin->x + 1) * wnd->be->plane[0].pinfo.bpp + 7) >> 3);
|
||||||
if (deststride > stride)
|
if (deststride > stride)
|
||||||
{
|
{
|
||||||
gdbg("Bad dest width\n");
|
gdbg("Bad dest width\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Offset the rectangle and image origin by the window origin */
|
||||||
|
|
||||||
|
nxgl_rectoffset(&bounds, dest, wnd->bounds.pt1.x, wnd->bounds.pt1.y);
|
||||||
|
nxgl_vectoradd(&offset, origin, &wnd->bounds.pt1);
|
||||||
|
|
||||||
/* Clip to the limits of the window and of the background screen */
|
/* Clip to the limits of the window and of the background screen */
|
||||||
|
|
||||||
nxgl_rectintersect(&remaining, &bounds, &wnd->bounds);
|
nxgl_rectintersect(&remaining, &bounds, &wnd->bounds);
|
||||||
|
@ -149,7 +149,9 @@ struct nxcon_glyph_s
|
|||||||
uint8_t height; /* Height of this glyph (in rows) */
|
uint8_t height; /* Height of this glyph (in rows) */
|
||||||
uint8_t width; /* Width of this glyph (in pixels) */
|
uint8_t width; /* Width of this glyph (in pixels) */
|
||||||
uint8_t stride; /* Width of the glyph row (in bytes) */
|
uint8_t stride; /* Width of the glyph row (in bytes) */
|
||||||
|
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
||||||
uint8_t usecnt; /* Use count */
|
uint8_t usecnt; /* Use count */
|
||||||
|
#endif
|
||||||
FAR uint8_t *bitmap; /* Allocated bitmap memory */
|
FAR uint8_t *bitmap; /* Allocated bitmap memory */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user