AWT keyboard barely working
[nikiroo-utils.git] / README.md
CommitLineData
7d4115a5
KL
1Jexer - Java Text User Interface library
2========================================
3
4This library is currently in design, but when finished it is intended
5to implement a text-based windowing system loosely reminiscient of
6Borland's [Turbo Vision](http://en.wikipedia.org/wiki/Turbo_Vision)
7library. For those wishing to use the actual C++ Turbo Vision
8library, see [Sergio Sigala's updated
9version](http://tvision.sourceforge.net/) that runs on many more
10platforms.
11
1ac2ccb1
KL
12Two backends are available:
13
14* A command-line ECMA-48 / ANSI X3.64 type terminal (tested on Linux +
15 xterm) via System.in and System.out. Input/output is handled
16 through terminal escape sequences generated by the library itself:
17 ncurses is not required or linked to. xterm mouse tracking using
18 UTF8 coordinates is supported. This is the default backend.
19
20* Java Swing/AWT UI. This backend can be selected by setting
21 jexer.AWT=true.
22
23A demo application showing the existing UI controls is available via
24'java -jar jexer.jar' or 'java -Djexer.AWT=true -jar jexer.jar' .
25
26
7d4115a5
KL
27
28License
29-------
30
31This library is licensed LGPL ("GNU Lesser General Public License")
32version 3 or greater. See the file LICENSE for the full license text,
33which includes both the GPL v3 and the LGPL supplemental terms.
34
35
36Usage
37-----
38
39The library is currently under initial development, usage patterns are
40still being worked on. Generally the goal will be to build
41applications somewhat as follows:
42
43```Java
44import jexer.*;
45
46public class MyApplication extends TApplication {
47
48 public MyApplication() {
fca67db0 49 super();
7d4115a5 50
fca67db0
KL
51 // Create an editor window that has support for
52 // copy/paste, search text, arrow keys, horizontal
53 // and vertical scrollbar, etc.
54 addEditor();
7d4115a5 55
fca67db0
KL
56 // Create standard menus for File and Window
57 addFileMenu();
58 addWindowMenu();
7d4115a5
KL
59 }
60
61 public static void main(String [] args) {
fca67db0
KL
62 MyApplication app = new MyApplication();
63 app.run();
7d4115a5
KL
64 }
65}
66```
67
68
69Roadmap
70-------
71
30d336cc 72Many tasks remain before calling this version 1.0:
7d4115a5
KL
73
740.0.1:
75
cc99cba8 76- AWTBackend
7d4115a5
KL
77
780.0.2:
79
1ac2ccb1 80- ECMA48Backend running on socket
cc99cba8
KL
81- TTreeView
82- TDirectoryList
b1b355b8 83- TFileOpen
7d4115a5
KL
84
850.0.3:
86
cc99cba8
KL
87- TEditor
88- TTerminal
89
900.0.4:
91
b1b355b8 92- Bugs
70f5b2bb 93 - Bare ESC isn't being returned immediately
cc99cba8 94 - TTimer is jittery with I/O
b1b355b8
KL
95 - TSubMenu keyboard mnemonic not working
96 - kbDel assertion failure in TMenu (MID_CLEAR)
cc99cba8
KL
97 - TDirectoryList cannot be navigated only with keyboard
98 - TTreeView cannot be navigated only with keyboard
99 - RangeViolation after dragging scrollbar up/down
b1b355b8
KL
100- TEditor
101 - Word wrap
102 - Forward/backward word
103 - Search
104 - Replace
105 - Cut/Copy/Paste
9edb442b 106
cc99cba8 1070.1.0:
9edb442b 108
cc99cba8
KL
109- TWindow
110 - "Smart placement" for new windows
7d4115a5
KL
111- ECMATerminal
112 - Mouse 1006 mode parsing
7d4115a5
KL
113
114Wishlist features (2.0):
115
116- TTerminal
117 - Handle resize events (pass to child process)
118 - xterm mouse handling
7d4115a5
KL
119- Screen
120 - Allow complex characters in putCharXY() and detect them in putStrXY().
121- TComboBox
122- TListBox
123- TSpinner
124- TCalendar widget
125- TColorPicker widget
126- Drag and drop
127 - TEditor
128 - TField
129 - TText
130 - TTerminal
131 - TComboBox