Commit graph

77 commits

Author SHA1 Message Date
1423533378 Add room widget
It's still incomplete, but it works - at least a bit.
2019-06-12 16:51:22 +00:00
6942777c1e Fix crashes when connecting to room fails 2019-06-12 16:13:39 +00:00
50e5b594ad Filter out control characters 2019-06-12 16:12:53 +00:00
8b0740778c Set an edit widget's text
Also make the width calculation take into account the Edit's cursor.
2019-06-12 16:12:04 +00:00
1307a9d06b Change how the cursor looks
Now uses <> instead of [] so that distinguishing the cursor and messages
is easier.
2019-06-12 08:50:55 +00:00
6030c96586 Add single room application
This application lets the user pick a single room and join it. It also
displays error messages when a room could not be joined.
2019-06-12 08:50:55 +00:00
187a69fd5f Add editing widgets for popups etc. 2019-06-12 08:50:55 +00:00
8336794342 Clean up a bit 2019-06-09 14:44:35 +00:00
5e7089f320 Find oldest message in supply 2019-06-09 14:43:49 +00:00
45bf3ecdb0 Move cursor to bottom of supply 2019-06-09 14:43:09 +00:00
943a8915e6 Fix cursor and messages being rendered too wide 2019-06-09 14:25:35 +00:00
0775d17357 Calculate length of unicode string 2019-06-09 14:22:28 +00:00
17e49d529c Add custom message renderer for euphoria 2019-06-09 14:20:16 +00:00
204411726e Remove testing code and clean up (somewhat) 2019-06-08 18:49:04 +00:00
148f2d2667 Remove unused function
As far as I know, the function produced incorrect results. I don't need
it anways, so I'm just throwing it out.
2019-06-08 09:10:59 +00:00
d8ee20c402 Add ShouldNeverHappen exception 2019-06-08 09:10:59 +00:00
a9ddf27525 Remove old files 2019-06-08 09:10:59 +00:00
b71541c847 Add scrolloff option (similar to vim) 2019-06-08 09:10:59 +00:00
bb6d7830ea Implement cursor movement 2019-06-08 09:10:59 +00:00
05809b0723 Test interactions for scrolling 2019-06-08 09:10:59 +00:00
dd6ad51077 Implement scrolling for cursor tree 2019-06-08 09:10:59 +00:00
a4d33847e9 Add basic cursor tree widget 2019-06-08 09:10:59 +00:00
ba2f64762f Clean up and re-add attributed text widgets 2019-06-08 09:10:59 +00:00
5e10fcecac Fix various small things
A commit that fixes all of the little things I forgot about, but that
are necessary for rendering to function properly.

- (attr. lines) reverse lines before extending above
- (attr. lines) clamp the AttributedLine offset so that there is always
  a line with offset 0
- (tree renderer) use meta spaces for the cursor too
- (tree renderer) use correct indent text for cursor
- (tree renderer) fix mypy error by safely ignoring it
- (supply) sort by root id instead of value
- (supply) return id, not list of ids
2019-06-08 09:10:59 +00:00
5a606a9191 Implement missing cursor tree rendering methods 2019-06-08 09:10:59 +00:00
9c389b64e4 Clean up package imports 2019-06-08 09:10:59 +00:00
dec73f183f Implement tree rendering with cursor 2019-06-08 09:10:59 +00:00
2407377cf1 Implement cache for rendered elements 2019-06-08 09:10:59 +00:00
75a5ae5758 Restructure element classes yet again 2019-06-08 09:10:59 +00:00
c035817ba8 Unit test markup and fix all issues found 2019-06-08 09:10:59 +00:00
052bbfb6d2 Make classes more generic 2019-06-08 09:10:59 +00:00
f4c0416398 Add in-memory message supply 2019-06-08 09:10:59 +00:00
267f419603 Render basic messages 2019-06-08 09:10:59 +00:00
8979d80062 Accommodate scrolling
Change the rendering code to accommodate for scrolling, and clean it up.
2019-06-08 09:10:59 +00:00
1fe8a87d7f Implement parts of the message tree widget 2019-06-08 09:10:59 +00:00
8eaacf1558 Add documentation 2019-06-08 09:10:59 +00:00
32bc9af2d8 Implement basic AttributedLinesWidget 2019-06-08 09:10:59 +00:00
66a67f3f28 Create very basic message tree widget structure
Also, fix some cheuph structuring problems
2019-06-08 09:10:59 +00:00
7e2c802364 Increase spacing in modules 2019-06-08 09:10:59 +00:00
7da4bf36d5 Lay out new client structure 2019-06-08 09:10:59 +00:00
6c4bfe2752 Use new config system 2019-06-08 09:10:59 +00:00
bc203aaff1 Create palette from config and add default config 2019-06-08 09:10:59 +00:00
5cfdb8f8e2 Move config to main package 2019-06-08 09:10:59 +00:00
4dfd31e5fc Simplify config code 2019-06-08 09:10:59 +00:00
31549aa7eb Add ConfigView
with python magic to make this possible:

c = Config({"a.b": "c"})
c.view.a.b == "c"
2019-06-08 09:10:59 +00:00
71ad02d4e1 Create simple config system 2019-06-08 09:10:59 +00:00
c676d71a61 Improve UI
- text no longer jumps around when an error message is displayed
- you can only type valid room names
- esc exits the application
2019-06-08 09:10:59 +00:00
43af84a395 Add basic euphoria single-room application 2019-06-08 09:10:59 +00:00
60d686bfce Implement widget for TreeDisplay 2019-06-08 09:10:59 +00:00
9c3278b48c Allow updating the AttributedTextWidget's text 2019-06-08 09:10:59 +00:00