1
0
Fork 0
mirror of https://github.com/deltachat/deltachat-core.git synced 2025-10-05 19:42:04 +02:00
This commit is contained in:
B. Petersen 2017-11-16 12:36:49 +01:00
parent 7571458c32
commit 9e1db1d181
7 changed files with 195 additions and 64 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -115,28 +115,23 @@ Public Attributes</h2></td></tr>
<tr class="memitem:a568c4e6fb9633ffe9a76428db16e0201"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#a568c4e6fb9633ffe9a76428db16e0201">m_type</a></td></tr>
<tr class="memdesc:a568c4e6fb9633ffe9a76428db16e0201"><td class="mdescLeft">&#160;</td><td class="mdescRight">Chat type. <a href="#a568c4e6fb9633ffe9a76428db16e0201">More...</a><br /></td></tr>
<tr class="separator:a568c4e6fb9633ffe9a76428db16e0201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbd344d8d361a1a4d14bfc9b5dc57140"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abbd344d8d361a1a4d14bfc9b5dc57140"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#abbd344d8d361a1a4d14bfc9b5dc57140">m_name</a></td></tr>
<tr class="memdesc:abbd344d8d361a1a4d14bfc9b5dc57140"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL if unset. <br /></td></tr>
<tr class="memitem:abbd344d8d361a1a4d14bfc9b5dc57140"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#abbd344d8d361a1a4d14bfc9b5dc57140">m_name</a></td></tr>
<tr class="memdesc:abbd344d8d361a1a4d14bfc9b5dc57140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the chat. <a href="#abbd344d8d361a1a4d14bfc9b5dc57140">More...</a><br /></td></tr>
<tr class="separator:abbd344d8d361a1a4d14bfc9b5dc57140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a565101f53278f5ab1ff58317ffc9555c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a565101f53278f5ab1ff58317ffc9555c"></a>
time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#a565101f53278f5ab1ff58317ffc9555c">m_draft_timestamp</a></td></tr>
<tr class="memdesc:a565101f53278f5ab1ff58317ffc9555c"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 if there is no draft <br /></td></tr>
<tr class="memitem:a565101f53278f5ab1ff58317ffc9555c"><td class="memItemLeft" align="right" valign="top">time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#a565101f53278f5ab1ff58317ffc9555c">m_draft_timestamp</a></td></tr>
<tr class="memdesc:a565101f53278f5ab1ff58317ffc9555c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timestamp of the draft. <a href="#a565101f53278f5ab1ff58317ffc9555c">More...</a><br /></td></tr>
<tr class="separator:a565101f53278f5ab1ff58317ffc9555c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe916f48ac83c2ca6476312eae084cfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe916f48ac83c2ca6476312eae084cfa"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#abe916f48ac83c2ca6476312eae084cfa">m_draft_text</a></td></tr>
<tr class="memdesc:abe916f48ac83c2ca6476312eae084cfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL if unset. <br /></td></tr>
<tr class="memitem:abe916f48ac83c2ca6476312eae084cfa"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#abe916f48ac83c2ca6476312eae084cfa">m_draft_text</a></td></tr>
<tr class="memdesc:abe916f48ac83c2ca6476312eae084cfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">The draft text. <a href="#abe916f48ac83c2ca6476312eae084cfa">More...</a><br /></td></tr>
<tr class="separator:abe916f48ac83c2ca6476312eae084cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf3e1a34f567e168bc0597f9a544a50d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf3e1a34f567e168bc0597f9a544a50d"></a>
<a class="el" href="structmrmailbox__t.html">mrmailbox_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#abf3e1a34f567e168bc0597f9a544a50d">m_mailbox</a></td></tr>
<tr class="memdesc:abf3e1a34f567e168bc0597f9a544a50d"><td class="mdescLeft">&#160;</td><td class="mdescRight">!= NULL <br /></td></tr>
<tr class="memitem:abf3e1a34f567e168bc0597f9a544a50d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrmailbox__t.html">mrmailbox_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#abf3e1a34f567e168bc0597f9a544a50d">m_mailbox</a></td></tr>
<tr class="memdesc:abf3e1a34f567e168bc0597f9a544a50d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mailbox object the chat belongs to. <a href="#abf3e1a34f567e168bc0597f9a544a50d">More...</a><br /></td></tr>
<tr class="separator:abf3e1a34f567e168bc0597f9a544a50d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b28b343ceb290d4a613d0e5a7d528bc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#a5b28b343ceb290d4a613d0e5a7d528bc">m_archived</a></td></tr>
<tr class="memdesc:a5b28b343ceb290d4a613d0e5a7d528bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">1=chat archived, this state should always be shown the UI, eg. <a href="#a5b28b343ceb290d4a613d0e5a7d528bc">More...</a><br /></td></tr>
<tr class="memdesc:a5b28b343ceb290d4a613d0e5a7d528bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag for the archived state. <a href="#a5b28b343ceb290d4a613d0e5a7d528bc">More...</a><br /></td></tr>
<tr class="separator:a5b28b343ceb290d4a613d0e5a7d528bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2792ee7df778521de61087bc79795a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2792ee7df778521de61087bc79795a7"></a>
<a class="el" href="structmrparam__t.html">mrparam_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#ad2792ee7df778521de61087bc79795a7">m_param</a></td></tr>
<tr class="memdesc:ad2792ee7df778521de61087bc79795a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">!= NULL <br /></td></tr>
<tr class="memitem:ad2792ee7df778521de61087bc79795a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrparam__t.html">mrparam_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrchat__t.html#ad2792ee7df778521de61087bc79795a7">m_param</a></td></tr>
<tr class="memdesc:ad2792ee7df778521de61087bc79795a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional parameters for the chat. <a href="#ad2792ee7df778521de61087bc79795a7">More...</a><br /></td></tr>
<tr class="separator:ad2792ee7df778521de61087bc79795a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@ -230,8 +225,41 @@ char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="st
</table>
</div><div class="memdoc">
<p>1=chat archived, this state should always be shown the UI, eg. </p>
<p>the search will also return archived chats </p>
<p>Flag for the archived state. </p>
<p>1=chat archived, 0=chat not archived.</p>
<p>To archive or unarchive chats, use <a class="el" href="structmrmailbox__t.html#a8e04e43dacbe3128afd71e1d6c1b0911" title="Archive or unarchive a chat. ">mrmailbox_archive_chat()</a>. If chats are archived, this should be shown in the UI by a little icon or text, eg. the search will also return archived chats. </p>
</div>
</div>
<a class="anchor" id="abe916f48ac83c2ca6476312eae084cfa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* mrchat_t::m_draft_text</td>
</tr>
</table>
</div><div class="memdoc">
<p>The draft text. </p>
<p>The timetamp of the draft is placed in <a class="el" href="structmrchat__t.html#a565101f53278f5ab1ff58317ffc9555c" title="Timestamp of the draft. ">mrchat_t::m_draft_timestamp</a>. To save a draft for a chat, use <a class="el" href="structmrmailbox__t.html#af50446c1a5e504d27fe29de9e3b8edc3" title="Save a draft for a chat. ">mrmailbox_set_draft()</a></p>
<p>NULL if there is no draft. </p>
</div>
</div>
<a class="anchor" id="a565101f53278f5ab1ff58317ffc9555c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">time_t mrchat_t::m_draft_timestamp</td>
</tr>
</table>
</div><div class="memdoc">
<p>Timestamp of the draft. </p>
<p>The draft itself is placed in <a class="el" href="structmrchat__t.html#abe916f48ac83c2ca6476312eae084cfa" title="The draft text. ">mrchat_t::m_draft_text</a>. To save a draft for a chat, use <a class="el" href="structmrmailbox__t.html#af50446c1a5e504d27fe29de9e3b8edc3" title="Save a draft for a chat. ">mrmailbox_set_draft()</a></p>
<p>0 if there is no draft. </p>
</div>
</div>
@ -253,6 +281,53 @@ char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="st
</ul>
<p>"Normal" chat IDs are larger than these special IDs (larger than MR_CHAT_ID_LAST_SPECIAL). </p>
</div>
</div>
<a class="anchor" id="abf3e1a34f567e168bc0597f9a544a50d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmrmailbox__t.html">mrmailbox_t</a>* mrchat_t::m_mailbox</td>
</tr>
</table>
</div><div class="memdoc">
<p>The mailbox object the chat belongs to. </p>
<p>Never NULL. </p>
</div>
</div>
<a class="anchor" id="abbd344d8d361a1a4d14bfc9b5dc57140"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* mrchat_t::m_name</td>
</tr>
</table>
</div><div class="memdoc">
<p>Name of the chat. </p>
<p>For one-to-one chats, this is the name of the contact. For group chats, this is the name given eg. to <a class="el" href="structmrmailbox__t.html#a47156db87107ec208d6637f460d897a8" title="Create a new group chat. ">mrmailbox_create_group_chat()</a> or received by a group-creation message.</p>
<p>To change the name, use <a class="el" href="structmrmailbox__t.html#a8772e9bb55b02299f65ebd8bcc682bb1" title="Set group name. ">mrmailbox_set_chat_name()</a></p>
<p>NULL if unset. </p>
</div>
</div>
<a class="anchor" id="ad2792ee7df778521de61087bc79795a7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmrparam__t.html">mrparam_t</a>* mrchat_t::m_param</td>
</tr>
</table>
</div><div class="memdoc">
<p>Additional parameters for the chat. </p>
<p>To access the parameters, use <a class="el" href="structmrparam__t.html#a0a9d3768d128dce0088b089f66fafb68" title="Check if a parameter exists. ">mrparam_exists()</a>, <a class="el" href="structmrparam__t.html#a23e24e8700e17ede6dd385fc90330f76" title="Get value of a parameter. ">mrparam_get()</a> for <a class="el" href="structmrparam__t.html#aba7d11db241c2ebbadab67895b84dae8" title="Get value of a parameter. ">mrparam_get_int()</a> </p>
</div>
</div>
<a class="anchor" id="a568c4e6fb9633ffe9a76428db16e0201"></a>

