blob: 5dd16ccf49855a6e18844382eae195652e29dd64 [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>NxWidgets &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/tabs.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="On-Demand Paging" href="paging.html" />
<link rel="prev" title="Appendix" href="nxgraphics/appendix.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> NuttX
<img src="../_static/NuttX.png" class="logo" alt="Logo"/>
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select onchange="javascript:location.href = this.value;">
<option value="../../latest" selected="selected">latest</option>
<option value="../../10.0.0" >10.0.0</option>
<option value="../../10.0.1" >10.0.1</option>
<option value="../../10.1.0" >10.1.0</option>
<option value="../../10.2.0" >10.2.0</option>
<option value="../../10.3.0" >10.3.0</option>
<option value="../../11.0.0" >11.0.0</option>
<option value="../../12.0.0" >12.0.0</option>
<option value="../../12.1.0" >12.1.0</option>
<option value="../../12.2.0" >12.2.0</option>
<option value="../../12.2.1" >12.2.1</option>
<option value="../../12.3.0" >12.3.0</option>
<option value="../../12.4.0" >12.4.0</option>
<option value="../../12.5.0" >12.5.0</option>
<option value="../../12.5.1" >12.5.1</option>
<option value="../../12.6.0" >12.6.0</option>
<option value="../../12.7.0" >12.7.0</option>
<option value="../../12.8.0" >12.8.0</option>
<option value="../../12.9.0" >12.9.0</option>
<option value="../../12.10.0" >12.10.0</option>
<option value="../../12.11.0" >12.11.0</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="../platforms/index.html">Supported Platforms</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">OS Components</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="power.html">Power Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="binfmt.html">Binary Loader</a></li>
<li class="toctree-l2"><a class="reference internal" href="drivers/index.html">Device Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="filesystem.html">NuttX File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="nxflat.html">NXFLAT</a></li>
<li class="toctree-l2"><a class="reference internal" href="nxgraphics/index.html">NX Graphics Subsystem</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">NxWidgets</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#nxwidgets-doxygen-documentation">NXWidgets Doxygen Documentation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../applications/index.html">Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">NuttX</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="index.html">OS Components</a> &raquo;</li>
<li>NxWidgets</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/components/nxwidgets.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="nxwidgets">
<span id="id1"></span><h1>NxWidgets<a class="headerlink" href="#nxwidgets" title="Permalink to this headline"></a></h1>
<p>In order to better support NuttX based platforms, a special graphical
userinterface has been created called NXWidgets. NXWidgets is written in
C++ and integrates seamlessly with the NuttX <a class="reference internal" href="nxgraphics/index.html#nxgraphics"><span class="std std-ref">NX graphics
subsystem</span></a> in order to provide graphic
objects, or “widgets,” in the NX Graphics Subsystem</p>
<p>Some of the features of NXWidgets include:</p>
<ul class="simple">
<li><p><strong>Conservative C++</strong>. 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.</p></li>
<li><p><strong>NX Integration</strong>. NXWidgets integrate seamlessly with the
<a class="reference internal" href="nxgraphics/index.html#nxgraphics"><span class="std std-ref">NX graphics subsystem</span></a>. 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.</p></li>
<li><p><strong>Small Footprint</strong>. 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 40K of
FLASH and maybe 4K of SRAM.</p></li>
<li><p><strong>Output Devices</strong>. 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.</p></li>
<li><p><strong>Input Devices</strong>. 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.</p></li>
<li><p><strong>Many Graphic Objects</strong>. 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.</p></li>
<li><p><strong>DOxygen Documentation</strong> DOxygen documentation is available.</p></li>
</ul>
<p>Note: Many of the fundamental classed in NxWidgets derive from the
Antony Dzeryn’s “Woopsi” project which also has a
BSD style license. See the COPYING file for details.</p>
<section id="nxwidgets-doxygen-documentation">
<h2>NXWidgets Doxygen Documentation<a class="headerlink" href="#nxwidgets-doxygen-documentation" title="Permalink to this headline"></a></h2>
<div class="admonition-todo admonition" id="id2">
<p class="admonition-title">Todo</p>
<p>NXWidgets supports building HTML documentation via Doxygen. We should
integrate this into the Sphinx documentation build.</p>
</div>
<p>Thanks go to Jose Pablo Carballo for contributing this!</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="nxgraphics/appendix.html" class="btn btn-neutral float-left" title="Appendix" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="paging.html" class="btn btn-neutral float-right" title="On-Demand Paging" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2020, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>