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() { | |
34 | super(); | |
35 | ||
36 | // Create an editor window that has support for | |
37 | // copy/paste, search text, arrow keys, horizontal | |
38 | // and vertical scrollbar, etc. | |
39 | addEditor(); | |
40 | ||
41 | // Create standard menus for File and Window | |
42 | addFileMenu(); | |
43 | addWindowMenu(); | |
44 | } | |
45 | ||
46 | public static void main(String [] args) { | |
47 | MyApplication app = new MyApplication(); | |
48 | app.run(); | |
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 | ||
62 | - Base classes: | |
63 | - Events | |
624ce48e KL |
64 | - Backend |
65 | - ECMABackend | |
7d4115a5 KL |
66 | - TApplication loop |
67 | ||
68 | 0.0.2: | |
69 | ||
70 | - Get modal messagebox running without fibers | |
71 | - Port remaining d-tui functionality over | |
72 | - All widgets | |
73 | ||
74 | 0.0.3: | |
75 | ||
76 | - ECMATerminal | |
77 | - Mouse 1006 mode parsing | |
78 | - Win32 support (used for reading/writing sockets) | |
79 | - Bugs | |
80 | - TDirectoryList cannot be navigated only with keyboard | |
81 | - TTreeView cannot be navigated only with keyboard | |
82 | - RangeViolation after dragging scrollbar up/down | |
83 | ||
84 | Wishlist features (2.0): | |
85 | ||
86 | - TTerminal | |
87 | - Handle resize events (pass to child process) | |
88 | - xterm mouse handling | |
89 | - TWindow | |
90 | - "Smart placement" for new windows | |
91 | - Screen | |
92 | - Allow complex characters in putCharXY() and detect them in putStrXY(). | |
93 | - TComboBox | |
94 | - TListBox | |
95 | - TSpinner | |
96 | - TCalendar widget | |
97 | - TColorPicker widget | |
98 | - Drag and drop | |
99 | - TEditor | |
100 | - TField | |
101 | - TText | |
102 | - TTerminal | |
103 | - TComboBox | |
104 | - AWTBackend | |
105 | - ECMABackend | |
106 | - libgpm support |