Commit | Line | Data |
---|---|---|
7d4115a5 KL |
1 | Jexer - Java Text User Interface library |
2 | ======================================== | |
3 | ||
4 | This library is currently in design, but when finished it is intended | |
5 | to implement a text-based windowing system loosely reminiscient of | |
6 | Borland's [Turbo Vision](http://en.wikipedia.org/wiki/Turbo_Vision) | |
7 | library. For those wishing to use the actual C++ Turbo Vision | |
8 | library, see [Sergio Sigala's updated | |
9 | version](http://tvision.sourceforge.net/) that runs on many more | |
10 | platforms. | |
11 | ||
12 | ||
13 | License | |
14 | ------- | |
15 | ||
16 | This library is licensed LGPL ("GNU Lesser General Public License") | |
17 | version 3 or greater. See the file LICENSE for the full license text, | |
18 | which includes both the GPL v3 and the LGPL supplemental terms. | |
19 | ||
20 | ||
21 | Usage | |
22 | ----- | |
23 | ||
24 | The library is currently under initial development, usage patterns are | |
25 | still being worked on. Generally the goal will be to build | |
26 | applications somewhat as follows: | |
27 | ||
28 | ```Java | |
29 | import jexer.*; | |
30 | ||
31 | public class MyApplication extends TApplication { | |
32 | ||
33 | public MyApplication() { | |
fca67db0 | 34 | super(); |
7d4115a5 | 35 | |
fca67db0 KL |
36 | // Create an editor window that has support for |
37 | // copy/paste, search text, arrow keys, horizontal | |
38 | // and vertical scrollbar, etc. | |
39 | addEditor(); | |
7d4115a5 | 40 | |
fca67db0 KL |
41 | // Create standard menus for File and Window |
42 | addFileMenu(); | |
43 | addWindowMenu(); | |
7d4115a5 KL |
44 | } |
45 | ||
46 | public static void main(String [] args) { | |
fca67db0 KL |
47 | MyApplication app = new MyApplication(); |
48 | app.run(); | |
7d4115a5 KL |
49 | } |
50 | } | |
51 | ``` | |
52 | ||
53 | ||
54 | Roadmap | |
55 | ------- | |
56 | ||
57 | This is a work in progress. Many tasks remain before calling this | |
58 | version 1.0: | |
59 | ||
60 | 0.0.1: | |
61 | ||
fca67db0 KL |
62 | - TMenu |
63 | - TButton | |
7d4115a5 KL |
64 | |
65 | 0.0.2: | |
66 | ||
7d4115a5 | 67 | - Port remaining d-tui functionality over |
7b5261bc | 68 | - All widgets except modal (e.g. messagebox/fileopen) |
7d4115a5 KL |
69 | |
70 | 0.0.3: | |
71 | ||
7b5261bc KL |
72 | - Get modal messagebox running without fibers (use two reader threads |
73 | with syncronization, don't bother with coroutines) | |
9edb442b KL |
74 | - TEditor, fixup keyboard movement |
75 | ||
76 | 0.0.4: | |
77 | ||
7d4115a5 KL |
78 | - ECMATerminal |
79 | - Mouse 1006 mode parsing | |
7d4115a5 KL |
80 | - Bugs |
81 | - TDirectoryList cannot be navigated only with keyboard | |
82 | - TTreeView cannot be navigated only with keyboard | |
83 | - RangeViolation after dragging scrollbar up/down | |
84 | ||
85 | Wishlist features (2.0): | |
86 | ||
87 | - TTerminal | |
88 | - Handle resize events (pass to child process) | |
89 | - xterm mouse handling | |
90 | - TWindow | |
91 | - "Smart placement" for new windows | |
92 | - Screen | |
93 | - Allow complex characters in putCharXY() and detect them in putStrXY(). | |
94 | - TComboBox | |
95 | - TListBox | |
96 | - TSpinner | |
97 | - TCalendar widget | |
98 | - TColorPicker widget | |
99 | - Drag and drop | |
100 | - TEditor | |
101 | - TField | |
102 | - TText | |
103 | - TTerminal | |
104 | - TComboBox | |
105 | - AWTBackend |