commit 0def5106c1e92a2d43b9bdc755ba860ccc2f84f1
parent b40c9fa60fd15152750c4361e3ed35be5f7ff9f0
Author: TheJackiMonster <thejackimonster@gmail.com>
Date: Sun, 31 Oct 2021 19:32:35 +0100
Hooked up all important ui widgets from builder
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat:
4 files changed, 116 insertions(+), 133 deletions(-)
diff --git a/resources/ui/messenger.ui b/resources/ui/messenger.ui
@@ -397,7 +397,7 @@ Author: Tobias Frisch
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow">
- <property name="height-request">300</property>
+ <property name="height-request">250</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
@@ -405,7 +405,7 @@ Author: Tobias Frisch
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
- <object class="GtkListBox">
+ <object class="GtkListBox" id="accounts_listbox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="selection-mode">none</property>
@@ -472,7 +472,7 @@ Author: Tobias Frisch
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkButton" id="new_group_button">
+ <object class="GtkButton" id="new_contact_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@@ -491,7 +491,7 @@ Author: Tobias Frisch
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">system-users-symbolic</property>
+ <property name="icon-name">contact-new-symbolic</property>
<property name="icon_size">3</property>
</object>
<packing>
@@ -501,61 +501,10 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkLabel" id="new-group-label">
+ <object class="GtkLabel" id="new-contact-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">New Group</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="new_platform_button">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">network-wired-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="new-platform-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">New Platform</property>
+ <property name="label" translatable="yes">New Contact</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -574,7 +523,7 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkButton" id="contacts_button">
+ <object class="GtkButton" id="new_group_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@@ -593,7 +542,7 @@ Author: Tobias Frisch
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">avatar-default-symbolic</property>
+ <property name="icon-name">system-users-symbolic</property>
<property name="icon_size">3</property>
</object>
<packing>
@@ -603,10 +552,10 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkLabel" id="contacts-label">
+ <object class="GtkLabel" id="new-group-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Contacts</property>
+ <property name="label" translatable="yes">New Group</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -625,7 +574,7 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkButton" id="calls_button">
+ <object class="GtkButton" id="new_platform_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@@ -644,7 +593,7 @@ Author: Tobias Frisch
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">call-start-symbolic</property>
+ <property name="icon-name">network-wired-symbolic</property>
<property name="icon_size">3</property>
</object>
<packing>
@@ -654,10 +603,10 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkLabel" id="calls-label">
+ <object class="GtkLabel" id="new-platform-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Calls</property>
+ <property name="label" translatable="yes">New Platform</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -676,7 +625,7 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkButton" id="settings_button">
+ <object class="GtkButton" id="contacts_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@@ -695,7 +644,7 @@ Author: Tobias Frisch
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">emblem-system-symbolic</property>
+ <property name="icon-name">avatar-default-symbolic</property>
<property name="icon_size">3</property>
</object>
<packing>
@@ -705,10 +654,10 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkLabel" id="settings-label">
+ <object class="GtkLabel" id="contacts-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Settings</property>
+ <property name="label" translatable="yes">Contacts</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -727,7 +676,7 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkButton" id="night_mode_button">
+ <object class="GtkButton" id="settings_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@@ -746,7 +695,7 @@ Author: Tobias Frisch
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">weather-clear-night-symbolic</property>
+ <property name="icon-name">emblem-system-symbolic</property>
<property name="icon_size">3</property>
</object>
<packing>
@@ -756,10 +705,10 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkLabel" id="night-mode-label">
+ <object class="GtkLabel" id="settings-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Night Mode</property>
+ <property name="label" translatable="yes">Settings</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -774,7 +723,7 @@ Author: Tobias Frisch
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">5</property>
+ <property name="position">6</property>
</packing>
</child>
</object>
@@ -1686,18 +1635,18 @@ Author: Tobias Frisch
<property name="can-focus">False</property>
<property name="title" translatable="yes">Messenger</property>
<property name="subtitle" translatable="yes">GNUnet</property>
+ <property name="show-close-button">True</property>
<property name="interpolate-size">True</property>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
+ <widget name="new-contact-label"/>
<widget name="new-group-label"/>
<widget name="new-platform-label"/>
<widget name="contacts-label"/>
- <widget name="calls-label"/>
<widget name="settings-label"/>
- <widget name="night-mode-label"/>
</widgets>
</object>
<object class="GtkSizeGroup">
diff --git a/src/application.c b/src/application.c
@@ -56,6 +56,8 @@ application_init(MESSENGER_Application *app,
int argc,
char **argv)
{
+ memset(app, 0, sizeof(*app));
+
app->argc = argc;
app->argv = argv;
diff --git a/src/ui/messenger.c b/src/ui/messenger.c
@@ -103,71 +103,85 @@ ui_messenger_init(MESSENGER_Application *app,
GTK_WINDOW(handle->main_window)
);
- handle->profile_avatar = HDY_AVATAR(
- gtk_builder_get_object(builder, "profile_avatar")
+ gtk_window_set_default_size(
+ GTK_WINDOW(handle->main_window),
+ 1100, 700
);
- handle->profile_label = GTK_LABEL(
- gtk_builder_get_object(builder, "profile_label")
+ handle->leaflet_chat = HDY_LEAFLET(
+ gtk_builder_get_object(builder, "leaflet_chat")
+ );
+
+ handle->flap_user_details = HDY_FLAP(
+ gtk_builder_get_object(builder, "flap_user_details")
+ );
+
+ handle->flap_chat_details = HDY_FLAP(
+ gtk_builder_get_object(builder, "flap_chat_details")
);
handle->title_bar = HDY_HEADER_BAR(
gtk_builder_get_object(builder, "title_bar")
);
- handle->leaflet_chat = HDY_LEAFLET(
- gtk_builder_get_object(builder, "leaflet_chat")
+ g_object_bind_property(
+ handle->leaflet_chat,
+ "folded",
+ handle->title_bar,
+ "show-close-button",
+ G_BINDING_INVERT_BOOLEAN
);
if (app->ui.mobile)
- {
g_object_bind_property(
- handle->leaflet_chat,
- "folded",
- handle->title_bar,
- "visible",
- G_BINDING_SYNC_CREATE |
- G_BINDING_INVERT_BOOLEAN
+ handle->leaflet_chat,
+ "folded",
+ handle->title_bar,
+ "visible",
+ G_BINDING_SYNC_CREATE |
+ G_BINDING_INVERT_BOOLEAN
);
- }
- hdy_leaflet_set_homogeneous(handle->leaflet_chat, FALSE, GTK_ORIENTATION_HORIZONTAL, FALSE);
+ handle->back_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "back_button")
+ );
- handle->chats_listbox = GTK_LIST_BOX(
- gtk_builder_get_object(builder, "chats_listbox")
+ g_object_bind_property(
+ handle->leaflet_chat,
+ "folded",
+ handle->back_button,
+ "visible",
+ G_BINDING_SYNC_CREATE
);
g_signal_connect(
- handle->chats_listbox,
- "row-activated",
- G_CALLBACK(handle_chats_listbox_row_activated),
+ handle->back_button,
+ "clicked",
+ G_CALLBACK(handle_back_button_click),
handle->leaflet_chat
);
- handle->user_details_button = GTK_BUTTON(
- gtk_builder_get_object(builder, "user_details_button")
+ handle->profile_avatar = HDY_AVATAR(
+ gtk_builder_get_object(builder, "profile_avatar")
);
- handle->hide_user_details_button = GTK_BUTTON(
- gtk_builder_get_object(builder, "hide_user_details_button")
+ handle->profile_label = GTK_LABEL(
+ gtk_builder_get_object(builder, "profile_label")
);
- handle->flap_user_details = HDY_FLAP(
- gtk_builder_get_object(builder, "flap_user_details")
+ handle->hide_user_details_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "hide_user_details_button")
);
g_signal_connect(
- handle->user_details_button,
+ handle->hide_user_details_button,
"clicked",
G_CALLBACK(handle_flap_via_button_click),
handle->flap_user_details
);
- g_signal_connect(
- handle->hide_user_details_button,
- "clicked",
- G_CALLBACK(handle_flap_via_button_click),
- handle->flap_user_details
+ handle->favourites_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "favourites_button")
);
handle->account_details_button = GTK_BUTTON(
@@ -185,35 +199,54 @@ ui_messenger_init(MESSENGER_Application *app,
handle->account_details_revealer
);
- handle->back_button = GTK_BUTTON(
- gtk_builder_get_object(builder, "back_button")
+ handle->accounts_listbox = GTK_LIST_BOX(
+ gtk_builder_get_object(builder, "accounts_listbox")
+ );
+
+ handle->new_contact_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "new_contact_button")
+ );
+
+ handle->new_group_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "new_group_button")
+ );
+
+ handle->new_platform_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "new_platform_button")
+ );
+
+ handle->contacts_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "contacts_button")
+ );
+
+ handle->settings_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "settings_button")
+ );
+
+ handle->user_details_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "user_details_button")
);
g_signal_connect(
- handle->back_button,
+ handle->user_details_button,
"clicked",
- G_CALLBACK(handle_back_button_click),
- handle->leaflet_chat
+ G_CALLBACK(handle_flap_via_button_click),
+ handle->flap_user_details
);
- g_object_bind_property(
- handle->leaflet_chat,
- "folded",
- handle->back_button,
- "visible",
- G_BINDING_SYNC_CREATE
+ handle->chats_search = GTK_SEARCH_ENTRY(
+ gtk_builder_get_object(builder, "chats_search")
);
- g_object_bind_property(
- handle->leaflet_chat,
- "folded",
- handle->title_bar,
- "show-close-button",
- G_BINDING_INVERT_BOOLEAN
+ handle->chats_listbox = GTK_LIST_BOX(
+ gtk_builder_get_object(builder, "chats_listbox")
);
- handle->flap_chat_details = HDY_FLAP(
- gtk_builder_get_object(builder, "flap_chat_details")
+ g_signal_connect(
+ handle->chats_listbox,
+ "row-activated",
+ G_CALLBACK(handle_chats_listbox_row_activated),
+ handle->leaflet_chat
);
handle->chat_title = GTK_LABEL(
@@ -228,10 +261,6 @@ ui_messenger_init(MESSENGER_Application *app,
gtk_builder_get_object(builder, "chat_details_button")
);
- handle->hide_chat_details_button = GTK_BUTTON(
- gtk_builder_get_object(builder, "hide_chat_details_button")
- );
-
g_signal_connect(
handle->chat_details_button,
"clicked",
@@ -239,6 +268,10 @@ ui_messenger_init(MESSENGER_Application *app,
handle->flap_chat_details
);
+ handle->hide_chat_details_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "hide_chat_details_button")
+ );
+
g_signal_connect(
handle->hide_chat_details_button,
"clicked",
diff --git a/src/ui/messenger.h b/src/ui/messenger.h
@@ -52,12 +52,11 @@ typedef struct UI_MESSENGER_Handle
GtkRevealer *account_details_revealer;
GtkListBox *accounts_listbox;
+ GtkButton *new_contact_button;
GtkButton *new_group_button;
GtkButton *new_platform_button;
GtkButton *contacts_button;
- GtkButton *calls_button;
GtkButton *settings_button;
- GtkButton *night_mode_button;
GtkButton *user_details_button;
GtkSearchEntry *chats_search;