pidgin/pidgincontactlist.c

changeset 40728
2dbfbaeefe40
parent 40600
46d10c72c137
child 41030
ec8b76f3bf0a
--- a/pidgin/pidgincontactlist.c	Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/pidgincontactlist.c	Sun Jan 24 03:27:43 2021 -0600
@@ -28,6 +28,17 @@
 	GtkApplicationWindow parent;
 
 	GtkWidget *vbox;
+
+	GtkWidget *menu_bar;
+	GtkWidget *sort_buddies;
+
+	GtkWidget *accounts;
+	GtkWidget *accounts_menu;
+
+	GtkWidget *plugins;
+	GtkWidget *plugins_menu;
+
+	GtkWidget *menu_tray;
 };
 
 G_DEFINE_TYPE(PidginContactList, pidgin_contact_list,
@@ -48,6 +59,14 @@
 	group = pidgin_action_group_new();
 	gtk_widget_insert_action_group(GTK_WIDGET(contact_list), "blist",
 	                               G_ACTION_GROUP(group));
+
+	gtk_menu_item_set_submenu(GTK_MENU_ITEM(contact_list->accounts),
+	                          contact_list->accounts_menu);
+	gtk_menu_item_set_submenu(GTK_MENU_ITEM(contact_list->plugins),
+	                          contact_list->plugins_menu);
+
+	gtk_menu_shell_append(GTK_MENU_SHELL(contact_list->menu_bar),
+	                      contact_list->menu_tray);
 }
 
 static void
@@ -60,6 +79,21 @@
 	);
 
 	gtk_widget_class_bind_template_child(widget_class, PidginContactList, vbox);
+
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     menu_bar);
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     sort_buddies);
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     accounts);
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     accounts_menu);
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     plugins);
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     plugins_menu);
+	gtk_widget_class_bind_template_child(widget_class, PidginContactList,
+	                                     menu_tray);
 }
 
 /******************************************************************************
@@ -76,3 +110,17 @@
 
 	return contact_list->vbox;
 }
+
+GtkWidget *
+pidgin_contact_list_get_menu_sort_item(PidginContactList *contact_list) {
+	g_return_val_if_fail(PIDGIN_IS_CONTACT_LIST(contact_list), NULL);
+
+	return contact_list->sort_buddies;
+}
+
+GtkWidget *
+pidgin_contact_list_get_menu_tray(PidginContactList *contact_list) {
+	g_return_val_if_fail(PIDGIN_IS_CONTACT_LIST(contact_list), NULL);
+
+	return contact_list->menu_tray;
+}

mercurial