Hook up all settings dialog buttons

This commit is contained in:
Simon Steinbeiss
2021-01-04 01:48:14 +01:00
committed by Simon Steinbeiß
parent 46a0535a10
commit 4c9482b36e
2 changed files with 33 additions and 6 deletions

View File

@@ -21,7 +21,7 @@
#include "settings-dialog.h"
#include "settings-dialog_ui.h"
static void show_about_dialog (GtkWidget *widget);
static void show_about_dialog (GtkWidget *widget, gpointer user_data);
static GtkWidget *xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window);
@@ -49,7 +49,7 @@ builder_bind_toggle_button (GtkBuilder *builder, gchar *widget_name, XtmSettings
}
static void
show_about_dialog (GtkWidget *widget)
show_about_dialog (GtkWidget *widget, gpointer user_data)
{
const gchar *authors[] = {
"(c) 2018-2019 Rozhuk Ivan",
@@ -96,6 +96,20 @@ show_about_dialog (GtkWidget *widget)
NULL);
}
static void
show_help (GtkWidget *widget, gpointer user_data)
{
xfce_dialog_show_help_with_version (GTK_WINDOW (widget), "xfce4-taskmanager", "start", NULL, NULL);
}
static void
dialog_close (GtkWidget *widget, gpointer user_data)
{
GtkDialog *dialog = GTK_DIALOG (user_data);
gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
}
static GtkWidget *
xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window)
{
@@ -119,7 +133,13 @@ xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window)
builder_bind_toggle_button (builder, "button-process-tree", settings, "process-tree");
button = GTK_WIDGET (gtk_builder_get_object (builder, "button-about"));
g_signal_connect_swapped (button, "clicked", G_CALLBACK (show_about_dialog), dialog);
g_signal_connect (button, "clicked", G_CALLBACK (show_about_dialog), dialog);
button = GTK_WIDGET (gtk_builder_get_object (builder, "button-help"));
g_signal_connect (button, "clicked", G_CALLBACK (show_help), dialog);
button = GTK_WIDGET (gtk_builder_get_object (builder, "button-close"));
g_signal_connect (button, "clicked", G_CALLBACK (dialog_close), dialog);
return dialog;
}
@@ -129,6 +149,7 @@ xtm_settings_dialog_run (GtkWidget *parent_window)
{
GtkBuilder *builder;
GtkWidget *dialog;
gint response;
builder = gtk_builder_new ();
gtk_builder_add_from_string (builder, settings_dialog_ui, settings_dialog_ui_length, NULL);
@@ -137,5 +158,8 @@ xtm_settings_dialog_run (GtkWidget *parent_window)
dialog = xtm_settings_dialog_new (builder, parent_window);
g_object_unref (builder);
gtk_dialog_run (GTK_DIALOG (dialog));
response = gtk_dialog_run (GTK_DIALOG (dialog));
if (response == GTK_RESPONSE_CLOSE)
gtk_widget_destroy (dialog);
}