px4-firmware/NxWidgets/ReleaseNotes.txt

147 lines
6.4 KiB
Plaintext

NxWidgets-1.0
=============
The initial version of NxWidgets was released on March 22, 2012. This
package has been used in several projects prior to its release to open
source and is considered stable its initial release (although not all
features have been fully verified).
NxWidgets-1.1
=============
The 2nd release of the NxWidgets package was made on May 19, 2012. The
headline new feature in this release is:
* NxWM, the tiny window manager based on NX and NxWidgets. NxWM is true
multiple window manager but only one window is displayed at a time.
This simplification helps performance on LCD based products (in the
same way that a tiled window manager helps) and also makes the best
use of small displays. It is awkward from a human factors point-of-view
trying to manage multiple windows on a small display.
The window manager consists of a task bar with icons representing the
running tasks. If you touch the task's icon, it comes to the top. Each
window has a toolbar with (1) a title, (2) a minimize button, and (3) a
stop application button using the standard icons for these things. User
input via a touchscreen or mouse and keyboard is supported.
There is always a start window that is available in the task bar. When
you touch the start window icon, it brings up the start window containing
icons representing all of the available applications. If you touch an
icon in the start window, it will be started and added to the task bar.
There is a base class that defines an add-on application and an
interface that supports incorporation of new application. The only
application that is provided is NxConsole. This is an NSH session
running in a window. You should be able to select the NX icon in the start
menu and create as many NSH sessions in windows as you want. (keybard input
still comes through serial).
This initial realease of NxWM should be considered an alpha release.
All know issues are listed in the top-level TODO list.
Other important new features include:
* NxWidgets::IBitmap and NxWidgets::CRlePalettBitmap: Extended to
support different color look-up-tables (LUTs). This allows images
to be highlighted when touched, for example.
* NxWidgets::CImage: Extended to support button-like behavior. CImage
widgets now work well as touchable icons.
* NxWidgets::CWidgetControl: Add a semaphore to force clients to wait if the
size or position of the window is not yet known (multi-user mode only).
Enabled and verified creation of framed windows.
* NxWidgets::CWindowEventHandler and NxWidgets::CWindowEventHandler: Add
support for getting callbacks for window events.
* DOxygen documentation support. Contributed by Jose Pablo Carballo.
An effort is underway to simplify NxWidgets and reduce its memory footprint:
* NxWidgets::CNxWidget: Removed support for "shelving" widgets, reference
constants, and close types. Remove all support for widgets in a "vertical"
hierarchy. Now widgets exist in a flat, two-dimensional space and should
not overlap. Removed built-in modal loops.
Bug fixes include changes to the following (see the ChangeLog for details):
* NxWidgets::CRlePalettBitmap, NxWidgets::CRlePalettBitmap,
NxWidgets::CGraphicsPort, NxWidgets::CWidgetControl
NxWidgets-1.2
=============
The 3rd release of the NxWidgets package was made on June 15, 2012. This
release depends on NuttX-6.19 or above and should not be used with older
NuttX releases.
New features and enhancements include:
* NxWM::CNxConsole: The NxWM NxConsole windows now correctly receive keyboard
input. In version 1.1, NxConsoles received input from /dev/console. That,
of course, leads to chaos when there a multiple windows trying to get input
from the same device. There is now a keyboard listener task that will
accept input from /dev/console and inject that input into the NX keyboard
interface. NX will give the keyboard input only to the top window that
has focus, eliminating the chaos.
* NxWM::CHexcalculator: The NxWM demonstration/unit test now includes a hex
calculator applications. This demonstrates the use of arrays of buttons
within a window.
Bugfixes:
* NxWM::CTaskbar: Was inappropriately minimizing some windows. Fixes
some window raising/lowering bugs.
* NXWidgets::CButtonArray: Fix some coloring problems when rending button
text in cases where we cannot read from the display device.
As well as other, less critical bugs (see the ChangeLog for details)
NxWidgets-1.3
=============
The 4th release of the NxWidgets package was made on September 29, 2012. This
release depends on NuttX-6.22 or above and should not be used with older
NuttX releases.
There are no functional changes in this release of NxWidgets. This release
is required in order to retain compatibility with the most recent versions
of NuttX. These comptibility changes include:
* Naming of function entry points
* Build system changes
* Changes needed for the NuttX configuration tool
NxWidgets-1.4
=============
The 5th release of the NxWidgets package was made on December 20, 2012. This
release depends on NuttX-6.24 or above and should not be used with older
NuttX releases. This release corresponds to SVN revision r5447.
Note: Nearly all changes between 1.3 and 1.4 were the result of the efforts
of Petteri Aimonen.
Additional new features and extended functionality in Version 1.4:
* NxWdigets::CNxServer: Reduce start-up delay
* NxWM::CApplicationWindow: Option to eliminate minimize button.
* NxWM::CTaskbar: Option to eliminte the background image; highlight current
icon in the task bar.
* NxWidgets::CNumericEdit: New widget. Basically a CLabel with +/- buttons.
* NxWidgets::CNxTimer: Replace the original signal-based solution with a
work queue-based solution. This raises some isses about using the
internal work queues from user space.
* Build System: Misc improvements.
* Tools: bitmap_converter.py will convert images to NxWidgets RLE-encoded format.
Bugfixes (see the change log for details). Some of these are very important
(marked *critical*):
* NxWidgets::CCallback: Misplaced #endif
* NxWM::CCalculator and NxWM::CStartWindow: Add forward declaration for icon images.
* glych_cycle: Correct width, destructor needs to be public.
* NxWidgets:CText and NxWidgets:CNumericEdite: Fix some memory freeing bugs
* NxWidgets::CScrollingPanel: It is borderless for now because there was no
easy way to redraw only the required part of the border.