## GimpController GimpController — Pluggable GIMP input controller modules. |

## Synopsis

    enum        GimpControllerEventType;
                GimpControllerEventAny;
                GimpControllerEventTrigger;
                GimpControllerEventValue;
    union       GimpControllerEvent;
                GimpController;
    GimpController* gimp_controller_new         (GType controller_type);
    gint        gimp_controller_get_n_events    (GimpController *controller);
    const gchar* gimp_controller_get_event_name (GimpController *controller,
                                                 gint event_id);
    const gchar* gimp_controller_get_event_blurb
                                                (GimpController *controller,
                                                 gint event_id);
    gboolean    gimp_controller_event           (GimpController *controller,
                                                 const GimpControllerEvent *event);

## Object Hierarchy

      GObject
       +----GimpController

## Properties

      "name"                 gchararray            : Read / Write / Construct
      "state"                gchararray            : Read / Write / Construct

## Signal Prototypes

    "event"     gboolean    user_function      (GimpController *gimpcontroller,
                                                gpointer arg1,
                                                gpointer user_data);

## Description

An abstract interface for implementing arbitrary input controllers.

## Details

### enum GimpControllerEventType

    typedef enum
    {
      GIMP_CONTROLLER_EVENT_TRIGGER,
      GIMP_CONTROLLER_EVENT_VALUE
    } GimpControllerEventType;

### GimpControllerEventAny

    typedef struct {
      GimpControllerEventType  type;
      GimpController          *source;
      gint                     event_id;
    } GimpControllerEventAny;

### GimpControllerEventTrigger

    typedef struct {
      GimpControllerEventType  type;
      GimpController          *source;
      gint                     event_id;
    } GimpControllerEventTrigger;

### GimpControllerEventValue

    typedef struct {
      GimpControllerEventType  type;
      GimpController          *source;
      gint                     event_id;
      GValue                   value;
    } GimpControllerEventValue;

### union GimpControllerEvent

    union GimpControllerEvent
    {
      GimpControllerEventType    type;
      GimpControllerEventAny     any;
      GimpControllerEventTrigger trigger;
      GimpControllerEventValue   value;
    };

### GimpController

    typedef struct _GimpController GimpController;

### gimp_controller_new ()

    GimpController* gimp_controller_new         (GType controller_type);

`controller_type` : |
Returns : |

### gimp_controller_get_n_events ()

    gint        gimp_controller_get_n_events    (GimpController *controller);

`controller` : |
Returns : |

### gimp_controller_get_event_name ()

    const gchar* gimp_controller_get_event_name (GimpController *controller,
                                                 gint event_id);

`controller` : |
`event_id` : |
Returns : |

### gimp_controller_get_event_blurb ()

    const gchar* gimp_controller_get_event_blurb
                                                (GimpController *controller,
                                                 gint event_id);

`controller` : |
`event_id` : |
Returns : |

### gimp_controller_event ()

    gboolean    gimp_controller_event           (GimpController *controller,
                                                 const GimpControllerEvent *event);

`controller` : |
`event` : |
Returns : |

## Properties

### The "`name`" property

      "name"                 gchararray            : Read / Write / Construct

Default value: "Unnamed Controller"

### The "`state`" property

      "state"                gchararray            : Read / Write / Construct

Default value: "Unknown"

## Signals

### The "event" signal

    gboolean    user_function                  (GimpController *gimpcontroller,
                                                gpointer arg1,
                                                gpointer user_data);

`gimpcontroller` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.
Returns : |