Delta Chat Core C Interface
Loading...
Searching...
No Matches
Macros
DC_EVENT

Macros

#define DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE   2200
 Tells that the Background fetch was completed (or timed out).
 
#define DC_EVENT_ACCOUNTS_CHANGED   2302
 Inform that the list of accounts has changed (an account removed or added or (not yet implemented) the account order changes)
 
#define DC_EVENT_ACCOUNTS_ITEM_CHANGED   2303
 Inform that an account property that might be shown in the account list changed, namely:
 
#define DC_EVENT_CHANNEL_OVERFLOW   2400
 Inform that some events have been skipped due to event channel overflow.
 
#define DC_EVENT_CHAT_EPHEMERAL_TIMER_MODIFIED   2021
 Chat ephemeral timer changed.
 
#define DC_EVENT_CHAT_MODIFIED   2020
 Chat changed.
 
#define DC_EVENT_CHATLIST_CHANGED   2300
 Inform that set of chats or the order of the chats in the chatlist has changed.
 
#define DC_EVENT_CHATLIST_ITEM_CHANGED   2301
 Inform that all or a single chat list item changed and needs to be rerendered If chat_id is set to 0, then all currently visible chats need to be rerendered, and all not-visible items need to be cleared from cache if the UI has a cache.
 
#define DC_EVENT_CONFIG_SYNCED   2111
 A multi-device synced config value changed.
 
#define DC_EVENT_CONFIGURE_PROGRESS   2041
 Inform about the configuration progress started by dc_configure().
 
#define DC_EVENT_CONNECTIVITY_CHANGED   2100
 The connectivity to the server changed.
 
#define DC_EVENT_CONTACTS_CHANGED   2030
 Contact(s) created, renamed, verified, blocked or deleted.
 
#define DC_EVENT_DELETED_BLOB_FILE   151
 Emitted when a blob file was successfully deleted.
 
#define DC_EVENT_ERROR   400
 The library-user should report an error to the end-user.
 
#define DC_EVENT_ERROR_SELF_NOT_IN_GROUP   410
 An action cannot be performed because the user is not in the group.
 
#define DC_EVENT_IMAP_CONNECTED   102
 Emitted when IMAP connection is established and login was successful.
 
#define DC_EVENT_IMAP_INBOX_IDLE   106
 Emitted before going into IDLE on the Inbox folder.
 
#define DC_EVENT_IMAP_MESSAGE_DELETED   104
 Emitted when a message was successfully marked as deleted on the IMAP server.
 
#define DC_EVENT_IMAP_MESSAGE_MOVED   105
 Emitted when a message was successfully moved on IMAP.
 
#define DC_EVENT_IMEX_FILE_WRITTEN   2052
 A file has been exported.
 
#define DC_EVENT_IMEX_PROGRESS   2051
 Inform about the import/export progress started by dc_imex().
 
#define DC_EVENT_INCOMING_MSG   2005
 There is a fresh message.
 
#define DC_EVENT_INCOMING_MSG_BUNCH   2006
 Downloading a bunch of messages just finished.
 
#define DC_EVENT_INCOMING_REACTION   2002
 A reaction to one's own sent message received.
 
#define DC_EVENT_INCOMING_WEBXDC_NOTIFY   2003
 A webxdc wants an info message or a changed summary to be notified.
 
#define DC_EVENT_INFO   100
 The library-user may write an informational string to the log.
 
#define DC_EVENT_LOCATION_CHANGED   2035
 Location of one or more contact has changed.
 
#define DC_EVENT_MSG_DELETED   2016
 A single message is deleted.
 
#define DC_EVENT_MSG_DELIVERED   2010
 A single message is sent successfully.
 
#define DC_EVENT_MSG_FAILED   2012
 A single message could not be sent.
 
#define DC_EVENT_MSG_READ   2015
 A single message is read by the receiver.
 
#define DC_EVENT_MSGS_CHANGED   2000
 Messages or chats changed.
 
#define DC_EVENT_MSGS_NOTICED   2008
 Messages were marked noticed or seen.
 
#define DC_EVENT_NEW_BLOB_FILE   150
 Emitted when a new blob file was successfully written.
 
#define DC_EVENT_REACTIONS_CHANGED   2001
 Message reactions changed.
 
