Commit Graph

545 Enmetoj

Author SHA1 Message Date
Jaidyn Ann a26c33e5f3 (irc) Send MOTD and other system messages to account buffer 2021-08-12 15:47:06 -05:00
Jaidyn Ann 057e7fba9b Add "system buffer" per protocol
Now, per each account, there is a read-only chat view associated with
it, accessible through its item in the conversations list. This can be
used to place system messages, MOTDs, insignificant errors, etc.

Protocols can send text to this buffer by specifying no "chat_id" in
an IM_MESSAGE_RECEIVED message.
2021-08-12 15:43:52 -05:00
Jaidyn Ann d16f397fe6 (irc) Proper newline use, sending unicode messages 2021-08-12 13:55:32 -05:00
Jaidyn Ann c3994e4a73 (irc) Fix debug output 2021-08-12 10:14:46 -05:00
Jaidyn Ann 5fb7d5268c (irc) Report errors, use WELCOME-given nick 2021-08-11 20:47:40 -05:00
Jaidyn Ann 409eaede86 Store users' names in binary chat logs 2021-08-11 20:22:42 -05:00
Jaidyn Ann fed3b9d9f0 Display message in chat on subject change 2021-08-11 19:46:33 -05:00
Jaidyn Ann 3f754bd79d (irc) Handling of QUIT 2021-08-11 18:51:41 -05:00
Jaidyn Ann ca704cb7b8 (irc) Add protocol icon
This one borrowed from the Haiku tree― /data/artwork/icons/App_Chat
2021-08-11 17:40:03 -05:00
Jaidyn Ann 8aa4ed3e3c Update README 2021-08-11 17:25:52 -05:00
Jaidyn Ann b576311552 (libinterface) Use default textruns if none selected, fix multi-URL lines 2021-08-11 17:14:47 -05:00
Jaidyn Ann 08292bdeda (libinterface) Better URL-handling in UrlTextView 2021-08-11 16:28:13 -05:00
Jaidyn Ann f5ba403e55 Improve auto-complete performance, include nicks
Previously, user auto-completion would only use the user IDs- now user
names are completed for also.
2021-08-11 12:07:11 -05:00
Jaidyn Ann 6b8823d213 (irc) Better param parsing 2021-08-11 10:22:32 -05:00
Jaidyn Ann 12215266d0 Display message in chat when user changes nick 2021-08-10 18:03:37 -05:00
Jaidyn Ann 35cd5cbc8f (irc) Write-lock and responding to pings 2021-08-10 12:53:20 -05:00
Jaidyn Ann 340aa405f3 (irc) Setting own/other nicks 2021-08-10 10:54:36 -05:00
Jaidyn Ann 8ac73ca50e (irc) Faster readying of protocol 2021-08-10 10:00:26 -05:00
Jaidyn Ann 723d6c1950 (irc) Add numerics file 2021-08-10 09:33:00 -05:00
Jaidyn Ann d0367db0bb (irc) Sending/receiving invites 2021-08-10 00:03:28 -05:00
Jaidyn Ann adee8d6181 (irc) Sending/receiving messages (PRIVMSG) 2021-08-09 23:08:40 -05:00
Jaidyn Ann 31ad5abf81 (irc) Leaving rooms 2021-08-09 22:33:56 -05:00
Jaidyn Ann 40eaac550f Don't archive non-existant protocol icons 2021-08-09 22:10:07 -05:00
Jaidyn Ann e05d14dc95 (irc) Joining rooms, subject, user-list 2021-08-09 22:08:50 -05:00
Jaidyn Ann d692c34fea (irc) Handle NOTICE and better joining 2021-08-09 19:03:37 -05:00
Jaidyn Ann c202ef33ac (irc) Start add-on rewrite
The IRC add-on previously used libircclient, which is becoming inactive,
and newer versions don't compile on Haiku easily. A fresh rewrite seems
to be a better option.

So far it only supports basic connection and receiving the MOTD. :p
2021-08-09 14:07:50 -05:00
Jaidyn Ann 9267c740a4 Sensible defaults for unnecessary ChatProtocol methods 2021-08-09 10:48:45 -05:00
Jaidyn Ann c09c884068 (jabber) Rename PARTICIPANT_*_TYPING message 2021-08-09 07:09:05 -05:00
Jaidyn Ann 373dcb4a58 Protocol message tweaks, bump API version
Some chat protocol messages' names have been changed to more fitting or
consistent names― e.g., "IM_AVATAR_SET" to "IM_USER_AVATAR_SET", or
"IM_CONTACT_LIST_*" to "IM_ROSTER_*" (to agree with Cardie's usage of
the word).

