/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __NEMO_CINNAMON_DBUS_H__
#define __NEMO_CINNAMON_DBUS_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.Cinnamon */

#define NEMO_TYPE_CINNAMON (nemo_cinnamon_get_type ())
#define NEMO_CINNAMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_CINNAMON, NemoCinnamon))
#define NEMO_IS_CINNAMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_CINNAMON))
#define NEMO_CINNAMON_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), NEMO_TYPE_CINNAMON, NemoCinnamonIface))

struct _NemoCinnamon;
typedef struct _NemoCinnamon NemoCinnamon;
typedef struct _NemoCinnamonIface NemoCinnamonIface;

struct _NemoCinnamonIface
{
  GTypeInterface parent_iface;



  gboolean (*handle_get_monitor_work_rect) (
    NemoCinnamon *object,
    GDBusMethodInvocation *invocation,
    gint arg_monitor);

  gboolean (*handle_get_monitors) (
    NemoCinnamon *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_get_run_state) (
    NemoCinnamon *object,
    GDBusMethodInvocation *invocation);

  gint  (*get_run_state) (NemoCinnamon *object);

  void (*monitors_changed) (
    NemoCinnamon *object);

  void (*run_state_changed) (
    NemoCinnamon *object);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoCinnamon, g_object_unref)
#endif

GType nemo_cinnamon_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *nemo_cinnamon_interface_info (void);
guint nemo_cinnamon_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void nemo_cinnamon_complete_get_monitors (
    NemoCinnamon *object,
    GDBusMethodInvocation *invocation,
    GVariant *monitors);

void nemo_cinnamon_complete_get_monitor_work_rect (
    NemoCinnamon *object,
    GDBusMethodInvocation *invocation,
    GVariant *rect);

void nemo_cinnamon_complete_get_run_state (
    NemoCinnamon *object,
    GDBusMethodInvocation *invocation,
    gint state);



/* D-Bus signal emissions functions: */
void nemo_cinnamon_emit_monitors_changed (
    NemoCinnamon *object);

void nemo_cinnamon_emit_run_state_changed (
    NemoCinnamon *object);



/* D-Bus method calls: */
void nemo_cinnamon_call_get_monitors (
    NemoCinnamon *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean nemo_cinnamon_call_get_monitors_finish (
    NemoCinnamon *proxy,
    GVariant **out_monitors,
    GAsyncResult *res,
    GError **error);

gboolean nemo_cinnamon_call_get_monitors_sync (
    NemoCinnamon *proxy,
    GVariant **out_monitors,
    GCancellable *cancellable,
    GError **error);

void nemo_cinnamon_call_get_monitor_work_rect (
    NemoCinnamon *proxy,
    gint arg_monitor,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean nemo_cinnamon_call_get_monitor_work_rect_finish (
    NemoCinnamon *proxy,
    GVariant **out_rect,
    GAsyncResult *res,
    GError **error);

gboolean nemo_cinnamon_call_get_monitor_work_rect_sync (
    NemoCinnamon *proxy,
    gint arg_monitor,
    GVariant **out_rect,
    GCancellable *cancellable,
    GError **error);

void nemo_cinnamon_call_get_run_state (
    NemoCinnamon *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean nemo_cinnamon_call_get_run_state_finish (
    NemoCinnamon *proxy,
    gint *out_state,
    GAsyncResult *res,
    GError **error);

gboolean nemo_cinnamon_call_get_run_state_sync (
    NemoCinnamon *proxy,
    gint *out_state,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
gint nemo_cinnamon_get_run_state (NemoCinnamon *object);
void nemo_cinnamon_set_run_state (NemoCinnamon *object, gint value);


/* ---- */

#define NEMO_TYPE_CINNAMON_PROXY (nemo_cinnamon_proxy_get_type ())
#define NEMO_CINNAMON_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_CINNAMON_PROXY, NemoCinnamonProxy))
#define NEMO_CINNAMON_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), NEMO_TYPE_CINNAMON_PROXY, NemoCinnamonProxyClass))
#define NEMO_CINNAMON_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), NEMO_TYPE_CINNAMON_PROXY, NemoCinnamonProxyClass))
#define NEMO_IS_CINNAMON_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_CINNAMON_PROXY))
#define NEMO_IS_CINNAMON_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NEMO_TYPE_CINNAMON_PROXY))

typedef struct _NemoCinnamonProxy NemoCinnamonProxy;
typedef struct _NemoCinnamonProxyClass NemoCinnamonProxyClass;
typedef struct _NemoCinnamonProxyPrivate NemoCinnamonProxyPrivate;

struct _NemoCinnamonProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  NemoCinnamonProxyPrivate *priv;
};

struct _NemoCinnamonProxyClass
{
  GDBusProxyClass parent_class;
};

GType nemo_cinnamon_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoCinnamonProxy, g_object_unref)
#endif

void nemo_cinnamon_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
NemoCinnamon *nemo_cinnamon_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
NemoCinnamon *nemo_cinnamon_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void nemo_cinnamon_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
NemoCinnamon *nemo_cinnamon_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
NemoCinnamon *nemo_cinnamon_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define NEMO_TYPE_CINNAMON_SKELETON (nemo_cinnamon_skeleton_get_type ())
#define NEMO_CINNAMON_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_CINNAMON_SKELETON, NemoCinnamonSkeleton))
#define NEMO_CINNAMON_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), NEMO_TYPE_CINNAMON_SKELETON, NemoCinnamonSkeletonClass))
#define NEMO_CINNAMON_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), NEMO_TYPE_CINNAMON_SKELETON, NemoCinnamonSkeletonClass))
#define NEMO_IS_CINNAMON_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_CINNAMON_SKELETON))
#define NEMO_IS_CINNAMON_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NEMO_TYPE_CINNAMON_SKELETON))

typedef struct _NemoCinnamonSkeleton NemoCinnamonSkeleton;
typedef struct _NemoCinnamonSkeletonClass NemoCinnamonSkeletonClass;
typedef struct _NemoCinnamonSkeletonPrivate NemoCinnamonSkeletonPrivate;

struct _NemoCinnamonSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  NemoCinnamonSkeletonPrivate *priv;
};

struct _NemoCinnamonSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType nemo_cinnamon_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoCinnamonSkeleton, g_object_unref)
#endif

