{"id":24464735,"url":"https://github.com/rerdavies/nwindows","last_synced_at":"2026-05-20T09:40:56.101Z","repository":{"id":271404851,"uuid":"913153723","full_name":"rerdavies/nwindows","owner":"rerdavies","description":"NWindows C++ Text UI Library","archived":false,"fork":false,"pushed_at":"2025-02-03T07:01:37.000Z","size":728,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T03:37:38.617Z","etag":null,"topics":["cpp","spp20","tui"],"latest_commit_sha":null,"homepage":"https://rerdavies.github.io/nwindows/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rerdavies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"rerdavies","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-01-07T06:18:16.000Z","updated_at":"2025-02-03T07:01:34.000Z","dependencies_parsed_at":"2025-01-25T17:31:45.694Z","dependency_job_id":null,"html_url":"https://github.com/rerdavies/nwindows","commit_stats":null,"previous_names":["rerdavies/nwindows"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rerdavies%2Fnwindows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rerdavies%2Fnwindows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rerdavies%2Fnwindows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rerdavies%2Fnwindows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rerdavies","download_url":"https://codeload.github.com/rerdavies/nwindows/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243565329,"owners_count":20311705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","spp20","tui"],"created_at":"2025-01-21T05:16:39.507Z","updated_at":"2025-12-29T09:38:33.024Z","avatar_url":"https://github.com/rerdavies.png","language":"C++","funding_links":["https://github.com/sponsors/rerdavies"],"categories":[],"sub_categories":[],"readme":"#### NWindows TUI Library\n![Build Status](https://github.com/rerdavies/nwindows/actions/workflows/cmake-multi-platform.yml/badge.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)  \n[![Documentation](https://img.shields.io/badge/documentation-Developer%20Guide-blue)](https://rerdavies.github.io/nwindows/documentation/)\n[![Documentation](https://img.shields.io/badge/documentation-Examples-blue)](https://github.com/rerdavies/nwindows/tree/main/examples)\n\u003c!--[![Documentation](https://img.shields.io/badge/documentation-Release%20Notes-blue)](https://reravies.github.io/nwindows/) --\u003e\n\n*0.0.3-beta3*\n\nThe *NWindows* library is a C++ text user interface (TUI) library for building console applications on Linux.\nThe 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.\n\nBuilt on top of the *ncursesw* library, *NWindows* works on both xterm and raw linux terminal windows, and also works over ssh.\n\n\u0026nbsp;\u0026nbsp;![image](docs/public/image/screenshot.png)\n\nHere 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:\n        \n```\n#include \"NWindows/NWindows.hpp\"\n\nusing namespace nwindows;\n\nint main(void) {\n    NWindow::ptr window = NWindow::create(AUTO_SIZE, AUTO_SIZE);\n\n    window\n        | title(\"Hello\")\n        | add_child(\n            NButtonElement::create(\"Hello world!\")\n            | margin({ 2,1,2,1 })\n            | on_click([window](int button, NClickedEventArgs\u0026 event)\n                {\n                    event.handled = true;\n                    event.window-\u003eclose();\n                }\n            )\n        );\n    window-\u003erun();\n}\n```\n\nwhich displays the following output when executed.\n\n\u0026nbsp;\u0026nbsp;![image](docs/public/image/hello_world.png)\n\n## Where to Go From Here\n\n[Website](https://rerdavies.github.io/nwindows)\n\n[Documentation](https://rerdavies.github.io/nwindows/documentation)\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[Licenses](https://rerdavies.github.io/nwindows/licenses)\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[1.0 - Platform Support](https://rerdavies.github.io/nwindows/support)\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[2.0 - Installing and Building NWindows](https://rerdavies.github.io/nwindows/installing)\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[3.0 - Packaging NWindows Applications](https://rerdavies.github.io/nwindows/packaging)\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[4.0 - Using NWindows](https://rerdavies.github.io/nwindows/documentation/using)\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[5.0 - NWindows API Reference](https://rerdavies.github.io/nwindows/apis)\n\n\n[NWindows Release Notes](https://rerdavies.github.io/nwindows/ReleaseNotes)\n\n[Index](https://rerdavies.github.io/nwindows/index)\n\nNWindows 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' \n[GitHub Sponsorship page](https://github.com/sponsors/rerdavies)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frerdavies%2Fnwindows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frerdavies%2Fnwindows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frerdavies%2Fnwindows/lists"}