mirror of https://gitee.com/openkylin/cwidget.git
75 lines
2.6 KiB
Markdown
75 lines
2.6 KiB
Markdown
cwidget is a C++ user interface library for terminal-based
|
|
applications.
|
|
|
|
[[toc ]]
|
|
|
|
## Introduction
|
|
<a name="introduction">
|
|
|
|
cwidget is a modern, high-level C++ user interface library using
|
|
[ncurses][] as its display and input layer. It uses the signal/slot
|
|
programming model popularized by toolkits such as [GTK+][] and [Qt][],
|
|
using [SigC++][] to provide signals and slots.
|
|
|
|
[GTK+]: <http://www.gtk.org>
|
|
[Qt]: <https://qt-project.org/>
|
|
[SigC++]: <http://libsigc.sourceforge.net>
|
|
[ncurses]: <http://www.gnu.org/software/ncurses/>
|
|
|
|
This screenshot of [aptitude][] in action shows some of cwidget's
|
|
features:
|
|
|
|
!["Screenshot"](aptitude-cwidget.png)
|
|
|
|
[aptitude]: <http://people.debian.org/~dburrows/aptitude>
|
|
|
|
For more details and information about
|
|
[[getting_cwidget|documentation/downloading]], see the cwidget
|
|
[[documentation]].
|
|
|
|
## Features
|
|
<a name="features">
|
|
|
|
cwidget's features include:
|
|
|
|
* Support for overlapping widgets.
|
|
* Event-driven programming using signals and slots.
|
|
* A well-defined threading model with support for injecting events
|
|
from background threads into the foreground thread.
|
|
* Support for formatting text with styles, paragraph flowing, and
|
|
indented blocks.
|
|
* Support for cascading, user-configurable styles.
|
|
|
|
<!-- TODO: cwidget has more features, need to add them here. :-) -->
|
|
|
|
## Status
|
|
<a name="status">
|
|
|
|
cwidget was originally an internal user interface library for the
|
|
[aptitude][] package manager. This means, on the one hand, that
|
|
cwidget is known to work in the real world for a real application; on
|
|
the other hand, it means that the feature set of cwidget is
|
|
coextensive with the requirements of aptitude. Features not needed by
|
|
aptitude may be missing or incomplete, and cwidget's documentation is
|
|
spotty. For this reason, the current focus of cwidget development is
|
|
on filling in gaps in the library and documenting existing code.
|
|
|
|
## Contact
|
|
<a name="contact">
|
|
|
|
* Questions about downloading, compiling, installing, or writing
|
|
software that uses cwidget should be directed to
|
|
<cwidget-users@lists.alioth.debian.org>. To subscribe to this
|
|
list, visit its [web page][cwidget-users].
|
|
* Bug reports, feature requests, patches, and general discussion
|
|
about the [[development|documentation/contributing]] of cwidget
|
|
should be directed to <cwidget-devel@lists.alioth.debian.org>.
|
|
To subscribe to this list, visit its [web page][cwidget-devel].
|
|
|
|
[cwidget-users]: <http://lists.alioth.debian.org/mailman/listinfo/cwidget-users>
|
|
[cwidget-devel]: <http://lists.alioth.debian.org/mailman/listinfo/cwidget-devel>
|
|
|
|
----
|
|
|
|
This Web site is generated by [ikiwiki](http://ikiwiki.info).
|