Curtis McEnroe
2ae5b6b9ab
Add /query, /part and /close
...
Closing a channel before parting it is a bit weird, but if I send a PART
on /close, it would get reopened again to show the part message.
2018-08-13 13:49:03 -04:00
Curtis McEnroe
a09df5f697
Avoid setting mark if switching to the same view
2018-08-12 21:38:25 -04:00
Curtis McEnroe
2ec109e246
Disable focus tracking in uiHide
...
Most significantly so that the sequences don't end up on screen during a
/url.
2018-08-12 20:41:13 -04:00
Curtis McEnroe
0dfeb3df84
Add shift-{left,right} for single-line scrolling
2018-08-11 22:46:28 -04:00
Curtis McEnroe
24ca3aed81
Leave room for topic when creating view
2018-08-11 22:45:53 -04:00
Curtis McEnroe
a281f89592
Rework UI code for multi-channel
...
Tags are now permanently assigned (and I'm betting on never needing more
than 256 of them) and the UI maps tags to a linked list of views for
easy reordering and removal. Currently, views can only be added. Views
don't have a topic window until they need one. All UI code wants to be
functional reactive.
Beeping is temporarily removed until message priorities (status,
message, ping) can be added to the UI. At that point spawning
notify-send should also be possible. Priorities will also help with
unnecessary markers, which will not appear for status messages.
The tab system is now used to send QUIT and NICK messages to all the
relevant tags. Verbose output now goes to its own tag, and sending to
it sends raw IRC.
IRC colors are now listed in chat.h and handler functions for numeric
replies have real names. The color algorithm now uses a real hash
function for hopefully better results. QUIT, PART and KICK messages are
scanned for URLs.
2018-08-11 20:02:03 -04:00
Curtis McEnroe
07c750d25c
Become multi-channel
...
There's a lot of UI missing for it, but it technically works.
2018-08-10 23:31:20 -04:00
Curtis McEnroe
a64f1a4ea2
Add URL detection, listing and opening
...
Might also add /copy, like /open.
2018-08-09 00:24:49 -04:00
Curtis McEnroe
09fe40abd9
Use blank line as unread marker
2018-08-08 19:52:25 -04:00
Curtis McEnroe
4771a54bf9
Add markers as lines to the log
2018-08-08 18:50:57 -04:00
Curtis McEnroe
eac0f83efa
Factor out line editing to edit.c
2018-08-08 16:59:26 -04:00
Curtis McEnroe
b66c8abf70
Set log marker on FocusOut event
...
All of this needs refactoring, probably separating the line editing out
from the actual input handling.
2018-08-08 00:55:45 -04:00
Curtis McEnroe
c9b7846d23
Use BLACK LEFT-POINTING TRIANGLE for marker
2018-08-08 00:09:09 -04:00
Curtis McEnroe
ee0df2846e
Reset attrs after addIRC
...
Otherwise the marker inherits whatever was left on.
2018-08-07 23:40:40 -04:00
Curtis McEnroe
9114d0555c
Add tab complete UI
...
This definitely needs refactoring.
2018-08-07 23:03:08 -04:00
Curtis McEnroe
ee49c36655
Mark log when scrolling up
2018-08-07 22:19:45 -04:00
Curtis McEnroe
7d76246c3f
Highlight and beep pings
2018-08-07 17:51:23 -04:00
Curtis McEnroe
a6ede6f91f
Factor out allocating conversion between wcs and mbs
2018-08-07 16:24:14 -04:00
Curtis McEnroe
fe21b1410f
Convert input to multibyte before handling
2018-08-07 15:46:04 -04:00
Curtis McEnroe
0b429a7ccc
Define ui.c BUF_LEN with enum
2018-08-07 14:14:07 -04:00
Curtis McEnroe
fa270d9287
Hack clang into checking uiFmt format strings
2018-08-07 14:11:19 -04:00
Curtis McEnroe
a26a6fee8d
Add reverse and reset IRC formatting codes
2018-08-07 00:09:50 -04:00
Curtis McEnroe
d71d040995
Rewrite line editing again, add formatting
2018-08-06 22:14:59 -04:00
Curtis McEnroe
3f3fa34d8a
Implement word wrapping
2018-08-06 15:12:13 -04:00
Curtis McEnroe
d6fb797b11
Use wchar_t strings for all of UI
...
vaswprintf is a nightmare.
2018-08-06 14:19:52 -04:00
Curtis McEnroe
ea4c70dae5
Rename line editing functions
2018-08-06 11:22:45 -04:00
Curtis McEnroe
5bb96a79e7
Initialize all possible color pairs
...
This is actually possible with use_default_colors!
2018-08-05 18:34:35 -04:00
Curtis McEnroe
dbed1929dc
Refactor color initialization
2018-08-05 15:00:38 -04:00
Curtis McEnroe
c1283ed18a
Add ^L redraw
2018-08-05 13:42:37 -04:00
Curtis McEnroe
7beb4c9912
Use 16 colors if available
...
Fall back to using bold if there are only 8 colors. This also allowed
bright background colors in 16-color terminals.
I must port this system to torus. I'll be able to remove the awful
termcap patch hack.
2018-08-05 13:28:49 -04:00
Curtis McEnroe
7e02eddcf4
Limit parsed colors to number of mIRC colors
...
Oh boy that's embarrassing.
2018-08-05 11:00:01 -04:00
Curtis McEnroe
6df61b5dda
Show source link on exit
2018-08-04 21:23:28 -04:00
Curtis McEnroe
8fdf2c402d
Implement line editing, scrolling
...
Don't really have a way to implement the M-* keys, and currently missing
C-w.
2018-08-04 20:54:50 -04:00
Curtis McEnroe
7b5bc5aa41
Rename ui chat to log
2018-08-04 17:59:43 -04:00
Curtis McEnroe
b163492552
Fix chat draw boundaries
2018-08-04 17:08:15 -04:00
Curtis McEnroe
aca376bc89
Factor out mIRC color parsing
2018-08-04 16:36:25 -04:00
Curtis McEnroe
ea23dcec3b
Scroll the input pad
2018-08-04 16:17:20 -04:00
Curtis McEnroe
39507f0f8f
Handle terminal resizing
2018-08-04 15:04:48 -04:00
Curtis McEnroe
95b46b8559
Define A_ITALIC if not defined
...
System ncurses on macOS doesn't define it. At least not in El Capitan.
2018-08-04 13:58:44 -04:00
Curtis McEnroe
ccdeb0c556
Split source into several files
...
Can't believe I have to do this.
2018-08-04 13:35:29 -04:00