## GnomeIdleMonitor GnomeIdleMonitor |

## Synopsis

    struct              GnomeIdleMonitor;
    struct              GnomeIdleMonitorClass;
    void                (*GnomeIdleMonitorWatchFunc)        (GnomeIdleMonitor *monitor,
                                                             guint id,
                                                             gpointer user_data);
    GnomeIdleMonitor *  gnome_idle_monitor_new              (void);
    GnomeIdleMonitor *  gnome_idle_monitor_new_for_device   (GdkDevice *device,
                                                             GError **error);
    guint               gnome_idle_monitor_add_idle_watch   (GnomeIdleMonitor *monitor,
                                                             guint64 interval_msec,
                                                             GnomeIdleMonitorWatchFunc callback,
                                                             gpointer user_data,
                                                             GDestroyNotify notify);
    guint               gnome_idle_monitor_add_user_active_watch
                                                            (GnomeIdleMonitor *monitor,
                                                             GnomeIdleMonitorWatchFunc callback,
                                                             gpointer user_data,
                                                             GDestroyNotify notify);
    void                gnome_idle_monitor_remove_watch     (GnomeIdleMonitor *monitor,
                                                             guint id);
    guint64             gnome_idle_monitor_get_idletime     (GnomeIdleMonitor *monitor);

## Object Hierarchy

      GObject
       +----GnomeIdleMonitor

## Implemented Interfaces

GnomeIdleMonitor implements GInitable.

## Properties

      "device"                   GdkDevice*            : Read / Write / Construct Only

## Description

## Details

### struct GnomeIdleMonitor

    struct GnomeIdleMonitor;

### struct GnomeIdleMonitorClass

    struct GnomeIdleMonitorClass {
            GObjectClass          parent_class;
    };

### GnomeIdleMonitorWatchFunc ()

    void                (*GnomeIdleMonitorWatchFunc)        (GnomeIdleMonitor *monitor,
                                                             guint id,
                                                             gpointer user_data);

### gnome_idle_monitor_new ()

    GnomeIdleMonitor *  gnome_idle_monitor_new              (void);

Returns : | a new GnomeIdleMonitor that tracks the server-global idletime for all devices. To track device-specific idletime, use `gnome_idle_monitor_new_for_device()`.

### gnome_idle_monitor_new_for_device ()

    GnomeIdleMonitor *  gnome_idle_monitor_new_for_device   (GdkDevice *device,
                                                             GError **error);

`device` : | A GdkDevice to get the idle time for.
`error` : | A pointer to a GError or `NULL`.
Returns : | a new GnomeIdleMonitor that tracks the device-specific idletime for `device`. If device-specific idletime is not available, `NULL` is returned, and `error` is set. To track server-global idletime for all devices, use `gnome_idle_monitor_new()`.

### gnome_idle_monitor_add_idle_watch ()

    guint               gnome_idle_monitor_add_idle_watch   (GnomeIdleMonitor *monitor,
                                                             guint64 interval_msec,
                                                             GnomeIdleMonitorWatchFunc callback,
                                                             gpointer user_data,
                                                             GDestroyNotify notify);

`monitor` : | A GnomeIdleMonitor
`interval_msec` : | The idletime interval, in milliseconds
`callback` : | The callback to call when the user has accumulated `interval_msec` milliseconds of idle time. [allow-none]
`user_data` : | The user data to pass to the callback. [allow-none]
`notify` : | A GDestroyNotify
Returns : | a watch id Adds a watch for a specific idle time. The callback will be called when the user has accumulated `interval_msec` milliseconds of idle time. This function will return an ID that can either be passed to `gnome_idle_monitor_remove_watch()`, or can be used to tell idle time watches apart if you have more than one. Also note that this function will only care about positive transitions (user's idle time exceeding a certain time). If you want to know about when the user has become active, use `gnome_idle_monitor_add_user_active_watch()`.

### gnome_idle_monitor_add_user_active_watch ()

    guint               gnome_idle_monitor_add_user_active_watch
                                                            (GnomeIdleMonitor *monitor,
                                                             GnomeIdleMonitorWatchFunc callback,
                                                             gpointer user_data,
                                                             GDestroyNotify notify);

`monitor` : | A GnomeIdleMonitor
`callback` : | The callback to call when the user is active again. [allow-none]
`user_data` : | The user data to pass to the callback. [allow-none]
`notify` : | A GDestroyNotify
Returns : | a watch id Add a one-time watch to know when the user is active again. Note that this watch is one-time and will de-activate after the function is called, for efficiency purposes. It's most convenient to call this when an idle watch, as added by `gnome_idle_monitor_add_idle_watch()`, has triggered.

### gnome_idle_monitor_remove_watch ()

    void                gnome_idle_monitor_remove_watch     (GnomeIdleMonitor *monitor,
                                                             guint id);

Removes an idle time watcher, previously added by `gnome_idle_monitor_add_idle_watch()` or `gnome_idle_monitor_add_user_active_watch()`.

`monitor` : | A GnomeIdleMonitor
`id` : | A watch ID

### gnome_idle_monitor_get_idletime ()

    guint64             gnome_idle_monitor_get_idletime     (GnomeIdleMonitor *monitor);

`monitor` : | A GnomeIdleMonitor
Returns : | The current idle time, in milliseconds

## Property Details

### The `"device"` property

      "device"                   GdkDevice*            : Read / Write / Construct Only

The device to listen to idletime on.