Amendments on January 18, 2023

chatter: Tab bar is no longer a GrafPort, rename it

jcs made amendment 48 about 1 year ago

Amendments on January 17, 2023

Amendments on January 11, 2023

*: Add tabbed view for multiple channels

jcs made amendment 46 about 1 year ago

*: Large reorganization in preparation for multiple chat windows

Each channel belongs to a connection, and each channel belongs to
a chatter. Right now they're all the same chatter, but eventually
they'll be different windows or different TE buffers on the same
The connection and channel are passed to chatter_printf so it can
eventually determine where to print the text.
jcs made amendment 42 about 1 year ago

Amendments on December 1, 2022

chatter: Implement window resizing

Since our input field is taller than a scrollbar, we have to draw our
own grow icon that is a little taller.
jcs made amendment 40 about 1 year ago

Amendments on November 30, 2022

util/focusable: Import newer versions from other projects

jcs made amendment 39 about 1 year ago

Amendments on September 6, 2022

chatter: Pass window to UpdateScrollbarForTE

jcs made amendment 38 about 1 year ago

*: Use xfree, malloc notes

jcs made amendment 33 about 1 year ago

Amendments on February 10, 2022

focusable: Let each dictate the minimum sleep time for WaitNextEvent

When a window is hiding in the background, we can sleep up to a whole
jcs made amendment 28 over 2 years ago

chatter+irc: Rewrite nick list handling

Use a linked list to sort the array of nicks to avoid having to
shuffle around struct members on every re-sort. This also lets us
process JOINs and PARTs/QUITs on an individual nick level to just
do one corresponding list add or remove and avoid re-sorting or
reloading the entire list.
This makes it possible to join channels with many hundreds of people
in them and keep running smoothly. The initial load still takes a
while, but it works.
jcs made amendment 24 over 2 years ago

Amendments on February 8, 2022

chatter: Check for TE overflow, shift out old lines

We can overflow in a few different ways, so check for all of them.
If we're about to overflow, shift out a handful of old lines before
adding new ones, but do it with a blank clipping rect so we don't get
a flashing update.
jcs made amendment 19 over 2 years ago

chatter: Inval window in resume to force a redraw

jcs made amendment 17 over 2 years ago

Amendments on February 7, 2022

irc: Handle /me and CTCP VERSION, move vers resource handling to util

Also try to properly send a QUIT message when we cmd+q
jcs made amendment 14 over 2 years ago

irc: Support IRC server passwords for automatic NickServ identification

This was much harder than it needed to be because there is no
way to have password fields in a dialog box. We are now faking it by
intercepting keystrokes on such fields and manipulating a char array
behind the scenes while just passing • characters to the TextEdit
jcs made amendment 13 over 2 years ago

Amendments on February 6, 2022

chatter: Minor tweaks

Also fix about box and use WaitNextEvent since that's not the slow
point in MOTD processing
jcs made amendment 9 over 2 years ago

Amendments on February 4, 2022

chatter: Use TESelView and a wide dest rect on input box

"the Dialog Manager makes the destination rectangle extend twice as
far on the right as the view rectangle, so that horizontal scrolling
can be used in normal dialog boxes"
jcs made amendment 7 over 2 years ago

chatter: More performant text display, hide on close

Properly handle multiple focusables and restack as needed
jcs made amendment 6 over 2 years ago

Amendments on February 2, 2022

*: Lots more progress, re-do connection dialog processing

jcs made amendment 4 over 2 years ago

Amendments on February 1, 2022