diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-04-12 16:54:09 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-04-12 16:54:09 +0200 |
commit | 94b8cfc9ad72ce0ee7483935b4e04a0a07bfc83d (patch) | |
tree | 265bbf353bf345190ef3f5bd18e5b72709d1b9ff /src/utils.c | |
parent | 8acbd3a7555bb4c8e830261fcc44354760f33540 (diff) | |
parent | 9f6064b4073d80f0635e3f61d1e5d28e2f1d1182 (diff) | |
download | libayatana-common-94b8cfc9ad72ce0ee7483935b4e04a0a07bfc83d.tar.gz libayatana-common-94b8cfc9ad72ce0ee7483935b4e04a0a07bfc83d.tar.bz2 libayatana-common-94b8cfc9ad72ce0ee7483935b4e04a0a07bfc83d.zip |
Merge branch 'tari01-pr/add-zenity-warning'
Attributes GH PR #10: https://github.com/AyatanaIndicators/libayatana-common/pull/10
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index 152f226..e5e96fa 100644 --- a/src/utils.c +++ b/src/utils.c @@ -172,3 +172,49 @@ have_program (const gchar * program) return have; } + +gboolean +zenity_warning (const char * icon_name, + const char * title, + const char * text) +{ + char * command_line; + int exit_status; + GError * error; + gboolean confirmed; + char * zenity; + + confirmed = FALSE; + zenity = g_find_program_in_path ("zenity"); + + if (zenity) + { + command_line = g_strdup_printf ("%s" + " --warning" + " --icon-name=\"%s\"" + " --title=\"%s\"" + " --text=\"%s\"" + " --no-wrap", + zenity, + icon_name, + title, + text); + + /* Treat errors as user confirmation. + Otherwise how will the user ever log out? */ + exit_status = -1; + error = NULL; + if (!g_spawn_command_line_sync (command_line, NULL, NULL, &exit_status, &error)) + { + confirmed = TRUE; + } + else + { + confirmed = g_spawn_check_exit_status (exit_status, &error); + } + + g_free (command_line); + } + g_free (zenity); + return confirmed; +} |