Chat-O-Matic/application/CayaProtocolMessages.h
Jaidyn Ann 0326cee687 Move roster into its own generic window
The roster list is now split from MainWindow into RosterWindow, which
can be used arbitrarily for selecting something from contacts. The
im_what, title, and target can be specified.

Right now it's in use under the Chat menu, "New chat…". Chats can only
have two members (DM/PM), so "New chat…" directly leads to the roster
list.

In the future, roster list might be extended to allow specification of
non-contact users based on their identifiers, or filtering based on
protocol/account― this could help it with "invites" to future rooms,
etc.

IM_CREATE_CHAT and IM_CHAT_CREATED were also added to the protocol API,
allowing a new chat to be explicitly created from Caya or the protocol.
2021-05-26 07:48:25 -05:00

188 lines
3.8 KiB
C

/*
* Copyright 2009-2011, Andrea Anzani. All rights reserved.
* Copyright 2009-2011, Pier Luigi Fiorini. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _CAYA_PROTOCOL_MESSAGES_H
#define _CAYA_PROTOCOL_MESSAGES_H
/**
* What-codes for messages.
*/
enum message_what_codes {
//! All client <> protocol communication uses this what-code
IM_MESSAGE = 'IMme',
//! Used for very important (blocking) error messages
IM_ERROR = 'IMer',
//! Returned after a request has succeded
IM_ACTION_PERFORMED = 'IMap'
};
/**
* Valid codes for im_what field.
*/
enum im_what_code {
/*
* Messages that involves server-side contact list.
*/
//! Request a server-side contact list from protocol
IM_GET_CONTACT_LIST = 1,
//! Server-side contact list received
IM_CONTACT_LIST = 2,
//! Contact(s) was added to the server-side list
IM_CONTACT_LIST_ADD_CONTACT = 3,
//! Contact(s) removed from the server-side list
IM_CONTACT_LIST_REMOVED_CONTACT = 4,
/*
* Messages related to text chat.
*/
//! Send a chat message to a contact
IM_SEND_MESSAGE = 20,
//! Chat message has been sent to contact
IM_MESSAGE_SENT = 21,
//! Chat message received from contact
IM_MESSAGE_RECEIVED = 22,
//! Contact started typing
IM_CONTACT_STARTED_TYPING = 23,
//! Contact stopped typing
IM_CONTACT_STOPPED_TYPING = 24,
//! Contact gone
IM_CONTACT_GONE = 25,
//! User started typing
IM_USER_STARTED_TYPING = 26,
//! User stopped typing
IM_USER_STOPPED_TYPING = 27,
//! Logs received
IM_LOGS_RECEIVED = 28,
//! Create an individual chat
IM_CREATE_CHAT = 29,
//! Chat has been created
IM_CHAT_CREATED = 30,
/*
* Messages related to contact changes.
*/
//! Change contact's status
IM_SET_NICKNAME = 40,
//! Contact's status has changed
IM_NICKNAME_SET = 41,
/*
* Messages related to contact's information received from protocols.
*/
//! Received contact new status
IM_STATUS_SET = 60,
//! Contact's avatar icon was changed
IM_AVATAR_SET = 61,
//! Get contact information
IM_GET_CONTACT_INFO = 62,
//! Received contact information
IM_CONTACT_INFO = 63,
//! Get extended contact information
IM_GET_EXTENDED_CONTACT_INFO = 64,
//! Received extended contact information
IM_EXTENDED_CONTACT_INFO = 65,
/*
* Messages that involve changing own information.
*/
//! Change own nickname
IM_SET_OWN_NICKNAME = 80,
//! Own nickname was changed
IM_OWN_NICKNAME_SET = 81,
//! Change own status
IM_SET_OWN_STATUS = 82,
// Own status was chagned
IM_OWN_STATUS_SET = 83,
//! Get own contact information
IM_OWN_CONTACT_INFO = 84,
//! Change own avatar icon
IM_SET_OWN_AVATAR = 85,
//! Own avatar icon was changed
IM_OWN_AVATAR_SET = 86,
/*
* Contacts registration.
*/
//! Start listening to changes in these contact's statuses
IM_REGISTER_CONTACTS = 100,
//! Stop listening to status changes from these contacts
IM_UNREGISTER_CONTACTS = 101,
/*
* Authorization.
*/
//! Ask authorization to contact
IM_ASK_AUTHORIZATION = 120,
//! Authorization response received from contact
IM_AUTHORIZATION_RECEIVED = 121,
//! Authorization request received from contact
IM_AUTHORIZATION_REQUEST = 122,
//! Authorization response given to contact
IM_AUTHORIZATION_RESPONSE = 123,
//! Contact has been authorized
IM_CONTACT_AUTHORIZED = 124,
/*
* Miscellaneous.
*/
//! Progress message received, could be login sequence, file transfer etc...
IM_PROGRESS = 140,
//! Notifications
IM_NOTIFICATION = 141,
/*
* Special messages
*/
//! Special message forwarded to protocol
IM_SPECIAL_TO_PROTOCOL = 1000,
//! Special message forwarded from protocol
IM_SPECIAL_FROM_PROTOCOL = 1001
};
#endif // _CAYA_PROTOCOL_MESSAGES_H