View file

@ -444,6 +444,7 @@ void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="st
<p>Archive or unarchive a chat. </p>
<p>Archived chats are not included in the default chatlist returned by <a class="el" href="structmrmailbox__t.html#a4da10c87eb65bbf6c504979d75ec3b19" title="Get a list of chats. ">mrmailbox_get_chatlist()</a>. Instead, if there are <em>any</em> archived chats, the pseudo-chat with the chat_id MR_CHAT_ID_ARCHIVED_LINK will be added the the end of the chatlist.</p>
<p>To get a list of archived chats, use <a class="el" href="structmrmailbox__t.html#a4da10c87eb65bbf6c504979d75ec3b19" title="Get a list of chats. ">mrmailbox_get_chatlist()</a> with the flag MR_GCL_ARCHIVED_ONLY.</p>
<p>To find out the archived state of a given chat, use <a class="el" href="structmrchat__t.html#a5b28b343ceb290d4a613d0e5a7d528bc" title="Flag for the archived state. ">mrchat_t::m_archived</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mailbox</td><td>The mailbox object as returned from <a class="el" href="structmrmailbox__t.html#a32825e3e0a1b16679580704a4b43db1a" title="Create a new mailbox object. ">mrmailbox_new()</a>.</td></tr>
@ -752,12 +753,12 @@ void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="st
</div><div class="memdoc">
<p>Create a new group chat. </p>
<p>After creation, the groups has one member with the ID MR_CONTACT_ID_SELF and is in <em>unpromoted</em> state. This means, you can add or remove members, change the name, the group image and so on without messages being send to all group members.</p>
<p>After creation, the groups has one member with the ID <a class="el" href="structmrcontact__t.html#ab2ee31297c327e04ed14673adbd49716">MR_CONTACT_ID_SELF</a> and is in <em>unpromoted</em> state. This means, you can add or remove members, change the name, the group image and so on without messages being send to all group members.</p>
<p>This changes as soon as the first message is sent to the group members and the group becomes <em>promoted</em>. After that, all changes are synced with all group members by sending status message.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mailbox</td><td>Mailbox object as created by <a class="el" href="structmrmailbox__t.html#a32825e3e0a1b16679580704a4b43db1a" title="Create a new mailbox object. ">mrmailbox_new()</a>.</td></tr>
<tr><td class="paramname">chat_name</td><td>The name of the group chat to create. The name may be changed later using <a class="el" href="structmrmailbox__t.html#a8772e9bb55b02299f65ebd8bcc682bb1" title="Set group name. ">mrmailbox_set_chat_name()</a>.</td></tr>
<tr><td class="paramname">chat_name</td><td>The name of the group chat to create. The name may be changed later using <a class="el" href="structmrmailbox__t.html#a8772e9bb55b02299f65ebd8bcc682bb1" title="Set group name. ">mrmailbox_set_chat_name()</a>. To find out the name of a group later, see <a class="el" href="structmrchat__t.html#abbd344d8d361a1a4d14bfc9b5dc57140" title="Name of the chat. ">mrchat_t::m_name</a></td></tr>
</table>
</dd>
</dl>
@ -2558,6 +2559,7 @@ void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="st
</div><div class="memdoc">
<p>Save a draft for a chat. </p>
<p>To get the draft for a given chat ID, use <a class="el" href="structmrchat__t.html#abe916f48ac83c2ca6476312eae084cfa" title="The draft text. ">mrchat_t::m_draft_text</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mailbox</td><td>The mailbox object as returned from <a class="el" href="structmrmailbox__t.html#a32825e3e0a1b16679580704a4b43db1a" title="Create a new mailbox object. ">mrmailbox_new()</a>.</td></tr>

