## GnomeIdleMonitor GnomeIdleMonitor |

## Functions

void | (*GnomeIdleMonitorWatchFunc) ()
GnomeIdleMonitor * | gnome_idle_monitor_new ()
guint | gnome_idle_monitor_add_idle_watch ()
guint | gnome_idle_monitor_add_user_active_watch ()
void | gnome_idle_monitor_remove_watch ()
guint64 | gnome_idle_monitor_get_idletime ()

## Types and Values

struct | GnomeIdleMonitor
struct | GnomeIdleMonitorClass

## Description

## Functions

### 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.

### 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);

#### Parameters

monitor | A GnomeIdleMonitor |
interval_msec | The idletime interval, in milliseconds. It must be a strictly positive value (> 0). |
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);

#### Parameters

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()`.

#### Parameters

monitor | A GnomeIdleMonitor |
id | A watch ID |

### gnome_idle_monitor_get_idletime ()

    guint64
    gnome_idle_monitor_get_idletime (GnomeIdleMonitor *monitor);

#### Parameters

monitor | A GnomeIdleMonitor |

#### Returns

The current idle time, in milliseconds

## Types and Values

### struct GnomeIdleMonitor

    struct GnomeIdleMonitor {
            GObject                  parent;
            GnomeIdleMonitorPrivate *priv;
    };

### struct GnomeIdleMonitorClass

    struct GnomeIdleMonitorClass {
            GObjectClass          parent_class;
    };