## Input Input — Callbacks on file descriptors |

## Synopsis

    #include <gdk/gdk.h>

    gint        gdk_input_add_full              (gint source,
                                                 GdkInputCondition condition,
                                                 GdkInputFunction function,
                                                 gpointer data,
                                                 GdkDestroyNotify 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,
                                                 GdkDestroyNotify destroy);

### Warning

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

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

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` is deprecated and should not be used in newly-written code.

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.