## Input Input — Callbacks on file descriptors |

## Synopsis

    #include <gdk/gdk.h>

    gint                gdk_input_add_full                  (gint source,
                                                             GdkInputCondition condition,
                                                             GdkInputFunction function,
                                                             gpointer data,
                                                             GDestroyNotify destroy);
    enum                GdkInputCondition;
    void                (*GdkInputFunction)                 (gpointer data,
                                                             gint source,
                                                             GdkInputCondition condition);
    void                (*GdkDestroyNotify)                 (gpointer data);
    gint                gdk_input_add                       (gint source,
                                                             GdkInputCondition condition,
                                                             GdkInputFunction function,
                                                             gpointer data);
    void                gdk_input_remove                    (gint tag);

## Description

The functions in this section are used to establish callbacks when some condition becomes true for a file descriptor. They are currently just wrappers around the IO Channel facility.

## Details

### gdk_input_add_full ()

    gint                gdk_input_add_full                  (gint source,
                                                             GdkInputCondition condition,
                                                             GdkInputFunction function,
                                                             gpointer data,
                                                             GDestroyNotify destroy);

### Warning

`gdk_input_add_full` has been deprecated since version 2.14 and should not be used in newly-written code. Use `g_io_add_watch_full()` on a GIOChannel

Establish a callback when a condition becomes true on a file descriptor.

`source` : | a file descriptor.
`condition` : | the condition.
`function` : | the callback function.
`data` : | callback data passed to `function`.
`destroy` : | callback function to call with `data` when the input handler is removed.
Returns : | a tag that can later be used as an argument to `gdk_input_remove()`.

### enum GdkInputCondition

    typedef enum {
      GDK_INPUT_READ       = 1 << 0,
      GDK_INPUT_WRITE      = 1 << 1,
      GDK_INPUT_EXCEPTION  = 1 << 2
    } GdkInputCondition;

A set of bit flags used to specify conditions for which an input callback will be triggered. The three members of this enumeration correspond to the `readfds`, `writefds`, and `exceptfds` arguments to the `select` system call.

`GDK_INPUT_READ` | the file descriptor has become available for reading. (Or, as is standard in Unix, a socket or pipe was closed at the other end; this is the case if a subsequent read on the file descriptor returns a count of zero.)
`GDK_INPUT_WRITE` | the file descriptor has become available for writing.
`GDK_INPUT_EXCEPTION` | an exception was raised on the file descriptor.

### GdkInputFunction ()

    void                (*GdkInputFunction)                 (gpointer data,
                                                             gint source,
                                                             GdkInputCondition condition);

A callback function that will be called when some condition occurs.

`data` : | the user data passed to `gdk_input_add()` or `gdk_input_add_full()`.
`source` : | the source where the condition occurred.
`condition` : | the triggering condition.

### GdkDestroyNotify ()

    void                (*GdkDestroyNotify)                 (gpointer data);

### Warning

`GdkDestroyNotify` is deprecated and should not be used in newly-written code.

A callback function called when a piece of user data is no longer being stored by GDK. Will typically free the structure or object that `data` points to.

`data` : | the user data.

### gdk_input_add ()

    gint                gdk_input_add                       (gint source,
                                                             GdkInputCondition condition,
                                                             GdkInputFunction function,
                                                             gpointer data);

### Warning

`gdk_input_add` has been deprecated since version 2.14 and should not be used in newly-written code. Use `g_io_add_watch()` on a GIOChannel

Establish a callback when a condition becomes true on a file descriptor.

`source` : | a file descriptor.
`condition` : | the condition.
`function` : | the callback function.
`data` : | callback data passed to `function`.
Returns : | a tag that can later be used as an argument to `gdk_input_remove()`.

### gdk_input_remove ()

    void                gdk_input_remove                    (gint tag);

### Warning

`gdk_input_remove` is deprecated and should not be used in newly-written code.

Remove a callback added with `gdk_input_add()` or `gdk_input_add_full()`.

`tag` : | the tag returned when the callback was set up.

## See Also

GLib Main Loop | The main loop in which input callbacks run.
IO Channels | A newer and more flexible way of doing IO callbacks.