summaryrefslogtreecommitdiff
path: root/xfce4-session/xfsm-shutdown.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfce4-session/xfsm-shutdown.h')
-rw-r--r--xfce4-session/xfsm-shutdown.h73
1 files changed, 71 insertions, 2 deletions
diff --git a/xfce4-session/xfsm-shutdown.h b/xfce4-session/xfsm-shutdown.h
index 76d71458..2ec61f0a 100644
--- a/xfce4-session/xfsm-shutdown.h
+++ b/xfce4-session/xfsm-shutdown.h
@@ -1,5 +1,6 @@
/*-
* Copyright (c) 2003-2004 Benedikt Meurer <benny@xfce.org>
+ * Copyright (c) 2011 Nick Schermer <nick@xfce.org>
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -21,8 +22,76 @@
#ifndef __XFSM_SHUTDOWN_H__
#define __XFSM_SHUTDOWN_H__
-#include <xfce4-session/xfsm-global.h>
+typedef struct _XfsmShutdownClass XfsmShutdownClass;
+typedef struct _XfsmShutdown XfsmShutdown;
-gint xfsm_shutdown (XfsmShutdownType type);
+#define XFSM_TYPE_SHUTDOWN (xfsm_shutdown_get_type ())
+#define XFSM_SHUTDOWN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFSM_TYPE_SHUTDOWN, XfsmShutdown))
+#define XFSM_SHUTDOWN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFSM_TYPE_SHUTDOWN, XfsmShutdownClass))
+#define XFSM_IS_SHUTDOWN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFSM_TYPE_SHUTDOWN))
+#define XFSM_IS_SHUTDOWN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFSM_TYPE_SHUTDOWN))
+#define XFSM_SHUTDOWN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFSM_TYPE_SHUTDOWN, XfsmShutdownClass))
+
+typedef enum
+{
+ XFSM_SHUTDOWN_ASK = 0,
+ XFSM_SHUTDOWN_LOGOUT,
+ XFSM_SHUTDOWN_SHUTDOWN,
+ XFSM_SHUTDOWN_RESTART,
+ XFSM_SHUTDOWN_SUSPEND,
+ XFSM_SHUTDOWN_HIBERNATE,
+}
+XfsmShutdownType;
+
+typedef enum
+{
+ PASSWORD_RETRY,
+ PASSWORD_SUCCEED,
+ PASSWORD_FAILED
+}
+XfsmPassState;
+
+GType xfsm_shutdown_get_type (void) G_GNUC_CONST;
+
+XfsmShutdown *xfsm_shutdown_get (void);
+
+gboolean xfsm_shutdown_password_require (XfsmShutdown *shutdown,
+ XfsmShutdownType type);
+
+XfsmPassState xfsm_shutdown_password_send (XfsmShutdown *shutdown,
+ XfsmShutdownType type,
+ const gchar *password);
+
+gboolean xfsm_shutdown_try_type (XfsmShutdown *shutdown,
+ XfsmShutdownType type,
+ GError **error);
+
+gboolean xfsm_shutdown_try_restart (XfsmShutdown *shutdown,
+ GError **error);
+
+gboolean xfsm_shutdown_try_shutdown (XfsmShutdown *shutdown,
+ GError **error);
+
+gboolean xfsm_shutdown_try_suspend (XfsmShutdown *shutdown,
+ GError **error);
+
+gboolean xfsm_shutdown_try_hibernate (XfsmShutdown *shutdown,
+ GError **error);
+
+gboolean xfsm_shutdown_can_restart (XfsmShutdown *shutdown,
+ gboolean *can_restart,
+ GError **error);
+
+gboolean xfsm_shutdown_can_shutdown (XfsmShutdown *shutdown,
+ gboolean *can_shutdown,
+ GError **error);
+
+gboolean xfsm_shutdown_can_suspend (XfsmShutdown *shutdown,
+ gboolean *can_suspend,
+ GError **error);
+
+gboolean xfsm_shutdown_can_hibernate (XfsmShutdown *shutdown,
+ gboolean *can_hibernate,
+ GError **error);
#endif /* !__XFSM_SHUTDOWN_H__ */