#define DC_EVENT_SECUREJOIN_INVITER_PROGRESS   2060
 Progress information of a secure-join handshake from the view of the inviter (Alice, the person who shows the QR code).
 
#define DC_EVENT_SECUREJOIN_JOINER_PROGRESS   2061
 Progress information of a secure-join handshake from the view of the joiner (Bob, the person who scans the QR code).
 
#define DC_EVENT_SELFAVATAR_CHANGED   2110
 The user's avatar changed.
 
#define DC_EVENT_SMTP_CONNECTED   101
 Emitted when SMTP connection is established and login was successful.
 
#define DC_EVENT_SMTP_MESSAGE_SENT   103
 Emitted when a message was successfully sent to the SMTP server.
 
#define DC_EVENT_WARNING   300
 The library-user should write a warning string to the log.
 
#define DC_EVENT_WEBXDC_INSTANCE_DELETED   2121
 Message deleted which contained a webxdc instance.
 
#define DC_EVENT_WEBXDC_REALTIME_ADVERTISEMENT   2151
 Advertisement for ephemeral peer channel communication received.
 
#define DC_EVENT_WEBXDC_REALTIME_DATA   2150
 Data received over an ephemeral peer channel.
 
#define DC_EVENT_WEBXDC_STATUS_UPDATE   2120
 Webxdc status update received.
 

Detailed Description

These constants are used as event ID in events returned by dc_get_next_event().

Events typically come with some additional data, use dc_event_get_data1_int(), dc_event_get_data2_int() and dc_event_get_data2_str() to read this data. The meaning of the data depends on the event.

Macro Definition Documentation

◆ DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE

#define DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE   2200

Tells that the Background fetch was completed (or timed out).

This event acts as a marker, when you reach this event you can be sure that all events emitted during the background fetch were processed.

This event is only emitted by the account manager

◆ DC_EVENT_ACCOUNTS_CHANGED

#define DC_EVENT_ACCOUNTS_CHANGED   2302

Inform that the list of accounts has changed (an account removed or added or (not yet implemented) the account order changes)

This event is only emitted by the account manager.

◆ DC_EVENT_ACCOUNTS_ITEM_CHANGED

#define DC_EVENT_ACCOUNTS_ITEM_CHANGED   2303

Inform that an account property that might be shown in the account list changed, namely:

  • is_configured (see dc_is_configured())
  • displayname
  • selfavatar
  • private_tag

This event is emitted from the account whose property changed.

◆ DC_EVENT_CHANNEL_OVERFLOW

#define DC_EVENT_CHANNEL_OVERFLOW   2400

Inform that some events have been skipped due to event channel overflow.

Parameters
data1(int) number of events that have been skipped

◆ DC_EVENT_CHAT_EPHEMERAL_TIMER_MODIFIED

#define DC_EVENT_CHAT_EPHEMERAL_TIMER_MODIFIED   2021

Chat ephemeral timer changed.

Parameters
data1(int) chat_id
data2(int) The timer value in seconds or 0 for disabled timer.

◆ DC_EVENT_CHAT_MODIFIED

#define DC_EVENT_CHAT_MODIFIED   2020

Chat changed.

The name or the image of a chat group was changed or members were added or removed. Or the verify state of a chat has changed. See dc_set_chat_name(), dc_set_chat_profile_image(), dc_add_contact_to_chat() and dc_remove_contact_from_chat().

Parameters
data1(int) chat_id
data20

◆ DC_EVENT_CHATLIST_CHANGED

#define DC_EVENT_CHATLIST_CHANGED   2300

Inform that set of chats or the order of the chats in the chatlist has changed.

Sometimes this is emitted together with DC_EVENT_CHATLIST_ITEM_CHANGED.

◆ DC_EVENT_CHATLIST_ITEM_CHANGED

#define DC_EVENT_CHATLIST_ITEM_CHANGED   2301

Inform that all or a single chat list item changed and needs to be rerendered If chat_id is set to 0, then all currently visible chats need to be rerendered, and all not-visible items need to be cleared from cache if the UI has a cache.

Parameters
data1(int) chat_id chat id of chatlist item to be rerendered, if chat_id = 0 all (cached & visible) items need to be rerendered

◆ DC_EVENT_CONFIG_SYNCED

#define DC_EVENT_CONFIG_SYNCED   2111

A multi-device synced config value changed.

