display

Layout and Rendering TUI library
git clone git://git.dimitrijedobrota.com/display.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

commit db229749ad4c196f1721637e47f51e9fe796ca2e
parent a427bab97a6255c0321084516a329d8e19b31c63
author Dimitrije Dobrota < mail@dimitrijedobrota.com >
date Fri, 28 Feb 2025 13:41:12 +0100

Add README.md

Diffstat:
M CMakeLists.txt | + -
M README.md | +++++++++++++++++++++++++++++++++++++++++++++++++++ -----------
M example/navig/CMakeLists.txt | -

3 files changed, 52 insertions(+), 13 deletions(-)


diff --git a/ CMakeLists.txt b/ CMakeLists.txt

@@ -4,7 +4,7 @@ include(cmake/prelude.cmake)


project(
display
VERSION 0.1.38
VERSION 0.1.39
DESCRIPTION "TUI library"
HOMEPAGE_URL "git://git.dimitrijedobrota.com/display.git"
LANGUAGES CXX

diff --git a/ README.md b/ README.md

@@ -1,19 +1,59 @@

# display

This is the display project.
Simple TUI library

# Building and installing
## Description

See the [BUILDING](BUILDING.md) document.
This project is my latest attempt to create a modular end extensible TUI
library that takes care of the positioning of the elements on the screen and
their nesting.

# Contributing
As of know it has all of the necessary features for me to start building some
staff with it, and figure out the rest as I go.

See the [CONTRIBUTING](CONTRIBUTING.md) document.
## Dependencies

# Licensing
* CMake 3.14 or latter
* Compiler with C++20 support (tested on clang version 19.1.7)
* [`Stamen 1.3.0`](https://github.com/DimitrijeDobrota/stamen) (for running examples)


## Building and installing

See the [`BUILDING`](BUILDING.md) document.


## Usage

> Please reference example folder for relevant usage examples.

The library provides the following classes:
`Element`: Base class that takes care of the absolute positioning
`Display`: Main entry point to the terminal screen
`Layout`: Container for one element
`LayoutMulti`: Container for multiple elements
`LayoutRigid`: Divide a screen into custom rectangles
`Window`: Bass class for drawing to the screen
`WindowPivot`: Window that can be placed in the corners or center of the layout


## Version History

* 0.2
* Proof of concept class hierarchy
* Chained rendering and input propagation
* Responsive redrawing

* 0.1
* Initial development phase


## Contributing

See the [`CONTRIBUTING`](CONTRIBUTING.md) document.


## License

This project is licensed under the MIT License - see the [`LICENSE`](LICENSE.md) file for details

<!--
Please go to https://choosealicense.com/licenses/ and choose a license that
fits your needs. The recommended license for a project of this type is the
Boost Software License 1.0.
-->

diff --git a/ example/navig/CMakeLists.txt b/ example/navig/CMakeLists.txt

@@ -1,5 +1,4 @@

find_package(stamen 1.3 REQUIRED)
find_package(poafloc 1.2 CONFIG REQUIRED)

configure_file(menu.conf menu.conf COPYONLY)