Use colouring for message receipts
This commit is contained in:
@@ -81,7 +81,7 @@ buffer_free(ProfBuff buffer)
|
||||
|
||||
void
|
||||
buffer_push(ProfBuff buffer, const char show_char, GDateTime *time,
|
||||
int flags, theme_item_t theme_item, const char * const from, const char * const message)
|
||||
int flags, theme_item_t theme_item, const char * const from, const char * const message, DeliveryReceipt *receipt)
|
||||
{
|
||||
ProfBuffEntry *e = malloc(sizeof(struct prof_buff_entry_t));
|
||||
e->show_char = show_char;
|
||||
@@ -90,6 +90,7 @@ buffer_push(ProfBuff buffer, const char show_char, GDateTime *time,
|
||||
e->time = time;
|
||||
e->from = strdup(from);
|
||||
e->message = strdup(message);
|
||||
e->receipt = receipt;
|
||||
|
||||
if (g_slist_length(buffer->entries) == BUFF_SIZE) {
|
||||
_free_entry(buffer->entries->data);
|
||||
@@ -99,6 +100,24 @@ buffer_push(ProfBuff buffer, const char show_char, GDateTime *time,
|
||||
buffer->entries = g_slist_append(buffer->entries, e);
|
||||
}
|
||||
|
||||
gboolean
|
||||
buffer_mark_received(ProfBuff buffer, const char * const id)
|
||||
{
|
||||
GSList *entries = buffer->entries;
|
||||
while (entries) {
|
||||
ProfBuffEntry *entry = entries->data;
|
||||
if (entry->receipt) {
|
||||
if (!entry->receipt->received) {
|
||||
entry->receipt->received = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
entries = g_slist_next(entries);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ProfBuffEntry*
|
||||
buffer_yield_entry(ProfBuff buffer, int entry)
|
||||
{
|
||||
@@ -113,4 +132,8 @@ _free_entry(ProfBuffEntry *entry)
|
||||
free(entry->from);
|
||||
g_date_time_unref(entry->time);
|
||||
free(entry);
|
||||
if (entry->receipt) {
|
||||
free(entry->receipt->id);
|
||||
free(entry->receipt);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user