diff options
author | TheJackiMonster <thejackimonster@gmail.com> | 2021-10-27 01:04:48 +0200 |
---|---|---|
committer | TheJackiMonster <thejackimonster@gmail.com> | 2021-10-27 01:04:48 +0200 |
commit | df4110a471c485a378faa695376956860b8fea1e (patch) | |
tree | 61c2dc48fc80959440d145e0b4c0d420cb207e48 /src/messenger_gtk.c | |
parent | 7d2fbbeea808ae7dad7b403fc17244d1c07cb2de (diff) | |
download | messenger-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.c | 103 |
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 | ||
30 | G_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 | |||
42 | G_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 | |||
28 | int main(int argc, char** argv) { | 54 | int 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 | } |