https://github.com/rerdavies/nwindows
NWindows C++ Text UI Library
https://github.com/rerdavies/nwindows
cpp spp20 tui
Last synced: about 2 months ago
JSON representation
NWindows C++ Text UI Library
- Host: GitHub
- URL: https://github.com/rerdavies/nwindows
- Owner: rerdavies
- License: mit
- Created: 2025-01-07T06:18:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-03T07:01:37.000Z (over 1 year ago)
- Last Synced: 2025-03-07T03:37:38.617Z (over 1 year ago)
- Topics: cpp, spp20, tui
- Language: C++
- Homepage: https://rerdavies.github.io/nwindows/
- Size: 711 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
#### NWindows TUI Library

[](https://opensource.org/licenses/MIT)
[](https://rerdavies.github.io/nwindows/documentation/)
[](https://github.com/rerdavies/nwindows/tree/main/examples)
*0.0.3-beta3*
The *NWindows* library is a C++ text user interface (TUI) library for building console applications on Linux.
The library uses elements to compose user interfaces using an innovative and concise manipulator system. The library provides a rich set of elements with which to build user interfaces.
Built on top of the *ncursesw* library, *NWindows* works on both xterm and raw linux terminal windows, and also works over ssh.

Here is a simple example of an *NWindows* application that demonstrates the use of NWindow's manipulator syntax to create users interfaces. The program creates a window with a button that closes the window when clicked:
```
#include "NWindows/NWindows.hpp"
using namespace nwindows;
int main(void) {
NWindow::ptr window = NWindow::create(AUTO_SIZE, AUTO_SIZE);
window
| title("Hello")
| add_child(
NButtonElement::create("Hello world!")
| margin({ 2,1,2,1 })
| on_click([window](int button, NClickedEventArgs& event)
{
event.handled = true;
event.window->close();
}
)
);
window->run();
}
```
which displays the following output when executed.

## Where to Go From Here
[Website](https://rerdavies.github.io/nwindows)
[Documentation](https://rerdavies.github.io/nwindows/documentation)
[Licenses](https://rerdavies.github.io/nwindows/licenses)
[1.0 - Platform Support](https://rerdavies.github.io/nwindows/support)
[2.0 - Installing and Building NWindows](https://rerdavies.github.io/nwindows/installing)
[3.0 - Packaging NWindows Applications](https://rerdavies.github.io/nwindows/packaging)
[4.0 - Using NWindows](https://rerdavies.github.io/nwindows/documentation/using)
[5.0 - NWindows API Reference](https://rerdavies.github.io/nwindows/apis)
[NWindows Release Notes](https://rerdavies.github.io/nwindows/ReleaseNotes)
[Index](https://rerdavies.github.io/nwindows/index)
NWindows is written by an independent developer. Your support and sponsorship for this, and other Open Source projects by Robin Davies would mean more than you would think. You can make a monthly or a one time donation at Robin Davies'
[GitHub Sponsorship page](https://github.com/sponsors/rerdavies)