Giter VIP home page Giter VIP logo

nuttx-nxwidgets's Introduction

NXWidgets
=========

In order to better support NuttX based platforms, a special graphical user
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:

o 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.

o NX Integration

  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.

o 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 40Kb of FLASH and maybe 4Kb of SRAM.

o 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.

o 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.

o 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.

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.

Directory Structure
===================

Kconfig

  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

libnxwidgets

  The source code, header files, and build environment for NxWidgets is
  provided in this directory.

UnitTests

  Provides a collection of unit-level tests for many of the individual
  widgets provided by libnxwidgets.

nxwm

  This directory holds a tiny desktop for small embedded devices with a
  touchscreen,. NxWM.  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.

  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 NxTerm.  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).

  Note 1: NwWM requires NuttX-7.19 or above to work with the current
  NxWidgets-1.18 release.

nuttx-nxwidgets's People

Contributors

gregory-nutt avatar

Watchers

James Cloos avatar AlexShi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.