View file

@ -72,12 +72,61 @@ typedef struct mrchat_t
#define MR_CHAT_TYPE_GROUP 120
char* m_name; /**< NULL if unset */
time_t m_draft_timestamp; /**< 0 if there is no draft */
char* m_draft_text; /**< NULL if unset */
mrmailbox_t* m_mailbox; /**< != NULL */
int m_archived; /**< 1=chat archived, this state should always be shown the UI, eg. the search will also return archived chats */
mrparam_t* m_param; /**< != NULL */
/**
* Name of the chat.
*
* For one-to-one chats, this is the name of the contact.
* For group chats, this is the name given eg. to mrmailbox_create_group_chat() or
* received by a group-creation message.
*
* To change the name, use mrmailbox_set_chat_name()
*
* NULL if unset.
*/
char* m_name;
/**
* Timestamp of the draft.
*
* The draft itself is placed in mrchat_t::m_draft_text.
* To save a draft for a chat, use mrmailbox_set_draft()
*
* 0 if there is no draft.
*/
time_t m_draft_timestamp;
/**
* The draft text.
*
* The timetamp of the draft is placed in mrchat_t::m_draft_timestamp.
* To save a draft for a chat, use mrmailbox_set_draft()
*
* NULL if there is no draft.
*/
char* m_draft_text;
/**
* The mailbox object the chat belongs to. Never NULL.
*/
mrmailbox_t* m_mailbox;
/**
* Flag for the archived state.
*
* 1=chat archived, 0=chat not archived.
*
* To archive or unarchive chats, use mrmailbox_archive_chat().
* If chats are archived, this should be shown in the UI by a little icon or text,
* eg. the search will also return archived chats.
*/
int m_archived;
/**
* Additional parameters for the chat.
*
* To access the parameters, use mrparam_exists(), mrparam_get() for mrparam_get_int()
*/
mrparam_t* m_param;
/** @privatesection */
char* m_grpid; /* NULL if unset */

