nuttx-apps/graphics/nxwidgets/README.md

69 lines
2.5 KiB
Markdown
Raw Normal View History

2020-07-23 15:19:35 +02:00
# Graphics / `nxwidgets` NXWidgets
In order to better support NuttX based platforms, a special graphical user
2020-07-23 15:19:35 +02:00
interface has been created called NXWidgets. NXWidgets is written in C++ and
integrates seamlessly with the NuttX NX graphics subsystem in order to provide
graphic objects, or _widgets_, in the NX Graphics Subsystem
Some of the features of NXWidgets include:
2020-07-23 15:19:35 +02:00
- Conservative C++
2020-07-23 15:19:35 +02:00
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-07-23 15:19:35 +02:00
- NX Integration
2020-07-23 15:19:35 +02:00
NXWidgets integrate seamlessly with the NX graphics system. 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.
2020-07-23 15:19:35 +02:00
- Small Footprint
NXWidgets is tailored for use MCUs in embedded applications. It is ideally
2020-07-23 15:19:35 +02:00
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.
2020-07-23 15:19:35 +02:00
- 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.
2020-07-23 15:19:35 +02:00
- 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
2020-07-23 15:19:35 +02:00
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.
2020-07-23 15:19:35 +02:00
- 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.
2020-07-23 15:19:35 +02:00
**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
license. See the `COPYING` file for details.
2020-07-23 15:19:35 +02:00
## Directory Structure
2020-07-23 15:19:35 +02:00
- `Kconfig`
2020-07-23 15:19:35 +02:00
This is a `Kconfig` file that should be provided at `apps/NxWidgets/Kconfig`.
When copied to that location, it will be used by the NuttX configuration
systems to configure settings for NxWidgets and NxWM
2020-07-23 15:19:35 +02:00
- `nxwidgets`
2020-07-23 15:19:35 +02:00
The source code, header files, and build environment for NxWidgets is provided
in this directory.
2020-07-23 15:19:35 +02:00
- `UnitTests`
2020-07-23 15:19:35 +02:00
Provides a collection of unit-level tests for many of the individual widgets
provided by `nxwidgets`.