2020-10-20 10:40:45 +02:00
|
|
|
.. _nxwidgets:
|
|
|
|
|
2020-07-21 00:18:26 +02:00
|
|
|
=========
|
|
|
|
NxWidgets
|
|
|
|
=========
|
|
|
|
|
|
|
|
In order to better support NuttX based platforms, a special graphical
|
|
|
|
userinterface has been created called NXWidgets. NXWidgets is written in
|
2020-10-20 10:40:45 +02:00
|
|
|
C++ and integrates seamlessly with the NuttX :ref:`NX graphics
|
|
|
|
subsystem <nxgraphics>` in order to provide graphic
|
2020-07-21 00:18:26 +02:00
|
|
|
objects, or "widgets," in the NX Graphics Subsystem
|
|
|
|
|
|
|
|
Some of the features of NXWidgets include:
|
|
|
|
|
|
|
|
- **Conservative C++**. 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.
|
2020-10-20 10:40:45 +02:00
|
|
|
- **NX Integration**. NXWidgets integrate seamlessly with the
|
|
|
|
:ref:`NX graphics subsystem <nxgraphics>`. Think of the X
|
2020-07-21 00:18:26 +02:00
|
|
|
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.
|
|
|
|
- **Small Footprint**. NXWidgets is tailored for use MCUs in embedded
|
|
|
|
applications. It is ideally suited for mid- and upper-range of most
|
|
|
|
MCU families. A complete NXWidgets is possible in as little as 40K of
|
|
|
|
FLASH and maybe 4K of SRAM.
|
|
|
|
- **Output Devices**. 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.
|
|
|
|
- **Input Devices**. 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. 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.
|
|
|
|
- **Many Graphic Objects**. 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.
|
|
|
|
- **DOxygen Documentation** DOxygen documentation is available.
|
|
|
|
|
|
|
|
Note: Many of the fundamental classed in NxWidgets derive from the
|
2020-10-20 10:40:45 +02:00
|
|
|
Antony Dzeryn's "Woopsi" project which also has a
|
2020-07-21 00:18:26 +02:00
|
|
|
BSD style license. See the COPYING file for details.
|
|
|
|
|
2020-08-30 22:12:57 +02:00
|
|
|
NXWidgets Doxygen Documentation
|
2020-07-21 00:18:26 +02:00
|
|
|
===============================
|
|
|
|
|
2020-08-30 22:12:57 +02:00
|
|
|
.. todo::
|
|
|
|
NXWidgets supports building HTML documentation via Doxygen. We should
|
|
|
|
integrate this into the Sphinx documentation build.
|
2020-07-21 00:18:26 +02:00
|
|
|
|
|
|
|
Thanks go to Jose Pablo Carballo for contributing this!
|