Commit | Line | Data |
---|---|---|
55d2b2c2 KL |
1 | Jexer Work Log |
2 | ============== | |
3 | ||
3e074355 KL |
4 | August 8, 2017 |
5 | ||
6 | Multiscreen is looking really cool! Demo6 now brings up three | |
7 | screens, including one that is inside a TWindow of a different | |
8 | application. | |
9 | ||
42873e30 KL |
10 | August 7, 2017 |
11 | ||
12 | Had trouble sleeping, what with a bunch of imaginative thoughts for | |
13 | this release. jexer.backend will be the ultimate destination for | |
14 | jexer.session and most of jexer.io. TerminalReader will be the | |
15 | interface for keyboard and mouse events. cmScreenConnected and | |
16 | cmScreenDisconnected will be new events to represent a screen | |
17 | appearing/disappearing, and MultiBackend will be a new backend | |
18 | multiplexer that goes full XRandR. Several new demos demonstrating | |
19 | multi-screen support will be coming along. | |
20 | ||
21 | August 6, 2017 | |
22 | ||
23 | Time to clean up more API, particularly between Backend and Screen. | |
24 | Both of these will be interfaces soon, so that one could easily | |
25 | subclass JComponent and implement both Screen and Backend. The | |
26 | original code evolved out of Qodem, where screen.c and input.c were | |
27 | two different things leading to ECMA48Screen and ECMA48Terminal, but | |
28 | now there is really no need to keep them separate. It also | |
29 | complicates the constructors, as these are basically friend classes | |
30 | that have used package private access to get around their artificial | |
31 | separation. | |
32 | ||
33 | When I get this done it should be a lot easier to do any of: | |
34 | ||
35 | * Pass a JFrame or JComponent to SwingBackend and have it add itself, | |
36 | like any other Swing widget. | |
37 | ||
38 | * Construct a SwingBackend and add it to any regular JComponent. | |
39 | ||
40 | * Have multiple TApplications running inside the same Swing | |
41 | application, including having actions affect each other. (Will also | |
42 | need to ensure that TWidgets/TWindows are not in different | |
43 | TApplication collections.) | |
44 | ||
45 | * Build a Backend/Screen multiplexer, so that one could have a ECMA48 | |
46 | TApplication listening on a port and a local Swing monitor for it. | |
47 | ||
48 | * Build a Backend/Screen manager, so that one could have multiple | |
49 | ECMA48 screens acting as a single large screen (e.g. XRandR). | |
50 | ||
51 | Now I need to decide which package will collect Backend, SessionInfo, | |
52 | and Screen. jexer.io has some java.io stuff, so it stays anyway. | |
53 | ||
2fef9c6e KL |
54 | July 28, 2017 |
55 | ||
56 | Got very busy with my meatspace life, now getting a chance to come | |
57 | back around. | |
58 | ||
59 | I gave up on TEditor knowing about graphemes, instead pulling back to | |
60 | simple Cells. This will be better anyway in the long run, as getting | |
61 | grapheme support in Screen someday will also get it for me in TEditor | |
62 | for free. But it does mean that TEditor will chew through much more | |
63 | RAM than it needs to for a text file. Performance optimization will | |
64 | come someday. But this means I can also go back to gcj, because I | |
65 | really like its warnings about unused imports. | |
66 | ||
67 | I've got a POM stubbed in, and created an account over at sonatype. | |
68 | If it isn't too hard, I will try to get 0.0.5 released into the maven | |
69 | universe. But that is still a bit away, I need TEditor running with | |
70 | syntax highlighting first. | |
71 | ||
72 | July 17, 2017 | |
73 | ||
74 | Focus-follows-mouse is in, as is NOCLOSEBOX. | |
75 | ||
8c236a98 KL |
76 | July 15, 2017 |
77 | ||
78 | I think I have cleaned up most of the window show/hide/activate mess | |
79 | in TApplication. Demo4 has some cool interactions between a | |
80 | background TDesktop and several foreground TWindows, which helped | |
81 | expose bugs. | |
82 | ||
83 | July 9, 2017 | |
84 | ||
85 | While working on TWindow.hide/show I decided that I am sick of | |
86 | TApplication's active window handling. TApplication makes lots of | |
87 | assumptions, things are too fragile between modal and not, and one | |
88 | cannot easily say window.activate(). So I will also be changing that | |
89 | too. ... Code is still a bit of a mess, but hooks are in place at | |
90 | least for show/hide/activate. | |
91 | ||
92 | July 8, 2017 | |
93 | ||
94 | Qodem 1.0.0 released last month, I had a vacation, and a Jexer user | |
95 | (nikiroo) started opening up pull requests. :-) So back unto the | |
96 | breach we go! | |
97 | ||
98 | TButton is now animated so that there is some feedback when selected | |
99 | via keyboard. StringJustifier was written which permits TText's to | |
100 | have left/centered/right and full justification. TDesktop is now in | |
101 | too which can act as a permanent max-sized window without borders. | |
102 | ||
103 | Next up is Viewport, an interface to collect scrollbar API, and then a | |
104 | cleaner API for scrollable widgets and windows. After that is more | |
105 | window API: hide/show/maximize/restore, and unclosable windows. I am | |
106 | cherry-picking bits from @nikiroo's PRs, which will likely break them | |
107 | before it fixes things, but I will find some way to get Niki credited | |
108 | with those pieces. | |
109 | ||
e685a47d KL |
110 | March 21, 2017 |
111 | ||
112 | I am starting to gear up for making Jexer a serious project now. I've | |
113 | created its SourceForge project, linked it back to GitHub, have most | |
114 | of its web page set up (looks like Qodem's), and released 0.0.4. And | |
115 | then this morning saw an out-of-bounds exception if you kill the main | |
116 | demo window. Glad I marked it Alpha on SourceForge... | |
117 | ||
118 | Yesterday I was digging around the other Turbo Vision derived projects | |
119 | while populating the about page, and made a sad/happy-ish realization: | |
120 | Embarcadero could probably get all of them shut down if it really | |
121 | wanted to, including Free Vision. I uncovered some hidden history in | |
122 | Free Vision, such that it appears that Graphics Vision had some | |
123 | licensed Borland code in it, so there might be enough mud in the air | |
124 | that Free Vision could be shut down the same way RHTVision was. But | |
125 | even worse is the SCOTUS ruling on Oracle vs Google: if APIs are | |
126 | copyrighted (regardless of their thoughts on fair use), then any | |
127 | software that matches the API of a proprietary project might find | |
128 | itself subject to an infringement case. So that too could shut down | |
129 | the other API-compatible TV clones. | |
130 | ||
131 | Fortunately, Jexer (and D-TUI) is completely new, and has no API | |
132 | compatibility with Turbo Vision. Jexer could be a new root to a whole | |
133 | generation of TUI applications. | |
134 | ||
a7986f7b KL |
135 | March 18, 2017 |
136 | ||
137 | TStatusBar is working, as is "smart" window placement. Overall this | |
138 | is looking quite nice. Found a lot of other small paper cut items and | |
139 | fixed them. It looks absolutely gorgeous on Mac now. | |
140 | ||
141 | Tomorrow I will get to the public wifi and get this uploaded. | |
142 | ||
143 | Time to call this 0.0.4 now though. We are up to 32,123 lines of | |
144 | code. | |
145 | ||
55d2b2c2 KL |
146 | March 17, 2017 |
147 | ||
148 | Jexer is coming back to active development status. I had a lot of | |
149 | other projects ahead of it in the queue, mostly Qodem but also Jermit | |
150 | and of course lots of actual day job work keeping me too tired for | |
151 | afterhours stuff. But here we are now, and I want to get Jexer to its | |
152 | 1.0.0 release before the end of 2018. After that it will be a | |
153 | critical bit of function for IWP and NIB, if I ever get those going. | |
154 | I need to re-organize the demo app a bit so that it fits within 80x25, | |
155 | and then get to TStatusBar. | |
156 | ||
157 | A status bar will be an optional part of TWindow. If it exists, then | |
158 | it will be drawn last by TApplication and get events routed to it from | |
159 | TWindow's event handlers. This will have the nice effect that the | |
160 | status bar can change depending on which window is active, without any | |
161 | real extra work on TApplication's part. | |
162 | ||
163 | Putting together a proper TODO now, with release and regression | |
164 | checklists. I think I will see if jexer is available at SourceForge, | |
165 | and if so grab it. Perhaps I can put together some good Turbo Vision | |
166 | resources too. At the very least direct people to the Borland-derived | |
167 | C++ releases and Free Vision. | |
168 |