summaryrefslogtreecommitdiff
path: root/xfce4-session-logout
diff options
context:
space:
mode:
authorJérôme Guelfucci <jeromeg@xfce.org>2010-03-08 00:12:50 +0100
committerJérôme Guelfucci <jeromeg@xfce.org>2010-03-08 00:12:50 +0100
commit1f4f562ef94b695134d1cf64bc14dc22cf8f1074 (patch)
treee04634950b634121890e99250539e6ac886c56e2 /xfce4-session-logout
parent986dff39372c50578009d94abdd18475df63b65a (diff)
downloadxfce4-session-1f4f562ef94b695134d1cf64bc14dc22cf8f1074.tar.gz
Use gtk_init_with_args in xfce4-session-logout.
Diffstat (limited to 'xfce4-session-logout')
-rw-r--r--xfce4-session-logout/Makefile.am3
-rw-r--r--xfce4-session-logout/main.c150
2 files changed, 86 insertions, 67 deletions
diff --git a/xfce4-session-logout/Makefile.am b/xfce4-session-logout/Makefile.am
index 2e73c3d0..b393ed8c 100644
--- a/xfce4-session-logout/Makefile.am
+++ b/xfce4-session-logout/Makefile.am
@@ -10,7 +10,8 @@ xfce4_session_logout_SOURCES = \
xfce4_session_logout_CFLAGS = \
-I$(top_srcdir) \
$(DBUS_CFLAGS) \
- $(LIBXFCE4UI_CFLAGS)
+ $(LIBXFCE4UI_CFLAGS) \
+ -DPACKAGE_LOCALE_DIR=\"$(localedir)\"
xfce4_session_logout_LDFLAGS = \
$(DBUS_LIBS) \
diff --git a/xfce4-session-logout/main.c b/xfce4-session-logout/main.c
index a0765dcc..6cf8c2cd 100644
--- a/xfce4-session-logout/main.c
+++ b/xfce4-session-logout/main.c
@@ -39,6 +39,7 @@
#include <gtk/gtk.h>
#include <libxfce4ui/libxfce4ui.h>
+#include <libxfce4util/libxfce4util.h>
/* copied from xfce4-session/shutdown.h -- ORDER MATTERS. The numbers
@@ -54,6 +55,51 @@ typedef enum
XFSM_SHUTDOWN_HIBERNATE,
} XfsmShutdownType;
+gboolean logout = FALSE;
+gboolean halt = FALSE;
+gboolean reboot = FALSE;
+gboolean suspend = FALSE;
+gboolean hibernate = FALSE;
+gboolean fast = FALSE;
+gboolean version = FALSE;
+
+static GOptionEntry option_entries[] =
+{
+ { "logout", 'l', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &logout,
+ N_("Log out without displaying the logout dialog"),
+ NULL
+ },
+ { "halt", 'h', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &halt,
+ N_("Halt without displaying the logout dialog"),
+ NULL
+ },
+ { "reboot", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &reboot,
+ N_("Reboot without displaying the logout dialog"),
+ NULL
+ },
+ { "suspend", 's', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &suspend,
+ N_("Suspend without displaying the logout dialog"),
+ NULL
+ },
+ { "hibernate", 'h', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &hibernate,
+ N_("Hibernate without displaying the logout dialog"),
+ NULL
+ },
+ { "fast", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &fast,
+ N_("Log out quickly; don't save the session"),
+ NULL
+ },
+ { "version", 'V', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version,
+ N_("Print version information and exit"),
+ NULL
+ },
+ {
+ NULL, ' ', 0, 0, NULL,
+ NULL,
+ NULL
+ }
+};
+
static void
xfce_session_logout_notify_error (const gchar *primary_message,
@@ -77,31 +123,6 @@ xfce_session_logout_notify_error (const gchar *primary_message,
}
-G_GNUC_NORETURN static void
-usage (int exit_code)
-{
- fprintf (stderr,
- "Usage: %s [OPTION...]\n"
- "\n"
- "GTK+\n"
- " --display=DISPLAY X display to use\n"
- "\n"
- "Application options\n"
- " --logout Log out without displaying the logout dialog\n"
- " --halt Halt without displaing the logout dialog\n"
- " --reboot Reboot without displaying the logout dialog\n"
- " --suspend Suspend without displaying the logout dialog\n"
- " --hibernate Hibernate without displaying the logout dialog\n"
- " --fast Log out quickly; don't save the session\n"
- "\n"
- " --help Print this help message and exit\n"
- " --version Print version information and exit\n"
- "\n",
- PACKAGE_STRING);
- exit (exit_code);
-}
-
-
int
main (int argc, char **argv)
@@ -111,49 +132,46 @@ main (int argc, char **argv)
DBusConnection *dbus_conn;
DBusMessage *message, *reply;
DBusError derror;
- gboolean have_display = gtk_init_check (&argc, &argv);
+ gboolean have_display;
+
+ xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
+
+ have_display = gtk_init_with_args (&argc, &argv, "", option_entries, PACKAGE, NULL);
- for (++argv; --argc > 0; ++argv)
+ if (logout)
+ {
+ shutdown_type = XFSM_SHUTDOWN_LOGOUT;
+ }
+ else if (halt)
+ {
+ shutdown_type = XFSM_SHUTDOWN_HALT;
+ }
+ else if (reboot)
+ {
+ shutdown_type = XFSM_SHUTDOWN_REBOOT;
+ }
+ else if (suspend)
+ {
+ shutdown_type = XFSM_SHUTDOWN_SUSPEND;
+ }
+ else if (hibernate)
+ {
+ shutdown_type = XFSM_SHUTDOWN_HIBERNATE;
+ }
+ else if (fast)
+ {
+ allow_save = FALSE;
+ }
+ else if (version)
{
- if (strcmp (*argv, "--logout") == 0)
- {
- shutdown_type = XFSM_SHUTDOWN_LOGOUT;
- }
- else if (strcmp (*argv, "--halt") == 0)
- {
- shutdown_type = XFSM_SHUTDOWN_HALT;
- }
- else if (strcmp (*argv, "--reboot") == 0)
- {
- shutdown_type = XFSM_SHUTDOWN_REBOOT;
- }
- else if (strcmp (*argv, "--suspend") == 0)
- {
- shutdown_type = XFSM_SHUTDOWN_SUSPEND;
- }
- else if (strcmp (*argv, "--hibernate") == 0)
- {
- shutdown_type = XFSM_SHUTDOWN_HIBERNATE;
- }
- else if (strcmp (*argv, "--fast") == 0)
- {
- allow_save = FALSE;
- }
- else if (strcmp (*argv, "--version") == 0)
- {
- printf ("%s (Xfce %s)\n\n"
- "Copyright (c) 2004\n"
- " The Xfce development team. All rights reserved.\n\n"
- "Written for Xfce by Brian Tarricone <kelnos@xfce.org> and\n"
- "Benedikt Meurer <benny@xfce.org>.\n\n"
- "Please report bugs to <%s>.\n",
- PACKAGE_STRING, xfce_version_string(), PACKAGE_BUGREPORT);
- return EXIT_SUCCESS;
- }
- else
- {
- usage (strcmp (*argv, "--help") == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
- }
+ printf ("%s (Xfce %s)\n\n"
+ "Copyright (c) 2010\n"
+ " The Xfce development team. All rights reserved.\n\n"
+ "Written for Xfce by Brian Tarricone <kelnos@xfce.org> and\n"
+ "Benedikt Meurer <benny@xfce.org>.\n\n"
+ "Please report bugs to <%s>.\n",
+ PACKAGE_STRING, xfce_version_string(), PACKAGE_BUGREPORT);
+ return EXIT_SUCCESS;
}
dbus_error_init (&derror);