Maybe the app needs to refresh smth. For uniformity this is emitted on the source device too. The value isn't reported, otherwise it would be logged which might not be good for privacy. You can get the new value with dc_get_config(context, data2).

Parameters
data10
data2(char*) Configuration key.

◆ DC_EVENT_CONFIGURE_PROGRESS

#define DC_EVENT_CONFIGURE_PROGRESS   2041

Inform about the configuration progress started by dc_configure().

Parameters
data1(int) 0=error, 1-999=progress in permille, 1000=success and done.
data2(char*) A progress comment, error message or NULL if not applicable.

◆ DC_EVENT_CONNECTIVITY_CHANGED

#define DC_EVENT_CONNECTIVITY_CHANGED   2100

The connectivity to the server changed.

This means that you should refresh the connectivity view and possibly the connectivtiy HTML; see dc_get_connectivity() and dc_get_connectivity_html() for details.

Parameters
data10
data20

◆ DC_EVENT_CONTACTS_CHANGED

#define DC_EVENT_CONTACTS_CHANGED   2030

Contact(s) created, renamed, verified, blocked or deleted.

Parameters
data1(int) contact_id of the changed contact or 0 on batch-changes or deletion.
data20

◆ DC_EVENT_DELETED_BLOB_FILE

#define DC_EVENT_DELETED_BLOB_FILE   151

Emitted when a blob file was successfully deleted.

Parameters
data10
data2(char*) Path name

◆ DC_EVENT_ERROR

#define DC_EVENT_ERROR   400

The library-user should report an error to the end-user.

As most things are asynchronous, things may go wrong at any time and the user should not be disturbed by a dialog or so. Instead, use a bubble or so.

However, for ongoing processes (e.g. dc_configure()) or for functions that are expected to fail (e.g. dc_continue_key_transfer()) it might be better to delay showing these events until the function has really failed (returned false). It should be sufficient to report only the last error in a message box then.

Parameters
data10
data2(char*) Error string, always set, never NULL. Some error strings are taken from dc_set_stock_translation(), however, most error strings will be in English language.

◆ DC_EVENT_ERROR_SELF_NOT_IN_GROUP

#define DC_EVENT_ERROR_SELF_NOT_IN_GROUP   410

An action cannot be performed because the user is not in the group.

Reported e.g. after a call to dc_set_chat_name(), dc_set_chat_profile_image(), dc_add_contact_to_chat(), dc_remove_contact_from_chat(), dc_send_text_msg() or another sending function.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_IMAP_CONNECTED

#define DC_EVENT_IMAP_CONNECTED   102

Emitted when IMAP connection is established and login was successful.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_IMAP_INBOX_IDLE

#define DC_EVENT_IMAP_INBOX_IDLE   106

Emitted before going into IDLE on the Inbox folder.

Parameters
data10
data20

◆ DC_EVENT_IMAP_MESSAGE_DELETED

#define DC_EVENT_IMAP_MESSAGE_DELETED   104

Emitted when a message was successfully marked as deleted on the IMAP server.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_IMAP_MESSAGE_MOVED

#define DC_EVENT_IMAP_MESSAGE_MOVED   105

Emitted when a message was successfully moved on IMAP.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_IMEX_FILE_WRITTEN

#define DC_EVENT_IMEX_FILE_WRITTEN   2052

A file has been exported.

A file has been written by dc_imex(). This event may be sent multiple times by a single call to dc_imex().

A typical purpose for a handler of this event may be to make the file public to some system services.

Parameters
data10
data2(char*) The path and the file name.

◆ DC_EVENT_IMEX_PROGRESS

#define DC_EVENT_IMEX_PROGRESS   2051

Inform about the import/export progress started by dc_imex().

Parameters
data1(int) 0=error, 1-999=progress in permille, 1000=success and done
data20

◆ DC_EVENT_INCOMING_MSG

#define DC_EVENT_INCOMING_MSG   2005

There is a fresh message.

Typically, the user will show an notification when receiving this message.

There is no extra DC_EVENT_MSGS_CHANGED event send together with this event.

If the message is a webxdc info message, dc_msg_get_parent() returns the webxdc instance the notification belongs to.

Parameters
data1(int) chat_id
data2(int) msg_id

◆ DC_EVENT_INCOMING_MSG_BUNCH

#define DC_EVENT_INCOMING_MSG_BUNCH   2006

Downloading a bunch of messages just finished.

