1.0 2012-03-22 Gregory Nutt * The initial release of the NxWidgets package 1.1 2012-xx-xx Gregory Nutt * Updated and verified the NxWidgets DOxygen documentation. Contributed by Jose Pablo Carballo. * IBitmap, CRlePalettBitmap: Extended class to support differnt LUTs for selected and non-selected images. * CImage: If selected, uses different LUTs based, different borders. CImage is now basically a button type. * CImage: Add logic to hightlight an CImage (using the selected LUT). * nxwm: The tiny NX window manager (NxWM) is being developed in this directory. * UnitTests/nxwm: A unit test for the NX window manager. * 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). * During integration of NxWM, corrected numerous problems with NxWidgets running on toolbars and framed windows. That capability was commented out in the 1.0 release but is verfied functional in 1.1. * CRlePalettBitmap: Fix an error in the text that determines if we need to "rewind" to the beginning of the image. * CRlePalettBitmap: Fixe a positioning problem. It was actually losing the last row of every image! * CNxWidget: Removed support for "shelving" widgets. I will be removing some lesser used feature over time in order to reduce the NxWidgets footprint. * CNxWidget: Removed support for reference constants and close types. The goal is to ge the base widget class as small as possible. * CNxTkWindow: Fix uninitialized pointer value. * CNxToolbar: Need to "fake" the fix position callback to avoid deadlock waits for the callback that won't happen. * CNxTkWindow: Fix toolbar background color * CWidgetControl: Don't declare the the geometry is good until a non-NULL window size is received. * CGraphicsPort and CWidgetControl: If the underlying graphics device is write-only, then we have to render fonts a little differently. * CNxWidgets, CWidgetControl, and CRectCache: Big change! Remove all support for widgets in a "vertical" hierarchy. Now widgets exist in a flat, two-dimensional space and should not overlap. This should greatly reduce the memory requirements and, since, NuttX already supports a hierarchical windowing system, does not result in loss of functionality. * CNxWidgets and CWidgetControl. Remove specific built-in support for modal loops. There are too many different control mechanisms that might be needed. Replace with hooks to control widget events from totally external logic. * CWindowEventHandler, CWindowEventHandlerList, CWidgetControl: New callback classes to receive notifications about window events. * NxWM::CFullScreenWindow and NxWM::CTaskbar: Add support in NxWM for full screen window applications. * All application windows now use CWindowEventHandler and CWindowEventHandlerList to get notifications about mouse and keyboard events. These class will then automatically handle polling (with no need for a modal loop). * NxWM::CTouchscreen and NxWM::CCalibration: Add touchscreen support (still a long way to go). * NxWM::g_playBitmp: Change the play icon again. These tiny touch icons must be very simple. * NxWM::CCalibration: Beef up touch input handling logic. Now changes the color of the touch circle to yellow when it is touched. * NxWM::CTouchscreen: Do not read touchscreen data when there is no consumer. * NxWM::CWindowControl: Add new class to wrap CWidgetControl and provide some special mouse and keyboard input event handling. * NxWM::CTaskbar: Correct the calculation of the physical size of the display. * NxWM::CCalibration: run method must clear m_stop when returning, or you can never restart the Calibration window. * NxWM::CTaskbar: On a failure to start an application, the application icon CImage was being deleted twice. * NXWidgets::CImage: Now handles mouse click callbacks. CImage is now really a button. Probably should separate basic imaging functionality as CImage and create a new CImageButton. * NxWM::CStartWindow: Now ignores any close application button presses (You can't close the start window). * NxWM::CCalibration: The calibration application now has its own thread. This was necessary for a proper integration with the taskbar. * NxWM::CCalibration and NxWM:CTouchscreen: Changed the mechanism use to report calbration data. It is now reported directly from CCalibration to CTouchscreen. If external logic needs calibration, it can now get it from CTouchscreen instead of CCalibration. This change was necessary to make the termination conditions of CCalibration clean (it used to have to persist until some external logic got the Calibration data). * IApplication, IApplicationWindow, and all classes that inherit from these: Now support method to report if the application is a full-screen or a normal application. This is necessary to prevent CTaskbar from displaying a task bar on top of a full-screen window. * NxWM::CTaskbar: Ooops... minimizing the wrong application!