/* session.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SESSION_H__
#define __SESSION_H__

#include <wingpanel.h>
#include <glib-object.h>
#include <gmodule.h>
#include <handy.h>
#include <gtk/gtk.h>
#include <act/act.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define SESSION_TYPE_INDICATOR (session_indicator_get_type ())
#define SESSION_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_TYPE_INDICATOR, SessionIndicator))
#define SESSION_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SESSION_TYPE_INDICATOR, SessionIndicatorClass))
#define SESSION_IS_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SESSION_TYPE_INDICATOR))
#define SESSION_IS_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SESSION_TYPE_INDICATOR))
#define SESSION_INDICATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SESSION_TYPE_INDICATOR, SessionIndicatorClass))

typedef struct _SessionIndicator SessionIndicator;
typedef struct _SessionIndicatorClass SessionIndicatorClass;
typedef struct _SessionIndicatorPrivate SessionIndicatorPrivate;
typedef enum  {
	SESSION_WIDGETS_END_SESSION_DIALOG_TYPE_LOGOUT = 0,
	SESSION_WIDGETS_END_SESSION_DIALOG_TYPE_SHUTDOWN = 1,
	SESSION_WIDGETS_END_SESSION_DIALOG_TYPE_RESTART = 2
} SessionWidgetsEndSessionDialogType;

#define SESSION_WIDGETS_TYPE_END_SESSION_DIALOG_TYPE (session_widgets_end_session_dialog_type_get_type ())

#define SESSION_WIDGETS_TYPE_END_SESSION_DIALOG (session_widgets_end_session_dialog_get_type ())
#define SESSION_WIDGETS_END_SESSION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_WIDGETS_TYPE_END_SESSION_DIALOG, SessionWidgetsEndSessionDialog))
#define SESSION_WIDGETS_END_SESSION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SESSION_WIDGETS_TYPE_END_SESSION_DIALOG, SessionWidgetsEndSessionDialogClass))
#define SESSION_WIDGETS_IS_END_SESSION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SESSION_WIDGETS_TYPE_END_SESSION_DIALOG))
#define SESSION_WIDGETS_IS_END_SESSION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SESSION_WIDGETS_TYPE_END_SESSION_DIALOG))
#define SESSION_WIDGETS_END_SESSION_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SESSION_WIDGETS_TYPE_END_SESSION_DIALOG, SessionWidgetsEndSessionDialogClass))

typedef struct _SessionWidgetsEndSessionDialog SessionWidgetsEndSessionDialog;
typedef struct _SessionWidgetsEndSessionDialogClass SessionWidgetsEndSessionDialogClass;
typedef struct _SessionWidgetsEndSessionDialogPrivate SessionWidgetsEndSessionDialogPrivate;

#define SESSION_WIDGETS_TYPE_USERBOX (session_widgets_userbox_get_type ())
#define SESSION_WIDGETS_USERBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_WIDGETS_TYPE_USERBOX, SessionWidgetsUserbox))
#define SESSION_WIDGETS_USERBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SESSION_WIDGETS_TYPE_USERBOX, SessionWidgetsUserboxClass))
#define SESSION_WIDGETS_IS_USERBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SESSION_WIDGETS_TYPE_USERBOX))
#define SESSION_WIDGETS_IS_USERBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SESSION_WIDGETS_TYPE_USERBOX))
#define SESSION_WIDGETS_USERBOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SESSION_WIDGETS_TYPE_USERBOX, SessionWidgetsUserboxClass))

typedef struct _SessionWidgetsUserbox SessionWidgetsUserbox;
typedef struct _SessionWidgetsUserboxClass SessionWidgetsUserboxClass;
typedef struct _SessionWidgetsUserboxPrivate SessionWidgetsUserboxPrivate;
typedef enum  {
	USER_STATE_ACTIVE,
	USER_STATE_ONLINE,
	USER_STATE_OFFLINE
} UserState;

#define TYPE_USER_STATE (user_state_get_type ())

#define SESSION_WIDGETS_TYPE_USER_LIST_BOX (session_widgets_user_list_box_get_type ())
#define SESSION_WIDGETS_USER_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_WIDGETS_TYPE_USER_LIST_BOX, SessionWidgetsUserListBox))
#define SESSION_WIDGETS_USER_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SESSION_WIDGETS_TYPE_USER_LIST_BOX, SessionWidgetsUserListBoxClass))
#define SESSION_WIDGETS_IS_USER_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SESSION_WIDGETS_TYPE_USER_LIST_BOX))
#define SESSION_WIDGETS_IS_USER_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SESSION_WIDGETS_TYPE_USER_LIST_BOX))
#define SESSION_WIDGETS_USER_LIST_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SESSION_WIDGETS_TYPE_USER_LIST_BOX, SessionWidgetsUserListBoxClass))

typedef struct _SessionWidgetsUserListBox SessionWidgetsUserListBox;
typedef struct _SessionWidgetsUserListBoxClass SessionWidgetsUserListBoxClass;
typedef struct _SessionWidgetsUserListBoxPrivate SessionWidgetsUserListBoxPrivate;

#define SESSION_SERVICES_TYPE_USER_MANAGER (session_services_user_manager_get_type ())
#define SESSION_SERVICES_USER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_SERVICES_TYPE_USER_MANAGER, SessionServicesUserManager))
#define SESSION_SERVICES_USER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SESSION_SERVICES_TYPE_USER_MANAGER, SessionServicesUserManagerClass))
#define SESSION_SERVICES_IS_USER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SESSION_SERVICES_TYPE_USER_MANAGER))
#define SESSION_SERVICES_IS_USER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SESSION_SERVICES_TYPE_USER_MANAGER))
#define SESSION_SERVICES_USER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SESSION_SERVICES_TYPE_USER_MANAGER, SessionServicesUserManagerClass))

typedef struct _SessionServicesUserManager SessionServicesUserManager;
typedef struct _SessionServicesUserManagerClass SessionServicesUserManagerClass;
typedef struct _SessionServicesUserManagerPrivate SessionServicesUserManagerPrivate;

#define SESSION_TYPE_END_SESSION_DIALOG_SERVER (session_end_session_dialog_server_get_type ())
#define SESSION_END_SESSION_DIALOG_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_TYPE_END_SESSION_DIALOG_SERVER, SessionEndSessionDialogServer))
#define SESSION_END_SESSION_DIALOG_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SESSION_TYPE_END_SESSION_DIALOG_SERVER, SessionEndSessionDialogServerClass))
#define SESSION_IS_END_SESSION_DIALOG_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SESSION_TYPE_END_SESSION_DIALOG_SERVER))
#define SESSION_IS_END_SESSION_DIALOG_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SESSION_TYPE_END_SESSION_DIALOG_SERVER))
#define SESSION_END_SESSION_DIALOG_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SESSION_TYPE_END_SESSION_DIALOG_SERVER, SessionEndSessionDialogServerClass))

typedef struct _SessionEndSessionDialogServer SessionEndSessionDialogServer;
typedef struct _SessionEndSessionDialogServerClass SessionEndSessionDialogServerClass;
typedef struct _SessionEndSessionDialogServerPrivate SessionEndSessionDialogServerPrivate;

struct _SessionIndicator {
	WingpanelIndicator parent_instance;
	SessionIndicatorPrivate * priv;
};

struct _SessionIndicatorClass {
	WingpanelIndicatorClass parent_class;
};

struct _SessionWidgetsEndSessionDialog {
	HdyWindow parent_instance;
	SessionWidgetsEndSessionDialogPrivate * priv;
};

struct _SessionWidgetsEndSessionDialogClass {
	HdyWindowClass parent_class;
};

struct _SessionWidgetsUserbox {
	GtkListBoxRow parent_instance;
	SessionWidgetsUserboxPrivate * priv;
};

struct _SessionWidgetsUserboxClass {
	GtkListBoxRowClass parent_class;
};

struct _SessionWidgetsUserListBox {
	GtkListBox parent_instance;
	SessionWidgetsUserListBoxPrivate * priv;
};

struct _SessionWidgetsUserListBoxClass {
	GtkListBoxClass parent_class;
};

struct _SessionServicesUserManager {
	GObject parent_instance;
	SessionServicesUserManagerPrivate * priv;
};

struct _SessionServicesUserManagerClass {
	GObjectClass parent_class;
};

struct _SessionEndSessionDialogServer {
	GObject parent_instance;
	SessionEndSessionDialogServerPrivate * priv;
};

struct _SessionEndSessionDialogServerClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType session_indicator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionIndicator, g_object_unref)
VALA_EXTERN SessionIndicator* session_indicator_new (WingpanelIndicatorManagerServerType server_type);
VALA_EXTERN SessionIndicator* session_indicator_construct (GType object_type,
                                               WingpanelIndicatorManagerServerType server_type);
VALA_EXTERN WingpanelIndicator* get_indicator (GModule* module,
                                   WingpanelIndicatorManagerServerType server_type);
VALA_EXTERN GType session_widgets_end_session_dialog_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType session_widgets_end_session_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionWidgetsEndSessionDialog, g_object_unref)
VALA_EXTERN SessionWidgetsEndSessionDialog* session_widgets_end_session_dialog_new (SessionWidgetsEndSessionDialogType type);
VALA_EXTERN SessionWidgetsEndSessionDialog* session_widgets_end_session_dialog_construct (GType object_type,
                                                                              SessionWidgetsEndSessionDialogType type);
VALA_EXTERN SessionWidgetsEndSessionDialogType session_widgets_end_session_dialog_get_dialog_type (SessionWidgetsEndSessionDialog* self);
VALA_EXTERN GType session_widgets_userbox_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionWidgetsUserbox, g_object_unref)
VALA_EXTERN SessionWidgetsUserbox* session_widgets_userbox_new (ActUser* user);
VALA_EXTERN SessionWidgetsUserbox* session_widgets_userbox_construct (GType object_type,
                                                          ActUser* user);
VALA_EXTERN SessionWidgetsUserbox* session_widgets_userbox_new_guest (void);
VALA_EXTERN SessionWidgetsUserbox* session_widgets_userbox_construct_guest (GType object_type);
VALA_EXTERN void session_widgets_userbox_get_user_state (SessionWidgetsUserbox* self,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_);
VALA_EXTERN GType user_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN UserState session_widgets_userbox_get_user_state_finish (SessionWidgetsUserbox* self,
                                                         GAsyncResult* _res_);
VALA_EXTERN void session_widgets_userbox_update_state (SessionWidgetsUserbox* self,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_);
VALA_EXTERN void session_widgets_userbox_update_state_finish (SessionWidgetsUserbox* self,
                                                  GAsyncResult* _res_);
VALA_EXTERN ActUser* session_widgets_userbox_get_user (SessionWidgetsUserbox* self);
VALA_EXTERN const gchar* session_widgets_userbox_get_fullname (SessionWidgetsUserbox* self);
VALA_EXTERN void session_widgets_userbox_set_fullname (SessionWidgetsUserbox* self,
                                           const gchar* value);
VALA_EXTERN UserState session_widgets_userbox_get_state (SessionWidgetsUserbox* self);
VALA_EXTERN gboolean session_widgets_userbox_get_is_guest (SessionWidgetsUserbox* self);
VALA_EXTERN GType session_widgets_user_list_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionWidgetsUserListBox, g_object_unref)
VALA_EXTERN gint session_widgets_user_list_box_sort_func (SessionWidgetsUserListBox* self,
                                              GtkListBoxRow* row1,
                                              GtkListBoxRow* row2);
VALA_EXTERN SessionWidgetsUserListBox* session_widgets_user_list_box_new (void);
VALA_EXTERN SessionWidgetsUserListBox* session_widgets_user_list_box_construct (GType object_type);
VALA_EXTERN UserState user_state_to_enum (const gchar* state);
VALA_EXTERN GType session_services_user_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionServicesUserManager, g_object_unref)
VALA_EXTERN void session_services_user_manager_get_user_state (guint32 uuid,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
VALA_EXTERN UserState session_services_user_manager_get_user_state_finish (GAsyncResult* _res_);
VALA_EXTERN void session_services_user_manager_get_guest_state (GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
VALA_EXTERN UserState session_services_user_manager_get_guest_state_finish (GAsyncResult* _res_);
VALA_EXTERN void session_services_user_manager_update_all (SessionServicesUserManager* self);
VALA_EXTERN void session_services_user_manager_get_n_active_and_online_users (SessionServicesUserManager* self,
                                                                  GAsyncReadyCallback _callback_,
                                                                  gpointer _user_data_);
VALA_EXTERN gint session_services_user_manager_get_n_active_and_online_users_finish (SessionServicesUserManager* self,
                                                                         GAsyncResult* _res_);
VALA_EXTERN SessionServicesUserManager* session_services_user_manager_new (void);
VALA_EXTERN SessionServicesUserManager* session_services_user_manager_construct (GType object_type);
VALA_EXTERN SessionWidgetsUserListBox* session_services_user_manager_get_user_grid (SessionServicesUserManager* self);
VALA_EXTERN GType session_end_session_dialog_server_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionEndSessionDialogServer, g_object_unref)
VALA_EXTERN guint session_end_session_dialog_server_register_object (void* object,
                                                         GDBusConnection* connection,
                                                         const gchar* path,
                                                         GError** error);
VALA_EXTERN void session_end_session_dialog_server_init (void);
VALA_EXTERN SessionEndSessionDialogServer* session_end_session_dialog_server_get_default (void);
VALA_EXTERN void session_end_session_dialog_server_open (SessionEndSessionDialogServer* self,
                                             guint type,
                                             guint timestamp,
                                             guint open_length,
                                             char** inhibiters,
                                             gint inhibiters_length1,
                                             GError** error);

G_END_DECLS

#endif
