diff options
Diffstat (limited to 'xfce4-session/xfsm-shutdown.h')
-rw-r--r-- | xfce4-session/xfsm-shutdown.h | 73 |
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__ */ |