View file

@ -38,7 +38,7 @@ typedef struct mrsqlite3_t mrsqlite3_t;
typedef struct mrcontact_t
{
/**
* The contact ID
* The contact ID.
*
* Special message IDs:
* - MR_CONTACT_ID_SELF (1) - this is the owner of the mailbox with the email-address set by mrmailbox_set_config() using "addr".

View file

@ -2341,6 +2341,8 @@ cleanup:
/**
* Save a draft for a chat.
*
* To get the draft for a given chat ID, use mrchat_t::m_draft_text
*
* @memberof mrmailbox_t
*
* @param mailbox The mailbox object as returned from mrmailbox_new().
@ -2622,6 +2624,8 @@ int mrmailbox_get_fresh_msg_count(mrmailbox_t* mailbox, uint32_t chat_id)
*
* To get a list of archived chats, use mrmailbox_get_chatlist() with the flag MR_GCL_ARCHIVED_ONLY.
*
* To find out the archived state of a given chat, use mrchat_t::m_archived
*
* @memberof mrmailbox_t
*
* @param mailbox The mailbox object as returned from mrmailbox_new().
@ -3296,7 +3300,7 @@ int mrmailbox_add_contact_to_chat__(mrmailbox_t* mailbox, uint32_t chat_id, uint
* Create a new group chat.
*
* After creation, the groups has one member with the
* ID MR_CONTACT_ID_SELF and is in _unpromoted_ state. This means, you can
* ID [MR_CONTACT_ID_SELF](@ref mrcontact_t::m_id) and is in _unpromoted_ state. This means, you can
* add or remove members, change the name, the group image and so on without
* messages being send to all group members.
*
@ -3310,6 +3314,7 @@ int mrmailbox_add_contact_to_chat__(mrmailbox_t* mailbox, uint32_t chat_id, uint
*
* @param chat_name The name of the group chat to create.
* The name may be changed later using mrmailbox_set_chat_name().
* To find out the name of a group later, see mrchat_t::m_name
*
* @return The chat ID of the new group chat, 0 on errors.
*/