NemoCinnamon *nemo_cinnamon_skeleton_new (void);


/* ---- */

#define NEMO_TYPE_OBJECT (nemo_object_get_type ())
#define NEMO_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_OBJECT, NemoObject))
#define NEMO_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_OBJECT))
#define NEMO_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), NEMO_TYPE_OBJECT, NemoObject))

struct _NemoObject;
typedef struct _NemoObject NemoObject;
typedef struct _NemoObjectIface NemoObjectIface;

struct _NemoObjectIface
{
  GTypeInterface parent_iface;
};

GType nemo_object_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoObject, g_object_unref)
#endif

NemoCinnamon *nemo_object_get_cinnamon (NemoObject *object);
NemoCinnamon *nemo_object_peek_cinnamon (NemoObject *object);

#define NEMO_TYPE_OBJECT_PROXY (nemo_object_proxy_get_type ())
#define NEMO_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_OBJECT_PROXY, NemoObjectProxy))
#define NEMO_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), NEMO_TYPE_OBJECT_PROXY, NemoObjectProxyClass))
#define NEMO_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), NEMO_TYPE_OBJECT_PROXY, NemoObjectProxyClass))
#define NEMO_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_OBJECT_PROXY))
#define NEMO_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NEMO_TYPE_OBJECT_PROXY))

typedef struct _NemoObjectProxy NemoObjectProxy;
typedef struct _NemoObjectProxyClass NemoObjectProxyClass;
typedef struct _NemoObjectProxyPrivate NemoObjectProxyPrivate;

struct _NemoObjectProxy
{
  /*< private >*/
  GDBusObjectProxy parent_instance;
  NemoObjectProxyPrivate *priv;
};

struct _NemoObjectProxyClass
{
  GDBusObjectProxyClass parent_class;
};

GType nemo_object_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoObjectProxy, g_object_unref)
#endif

NemoObjectProxy *nemo_object_proxy_new (GDBusConnection *connection, const gchar *object_path);

#define NEMO_TYPE_OBJECT_SKELETON (nemo_object_skeleton_get_type ())
#define NEMO_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_OBJECT_SKELETON, NemoObjectSkeleton))
#define NEMO_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), NEMO_TYPE_OBJECT_SKELETON, NemoObjectSkeletonClass))
#define NEMO_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), NEMO_TYPE_OBJECT_SKELETON, NemoObjectSkeletonClass))
#define NEMO_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_OBJECT_SKELETON))
#define NEMO_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NEMO_TYPE_OBJECT_SKELETON))

typedef struct _NemoObjectSkeleton NemoObjectSkeleton;
typedef struct _NemoObjectSkeletonClass NemoObjectSkeletonClass;
typedef struct _NemoObjectSkeletonPrivate NemoObjectSkeletonPrivate;

struct _NemoObjectSkeleton
{
  /*< private >*/
  GDBusObjectSkeleton parent_instance;
  NemoObjectSkeletonPrivate *priv;
};

struct _NemoObjectSkeletonClass
{
  GDBusObjectSkeletonClass parent_class;
};

GType nemo_object_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoObjectSkeleton, g_object_unref)
#endif

NemoObjectSkeleton *nemo_object_skeleton_new (const gchar *object_path);
void nemo_object_skeleton_set_cinnamon (NemoObjectSkeleton *object, NemoCinnamon *interface_);

/* ---- */

#define NEMO_TYPE_OBJECT_MANAGER_CLIENT (nemo_object_manager_client_get_type ())
#define NEMO_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_OBJECT_MANAGER_CLIENT, NemoObjectManagerClient))
#define NEMO_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), NEMO_TYPE_OBJECT_MANAGER_CLIENT, NemoObjectManagerClientClass))
#define NEMO_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), NEMO_TYPE_OBJECT_MANAGER_CLIENT, NemoObjectManagerClientClass))
#define NEMO_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_OBJECT_MANAGER_CLIENT))
#define NEMO_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NEMO_TYPE_OBJECT_MANAGER_CLIENT))

typedef struct _NemoObjectManagerClient NemoObjectManagerClient;
typedef struct _NemoObjectManagerClientClass NemoObjectManagerClientClass;
typedef struct _NemoObjectManagerClientPrivate NemoObjectManagerClientPrivate;

struct _NemoObjectManagerClient
{
  /*< private >*/
  GDBusObjectManagerClient parent_instance;
  NemoObjectManagerClientPrivate *priv;
};

struct _NemoObjectManagerClientClass
{
  GDBusObjectManagerClientClass parent_class;
};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (NemoObjectManagerClient, g_object_unref)
#endif

GType nemo_object_manager_client_get_type (void) G_GNUC_CONST;

GType nemo_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);

void nemo_object_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *nemo_object_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *nemo_object_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);

void nemo_object_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *nemo_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *nemo_object_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);


G_END_DECLS

#endif /* __NEMO_CINNAMON_DBUS_H__ */