This is an event to allow the UI to only show one notification per message bunch, instead of cluttering the user with many notifications. UI may store DC_EVENT_INCOMING_MSG events and display notifications for all messages at once when this event arrives.

Parameters
data10
data20

◆ DC_EVENT_INCOMING_REACTION

#define DC_EVENT_INCOMING_REACTION   2002

A reaction to one's own sent message received.

Typically, the UI will show a notification for that.

In addition to this event, DC_EVENT_REACTIONS_CHANGED is emitted.

Parameters
data1(int) contact_id ID of the contact sending this reaction.
data2(int) msg_id + (char*) reaction. ID of the message for which a reaction was received in dc_event_get_data2_int(), and the reaction as dc_event_get_data2_str(). string must be passed to dc_str_unref() afterwards.

◆ DC_EVENT_INCOMING_WEBXDC_NOTIFY

#define DC_EVENT_INCOMING_WEBXDC_NOTIFY   2003

A webxdc wants an info message or a changed summary to be notified.

Parameters
data1(int) contact_id ID and (char*) href.
  • dc_event_get_data1_int() returns contact_id of the sending contact.
  • dc_event_get_data1_str() returns the href as set to update.href.
data2(int) msg_id and (char*) text_to_notify.
  • dc_event_get_data2_int() returns the msg_id, referring to the webxdc-info-message, if there is any. Sometimes no webxdc-info-message is added to the chat and yet a notification is sent; in this case the msg_id of the webxdc instance is returned.
  • dc_event_get_data2_str() returns text_to_notify, the text that shall be shown in the notification. string must be passed to dc_str_unref() afterwards.

◆ DC_EVENT_INFO

#define DC_EVENT_INFO   100

The library-user may write an informational string to the log.

This event should not be reported to the end-user using a popup or something like that.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_LOCATION_CHANGED

#define DC_EVENT_LOCATION_CHANGED   2035

Location of one or more contact has changed.

Parameters
data1(int) contact_id of the contact for which the location has changed. If the locations of several contacts have been changed, e.g. after calling dc_delete_all_locations(), this parameter is set to 0.
data20

◆ DC_EVENT_MSG_DELETED

#define DC_EVENT_MSG_DELETED   2016

A single message is deleted.

Parameters
data1(int) chat_id
data2(int) msg_id

◆ DC_EVENT_MSG_DELIVERED

#define DC_EVENT_MSG_DELIVERED   2010

A single message is sent successfully.

State changed from DC_STATE_OUT_PENDING to DC_STATE_OUT_DELIVERED.

Parameters
data1(int) chat_id
data2(int) msg_id

◆ DC_EVENT_MSG_FAILED

#define DC_EVENT_MSG_FAILED   2012

A single message could not be sent.

State changed from DC_STATE_OUT_PENDING, DC_STATE_OUT_DELIVERED or DC_STATE_OUT_MDN_RCVD to DC_STATE_OUT_FAILED.

Parameters
data1(int) chat_id
data2(int) msg_id

◆ DC_EVENT_MSG_READ

#define DC_EVENT_MSG_READ   2015

A single message is read by the receiver.

State changed from DC_STATE_OUT_DELIVERED to DC_STATE_OUT_MDN_RCVD.

Parameters
data1(int) chat_id
data2(int) msg_id

◆ DC_EVENT_MSGS_CHANGED

#define DC_EVENT_MSGS_CHANGED   2000

Messages or chats changed.

One or more messages or chats changed for various reasons in the database:

  • Messages have been sent, received or removed.
  • Chats have been created, deleted or archived.
  • A draft has been set.
Parameters
data1(int) chat_id if only a single chat is affected by the changes, otherwise 0.
data2(int) msg_id if only a single message is affected by the changes, otherwise 0.

◆ DC_EVENT_MSGS_NOTICED

#define DC_EVENT_MSGS_NOTICED   2008

Messages were marked noticed or seen.

The UI may update badge counters or stop showing a chatlist-item with a bold font.

This event is emitted e.g. when calling dc_markseen_msgs() or dc_marknoticed_chat() or when a chat is answered on another device. Do not try to derive the state of an item from just the fact you received the event; use e.g. dc_msg_get_state() or dc_get_fresh_msg_cnt() for this purpose.

Parameters
data1(int) chat_id
data20

◆ DC_EVENT_NEW_BLOB_FILE

