Commit Graph

84 Commits (d85c1c3f9649608bc003d66a6e9d2c696188bf19)

Author SHA1 Message Date
Curtis McEnroe d85c1c3f96
Update tag colors
This kind of incurs a lot of writes usually for no reason. The only
place this matters is when cold-opening a /query. I wonder if there's a
better way to do that.
2019-02-25 16:12:41 -05:00
Curtis McEnroe 6b97c59756
Add color to tags 2019-02-25 16:02:41 -05:00
Curtis McEnroe 23ec3fd1b7
Add M-a to switch to hot or unread window 2019-02-25 14:09:06 -05:00
Curtis McEnroe 9d6f9d76c3
Refactor uiRead
Centralizes the branching.
2019-02-25 12:51:21 -05:00
Curtis McEnroe e8f40a2daf
Scroll by full pages with PageUp/PageDown 2019-02-24 18:20:39 -05:00
Curtis McEnroe c06a457461
Add C-n and C-p key bindings to switch windows 2019-02-23 12:24:39 -05:00
Curtis McEnroe 55866686a8
Call def_prog_mode after termNoFlow
So that the settings get restored after /url or /man.
2019-02-23 11:42:42 -05:00
Curtis McEnroe c168e54f06
Move IRC formatting reset to C-s
Opens C-n for window switching.
2019-02-22 23:56:55 -05:00
Curtis McEnroe facc3aa9a0
Disable terminal flow control
This opens up C-o, C-q and C-s for key bindings without C-v.
2019-02-22 23:31:33 -05:00
Curtis McEnroe 200842aa64
Bind up and down arrows to scroll
Honestly it's kind of weird that IRC clients usually use these for input
history.
2019-02-22 22:22:16 -05:00
Curtis McEnroe 2faa73abd6
Remove topic TODO
I played around with it and it doesn't look right unless there is only
one channel listed in the status.
2019-02-22 17:44:39 -05:00
Curtis McEnroe 274a5f7d6e
Update status line after scrolling and term events 2019-02-22 15:54:59 -05:00
Curtis McEnroe e20c64d5d7
Reorganize UI code for the umpteenth time
It's actually in a good state now, I think.
2019-02-22 14:11:50 -05:00
Curtis McEnroe f3db938ded
Replace "view" with "window"
I think originally I didn't want to use the same word as curses WINDOW
but it's really much clearer for the user if they're just called
windows. UI code probably needs yet another rewrite though. Still feels
messy.
2019-02-21 23:17:40 -05:00
Curtis McEnroe c0c59d093f
Remove ROT13
It's just not convenient when it can only do the whole line...
2019-02-21 23:17:40 -05:00
Curtis McEnroe cc30e13e9f
Avoid unused variable warnings with getyx 2019-01-25 04:19:07 -05:00
Curtis McEnroe 0b3d927e03
Add M-? to apply ROT13 2018-12-16 17:19:06 -05:00
Curtis McEnroe a2a6ce99c0
Underline own nick 2018-12-15 01:09:56 -05:00
Curtis McEnroe 14c60a15bc
Add uint typedef 2018-12-08 13:18:13 -05:00
Curtis McEnroe 2797ac8abf
Rename verbose to raw
And change the format of the sticky tag names again.
2018-12-05 14:46:34 -05:00
Curtis McEnroe e01b03c963
Revert half-working reconnecting stuff 2018-12-04 14:58:14 -05:00
Curtis McEnroe 7ea54828a6
Call uiShow at init so that TermFocus gets set 2018-12-03 15:52:04 -05:00
Curtis McEnroe 2222744192
Fix UI resume on /url 2018-12-02 17:42:04 -05:00
Curtis McEnroe 5c17393d2b
Crudely handle reconnecting after suspend 2018-12-01 22:05:37 -05:00
Curtis McEnroe 5881a97c33
Show unread count in term title
Also render status line with just spaces. Looks much cleaner this way.
2018-11-29 13:29:20 -05:00
Curtis McEnroe d9c47aa94b
Add M-m key to insert a blank line
For manually marking the log.
2018-11-27 16:18:03 -05:00
Curtis McEnroe 2eaa36a309
Add notification with notify-send 2018-10-28 02:44:09 -04:00
Curtis McEnroe 35fdcbc285
Rework status line 2018-10-22 16:09:40 -04:00
Curtis McEnroe 3e2a9c2056
Factor out uiPrompt to call on nick change 2018-09-14 23:37:09 -04:00
Curtis McEnroe 714a703935
Check width of entire next word including codes
This results in a tiny bit of premature wrapping for color codes, but
that isn't a problem.
2018-09-14 18:54:18 -04:00
Curtis McEnroe 6aa42b852b
Remove word handling from formatParse 2018-09-14 18:48:03 -04:00
Curtis McEnroe 326bc5163d
Preview with nick in input window 2018-09-13 23:44:55 -04:00
Curtis McEnroe 9ca6814933
Avoid uninitialized x in uiRead 2018-09-13 15:39:40 -04:00
Curtis McEnroe 9a69869d39
Add IRCDefault to colors enum 2018-09-13 15:17:41 -04:00
Curtis McEnroe 4c4d91b449
Rewrite UI again
The persistent topic is gone and the status line is now at the top. The
status formatting still needs to be reworked. I also want to try showing
the nick in the input window so it really looks like your next message.
2018-09-13 01:03:47 -04:00
Curtis McEnroe b36a134702
Use formatParse split to position input cursor 2018-09-12 22:55:02 -04:00
Curtis McEnroe 872608e5c4
Factor out IRC formatting parsing 2018-09-12 20:23:45 -04:00
Curtis McEnroe 0cf067315d
Preserve scroll position when new lines appear 2018-09-05 17:10:26 -04:00
Curtis McEnroe 240f9ebf84
Use PascalCase for constants
Begone underscores.
2018-09-02 16:13:00 -04:00
Curtis McEnroe ccb54d36d9
Add status indicators 2018-09-02 14:04:05 -04:00
Curtis McEnroe 140f6e896d
Mark views when they are created 2018-09-02 01:01:41 -04:00
Curtis McEnroe 133ff4e651
Avoid unportable iswascii(3) 2018-08-20 17:20:44 -04:00
Curtis McEnroe 38fc42f03d
Add UI "heat" for status/messages/pings
Bring back the beeps! Allow pings from notices. Also factor out
dequoting of part/quit messages.
2018-08-17 14:00:08 -04:00
Curtis McEnroe ed9961410e
Set title to tag name 2018-08-13 23:09:53 -04:00
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