summaryrefslogtreecommitdiffstats
path: root/NxWidgets
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-05-19 15:26:38 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-05-19 15:26:38 +0000
commited667e7b74a2558bf23052c2d24262cd47da165d (patch)
treed708a22498137dd7b7b5c0b979ece6b38f7f10a1 /NxWidgets
parent2a4269496693e50de56c4f5b4c8537599782e6e6 (diff)
Prep for 6.18 release
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4751 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'NxWidgets')
-rw-r--r--NxWidgets/ChangeLog.txt8
-rw-r--r--NxWidgets/README.txt2
-rw-r--r--NxWidgets/ReleaseNotes.txt78
-rw-r--r--NxWidgets/TODO.txt65
-rw-r--r--NxWidgets/nxwm/include/ctaskbar.hxx4
-rw-r--r--NxWidgets/nxwm/include/cwindowmessenger.hxx6
-rw-r--r--NxWidgets/nxwm/src/ctaskbar.cxx4
7 files changed, 145 insertions, 22 deletions
diff --git a/NxWidgets/ChangeLog.txt b/NxWidgets/ChangeLog.txt
index 1a51aacdaa..80101c9201 100644
--- a/NxWidgets/ChangeLog.txt
+++ b/NxWidgets/ChangeLog.txt
@@ -2,7 +2,7 @@
* The initial release of the NxWidgets package
-1.1 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
+1.1 2012-05-19 Gregory Nutt <gnutt@nuttx.org>
* Updated and verified the NxWidgets DOxygen documentation. Contributed
by Jose Pablo Carballo.
@@ -93,14 +93,14 @@
* NXWidgets::CNxTkWindow: Reported size of a framed window must exclude the
height of the tool bar (if present)
* TODO.txt: Add a file to keep track of issues.
-* NXWidgets::CStartWindow and IApplicationFactory: This is a substantial
+* NxWM::CStartWindow and IApplicationFactory: This is a substantial
redesign. IApplication wraps an application. However, if we want to
be able to start multiple copies of an application, then we need to
be able to create multiple IApplication instances from the start window.
Enter IApplicationFactory. Icons in the start window now correspond
to application factories; icons in the task bar no correspond to
application instances.
-* NXWidgetes::CStartWindow and CWindowControl: The above change necessitated
+* NxWM::CStartWindow and CWindowControl: The above change necessitated
another architectural change: When create applications, it is sometimes
necessary to wait for windows events. The above change moved the
application creation to the window event thread, hence, causing deadlocks
@@ -109,3 +109,5 @@
asynchronously and can wait for windoew events.
* doc/NxWM-ThreadingModel.ppt: Documented the now rather complex NxWM
threading model.
+
+1.2 2012-xx-xx Gregory Nutt <gnutt@nuttx.org>
diff --git a/NxWidgets/README.txt b/NxWidgets/README.txt
index e4ed3be3a0..7bb16820c5 100644
--- a/NxWidgets/README.txt
+++ b/NxWidgets/README.txt
@@ -74,7 +74,7 @@ nxwm
small display.
The window manager consists of a task bar with icons representing the
- running tasks. If you touch the tas'ks icon, it comes to the top. Each
+ 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.
diff --git a/NxWidgets/ReleaseNotes.txt b/NxWidgets/ReleaseNotes.txt
index dea4771a39..d140d45d12 100644
--- a/NxWidgets/ReleaseNotes.txt
+++ b/NxWidgets/ReleaseNotes.txt
@@ -1,9 +1,69 @@
-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.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 as 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
+
+
diff --git a/NxWidgets/TODO.txt b/NxWidgets/TODO.txt
index 009ce90399..6264d2f3d8 100644
--- a/NxWidgets/TODO.txt
+++ b/NxWidgets/TODO.txt
@@ -4,6 +4,24 @@ NxWidgets
NxWM
----
+ (3) General issues
+ (3) NxConsole issues
+ (1) Platform specific issues
+
+o General NxWM Issues
+ -------------------
+
+ Title: DISPLAY INTIALIZATION
+ Description: During the initialization of the display, the basic frame of the
+ start window is draw momentarily. The is just the empty window
+ frame. This is a consequence of how NX creates windows: The
+ are enabled all of the time so the windows are visible when they
+ are being created. The solution would be to add some disable
+ logic in NX so that that nothing gets displayed when a window
+ is created until it is fully initialized and enable.
+ Status: Open
+ Priority: Medium
+
Title: DRAGGING ACROSS WINDOWS
Description: Need some indication if the touch/mouse drags from one window to
another then is release. Release event is lost in this case.
@@ -26,6 +44,20 @@ NxWM
Status: Open
Priority: Medium low
+ Title: THREAD SAFETY
+ Description: I am not sure how thread-safe the NxWidgets are. There is
+ is very little mutli-thread in the widgets now. The "NX listener"
+ thread interacts to update mouse (and keyboard) data but all
+ of the heavy work is done on the "start window" thread. I think
+ everything is okay now, but it may be necessary in the future
+ to introduce some semaphore protection in theCWidgetControl methods
+ to make them thread safe.
+ Status: Open
+ Priority: Low
+
+o NxConsole Issues
+ ----------------
+
Title: MULTIPLE COPIES OF AN NxCONSOLE
Description: From the start window, you an create multiple copies of the
NxConsole. However, there is a problem in the current
@@ -41,5 +73,34 @@ NxWM
port. The necessary change is to create an NX input device for
/dev/console that will get its input from NX.
Status: Open
- Priority: Medium High
- \ No newline at end of file
+ Priority: Medium high, basically prohibits the use of multiple NSH windows.
+
+ Title: CLOSING AN NxCONSOLE
+ Description: If you open multiple NxConsole applications, they all receive
+ serial input (as noted in the previous bug). However, if
+ you close one of the NxConsoles, then the others no longer
+ received input (or no long generate output -- that cannot be
+ distinguished).
+ Status: Open
+ Priority: Medium high, basically prohibits the use of multiple NSH windows.
+
+ Title: DOUBLE DISPLAY UPDATES
+ Description: When the NxConsole window is first opened, there are usually
+ double updates, i.e., the display forms twice.
+ Status: Open
+ Priorioty: Low, this would be necessary to fix to productize the windows.
+
+o Platform specific issues
+ ------------------------
+
+ Title: MISSING TOUCH RELEASE
+ Description: Using the STM3240G-EVAL board with the STMPE11 touchscreen, you
+ will find that there are occasional missing indications of when
+ you release a icon. This is believed to be a data overrun in the
+ STPMPE11 data path. The STMPE11 generates data a very high
+ rate and it is believe that it sometimes misses the interrupt
+ that indicates that the touch is released. The symptom in NxWM
+ is that you touch an icon, it is highlighted but when you release
+ the touch nothing happens. The icon stays highlighted. Touching
+ the icon again usually works around this problem.
+ Status: Open
diff --git a/NxWidgets/nxwm/include/ctaskbar.hxx b/NxWidgets/nxwm/include/ctaskbar.hxx
index c8468877a5..2578a3ce95 100644
--- a/NxWidgets/nxwm/include/ctaskbar.hxx
+++ b/NxWidgets/nxwm/include/ctaskbar.hxx
@@ -120,8 +120,8 @@ namespace NxWM
* widget constructor
*
* NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from
- * CWidgetControl. That class just adds some unrelated messenging capability;
- * It cohabitates with CWidgetControl only becuase it nees the CWidgetControl
+ * CWidgetControl. That class just adds some unrelated messaging capability;
+ * It cohabitates with CWidgetControl only becuase it needs the CWidgetControl
* this point.
*/
diff --git a/NxWidgets/nxwm/include/cwindowmessenger.hxx b/NxWidgets/nxwm/include/cwindowmessenger.hxx
index d2e862a7c7..11a48645bf 100644
--- a/NxWidgets/nxwm/include/cwindowmessenger.hxx
+++ b/NxWidgets/nxwm/include/cwindowmessenger.hxx
@@ -72,11 +72,11 @@ namespace NxWM
/**
* The class CWindowMessenger integrates the widget control with some special
- * handling of mouse and keyboard inputs neesed by NxWM. It use used
+ * handling of mouse and keyboard inputs needs by NxWM. It use used
* in place of CWidgetControl whenever an NxWM window is created.
*
- * CWindowMessenger cohabitates with CWidgetControl only becuase it nees the
- * CWidgetControl as an argument in its messenging.
+ * CWindowMessenger cohabitates with CWidgetControl only because it needs the
+ * CWidgetControl as an argument in its messaging.
*/
class CWindowMessenger : public NXWidgets::CWindowEventHandler,
diff --git a/NxWidgets/nxwm/src/ctaskbar.cxx b/NxWidgets/nxwm/src/ctaskbar.cxx
index 6b05100175..2130293c26 100644
--- a/NxWidgets/nxwm/src/ctaskbar.cxx
+++ b/NxWidgets/nxwm/src/ctaskbar.cxx
@@ -759,8 +759,8 @@ void CTaskbar::clickIcon(int index, bool click)
* widget constructor
*
* NOTE: Actually, NxWM uses the CWindowMessenger class that inherits from
- * CWidgetControl. That class just adds some unrelated messenging capability;
- * It cohabitates with CWidgetControl only becuase it nees the CWidgetControl
+ * CWidgetControl. That class just adds some unrelated messaging capability;
+ * It cohabitates with CWidgetControl only becuase it needs the CWidgetControl
* this point.
*/