The API version has been bumped― for the forseeable future (at least
several months, I promise!) no compatibility-breaking changes will be
introduced. Until then, any new feautures or message slots will be
additive and optional.
2021-08-08 21:01:42 -05:00
Jaidyn Ann 4bd821eee5 Account-toggling through Accounts menu 2021-08-07 17:37:16 -05:00
Jaidyn Ann abb4d44684 Populate 'Accounts' menu with account submenus 2021-08-06 14:14:14 -05:00
Jaidyn Ann 2e746a975a Split account preferences into dedicated window
Found in the new "Accounts" menubar option.
2021-08-06 12:21:17 -05:00
Jaidyn Ann a9022755ca Make TemplateWindow use instance rather than index 2021-08-06 11:10:10 -05:00
Jaidyn Ann 39e4fc9ac7 Make AccountsMenu use instance rather than index 2021-08-06 11:04:00 -05:00
Jaidyn Ann 3861fa718d Remove unused APP_*_CHAT_WINDOW messages 2021-08-05 21:05:59 -05:00
Jaidyn Ann e8e1ce0b05 Error notification if applying protocol settings fails 2021-08-05 20:43:08 -05:00
Jaidyn Ann a49e957b16 Re-enabling of accounts after disable
Accounts can now be toggled on-and-off freely.
Fixes #42
2021-08-05 19:31:26 -05:00
Jaidyn Ann f0ce3e87c6 Support generally setting own nick, own UserItems
Seperate UserItems are now created for each list, too, rather than a
single one being created per-user. This functionally works a lot nicer.

But onto more important things… now setting the user's own nick should
work quite well. Finally. =w=

This has given me a good bit of trouble over the past couple of days―
setting the user's nick *worked*, but it wouldn't propagate to its
corresponding UserItem nor its UserInfoDialog. It would, however, work
with the StatusView.

These are all registered Observers of the User itself, so if one works,
they *all* should, them all being registered to the same User.

Now, if a given User isn't found in the ProtocolLooper's user-list,
the Conversation class will take it upon itself to create a new
one and add it to both of their respective lists.

So the user's own contact would be set in the ProtocolLooper― but it
*wouldn't* be added to the user-list.

Hilarity ensues as two seperate objects for the user's own contact would
be created.

Since the StatusView is registered to the ProtocolLooper's "real" own contact
slot, it would receive all updates… but since Conversations' user-lists and
items would be registered to the Conversation-created "fake" user, they
would be borked.

Simple oversight, but wow it hecked with me. :P
2021-08-05 14:28:56 -05:00
Jaidyn Ann 128ac91d56 (purple) Fix setting own nick 2021-08-05 10:20:52 -05:00
Jaidyn Ann c7593fa7dd Make User/ConversationInfoWindow Observers
Now they will observe changes in their corresponding object (if the
room's name changes, so will the label in the ConversationInfoWindow,
etc).
2021-08-04 13:51:31 -05:00
Jaidyn Ann 7c2362a851 Add 'Room info' dialogue
Fixes #55
2021-08-04 12:44:20 -05:00
Jaidyn Ann d3f775d8b8 (jabber) Setting own nickname 2021-08-03 19:35:09 -05:00
Jaidyn Ann db70ce4f57 Tweak Master Foo dialog 2021-08-03 16:33:18 -05:00
Jaidyn Ann 8f3d206db1 (purple) Other users changing nick 2021-08-03 16:23:27 -05:00
Jaidyn Ann f439ca9aa6 Document IM_SET_OWN_NICKNAME, bold nick 2021-08-03 16:05:57 -05:00
Jaidyn Ann 8549404db5 (purple) Support setting own nick 2021-08-03 14:52:37 -05:00
Jaidyn Ann 4cb52619aa Fix handling of commands (barring /me) 2021-08-03 14:32:30 -05:00
Jaidyn Ann 984f066070 Multi-account StatusView; set info per-account
Now the StatusView (bottom-left corner, right below the room list) can
be used to set the nickname and status not only for all accounts at
once, but for managing the status/nick of individual accounts.

AccountManager now can set details of a single account, too.

MainWindow is no longer an Observer (as it just passed the information
along to StatusView― now StatusView manages that itself).

NicknameTextControl was removed, not being in use.
2021-08-03 13:24:36 -05:00
Jaidyn Ann 47ca0f4169 Make all AccountsMenu items BitmapMenuItems
Now all account menus will have the pretty protocol icons to go with
them. :)

The icons are scaled to text-size so that they might be displayed in a
corresponding MenuButton, or maybe BMenuField at some point, and put
into the ImageCache.

The menu items do not have ownership of the bitmaps.
2021-08-03 10:29:19 -05:00
Jaidyn Ann 71917d4a4d (libinterface) Optional bitmap-ownership with BitmapMenuItem 2021-08-03 10:15:04 -05:00