aboutsummaryrefslogtreecommitdiff
path: root/src/ui/message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/message.c')
-rw-r--r--src/ui/message.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/ui/message.c b/src/ui/message.c
new file mode 100644
index 0000000..f48bbaa
--- /dev/null
+++ b/src/ui/message.c
@@ -0,0 +1,74 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2021 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19 */
20/*
21 * @author Tobias Frisch
22 * @file ui/message.c
23 */
24
25#include "message.h"
26
27#include "../application.h"
28
29UI_MESSAGE_Handle*
30ui_message_new(MESSENGER_Application *app,
31 bool sent)
32{
33 UI_MESSAGE_Handle* handle = g_malloc(sizeof(UI_MESSAGE_Handle));
34 GtkBuilder* builder;
35
36 if (sent)
37 builder = gtk_builder_new_from_file("resources/ui/message-sent.ui");
38 else
39 builder = gtk_builder_new_from_file("resources/ui/message.ui");
40
41 handle->message_box = GTK_WIDGET(
42 gtk_builder_get_object(builder, "message_box")
43 );
44
45 handle->sender_avatar = HDY_AVATAR(
46 gtk_builder_get_object(builder, "sender_avatar")
47 );
48
49 handle->sender_label = GTK_LABEL(
50 gtk_builder_get_object(builder, "sender_label")
51 );
52
53 if (sent)
54 {
55 const char *sender = GNUNET_CHAT_get_name(app->chat.messenger.handle);
56
57 hdy_avatar_set_text(handle->sender_avatar, sender);
58 gtk_label_set_text(handle->sender_label, sender);
59 }
60
61 handle->text_label = GTK_LABEL(
62 gtk_builder_get_object(builder, "text_label")
63 );
64
65 handle->timestamp_label = GTK_LABEL(
66 gtk_builder_get_object(builder, "timestamp_label")
67 );
68
69 handle->read_receipt_image = GTK_IMAGE(
70 gtk_builder_get_object(builder, "read_receipt_image")
71 );
72
73 return handle;
74}