60734e65b63f445a0efd32451d39c42fe17d0272
[nikiroo-utils.git] / README.md

Jexer - Java Text User Interface library

WARNING: THIS IS ALPHA CODE! PLEASE CONSIDER FILING BUGS AS YOU ENCOUNTER THEM.

This library is intended to implement a text-based windowing system loosely reminiscient of Borland’s Turbo Vision library. For those wishing to use the actual C++ Turbo Vision library, see Sergio Sigala’s updated version that runs on many more platforms.

Three backends are available:

The demo application showing the existing UI controls is available via ‘java -jar jexer.jar’, ‘java -Djexer.Swing=true -jar jexer.jar’, or ‘java -cp jexer.jar jexer.demos.Demo2 PORT’ (where PORT is a number to run the TCP daemon on).

Additional backends can be created by subclassing jexer.backend.Backend and passing it into the TApplication constructor.

License

This project is licensed LGPL (“GNU Lesser General Public License”, sometimes called the “Library GPL”) version 3 or greater. You may freely use Jexer in both closed source (proprietary) and open source applications, however any changes you make to the Jexer code must be made available to your users.

See the file LICENSE for the full license text, which includes both the GPL v3 and the LGPL supplemental terms.

Acknowledgements

Jexer makes use of the Terminus TrueType font made available here .

Usage

Usage patterns are still being worked on, but in general the goal will be to build applications as follows:

```Java import jexer.*;

public class MyApplication extends TApplication {

public MyApplication() {
    super(BackendType.SWING); // Could also use BackendType.XTERM

    // Create standard menus for File and Window
    addFileMenu();
    addWindowMenu();
}

public static void main(String [] args) {
    MyApplication app = new MyApplication();
    (new Thread(app)).start();
}

} ```

See the files in jexer.demos for more detailed examples.

Known Issues / Arbitrary Decisions

Some arbitrary design decisions had to be made when either the obviously expected behavior did not happen or when a specification was ambiguous. This section describes such issues.

System Properties

The following properties control features of Jexer:

jexer.Swing

Used only by jexer.demos.Demo1. If true, use the Swing interface for the demo application. Default: true on Windows platforms (os.name starts with “Windows”), false on non-Windows platforms.

jexer.Swing.cursorStyle

Used by jexer.io.SwingScreen. Selects the cursor style to draw. Valid values are: underline, block, outline. Default: underline.

Roadmap

Many tasks remain before calling this version 1.0:

0.0.3: FINISH PORTING

0.0.4: NEW STUFF

0.0.5: BUG HUNT

0.1.0: BETA RELEASE

Wishlist features (2.0):

Screenshots

Several Windows Open Including A Terminal

Yo Dawg...