aboutsummaryrefslogtreecommitdiff
path: root/src/messenger_gtk.c
diff options
context:
space:
mode:
authorTheJackiMonster <thejackimonster@gmail.com>2021-10-27 01:04:48 +0200
committerTheJackiMonster <thejackimonster@gmail.com>2021-10-27 01:04:48 +0200
commitdf4110a471c485a378faa695376956860b8fea1e (patch)
tree61c2dc48fc80959440d145e0b4c0d420cb207e48 /src/messenger_gtk.c
parent7d2fbbeea808ae7dad7b403fc17244d1c07cb2de (diff)
downloadmessenger-gtk-df4110a471c485a378faa695376956860b8fea1e.tar.gz
messenger-gtk-df4110a471c485a378faa695376956860b8fea1e.zip
Added basic code to startup ui file and handle first interactions
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat (limited to 'src/messenger_gtk.c')
-rw-r--r--src/messenger_gtk.c103
1 files changed, 102 insertions, 1 deletions
diff --git a/src/messenger_gtk.c b/src/messenger_gtk.c
index 089d07b..cfc4b84 100644
--- a/src/messenger_gtk.c
+++ b/src/messenger_gtk.c
@@ -23,11 +23,112 @@
23 */ 23 */
24 24
25#include <gtk-3.0/gtk/gtk.h> 25#include <gtk-3.0/gtk/gtk.h>
26#include <libhandy-1/handy.h>
27
26#include <gnunet/gnunet_chat_lib.h> 28#include <gnunet/gnunet_chat_lib.h>
27 29
30G_MODULE_EXPORT void handle_user_details_button_click(GtkButton* button,
31 gpointer user_data)
32{
33 HdyFlap* flap = HDY_FLAP(user_data);
34
35 if (TRUE == hdy_flap_get_reveal_flap(flap)) {
36 hdy_flap_set_reveal_flap(flap, FALSE);
37 } else {
38 hdy_flap_set_reveal_flap(flap, TRUE);
39 }
40}
41
42G_MODULE_EXPORT void handle_account_details_button_click(GtkButton* button,
43 gpointer user_data)
44{
45 GtkRevealer* revealer = GTK_REVEALER(user_data);
46
47 if (TRUE == gtk_revealer_get_reveal_child(revealer)) {
48 gtk_revealer_set_reveal_child(revealer, FALSE);
49 } else {
50 gtk_revealer_set_reveal_child(revealer, TRUE);
51 }
52}
53
28int main(int argc, char** argv) { 54int main(int argc, char** argv) {
29 gtk_init(&argc, &argv); 55 gtk_init(&argc, &argv);
30 56
31 GNUNET_CHAT_test("Hello world"); 57 GtkBuilder* builder = gtk_builder_new();
58 gtk_builder_add_from_file(
59 builder,
60 "resources/ui/messenger.ui",
61 NULL
62 );
63
64 GtkApplicationWindow* window = GTK_APPLICATION_WINDOW(
65 gtk_builder_get_object(builder, "main_window")
66 );
67
68 GdkScreen* screen = gdk_screen_get_default();
69
70 GtkCssProvider* provider = gtk_css_provider_new();
71 gtk_css_provider_load_from_path(
72 provider,
73 "resources/css/style.css",
74 NULL
75 );
76
77 gtk_style_context_add_provider_for_screen(
78 screen,
79 GTK_STYLE_PROVIDER(provider),
80 GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
81 );
82
83 HdyHeaderBar* title_bar = HDY_HEADER_BAR(
84 gtk_builder_get_object(builder, "title_bar")
85 );
86
87 GtkButton* user_details_button = GTK_BUTTON(
88 gtk_builder_get_object(builder, "user_details_button")
89 );
90
91 GtkButton* hide_user_details_button = GTK_BUTTON(
92 gtk_builder_get_object(builder, "hide_user_details_button")
93 );
94
95 HdyFlap* flap_user_details = HDY_FLAP(
96 gtk_builder_get_object(builder, "flap_user_details")
97 );
98
99 g_signal_connect(
100 user_details_button,
101 "clicked",
102 G_CALLBACK(handle_user_details_button_click),
103 flap_user_details
104 );
105
106 g_signal_connect(
107 hide_user_details_button,
108 "clicked",
109 G_CALLBACK(handle_user_details_button_click),
110 flap_user_details
111 );
112
113 GtkButton* account_details_button = GTK_BUTTON(
114 gtk_builder_get_object(builder, "account_details_button")
115 );
116
117 GtkRevealer* account_details_revealer = GTK_REVEALER(
118 gtk_builder_get_object(builder, "account_details_revealer")
119 );
120
121 g_signal_connect(
122 account_details_button,
123 "clicked",
124 G_CALLBACK(handle_account_details_button_click),
125 account_details_revealer
126 );
127
128 gtk_widget_show(GTK_WIDGET(window));
129
130 g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
131
132 gtk_main();
32 return 0; 133 return 0;
33} 134}