#define DC_EVENT_NEW_BLOB_FILE   150

Emitted when a new blob file was successfully written.

Parameters
data10
data2(char*) Path name

◆ DC_EVENT_REACTIONS_CHANGED

#define DC_EVENT_REACTIONS_CHANGED   2001

Message reactions changed.

Parameters
data1(int) chat_id ID of the chat affected by the changes.
data2(int) msg_id ID of the message for which reactions were changed.

◆ DC_EVENT_SECUREJOIN_INVITER_PROGRESS

#define DC_EVENT_SECUREJOIN_INVITER_PROGRESS   2060

Progress information of a secure-join handshake from the view of the inviter (Alice, the person who shows the QR code).

These events are typically sent after a joiner has scanned the QR code generated by dc_get_securejoin_qr().

Parameters
data1(int) The ID of the contact that wants to join.
data2(int) The progress as: 300=vg-/vc-request received, typically shown as "bob@addr joins". 600=vg-/vc-request-with-auth received, vg-member-added/vc-contact-confirm sent, typically shown as "bob@addr verified". 800=contact added to chat, shown as "bob@addr securely joined GROUP". Only for the verified-group-protocol. 1000=Protocol finished for this contact.

◆ DC_EVENT_SECUREJOIN_JOINER_PROGRESS

#define DC_EVENT_SECUREJOIN_JOINER_PROGRESS   2061

Progress information of a secure-join handshake from the view of the joiner (Bob, the person who scans the QR code).

The events are typically sent while dc_join_securejoin(), which may take some time, is executed.

Parameters
data1(int) The ID of the inviting contact.
data2(int) The progress as: 400=vg-/vc-request-with-auth sent, typically shown as "alice@addr verified, introducing myself." (Bob has verified alice and waits until Alice does the same for him) 1000=vg-member-added/vc-contact-confirm received

◆ DC_EVENT_SELFAVATAR_CHANGED

#define DC_EVENT_SELFAVATAR_CHANGED   2110

The user's avatar changed.

You can get the new avatar file with dc_get_config(context, "selfavatar").

◆ DC_EVENT_SMTP_CONNECTED

#define DC_EVENT_SMTP_CONNECTED   101

Emitted when SMTP connection is established and login was successful.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_SMTP_MESSAGE_SENT

#define DC_EVENT_SMTP_MESSAGE_SENT   103

Emitted when a message was successfully sent to the SMTP server.

Parameters
data10
data2(char*) Info string in English language.

◆ DC_EVENT_WARNING

#define DC_EVENT_WARNING   300

The library-user should write a warning string to the log.

This event should not be reported to the end-user using a popup or something like that.

Parameters
data10
data2(char*) Warning string in English language.

◆ DC_EVENT_WEBXDC_INSTANCE_DELETED

#define DC_EVENT_WEBXDC_INSTANCE_DELETED   2121

Message deleted which contained a webxdc instance.

Parameters
data1(int) msg_id

◆ DC_EVENT_WEBXDC_REALTIME_ADVERTISEMENT

#define DC_EVENT_WEBXDC_REALTIME_ADVERTISEMENT   2151

Advertisement for ephemeral peer channel communication received.

This can be used by bots to initiate peer-to-peer communication from their side.

Parameters
data1(int) msg_id
data20

◆ DC_EVENT_WEBXDC_REALTIME_DATA

#define DC_EVENT_WEBXDC_REALTIME_DATA   2150

Data received over an ephemeral peer channel.

Parameters
data1(int) msg_id
data2(int) + (char*) binary data. length is returned as integer with dc_event_get_data2_int() and binary data is returned as dc_event_get_data2_str(). Binary data must be passed to dc_str_unref() afterwards.

◆ DC_EVENT_WEBXDC_STATUS_UPDATE

#define DC_EVENT_WEBXDC_STATUS_UPDATE   2120

Webxdc status update received.

To get the received status update, use dc_get_webxdc_status_updates() with serial set to the last known update (in case of special bots, status_update_serial from data2 may help to calculate the last known update for dc_get_webxdc_status_updates(); UIs must not peek at this parameter to avoid races in the status replication eg. when events arrive while initial updates are played back).

To send status updates, use dc_send_webxdc_status_update().

Parameters
data1(int) msg_id
data2(int) status_update_serial - must not be used by UI implementations.